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 バケットを作成する
- Google Cloud コンソールにログインします。
[Cloud Storage バケット] のページに移動します。
[作成] をクリックします。
[バケットの作成] ページでユーザーのバケット情報を入力します。以下のステップでは、操作を完了した後に [続行] をクリックして、次のステップに進みます。
[始める] セクションで、次の操作を行います。
- バケット名の要件を満たす一意の名前を入力します(例: vpcflow-logs)。
階層名前空間を有効にするには、展開矢印をクリックして [Optimize for file oriented and data-intensive workloads] セクションを開き、[このバケットで階層的な名前空間を有効にする] を選択します。
バケットラベルを追加するには、展開矢印をクリックして [ラベル] セクションを開きます。
[ラベルを追加] をクリックし、ラベルのキーと値を指定します。
[データの保存場所の選択] セクションで、次の操作を行います。
- ロケーション タイプを選択してください。
ロケーション タイプのメニューを使用して、バケット内のオブジェクト データが永続的に保存されるロケーションを選択します。
クロスバケット レプリケーションを設定するには、[クロスバケット レプリケーションを設定する] セクションを開きます。
[データのストレージ クラスを選択する] セクションで、バケットのデフォルトのストレージ クラスを選択します。あるいは、Autoclass を選択して、バケットデータのストレージ クラスを自動的に管理します。
[オブジェクトへのアクセスを制御する方法を選択する] セクションで、[なし] を選択して公開アクセスの防止を適用し、バケットのオブジェクトの [アクセス制御モデル] を選択します。
[オブジェクト データを保護する方法を選択する] セクションで、次の操作を行います。
- [データ保護] で、バケットに設定するオプションを選択します。
- オブジェクト データの暗号化方法を選択するには、[データ暗号化] というラベルの付いた展開矢印をクリックし、データの暗号化方法を選択します。
[作成] をクリックします。
Google Cloud VPC Flow でログ エクスポートを構成する
- 特権アカウントを使用して Google Cloud アカウントにログインします。
- [ようこそ] ページで、[VPC ネットワーク] をクリックします。
- [デフォルト] をクリックすると、サブネット ページが表示されます。
- [すべてのログ] を選択します。
- [Flow Logs] > [Configure] をクリックします。
- [集約の間隔] を選択します(例: [30 SEC])。
- [サンプルレート] を指定します(例: 50%)。
- [保存] をクリックします。
- 検索バーで「Logging」を検索し、Enter をクリックします。
- ログ エクスプローラで、[ログ名] で [VPC_flows] を選択し、[適用] をクリックしてログをフィルタします。
- [その他の操作] をクリックします。
- [シンクを作成] をクリックします。
- 次の構成を指定します。
- シンクの詳細: 名前と説明を入力します。
- [次へ] をクリックします。
- シンクのエクスポート先: [Cloud Storage バケット] を選択します。
- Cloud Storage バケット: 先ほど作成したバケットを選択するか、新しいバケットを作成します。
- [次へ] をクリックします。
- シンクに含めるログを選択する: Cloud Storage バケットでオプションを選択すると、デフォルトのログが入力されます。
- [次へ] をクリックします。
- 省略可: [シンクに含めないログの選択] で、シンクに含めないログを選択します。
- [シンクを作成] をクリックします。
Google Cloud VPC Flow Logs を取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [新しく追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Google Cloud VPC Flow Logs)。
- [Source type] として [Google Cloud Storage] を選択します。
- [ログタイプ] として [GCP VPC Flow] を選択します。
- [Chronicle サービス アカウント] として [サービス アカウントを取得する] をクリックします。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- Storage Bucket URI: Google Cloud
gs://my-bucket/<value>
形式のストレージ バケット URL。 - URI Is A: [サブディレクトリを含むディレクトリ] を選択します。
Source deletion options: 必要に応じて削除オプションを選択します。
Asset namespace: アセットの名前空間。
Ingestion labels: このフィードからのイベントに適用されるラベル。
- Storage Bucket URI: Google Cloud
[次へ] をクリックします。
[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.ip
とprincipal.port
のマッピングを、それぞれtarget.ip
とtarget.port
に置き換えました。
2024-03-15
機能強化:
jsonPayload.src_gke_details.pod.pod_namespace
、jsonPayload.src_gke_details.pod.pod_name
、jsonPayload.src_gke_details.cluster.cluster_name
、jsonPayload.src_gke_details.cluster.cluster_location
をprincipal.resource.attribute.labels
にマッピングしました。jsonPayload.dest_gke_details.pod.pod_namespace
、jsonPayload.dest_gke_details.pod.pod_name
、jsonPayload.dest_gke_details.cluster.cluster_name
、jsonPayload.dest_gke_details.cluster.cluster_location
をtarget.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.environment
をGOOGLE_CLOUD_PLATFORM
に設定する。target.resource.name
を完全なリソース名の値に設定します。
2022-07-22
機能強化:
resource.labels.location
をprincipal.location.name
にマッピングしました。resource.labels.subnetwork_id
をtarget.user.attribute.labels
にマッピングしました。logName
をsecurity_result.category_details
にマッピングしました。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。