Azure Storage 監査ログを収集する

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

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

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • 有効な Azure テナントがあることを確認します。
  • Azure への特権アクセス権があることを確認します。

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

  1. Azure コンソールで、[ストレージ アカウント] を検索します。
  2. [作成] をクリックします。
  3. 次の入力パラメータの値を指定します。
    • Subscription: サブスクリプションを選択します。
    • Resource Group: リソース グループを選択します。
    • リージョン: リージョンを選択します。
    • パフォーマンス: パフォーマンスを選択します(標準を推奨)。
    • 冗長性: 冗長性を選択します(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. [保存] をクリックします。

Azure Storage Audit ログを取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: Azure Storage Audit Logs)。
  4. [ソースタイプ] として [Microsoft Azure Blob Storage] を選択します。
  5. [ログタイプ] として [Azure Storage Audit] を選択します。
  6. [次へ] をクリックします。
  7. 次の入力パラメータの値を指定します。

    • 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 TYPE を選択します。
    • Source deletion options: 必要に応じて削除オプションを選択します。

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

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

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

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

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

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 に割り当てられます。

変更点

2024-12-12

  • identity.tokenHashidentity.typeidentity.requester.appIdidentity.requester.tenantIdidentity.requester.tokenIssuerproperties.sourceAccessTierprincipal.typeauth.actionauth.roleAssignmentIdauth.roleDefinitionIdadditional.fields にマッピングしました。
  • identity.requester.upnsrc.user.userid にマッピングしました。
  • identity.requester.objectIdsrc.user.product_object_id にマッピングしました。

2024-12-06

  • smbCommandMinorsecurity_result.action_details にマッピングしました。

2024-07-31

  • statusTextcorrelationId を null に初期化しました。

2024-04-08

  • 新しく作成されたパーサー。

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