Azure でのアプリのセキュリティを強化する

Azure でのアプリのセキュリティを強化する
コンピューター上の Microsoft Azure ロゴ。
画像: PhotoGranary/Adobe Stock

クラウドコンピューティングが普及し始めた当初、それは摩擦とコストの両方を削減する手段と考えられていました。物理サーバーの承認、注文、配送、そしてセットアップを待つよりも、クラウド上で仮想マシンを立ち上げる方がはるかに迅速かつ安価でした。

参照: TechRepublic Premium のこのアクセス管理ポリシー テンプレートを使用して、ユーザー アクセスに関する安全なポリシーを構築します。

現在、クラウド コンピューティングは、拡張可能なアプリケーションを設計し、それをサポートするようにクラウド サービスを構成し、複雑なシステムで避けられない障害を処理する方法さえ知っていれば、ミッション クリティカルなワークロードを実行できるほど強力かつ堅牢です。

ジャンプ先:

  • Azure でアプリを構築する際のセキュリティ上の欠陥を回避する
  • アプリをロックダウンする
  • ネットワークを確認する

Azure でアプリを構築する際のセキュリティ上の欠陥を回避する

Azure上でアプリケーションを構築する場合、Microsoftは、信頼性、セキュリティ、パフォーマンス効率、そして効率的な運用を考慮したアプリの設計と実行を支援するWell-Architected Frameworkを提供しています。さらに、すべてを網羅しているかどうかを評価するためのクイズも提供しています。

Azure で実行するアプリケーションの信頼性とセキュリティを向上させるツールやサービスも増え続けています。これらのツールには、アプリの障害対応をテストできる Azure Chaos Studio サービスから、コードの欠陥を検出するオープンソースの OneFuzz プロジェクトまで、多岐にわたります。

コンテナを使用する場合、.NET 8 Linuxコンテナのデフォルト構成は「rootless」になり、たった1行のコードでアプリをrootアクセス権限を持つユーザーではなく標準ユーザーとして実行できるようになります。これにより、攻撃者がアプリに侵入したとしても、ファイルを変更したり、独自のコードをインストールして実行したりすることができなくなります。

アプリをロックダウンする

アプリケーションを作成するときにセキュリティ上の欠陥を回避するだけでなく、適切なユーザーのみにアクセス権を付与するようにする必要があります。

任意のAzureリソース、あるいはAzureサブスクリプション全体にロックを適用することで、それらの削除や変更を不可能にすることができます。ただし、ロックはAzureデータプレーンではなくAzureコントロールプレーンに作用するため、変更がロックされているデータベースでもデータの作成、更新、削除は可能です。そのため、アプリケーションは正常に動作し続けます。

資格情報の使用方法をきめ細かく管理できない古いアプリケーション向けに、Azure Active Directory には、資格情報のセキュリティを確保するための新しいオプションが用意されています。これにより、攻撃者が重要なエンタープライズ アプリケーションを制御し、資格情報を入手してネットワーク内を移動し、他のシステムを攻撃できるような変更を加えることができなくなります。

すべてのデータ侵害の約 70% は Web アプリケーションへの攻撃から始まるため、攻撃者が Web アプリケーションを他のリソースへの踏み台として使用できないようにする必要があります。

参照: BYOD と個人用アプリケーションがどのようにデータ侵害につながるかを確認します。

新しいアプリ インスタンス プロパティ ロック機能は、SAML および OpenID Connect による資格情報署名をカバーしているため、ユーザーが Azure AD を使用してサインインし、複数のアプリケーションにアクセスできるシングル サインオンを提供できます。

また、公開鍵を使用して作成されたトークンも暗号化されるため、それらのトークンを使用するアプリは、現在サインインしているユーザーのトークンを使用する前に、正しい秘密鍵を持っている必要があります。これにより、トークンを盗んで再生し、アクセスすることが難しくなります。

最新のアプリケーションには通常、既にこのような保護機能が備わっているはずです。サインオンフローを保護するように構築されていないレガシーアプリケーションを実行している場合は、Azure AD を使用することで、トークンの署名、暗号化、検証に使用される資格情報の変更を阻止できます。そのため、たとえ攻撃者がアプリケーションにアクセスできたとしても、正当な管理者をブロックして乗っ取ることはできません。

また、Azure AD テナントにインストールまたは登録するアプリケーションに対するユーザーのアクセス許可と、ゲスト アクセスを持つユーザーに表示される内容を確認することも必要です。

ネットワークを確認する

クラウド アプリに問題がある場合、ネットワークに問題があることもあれば、ネットワーク オプションの構成方法に問題があることもあります。

Azure Virtual Network Manager は、ネットワークリソースをグループ化し、それらのリソースの接続性とセキュリティを構成し、それらの構成を適切なネットワークグループに自動的に展開するための新しいツールです。同時に、通常はブロックする受信 Secure Shell トラフィックなど、必要なリソースに対して例外を設定することもできます。

これを利用すると、ハブアンドスポークのような一般的なネットワークトポロジを作成できます。ハブアンドスポークは、Azure Firewall または ExpressRoute 接続を含むハブ仮想ネットワークに複数の仮想ネットワークを接続します。また、Azure Virtual Network Manager は、そのリソースに接続する必要がある新しい仮想ネットワークを自動的に追加したり、仮想ネットワーク同士が通信できるようにするメッシュを(近日中に)追加したりします。

Azure Network Watcher には、ネットワークを監視し、VM や仮想ネットワークに影響を与える可能性のある問題を追跡するためのツールが既に用意されています。複数の Azure サブスクリプション、リージョン、リソース グループを網羅するライブ トポロジ マップを描画できるほか、クラウド内および独自のインフラストラクチャ上の VM の接続性、パケット損失、遅延を監視することもできます。

しかし、特定の問題を見つけるために複数のツールを使うということは、何を探しているのかを明確に把握している必要があるということです。Network Watcher の新しい接続トラブルシューティングツールは、これらのツールを実行し、ネットワークホップ、レイテンシ、メモリ、CPU 使用率、そして接続の成功/失敗の状況を報告します。また、失敗の原因が DNS、ネットワークルーティングルール、ネットワークセキュリティルール、ファイアウォール設定のいずれにあるかを示します。

Network Watcher を使用すると、パケットキャプチャセッションや Azure Traffic Analytics などの他のツールも実行でき、アプリケーションのネットワークフローを視覚化できます。Azure Traffic Analytics ではネットワークトポロジのマッピングも可能なので、どのリソースがどのサブネットにあるのか、また各サブネットがどの仮想ネットワークに属しているのかを確認できます。

Network Watcher のネットワーク セキュリティ グループを使用する場合は、Traffic Analytics を使用してフロー ログを解釈し、イングレス トラフィックとエグレス トラフィックを追跡してトラフィックのホットスポットを探したり、ネットワーク トラフィックが世界中のどこから来ているのか、それが期待どおりかどうかを確認したりできます。

また、Azure Key Vault などの機密リソースへのアクセスに、パブリック IP 接続ではなくプライベートリンクを使用しているかどうかを確認するのにも使用できます。Azure DNS サーバーではなくパブリック DNS サーバーを使用している場合、このようなミスは驚くほど起こりやすいものです。ネットワーク構成を正しく行うことは、クラウドでアプリを安全に保つ上で重要な要素です。

Tagged: