Secure Web Proxy ログを収集する

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

このドキュメントでは、Cloud Storage を使用して Secure Web Proxy をエクスポートし、Google Security Operations に取り込む方法について説明します。パーサーは JSON ログからフィールドを抽出し、統合データモデル(UDM)に変換します。UDM フィールドを初期化し、JSON ペイロードを解析して、ネットワーク情報、セキュリティの詳細、リソース属性を抽出し、プリンシパル情報とターゲット情報の有無に基づいてイベントタイプを設定します。

始める前に

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

  • Google SecOps インスタンス。
  • Secure Web Proxy がアクティブで、 Google Cloud 環境で構成されている。
  • Google Cloud への特権アクセスと、Secure Web Proxy ログにアクセスするための適切な権限。

Cloud Storage バケットを作成する

  1. Google Cloud コンソールにログインします。
  2. [Cloud Storage バケット] のページに移動します。

    [バケット] に移動

  3. [作成] をクリックします。

  4. [バケットの作成] ページでユーザーのバケット情報を入力します。以下のステップでは、操作を完了した後に [続行] をクリックして、次のステップに進みます。

    1. [始める] セクションで、次の操作を行います。

      1. バケット名の要件を満たす一意の名前を入力します(例: gcp-swp-logs)。
      2. 階層名前空間を有効にするには、展開矢印をクリックして [Optimize for file oriented and data-intensive workloads] セクションを開き、[このバケットで階層的な名前空間を有効にする] を選択します。

      3. バケットラベルを追加するには、展開矢印をクリックして [ラベル] セクションを開きます。

      4. [ラベルを追加] をクリックし、ラベルのキーと値を指定します。

    2. [データの保存場所の選択] セクションで、次の操作を行います。

      1. ロケーション タイプを選択してください。
      2. ロケーション タイプのメニューを使用して、バケット内のオブジェクト データが永続的に保存されるロケーションを選択します。

      3. クロスバケット レプリケーションを設定するには、[クロスバケット レプリケーションを設定する] セクションを開きます。

    3. [データのストレージ クラスを選択する] セクションで、バケットのデフォルトのストレージ クラスを選択します。あるいは、Autoclass を選択して、バケットデータのストレージ クラスを自動的に管理します。

    4. [オブジェクトへのアクセスを制御する方法を選択する] セクションで、[なし] を選択して公開アクセスの防止を適用し、バケットのオブジェクトの [アクセス制御モデル] を選択します。

    5. [オブジェクト データを保護する方法を選択する] セクションで、次の操作を行います。

      1. [データ保護] で、バケットに設定するオプションを選択します。
      2. オブジェクト データの暗号化方法を選択するには、[データ暗号化] というラベルの付いた展開矢印をクリックし、データの暗号化方法を選択します。
  5. [作成] をクリックします。

Secure Web Proxy ログのエクスポートを構成する

  1. Google Cloud コンソールにログインします。
  2. [ロギング>ログルーター] に移動します。
  3. [シンクを作成] をクリックします。
  4. 次の構成パラメータを指定します。

    • シンク名: わかりやすい名前を入力します(例: SWP-Export-Sink)。
    • シンクの宛先: [Cloud Storage] を選択し、バケットの URI(例: gs://gcp-swp-logs)を入力します。
    • ログフィルタ:
    logName="projects/<your-project-id>/logs/networkservices.googleapis.com/gateway_requests"
    
  5. [作成] をクリックします。

Cloud Storage の権限を構成する

  1. [IAM と管理] > [IAM] に移動します。
  2. Cloud Logging サービス アカウントを見つけます。
  3. バケットに対する roles/storage.admin を付与します。

フィードを設定する

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

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

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

フィードを構成する手順は次のとおりです。

  1. [SIEM Settings] > [Feeds] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで [単一のフィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Google Cloud SWP Logs)。
  5. [Source type] として [Google Cloud Storage] を選択します。
  6. [ログタイプ] として [GCP Secure Web Proxy] を選択します。
  7. [Chronicle Service Account] フィールドの横にある [サービス アカウントを取得する] をクリックします。
  8. [次へ] をクリックします。
  9. 次の入力パラメータの値を指定します。

    • ストレージ バケット URI: Cloud Storage バケットの URL(例: gs://gcp-swp-logs)。
    • URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
    • Source deletion options: 必要に応じて削除オプションを選択します。

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

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

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

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

  • ストレージ バケット URI: Cloud Storage バケットの URL(例: gs://gcp-swp-logs)。
  • URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
  • Source deletion options: 必要に応じて削除オプションを選択します。

詳細オプション

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

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
httpRequest.latency additional.fields[].key: HTTPRequest Latency
additional.fields[].value.string_value: 0.124462s
未加工ログのフィールドから直接マッピングされます。
httpRequest.protocol network.application_protocol: HTTP
network.application_protocol_version: 2
プロトコルとバージョンは、grok パターンを使用して httpRequest.protocol フィールドから抽出されます。
httpRequest.remoteIp target.asset.ip: 1.1.0.1
target.ip: 1.1.0.1
IP アドレスは、grok パターンを使用して httpRequest.remoteIp フィールドから抽出されます。
httpRequest.requestMethod network.http.method: GET 未加工ログのフィールドから直接マッピングされます。
httpRequest.requestSize network.sent_bytes: 144 未加工ログのフィールドから直接マッピングされ、整数に変換されます。
httpRequest.requestUrl target.url: https://github.com/tempuslabs/tempusutils/info/refs?service=git-upload-pack 未加工ログのフィールドから直接マッピングされます。
httpRequest.responseSize network.received_bytes: 225 未加工ログのフィールドから直接マッピングされ、整数に変換されます。
httpRequest.serverIp principal.asset.ip: 1.8.1.4
principal.ip: 1.8.1.4
IP アドレスは、grok パターンを使用して httpRequest.serverIp フィールドから抽出されます。
httpRequest.status network.http.response_code: 401 未加工ログのフィールドから直接マッピングされ、整数に変換されます。
httpRequest.userAgent network.http.user_agent: git/2.34.1
network.http.parsed_user_agent: {
family: USER_DEFINED,
device: git,
device_version: 2.34.1
}
未加工ログのフィールドから直接マッピングされます。parsed_user_agent フィールドは、httpRequest.userAgent フィールドを解析することで取得されます。
insertId metadata.product_log_id: 1yh8wczer5o8n 未加工ログのフィールドから直接マッピングされます。
jsonPayload.@type additional.fields[].key: Log Type
additional.fields[].value.string_value: type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry
未加工ログのフィールドから直接マッピングされます。
jsonPayload.enforcedGatewaySecurityPolicy.hostname target.asset.hostname: github.com
target.hostname: github.com
未加工ログのフィールドから直接マッピングされます。
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action security_result.action: ALLOW
security_result.action_details: ALLOWED
security_result.actionjsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action の値に基づいて導出されます。アクションが ALLOWED の場合、UDM フィールドは ALLOW に設定されます。アクションが DENIED の場合、UDM フィールドは BLOCK に設定されます。
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].name security_result.rule_name: projects/671807354785/locations/us-central1/gatewaySecurityPolicies/github-access-gateway-security-policy-5cec30cd/rules/github-access-gateway-security-policy-rule-5cec30cd 未加工ログのフィールドから直接マッピングされます。
jsonPayload.enforcedGatewaySecurityPolicy.requestWasTlsIntercepted security_result.detection_fields[].key: requestWasTlsIntercepted
security_result.detection_fields[].value: true
未加工ログのフィールドから直接マッピングされます。
logName additional.fields[].key: Log Name
additional.fields[].value.string_value: projects/rws-w6uza3pn5jzzh6z3hc3d/logs/networkservices.googleapis.com%2Fgateway_requests
未加工ログのフィールドから直接マッピングされます。
receiveTimestamp metadata.collected_timestamp: {
seconds: 1710189647,
nanos: 661101224
}
RFC 3339 日付形式を使用して、未加工のログフィールドから解析されます。
resource.labels.gateway_name security_result.detection_fields[].key: gateway-name
security_result.detection_fields[].value: github-access-gateway-5cec30cd
未加工ログのフィールドから直接マッピングされます。
resource.labels.gateway_type security_result.detection_fields[].key: gateway-type
security_result.detection_fields[].value: SECURE_WEB_GATEWAY
未加工ログのフィールドから直接マッピングされます。
resource.labels.location target.resource.attribute.cloud.availability_zone: us-central1 未加工ログのフィールドから直接マッピングされます。
resource.labels.network_name target.resource.attribute.labels[].key: rc_network_name
target.resource.attribute.labels[].value: projects/rws-w6uza3pn5jzzh6z3hc3d/global/networks/rws-tr-pilot-workspace
未加工ログのフィールドから直接マッピングされます。
resource.type target.resource.attribute.labels[].key: Resource Type
target.resource.attribute.labels[].value: networkservices.googleapis.com/Gateway
未加工ログのフィールドから直接マッピングされます。
severity security_result.severity: MEDIUM 未加工ログのフィールドからマッピングされます。値は UDM の重大度レベルに変換されます。この場合、WARNINGMEDIUM にマッピングされます。
timestamp metadata.event_timestamp: {
seconds: 1710189639,
nanos: 952848000
}
RFC 3339 日付形式を使用して、未加工のログフィールドから解析されます。
(パーサー ロジック) metadata.event_type: NETWORK_HTTP has_principalhas_targethttp に一致するプロトコルの有無に基づいてパーサー ロジックによって決定されます。
(パーサー ロジック) metadata.log_type: GCP_SWP 商品に基づくハードコードされた値。

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