Azure Cosmos DB の侵害された ID による悪意のあるキー抽出の検出

news

Azure Cosmos DB は、最新のアプリ開発のためのフル マネージド NoSQL クラウド データベース サービスです。世界規模の自動データ複製、超高速の応答タイプ、さまざまな API など、さまざまな高度な組み込み機能を提供します。このブログ投稿では、 Azure Cosmos DB へのアクセスをセキュリティで保護するためのセキュリティ プラクティスについて説明し、Azure Cosmos DB の Microsoft Defenderによって実行される関連するコントロール プレーン操作の監視が、侵害された可能性のある ID の検出にどのように役立つかを示します。

認証と認可

Azure Cosmos DBデータベースを操作するには、要求ごとに有効な資格情報を提供する必要があります。資格情報の主な種類は、Azure Cosmos DB アカウント作成の一部として生成され、ListKeys 操作を使用して管理 API を介して取得できる、プライマリとセカンダリと呼ばれるアクセス キーのペアです。これらのキーにより、データベースの構成、サーバー側ロジックの展開、一般的な読み取りおよび書き込みデータ トランザクションなど、アカウントを完全に制御できます。キーはペアとして生成され、キーのローテーション中の継続的な可用性を可能にします。プライマリ キーが使用されている場合は、セカンダリ キーがローテーションされ、その逆も同様です。

Azure Cosmos DB でサポートされている別の種類の認証とアクセス制御は、 Microsoft Azure Active Directory (Azure AD) に基づくロールベースのアクセス制御 (RBAC) メカニズムです。 1 Azure AD で認証されたプリンシパルには、Cosmos DB アカウント内のデータベースとさまざまなオブジェクトに特定のアクセス許可を付与する個別のロールを割り当てることができます。役割は、いくつかの組み込みの選択肢から選択するか、アカウント所有者がカスタマイズできます。

セキュリティで保護されたアーキテクチャ コントロール

アプリケーション設計にデータベースが含まれている場合、セキュリティ体制を改善するために適用する必要があるアクセス制御セキュリティ プラクティスがあります。これらのプラクティスはデータベース セキュリティでよく知られており、Azure Cosmos DB の組み込み機能を使用して実装する必要があります。以下に 2 つの例を示します。

  1. 3 層アーキテクチャを採用して、データベースへのアクセスをアプリケーション サーバーのみに制限し、クライアントからは直接アクセスしないように制限します。このような設計の実装は、特定の IP アドレスまたはサブネットへのアクセスのみを提供するように Cosmos DB ファイアウォールを適切に構成することによって実現できます。
  2. データベースと通信するエンティティに最小特権アクセスを割り当てます。前述のように、RBAC 承認を使用することで、Azure Cosmos DB への厳密なアクセス モデルを設定し、その攻撃面を最小限に抑えることができます。データ トランザクションを実行するアプリケーション サーバーは、それらの実行を承認する必要がありますが、コレクションの削除やストアド プロシージャのアップロードなどの環境構成アクティビティは許可しないでください。一方、デプロイ操作の承認は、エンジニアリング チームと継続的インテグレーションおよび継続的デリバリー (CI/CD) システムに与えることができます。すべてのエンティティが適切な役割とアクセス権で構成されている場合は、アクセス キーを無効にしてキーの漏洩の脅威を軽減することをお勧めします。

クラウドベースの攻撃ベクトル

前述のすべてのセキュリティ制御が整っているため、クラウド アプリケーションを保護する際に対処する必要がある別の攻撃ベクトルがあります。潜在的な脅威は、リソースのプロビジョニングとその構成を担当する Azure Resource Manager (ARM) への承認されたコントロール プレーン アクセスによって実現できます。 Azure Cosmos DB のコンテキストでは、ARM に対してクエリを実行して Cosmos DB アクセス キーを取得したり、データベース ファイアウォール規則の変更要求を処理したりできます。管理インターフェイスのアクセス制御をバイパスすることは、攻撃者にとって高い障壁となるため、攻撃者が広く採用している戦術は、ユーザーへの攻撃を通じて資格情報を取得することです。したがって、承認された操作を継続的に監視することで、侵害された顧客アカウントに対する追加のセキュリティ層が実現されます。

セキュリティ慣行に従ってアクセス キーが無効になっている場合、キー漏洩のシナリオは有効ではありません。注意すべき興味深い点は、これらの場合、ListKeys 操作を実行する必要があるエンティティがないことです。したがって、セキュリティ サービスによって監視されている場合は、動作している ID の潜在的な侵害の検出として機能します。

疑わしい鍵の抽出の監視

Azure Cosmos DB アカウントのデータ トラフィック (保存されているデータへのアクセス、読み取り、または変更の試行を含む) は、 Microsoft Defender for Azure Cosmos DBによって監視されます。 Defender には、さまざまなセキュリティ シナリオをカバーする検出のコレクションが増え続けています。たとえば、アカウントが異常または疑わしい場所からアクセスされた場合、異常に大量のデータが抽出された場合、または潜在的に悪意のあるクエリが実行された場合に、シグナルがトリガーされます。非常に疑わしいパターンが検出された場合、アカウントのセキュリティ管理者にセキュリティ アラートが送信され、検出された脅威を軽減し、将来の攻撃を防ぐための説明情報と推奨される手順が示されます。 Azure Cosmos DB コンテンツへのアクセスをセキュリティで保護し、監視することは重要であり、コントロール プレーン操作の監視によって強化する必要があります。 Cosmos DB などの最新のデータベースでは、認証は共有キーを使用して提供されます。キーが漏洩または侵害された場合、データ プレーン ログに個々のユーザー プロファイルが表示されないため、悪意のあるアクターによるキーの使用は正当な使用と混同されます。さらに、攻撃 (盗難のためのデータ流出やランサムウェアのためのデータ暗号化など) の場合、早期検出によりインシデント対応の有効性が高まり、被害が軽減されます。

コントロール プレーンの監視により、リソースの管理アクティビティ (アクセス ポリシーの変更、アクセス キーの一覧表示と設定など) の分析が可能になり、許可されたユーザーへのマッピングが可能になります。セキュリティ シナリオに関連する管理操作を監視することが重要です。たとえば、Azure Cosmos DB のデータにアクセスするには、コントロール プレーン ログに ListKeys 操作として表示されるアクセス キーを取得する必要があります。操作の他の例には、暗号化やアクセス ポリシーまたはキーの変更が含まれます。

これらの操作は重要ですが、ほとんどの場合、それらは正常で正当なものです。ただし、操作が著しく異常な場合 (たとえば、予期しない IP アドレスから実行された場合、めったに見られないユーザーによって実行された場合、または弱い認証を使用している場合など)、アカウントへの悪意のあるアクセス試行を示している可能性があり、リソース所有者が調査する必要があります。あるいは、異常なパターンが存在しなくても、そのような操作の大規模な実行は侵害を示している可能性があります。

いくつかの種類の指標に基づいて、疑わしい重要な管理操作にフラグを立てることをお勧めします。

  1. 以前は見られなかった予期しないソース IP、アプリケーション、認証タイプなどの新しい異常なエンティティ。既知のエンティティのセットが十分に小さく、新しいエンティティが定期的に出現しない場合、新しいエンティティは予期しないものと見なされます。したがって、正当なエンティティの追加または悪意のあるアクターの出現を示している可能性があり、調査する必要があります。
  2. 異常なペアリングは、2 つの既存の変数間の異常な接続を示します。たとえば、これまで関連するリソース グループで作業したことがない既知のユーザーによって実行された重要な操作は、ID の侵害や、ソース デバイスとターゲット リソース間の接続が以前に通信したことがないことなどを示している可能性があります。これは、変数の意味のあるペア間の接続の類似性の確率をモデル化することによって検出できます。
  3. 脅威インテリジェンス信号でフラグ付けされたソース IP、既知の侵入テストに似た操作パターン、または攻撃ツールの使用などの疑わしい指標。潜在的な誤用の可能性を高める追加の二次指標も監視する必要があります。例としては、弱い認証 (多要素認証なし) や疑わしいエラー (偵察活動の可能性を示す) を使用して実行される操作が含まれます。これらの指標は、通常、既知の脆弱性と攻撃パターンに関するセキュリティ調査から導き出されます。
  4. 大量操作: 異常な指標が存在しない場合でも、影響が大きい可能性があるため、十分に大量の成功または失敗した操作を調査する必要があります。このようなイベントは、リソースをまとめて列挙またはアクセスすることを示している可能性があります。かなりの数の失敗した操作は弱いシグナルですが、ブラインド スキャンを使用する攻撃の初期の兆候である可能性があるため、重要です。

シナリオに応じて、さまざまな指標を個々の操作またはバッチの累積異常スコアに統合できます。監視対象の操作は重要であるため、高い異常スコアは悪意のあるアクセス試行を示している可能性があり、迅速に調査する必要があります。真陽性の場合、悪意のあるペイロードが実行される前に実際の被害を防ぐことができます。誤検知の場合、リソースの所有者は、そのようなケースを今後防止するための手順を検討した後、アイテムをすぐに却下できます。

Microsoft Defender for Azure Cosmos DB でセキュリティの脅威を検出する

Azure Cosmos DBの Microsoft Defender は、 Microsoft Defender for Cloudの一部です。データ プレーンとコントロール プレーンの両方のアラートをカバーし、潜在的な SQL インジェクション、Microsoft の脅威インテリジェンスに基づく既知の悪役、疑わしいアクセス パターン、侵害された ID または悪意のある内部関係者によるデータベースの潜在的な悪用を検出します。 Defender for Azure Cosmos DB の概要を読んで、その機能と検出について学習してください。

Microsoft は、クラウドに展開するためのセキュリティ戦略を策定し、提案された検出ソリューションを使用して Cosmos DB インスタンスを保護することをお勧めします。

Microsoft セキュリティ ソリューションの詳細については、当社の Web サイト を参照してくださいセキュリティ ブログをブックマークして、セキュリティに関する専門家の記事を入手してください。また、 @MSFTSecurityをフォローして、サイバーセキュリティに関する最新ニュースと更新情報を入手してください。


1初期の RBAC 機能は、リソース トークンに基づく従来の認証方法によっても提供されますが、現在はほとんど廃止されています。

参照: https://www.microsoft.com/en-us/security/blog/2022/06/23/detecting-malicious-key-extractions-by-compromised-identities-for-azure-cosmos-db/

Comments

タイトルとURLをコピーしました