Cloud VPC フローログを収集する

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

このドキュメントでは、 Google Cloudを使用して Cloud VPC フローログを Google Security Operations にエクスポートする方法について説明します。パーサーは、ログを組み込みの JSON 形式から Google Security Operations UDM に変換します。送信元 IP、宛先 IP、ポート、プロトコル、送信バイト数などの関連フィールドを抽出し、Google SecOps で正確に表現できるように、ネットワークの方向と特殊なケースを考慮して対応する UDM フィールドにマッピングします。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • Google Cloud 環境で VPC フローが設定され、アクティブになっていることを確認します。
  • Google Cloudへの特権アクセス権があることを確認します。

Google Cloud Storage バケットを作成する

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

    [バケット] に移動

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

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

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

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

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

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

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

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

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

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

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

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

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

Google Cloud VPC Flow でログ エクスポートを構成する

  1. 特権アカウントを使用して Google Cloud アカウントにログインします。
  2. [ようこそ] ページで、[VPC ネットワーク] をクリックします。
  3. [デフォルト] をクリックすると、サブネット ページが表示されます。
  4. [すべてのログ] を選択します。
  5. [Flow Logs] > [Configure] をクリックします。
  6. [集約の間隔] を選択します(例: [30 SEC])。
  7. [サンプルレート] を指定します(例: 50%)。
  8. [保存] をクリックします。
  9. 検索バーで「Logging」を検索し、Enter をクリックします。
  10. ログ エクスプローラで、[ログ名] で [VPC_flows] を選択し、[適用] をクリックしてログをフィルタします。
  11. [その他の操作] をクリックします。
  12. [シンクを作成] をクリックします。
  13. 次の構成を指定します。
    1. シンクの詳細: 名前と説明を入力します。
    2. [次へ] をクリックします。
    3. シンクのエクスポート先: [Cloud Storage バケット] を選択します。
    4. Cloud Storage バケット: 先ほど作成したバケットを選択するか、新しいバケットを作成します。
    5. [次へ] をクリックします。
    6. シンクに含めるログを選択する: Cloud Storage バケットでオプションを選択すると、デフォルトのログが入力されます。
    7. [次へ] をクリックします。
    8. 省略可: [シンクに含めないログの選択] で、シンクに含めないログを選択します。
  14. [シンクを作成] をクリックします。

Google Cloud VPC Flow Logs を取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: Google Cloud VPC Flow Logs)。
  4. [Source type] として [Google Cloud Storage] を選択します。
  5. [ログタイプ] として [GCP VPC Flow] を選択します。
  6. [Chronicle サービス アカウント] として [サービス アカウントを取得する] をクリックします。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    • Storage Bucket URI: Google Cloud gs://my-bucket/<value> 形式のストレージ バケット URL。
    • URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
    • Source deletion options: 必要に応じて削除オプションを選択します。

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

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

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

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

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
connection.dest_ip target.asset.ip
target.ip
network.direction が OUTBOUND の場合の直接マッピング。
network.direction が INBOUND の場合、principal.ip からマッピングされます。
connection.dest_port target.port -1 より大きい場合は整数に変換されます。
connection.protocol network.ip_protocol 文字列に変換され、整数にマッピングされます。
整数値に基づいて、IP プロトコル名にマッピングされます(例: TCP、UDP、ICMP)。
connection.src_ip principal.ip 直接マッピング。
connection.src_port principal.port 整数に変換されます。
dest_instance.region target.location.name 直接マッピング。
dest_instance.vm_name target.asset.hostname 直接マッピング。
dest_location.city target.location.city 直接マッピング。
dest_location.country target.location.country_or_region 直接マッピング。
dest_location.region target.location.state 直接マッピング。
dest_vpc.project_id target.namespace dest_vpc.vpc_name とともに使用され、target.namespace を形成します。
dest_vpc.vpc_name target.namespace dest_vpc.project_id とともに使用され、target.namespace を形成します。
insertId metadata.product_log_id 直接マッピング。
jsonPayload.bytes_sent network.sent_bytes 名前を network.sent_bytes に変更し、uinteger に変換しました。
jsonPayload.packets_sent network.sent_packets 整数に変換されます。
labels.tunnel_id additional.fields キー Tunnel Id、型 string_value で additional.fields に統合されました。
logName security_result.category_details 直接マッピング。
resource.labels.project_id target.resource.name //cloudresourcemanager.googleapis.com/projects/{resource.labels.project_id} 形式の target.resource.name の作成に使用されます。
resource.labels.region target.location.country_or_region 直接マッピング。
resource.labels.subnetwork_id target.user.attribute.labels キー subnetwork_id で target.user.attribute.labels に統合されます。
resource.type metadata.product_event_type 直接マッピング。
重要度 security_result.severity 値が DEBUG の場合、LOW にマッピングされます。
src_gke_details.cluster.cluster_location principal.resource.attribute.labels キー cluster_location で principal.resource.attribute.labels に統合されました。
src_gke_details.cluster.cluster_name principal.resource.attribute.labels キー cluster_name で principal.resource.attribute.labels に統合されました。
src_gke_details.pod.pod_name principal.resource.attribute.labels キー pod_name で principal.resource.attribute.labels に統合されました。
src_gke_details.pod.pod_namespace principal.resource.attribute.labels キー pod_namespace で principal.resource.attribute.labels に統合されました。
src_instance.region principal.location.name 直接マッピング。
src_instance.vm_name principal.asset.hostname 直接マッピング。
src_location.city principal.location.city 直接マッピング。
src_location.country principal.location.country_or_region 直接マッピング。
src_location.region principal.location.state 直接マッピング。
src_vpc.project_id principal.namespace src_vpc.vpc_name とともに使用され、principal.namespace を形成します。
src_vpc.vpc_name principal.namespace src_vpc.project_id とともに使用して、principal.namespace を形成します。
textPayload additional.fields キー Textpayload、型 string_value で additional.fields に統合されました。
timestamp metadata.event_timestamp jsonPayload.end_time が空の場合に event_timestamp に入力するために使用されます。
metadata.description ネットワーク フロー(レポート元(SRC または DEST)と方向(INBOUND または OUTBOUND)を含む)の説明は、「reporter」フィールドに基づいて生成されます。
metadata.event_type VPC フローログの場合は NETWORK_CONNECTION、他のログタイプの場合は USER_RESOURCE_ACCESS に設定します。
metadata.log_type GCP_VPC_FLOW に設定します。
metadata.product_name GCP VPC Flow Logs に設定します。
metadata.product_version 1.0 に設定します。
metadata.vendor_name Google Cloud に設定します。
network.direction target.port に基づいて決定されます。ポートが well-known ポートまたは予約済みポートの場合は INBOUND と見なされ、そうでない場合は OUTBOUND と見なされます。
security_result.severity デフォルトでは LOW に設定されています。
target.resource.attribute.cloud.environment GOOGLE_CLOUD_PLATFORM に設定します。
target.resource.resource_type CLOUD_PROJECT に設定します。

変更点

2024-10-24

機能強化:

  • principal.ipprincipal.port のマッピングを、それぞれ target.iptarget.port に置き換えました。

2024-03-15

機能強化:

  • jsonPayload.src_gke_details.pod.pod_namespacejsonPayload.src_gke_details.pod.pod_namejsonPayload.src_gke_details.cluster.cluster_namejsonPayload.src_gke_details.cluster.cluster_locationprincipal.resource.attribute.labels にマッピングしました。
  • jsonPayload.dest_gke_details.pod.pod_namespacejsonPayload.dest_gke_details.pod.pod_namejsonPayload.dest_gke_details.cluster.cluster_namejsonPayload.dest_gke_details.cluster.cluster_locationtarget.resource.attribute.labels にマッピングしました。

2023-05-23

機能強化:

  • フィールド「logName」に「vpc_flows」が含まれていない場合に「metadata.event_type」を「USER_RESOURCE_ACCESS」にマッピングしました。
  • 「timestamp」を「events.timestamp」にマッピングしました。
  • 「textPayload」、「labels.tunnel_id」を「additional.fields」にマッピングしました。
  • 「resource.labels.region」を「target.location.country_or_region」にマッピングしました。
  • 必要に応じて、さまざまなフィールドの null チェックを追加しました。

2023-04-10

機能強化:

  • target.resource.attribute.cloud.environmentGOOGLE_CLOUD_PLATFORM に設定する。
  • target.resource.name を完全なリソース名の値に設定します。

2022-07-22

機能強化:

  • resource.labels.locationprincipal.location.name にマッピングしました。
  • resource.labels.subnetwork_idtarget.user.attribute.labels にマッピングしました。
  • logNamesecurity_result.category_details にマッピングしました。

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