收集虛擬私有雲流量記錄
本文說明如何使用 Google Cloud將 VPC 流量記錄匯出至 Google Security Operations。剖析器會將內建 JSON 格式的記錄轉換為 Google Security Operations UDM。這項服務會擷取來源和目的地 IP、通訊埠、通訊協定和傳送的位元組等相關欄位,然後將這些欄位對應至相應的 UDM 欄位,同時考量網路方向和特殊情況,確保 Google SecOps 準確呈現資料。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體。
- 虛擬私有雲流量已在 Google Cloud 環境中設定並啟用。
- Google Cloud的特殊存取權。
建立 Google Cloud Storage bucket
- 登入Google Cloud 控制台。
前往「Cloud Storage Buckets」(Cloud Storage bucket) 頁面。
點選「建立」。
在「建立 bucket」頁面中,輸入 bucket 資訊。完成下列每個步驟後,請按一下「繼續」前往下一個步驟:
在「開始使用」部分執行下列操作:
- 輸入符合值區名稱規定的專屬名稱,例如 vpcflow-logs。
如要啟用階層命名空間,請按一下展開箭頭,展開「為檔案導向和資料密集型工作負載提供最理想的儲存空間」部分,然後選取「為這個值區啟用階層結構式命名空間」。
如要新增值區標籤,請按一下展開箭頭,展開「標籤」部分。
按一下「新增標籤」,然後指定標籤的鍵和值。
在「Choose where to store your data」(選擇資料的儲存位置) 專區中執行下列操作:
- 選取「位置類型」。
使用位置類型選單選取位置,永久儲存 bucket 中的物件資料。
如要設定跨 bucket 複製作業,請展開「設定跨 bucket 複製作業」部分。
在「為資料選擇儲存空間級別」部分,選取值區的預設儲存空間級別,或選取「Autoclass」,讓系統自動管理值區資料的儲存空間級別。
在「選取如何控制物件的存取權」部分,選取「否」以強制禁止公開存取,並為值區物件選取存取權控管模型。
在「選擇保護物件資料的方式」部分中,執行下列操作:
- 在「資料保護」下方,選取要為 bucket 設定的選項。
- 如要選擇物件資料的加密方式,請按一下標示為「資料加密」的展開箭頭,然後選取「資料加密方法」。
點選「建立」。
在 Google Cloud 虛擬私有雲流量中設定記錄匯出
- 使用具備權限的帳戶登入 Google Cloud 帳戶。
- 在「歡迎」頁面中,按一下「虛擬私有雲網路」。
- 按一下「預設」,系統應會顯示子網路頁面。
- 選取「所有記錄」。
- 依序點選「Flow Logs」>「Configure」。
- 選取「匯總時間間隔」,例如「30 秒」。
- 提供「取樣率」,例如 50%。
- 點選「儲存」。
- 在搜尋列中搜尋「記錄」,然後按一下 Enter 鍵。
- 在「記錄檔探索工具」中,選擇「記錄檔名稱」中的「VPC_flows」,然後按一下「套用」,即可篩選記錄。
- 按一下「更多動作」。
- 按一下「建立接收器」。
- 提供下列設定:
- 「接收器詳細資料」:輸入名稱和說明。
- 點選「下一步」。
- 「Sink Destination」(接收器目標位置):選取「Cloud Storage Bucket」(Cloud Storage 值區)。
- Cloud Storage Bucket:選取先前建立的 bucket,或建立新的 bucket。
- 點選「下一步」。
- 選擇要納入接收器的記錄檔:在 Cloud Storage 值區中選取選項時,系統會填入預設記錄檔。
- 點選「下一步」。
- 選用:選擇要從接收器排除的記錄檔:選取不想接收的記錄檔。
- 按一下「建立接收器」。
設定動態饋給
在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:
- 「SIEM 設定」>「動態消息」
- 內容中心 > 內容包
依序前往「SIEM 設定」>「動態饋給」,設定動態饋給
如要設定動態饋給,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態消息」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「Feed name」欄位中輸入動態消息的名稱,例如「VPC Flow Logs」。
- 選取「Google Cloud Storage」做為「來源類型」。
- 選取「GCP VPC Flow」(GCP VPC 流量) 做為「Log type」(記錄類型)。
- 按一下「Chronicle 服務帳戶」的「取得服務帳戶」。
- 點選「下一步」。
指定下列輸入參數的值:
- 儲存空間值區 URI: Google Cloud
gs://my-bucket/<value>
格式的儲存空間值區 URL。 - 「URI Is A」(URI 為):選取「Directory which includes subdirectories」(包含子目錄的目錄)。
來源刪除選項:根據偏好設定選取刪除選項。
- 儲存空間值區 URI: Google Cloud
點選「下一步」。
在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」。
支援的虛擬私有雲流量記錄檔記錄格式
虛擬私有雲流程記錄剖析器支援 JSON 格式的記錄。
支援的虛擬私有雲流量記錄檔範例記錄
JSON
{ "insertId": "1wjp1y9f8vc6y6", "jsonPayload": { "bytes_sent": "0", "connection": { "dest_ip": "198.51.100.0", "dest_port": 32846, "protocol": 6, "src_ip": "198.51.100.1", "src_port": 443 }, "dest_instance": { "project_id": "logging-259109", "region": "us-west2", "vm_name": "demisto-01", "zone": "us-west2-a" }, "dest_vpc": { "project_id": "logging-259109", "subnetwork_name": "default", "vpc_name": "default" }, "end_time": "2020-03-28T10:44:41.896734136Z", "packets_sent": "2", "reporter": "DEST", "start_time": "2020-03-28T10:44:41.896734136Z" }, "logName": "projects/logging-259109/logs/compute.googleapis.com%2Fvpc_flows", "receiveTimestamp": "2020-03-28T10:44:50.112903743Z", "resource": { "labels": { "location": "us-west2-a", "project_id": "dummy_project_id", "subnetwork_id": "subnetwork_id", "subnetwork_name": "default" }, "type": "gce_subnetwork" }, "timestamp": "2020-03-28T10:44:50.112903743Z" }
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
connection.dest_ip | target.asset.ip target.ip |
當 network.direction 為 OUTBOUND 時,直接對應。 網路方向為 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 | 併入 additional.fields,並使用 Tunnel Id 鍵和 string_value 型別。 |
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 | 已併入 principal.resource.attribute.labels,金鑰為 cluster_location 。 |
src_gke_details.cluster.cluster_name | principal.resource.attribute.labels | 已併入 principal.resource.attribute.labels,金鑰為 cluster_name 。 |
src_gke_details.pod.pod_name | principal.resource.attribute.labels | 已併入 principal.resource.attribute.labels,金鑰為 pod_name 。 |
src_gke_details.pod.pod_namespace | principal.resource.attribute.labels | 已併入 principal.resource.attribute.labels,金鑰為 pod_namespace 。 |
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 搭配使用,形成主體.命名空間。 |
src_vpc.vpc_name | principal.namespace | 與 src_vpc.project_id 搭配使用,可形成主體.命名空間。 |
textPayload | additional.fields | 併入 additional.fields,並使用 Textpayload 鍵和 string_value 型別。 |
時間戳記 | metadata.event_timestamp | 如果 jsonPayload.end_time 為空,系統會使用這個值填入 event_timestamp。 |
metadata.description | 系統會根據「reporter」欄位,產生網路流量說明,包括回報者 (SRC 或 DEST) 和方向 (INBOUND 或 OUTBOUND)。 | |
metadata.event_type | 虛擬私有雲流量記錄請設為 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 決定。如果該連接埠是已知或保留的連接埠,則視為 INBOUND;否則視為 OUTBOUND。 | |
security_result.severity | 預設為 LOW 。 |
|
target.resource.attribute.cloud.environment | 設為 GOOGLE_CLOUD_PLATFORM 。 |
|
target.resource.resource_type | 設為 CLOUD_PROJECT 。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。