Azure Application Gateway のログを収集する

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

このドキュメントでは、Google Security Operations フィードを設定して Azure Application Gateway ログを収集する方法について説明します。このパーサーは、単一レコードと複数レコードの両方の JSON 構造を処理し、「records」配列からフィールドを抽出し、データ型の変換を行い、フィールドを UDM にマッピングして、ネットワーク接続タイプなどのメタデータと派生フィールドでデータを拡充します。また、さまざまな operationName 値の特定のロジックを処理し、関連する IP アドレス、サブネット、その他の構成の詳細を抽出します。

始める前に

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

  • Google SecOps インスタンス
  • Azure サブスクリプションへの特権アクセス
  • 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 Application Gateway を構成する方法

  1. Azure ポータルにログインします。
  2. 目的のリソース グループに移動します。
  3. [アプリケーション ゲートウェイ] を選択します([アプリケーション ゲートウェイ] ウィンドウが表示されます)。
  4. [モニタリング] セクションで、[診断設定] > [診断を有効にする] を選択します。
  5. [診断設定を追加] を選択します([診断設定] ウィンドウに診断ログの設定が表示されます)。
  6. [log] セクションで、次の操作を行います。
    1. [ApplicationGatewayAccessLog] チェックボックスをオンにします。
    2. [ApplicationGatewayFirewallLog] チェックボックスをオンにします。
  7. ログをストレージ アカウントに保存する手順は次のとおりです。
    1. [ストレージ アカウントにアーカイブする] チェックボックスをオンにします。
    2. [サブスクリプション] リストで、既存のサブスクリプションを選択します。
    3. [ストレージ アカウント] リストで、既存のストレージ アカウントを選択します。

フィードを設定する

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

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

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

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

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

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

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

詳細オプション

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

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
Category metadata.product_event_type Category フィールドから直接マッピングされます。
ClientOperationId additional.fields[].key:"ClientOperationId", value.string_value ClientOperationId フィールドから直接マッピングされます。
CorrelationRequestId additional.fields[].key:"CorrelationRequestId", value.string_value CorrelationRequestId フィールドから直接マッピングされます。
GatewayManagerVersion additional.fields[].key:"GatewayManagerVersion", value.string_value GatewayManagerVersion フィールドから直接マッピングされます。
category metadata.product_event_type category フィールドから直接マッピングされます。
level security_result.severity level フィールドから直接マッピングされ、大文字に変換されます。値が「WARNING」の場合、重大度は「HIGH」に設定され、security_result.severity_details は元の値に設定されます。
properties.clientIP principal.ipprincipal.asset.ip properties.clientIP フィールドから直接マッピングされます。
properties.clientPort principal.port properties.clientPort フィールドから直接マッピングされ、整数に変換されます。
properties.clientResponseTime additional.fields[].key:"clientResponseTime", value.string_value properties.clientResponseTime フィールドから直接マッピングされます。
properties.configuration.BgpConfiguration.GatewayConfig.Asn security_result.detection_fields[].key:"ASN", value operationName が「SetGatewayConfiguration」の場合、properties.configuration.BgpConfiguration.GatewayConfig.Asn フィールドから直接マッピングされます。
properties.configuration.BgpConfiguration.GatewayConfig.PeerAddress target.iptarget.asset.ip operationName が「SetGatewayConfiguration」の場合、properties.configuration.BgpConfiguration.GatewayConfig.PeerAddress フィールドから直接マッピングされます。
properties.configuration.BgpConfiguration.GatewayConfig.PeerType security_result.detection_fields[].key:"PeerType", value operationName が「SetGatewayConfiguration」の場合、properties.configuration.BgpConfiguration.GatewayConfig.PeerType フィールドから直接マッピングされます。
properties.configuration.IkeVersion principal.resource.attribute.labels[].key:"ike_version", value operationName が「SetConnectionConfiguration」の場合、properties.configuration.IkeVersion フィールドから直接マッピングされます。
properties.configuration.LocalSubnets principal.resource.attribute.labels[].key:"local subnets", value operationName が「SetConnectionConfiguration」の場合の properties.configuration.LocalSubnets 配列の IP アドレスの連結文字列。
properties.configuration.LocalTunnelEndpoint principal.ipprincipal.asset.ip operationName が「SetConnectionConfiguration」の場合、properties.configuration.LocalTunnelEndpoint フィールドから直接マッピングされます。
properties.configuration.Name principal.hostnameprincipal.asset.hostname properties.configuration.Name フィールドから直接マッピングされます。空の場合、値は properties.instance から取得されます。
properties.configuration.RemoteSite target.hostnametarget.asset.hostname properties.configuration.RemoteSite フィールドから直接マッピングされます。
properties.configuration.RemoteSubnets principal.resource.attribute.labels[].key:"remote subnets", value operationName が「SetConnectionConfiguration」の場合の properties.configuration.RemoteSubnets 配列の IP アドレスの連結文字列。
properties.configuration.RemoteTunnelEndpoint target.iptarget.asset.ip operationName が「SetConnectionConfiguration」の場合、properties.configuration.RemoteTunnelEndpoint フィールドから直接マッピングされます。
properties.configuration.VIPAddress principal.ipprincipal.asset.ip operationName が「SetGatewayConfiguration」の場合、properties.configuration.VIPAddress フィールドから直接マッピングされます。
properties.configuration.VirtualNetworkRanges principal.resource.attribute.labels[].key:"virutal network ranges", value operationName が「SetGatewayConfiguration」の場合の properties.configuration.VirtualNetworkRanges 配列の IP アドレスの連結文字列。
properties.configuration.VirtualNetworkSubnets principal.resource.attribute.labels[].key:"virtual network subnets", value operationName が「SetGatewayConfiguration」の場合の properties.configuration.VirtualNetworkSubnets 配列の IP アドレスの連結文字列。
properties.error_info additional.fields[].key:"error_info", value.string_value properties.error_info フィールドから直接マッピングされます。
properties.host principal.hostnameprincipal.asset.hostname properties.originalHost が空の場合、properties.host フィールドから直接マッピングされます。
properties.httpMethod network.http.method properties.httpMethod フィールドから直接マッピングされます。
properties.httpStatus network.http.response_code properties.httpStatus フィールドから直接マッピングされ、整数に変換されます。
properties.httpVersion network.application_protocol properties.httpVersion フィールドに「HTTP」が含まれている場合は、「HTTP」に設定されます。
properties.instance principal.hostnameprincipal.asset.hostname properties.configuration.Name が空の場合、principal.hostname の値として使用されます。
properties.message metadata.description properties.message フィールドから直接マッピングされます。
properties.operationName additional.fields[].key:"operationName", value.string_value properties.operationName フィールドから直接マッピングされます。
properties.operationStatus security_result.category_details properties.operationStatus フィールドから直接マッピングされます。値が「Success」または「InProgress」の場合、security_result.action は「ALLOW」に設定されます。
properties.originalHost principal.hostnameprincipal.asset.hostname properties.originalHost フィールドから直接マッピングされます。
properties.originalRequestUriWithArgs additional.fields[].key:"originalRequestUriWithArgs", value.string_value properties.originalRequestUriWithArgs フィールドから直接マッピングされます。
properties.receivedBytes network.received_bytes properties.receivedBytes フィールドから直接マッピングされ、符号なし整数に変換されます。
properties.requestQuery additional.fields[].key:"requestQuery", value.string_value properties.requestQuery フィールドから直接マッピングされます。
properties.requestUri target.url properties.requestUri フィールドから直接マッピングされます。
properties.sentBytes network.sent_bytes properties.sentBytes フィールドから直接マッピングされ、符号なし整数に変換されます。
properties.serverResponseLatency additional.fields[].key:"Server Response Latency", value.string_value properties.serverResponseLatency フィールドから直接マッピングされます。
properties.serverRouted target.iptarget.asset.iptarget.port IP とポートは、正規表現を使用して properties.serverRouted フィールドから抽出されます。
properties.sslCipher network.tls.cipher properties.sslCipher フィールドから直接マッピングされます。
properties.sslClientCertificateIssuerName network.tls.server.certificate.issuer properties.sslClientCertificateIssuerName フィールドから直接マッピングされます。
properties.sslProtocol network.tls.version properties.sslProtocol フィールドから直接マッピングされます。
properties.timeTaken additional.fields[].key:"timeTaken", value.string_value properties.timeTaken フィールドから直接マッピングされます。
properties.transactionId network.session_id properties.transactionId フィールドから直接マッピングされます。
properties.userAgent network.http.user_agentnetwork.http.parsed_user_agent properties.userAgent フィールドから直接マッピングされます。また、このフィールドは解析されたユーザー エージェントに変換され、network.http.parsed_user_agent にマッピングされます。
properties.WAFEvaluationTime additional.fields[].key:"WAFEvaluationTime", value.string_value properties.WAFEvaluationTime フィールドから直接マッピングされます。
properties.WAFMode additional.fields[].key:"WAFMode", value.string_value properties.WAFMode フィールドから直接マッピングされます。
resourceId target.resource.id resourceId フィールドから直接マッピングされます。
resourceid target.resource.product_object_id resourceid フィールドから直接マッピングされます。
ruleName security_result.rule_name ruleName フィールドから直接マッピングされます。
time / timeStamp metadata.event_timestamptimestamp RFC 3339 形式または ISO8601 形式を使用してタイムスタンプとして解析されます。timeStamp が推奨されますが、timeStamp が存在しない場合は time が使用されます。
(パーサー ロジック) metadata.event_type プリンシパルとターゲットの両方が存在する場合は「NETWORK_CONNECTION」に設定します。プリンシパルのみが存在する場合は「STATUS_UPDATE」に設定します。それ以外の場合は「GENERIC_EVENT」に設定します。
(パーサー ロジック) metadata.product_name 「Azure Gateway」に設定します。
(パーサー ロジック) metadata.vendor_name 「Microsoft」に設定します。
(パーサー ロジック) has_principal ブール値のフラグ。プリンシパル情報(ホスト名、IP、ポート)が抽出された場合は「true」、それ以外の場合は「false」に設定されます。
(パーサー ロジック) has_target ブール値のフラグ。ターゲット情報(ホスト名、IP、ポート、リソース ID、URL)が抽出された場合は「true」、それ以外の場合は「false」に設定されます。
(パーサー ロジック) disambiguation_key 1 つのログエントリから複数のイベントが抽出された場合に追加されます。