Azure Storage 監査ログを収集する

以下でサポートされています。

このドキュメントでは、Azure Storage アカウントを使用して Azure Storage 監査ログを Google Security Operations にエクスポートする方法について説明します。パーサーは JSON 形式のログを処理し、Unified Data Model(UDM)に変換します。未加工のログからフィールドを抽出し、データ型の変換を行い、追加のコンテキスト(ユーザー エージェントの解析や IP アドレスの内訳など)でデータを拡充し、抽出されたフィールドを対応する UDM フィールドにマッピングします。

始める前に

次の前提条件を満たしていることを確認します。

  • Google SecOps インスタンス
  • アクティブな Azure テナント
  • Azure への特権アクセス

Azure Storage アカウントを構成する

  1. Azure コンソールで、[ストレージ アカウント] を検索します。
  2. [作成] をクリックします。
  3. 次の入力パラメータの値を指定します。
    • Subscription: サブスクリプションを選択します。
    • リソース グループ: リソース グループを選択します。
    • Region: リージョンを選択します。
    • パフォーマンス: パフォーマンスを選択します(標準が推奨)。
    • 冗長性: 冗長性(GRS または LRS を推奨)を選択します。
    • ストレージ アカウント名: 新しいストレージ アカウントの名前を入力します。
  4. [Review + create] をクリックします。
  5. アカウントの概要を確認して、[作成] をクリックします。
  6. [ストレージ アカウントの概要] ページで、[セキュリティとネットワーキング] の [アクセスキー] サブメニューを選択します。
  7. [key1] または [key2] の横にある [Show] をクリックします。
  8. [クリップボードにコピー] をクリックして、キーをコピーします。
  9. キーは後で使用できるように安全な場所に保存します。
  10. [ストレージ アカウントの概要] ページで、[設定] の [エンドポイント] サブメニューを選択します。
  11. [クリップボードにコピー] をクリックして、Blob サービス エンドポイント URL(例: https://<storageaccountname>.blob.core.windows.net)をコピーします。
  12. エンドポイント URL は、後で使用できるように安全な場所に保存します。

Azure Storage 監査ログのログ エクスポートを構成する方法

  1. 特権アカウントを使用して Azure Portal にログインします。
  2. [ストレージ アカウント> 診断設定] に移動します。
  3. [+ 診断設定を追加] をクリックします。
  4. blobqueuetablefile の診断設定を選択します。
    • 各診断設定の [カテゴリ グループ] で [allLogs] オプションを選択します。
    • 各診断設定にわかりやすい名前を入力します。
  5. 移行先として [ストレージ アカウントにアーカイブする] チェックボックスをオンにします。
    • サブスクリプションストレージ アカウントを指定します。
  6. [保存] をクリックします。

フィードを設定する

Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。

  • [SIEM 設定] > [フィード]
  • [Content Hub] > [Content Packs]

[SIEM 設定] > [フィード] でフィードを設定する

このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。

1 つのフィードを設定する手順は次のとおりです。

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで、[単一フィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Azure Storage 監査ログ)。
  5. [ソースタイプ] で [Microsoft Azure Blob Storage] を選択します。
  6. [ログタイプ] として [Azure Storage Audit] を選択します。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    • Azure URI: BLOB エンドポイント URL。
      • ENDPOINT_URL/BLOB_NAME
        • 次のように置き換えます。
          • ENDPOINT_URL: BLOB エンドポイント URL(https://<storageaccountname>.blob.core.windows.net
          • BLOB_NAME: blob の名前(<logname>-logs など)
    • URI is a: ログストリームの構成([単一ファイル] | [ディレクトリ] | [サブディレクトリを含むディレクトリ])に応じて URI タイプを選択します。
    • Source deletion options: 取り込みの設定に応じて削除オプションを選択します。

    • 共有キー: Azure Blob Storage のアクセスキー。

    • アセットの名前空間: アセットの名前空間

    • Ingestion labels: このフィードのイベントに適用されるラベル。

  9. [次へ] をクリックします。

  10. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

コンテンツ ハブからフィードを設定する

次のフィールドに値を指定します。

  • Azure URI: BLOB エンドポイント URL。
    • ENDPOINT_URL/BLOB_NAME
      • 次のように置き換えます。
        • ENDPOINT_URL: BLOB エンドポイント URL(https://<storageaccountname>.blob.core.windows.net
        • BLOB_NAME: blob の名前(<logname>-logs など)
  • URI is a: ログストリームの構成([単一ファイル] | [ディレクトリ] | [サブディレクトリを含むディレクトリ])に応じて URI タイプを選択します。
  • Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
  • 共有キー: Azure Blob Storage のアクセスキー。

詳細オプション

  • フィード名: フィードを識別する事前入力された値。
  • ソースタイプ: Google SecOps にログを収集するために使用される方法。
  • Asset Namespace: フィードに関連付けられた名前空間
  • Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
callerIpAddress principal.asset.ip IP アドレスは、grok パターンを使用して callerIpAddress フィールドから抽出され、principal.asset.ip に割り当てられます。
callerIpAddress principal.ip IP アドレスは、grok パターンを使用して callerIpAddress フィールドから抽出され、principal.ip に割り当てられます。
callerIpAddress principal.port ポート番号は、grok パターンを使用して callerIpAddress フィールドから抽出され、principal.port に割り当てられます。
category security_result.category_details category フィールドの値が security_result.category_details に割り当てられます。
correlationId security_result.detection_fields[0].key リテラル文字列 correlationId がキーフィールドに割り当てられます。
correlationId security_result.detection_fields[0].value correlationId フィールドの値が security_result.detection_fields[0].value に割り当てられます。time フィールドの値はタイムスタンプとして解析され、event.idm.read_only_udm.metadata.event_timestamp に割り当てられます。categoryStorageWrite で、principal.user.userid が存在する場合(properties.accountName から派生)、値は USER_RESOURCE_UPDATE_CONTENT に設定されます。categoryStorageDelete で、principal.user.userid が存在する場合、値は USER_RESOURCE_DELETION に設定されます。それ以外の場合、値は USER_RESOURCE_ACCESS に設定されます。リテラル文字列 AZURE_STORAGE_AUDITevent.idm.read_only_udm.metadata.log_type に割り当てられます。リテラル文字列 AZURE_STORAGE_AUDITevent.idm.read_only_udm.metadata.product_name に割り当てられます。schemaVersion フィールドの値が event.idm.read_only_udm.metadata.product_version に割り当てられます。リテラル文字列 AZURE_STORAGE_AUDITevent.idm.read_only_udm.metadata.vendor_name に割り当てられます。
location target.location.name location フィールドの値が target.location.name に割り当てられます。
operationName additional.fields[x].key リテラル文字列 operationName がキーフィールドに割り当てられます。
operationName additional.fields[x].value.string_value operationName フィールドの値が additional.fields[x].value.string_value に割り当てられます。
operationVersion additional.fields[x].key リテラル文字列 operationVersion がキーフィールドに割り当てられます。
operationVersion additional.fields[x].value.string_value operationVersion フィールドの値が additional.fields[x].value.string_value に割り当てられます。
properties.accountName principal.user.userid properties.accountName フィールドの値が principal.user.userid に割り当てられます。
properties.clientRequestId additional.fields[x].key リテラル文字列 clientRequestId がキーフィールドに割り当てられます。
properties.clientRequestId additional.fields[x].value.string_value properties.clientRequestId フィールドの値が additional.fields[x].value.string_value に割り当てられます。
properties.etag additional.fields[x].key リテラル文字列 etag がキーフィールドに割り当てられます。
properties.etag additional.fields[x].value.string_value properties.etag フィールドの値が additional.fields[x].value.string_value に割り当てられます。
properties.objectKey additional.fields[x].key リテラル文字列 objectKey がキーフィールドに割り当てられます。
properties.objectKey additional.fields[x].value.string_value properties.objectKey フィールドの値が additional.fields[x].value.string_value に割り当てられます。
properties.requestMd5 additional.fields[x].key リテラル文字列 requestMd5 がキーフィールドに割り当てられます。
properties.requestMd5 additional.fields[x].value.string_value properties.requestMd5 フィールドの値が additional.fields[x].value.string_value に割り当てられます。
properties.responseMd5 additional.fields[x].key リテラル文字列 responseMd5 がキーフィールドに割り当てられます。
properties.responseMd5 additional.fields[x].value.string_value properties.responseMd5 フィールドの値が additional.fields[x].value.string_value に割り当てられます。
properties.serviceType additional.fields[x].key リテラル文字列 serviceType がキーフィールドに割り当てられます。
properties.serviceType additional.fields[x].value.string_value properties.serviceType フィールドの値が additional.fields[x].value.string_value に割り当てられます。
properties.tlsVersion network.tls.version properties.tlsVersion フィールドの値が network.tls.version に割り当てられます。
properties.userAgentHeader network.http.parsed_user_agent properties.userAgentHeader フィールドの値はユーザー エージェント文字列として解析され、network.http.parsed_user_agent に割り当てられます。
properties.userAgentHeader network.http.user_agent properties.userAgentHeader フィールドの値が network.http.user_agent に割り当てられます。
protocol network.application_protocol protocol フィールドの値が network.application_protocol に割り当てられます。
resourceId target.resource.id resourceId フィールドの値が target.resource.id に割り当てられます。
resourceId target.resource.product_object_id resourceId フィールドの値が target.resource.product_object_id に割り当てられます。リテラル文字列 DATABASEtarget.resource.resource_type に割り当てられます。
resourceType additional.fields[x].key リテラル文字列 resourceType がキーフィールドに割り当てられます。
resourceType additional.fields[x].value.string_value resourceType フィールドの値が additional.fields[x].value.string_value に割り当てられます。statusTextSuccess の場合、値は ALLOW に設定されます。
statusCode network.http.response_code statusCode フィールドの値は整数に変換され、network.http.response_code に割り当てられます。リテラル文字列 MICROSOFT_AZUREtarget.cloud.environment に割り当てられます。
time timestamp time フィールドの値はタイムスタンプとして解析され、timestamp に割り当てられます。
uri network.http.referral_url uri フィールドの値が network.http.referral_url に割り当てられます。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。