收集 Azure NSG 流量記錄

支援的國家/地區:

本文說明如何使用 Microsoft Azure Blob 儲存體 V2 設定 Google Security Operations 資訊提供,以收集 Microsoft Azure NSG 流量記錄。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體
  • 具備下列權限的 Microsoft Azure 入口網站特殊存取權:
    • 建立儲存空間帳戶
    • 設定網路安全性群組 (NSG)
    • 設定網路監看員
    • 管理存取金鑰
  • Azure 訂閱項目,且已在 NSG 所在的區域啟用網路監看員

設定 Azure 儲存體帳戶

如要儲存及整理從 Azure 收集的記錄資料,請設定儲存空間帳戶,並擷取 Google SecOps 的必要連線憑證。

建立儲存空間帳戶

  1. Azure 入口網站中,搜尋「儲存體帳戶」
  2. 點選「+ 建立」
  3. 請提供下列設定詳細資料:

    設定
    訂閱項目 選取 Azure 訂閱項目
    資源群組 選取現有資料庫或建立新資料庫
    儲存體帳戶名稱 輸入不重複的名稱 (例如 nsgflowlogs)
    區域 選取區域 (例如 East US)
    效能 標準 (建議)
    備援功能 GRS (異地備援儲存空間) 或 LRS (本機備援儲存空間)
  4. 按一下「Review + create」

  5. 查看帳戶總覽,然後按一下「建立」

  6. 等待部署作業完成。

取得儲存空間帳戶憑證

  1. 前往您剛建立的「儲存空間帳戶」
  2. 依序選取「安全性 + 網路」>「存取金鑰」
  3. 按一下「顯示金鑰」
  4. 複製並儲存下列項目,以供日後使用:
    • 儲存體帳戶名稱nsgflowlogs
    • 金鑰 1金鑰 2:共用存取金鑰 (採用 Base64 編碼的 512 位元隨機字串)

取得 Blob 服務端點

  1. 在同一個儲存空間帳戶中,選取「端點」
  2. 複製並儲存「Blob service」端點網址。
    • 範例:https://nsgflowlogs.blob.core.windows.net/

設定網路安全群組流量記錄

  1. Azure 入口網站中,搜尋「Network Watcher」
  2. 選取「記錄」> NSG 流量記錄
  3. 按一下「+ 建立」,建立新的流程記錄。
  4. 請提供下列設定詳細資料:
    • 訂閱:選取訂閱方案。
    • 網路安全性群組:選取要啟用流量記錄的 NSG。
    • 「Storage Account」(儲存空間帳戶):選取您先前建立的儲存空間帳戶。
    • 保留天數:選取記錄檔的保留天數 (例如 90 天)。
    • 流量記錄版本:選取「版本 2」 (建議)。
    • 啟用流量分析:選用,如要在 Azure 中取得額外分析資料,請啟用這項功能。
  5. 按一下「建立」,即可啟用 NSG 流量記錄。

  6. Azure 入口網站中,搜尋「網路安全性群組」

  7. 選取要設定的 NSG

  8. 選取「監控」> 流量記錄」

  9. 按一下「建立」,然後按照上述步驟操作。

在 Google SecOps 中設定資訊提供,以便擷取 Microsoft Azure NSG 流量記錄

設定 Azure 環境後,您必須在 Google SecOps 控制台中建立動態饋給,才能自動執行擷取程序。

設定動態饋給

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 Azure NSG Flow Logs)。
  5. 選取「Microsoft Azure Blob Storage V2」做為「來源類型」
  6. 選取「Microsoft Azure NSG Flow」做為「記錄類型」
  7. 點選「下一步」

設定動態饋給參數

  1. 指定下列輸入參數的值:

    • Azure URI:輸入含有容器路徑的 Blob 服務端點網址

      https://<storage-account-name>.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/
      
      • 更改下列內容:

        • <storage-account-name>:您的 Azure 儲存體帳戶名稱。

          • 範例:

            https://nsgflowlogs.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/
            
    • 來源刪除選項:根據偏好設定選取刪除選項:

      • 永不:轉移後一律不刪除任何檔案。
      • 成功時:成功移轉後,刪除所有檔案和空白目錄。
    • 檔案存在時間上限:輸入天數,系統會納入在該時間範圍內修改的檔案。預設值為 180 天。

    • 共用金鑰:輸入從儲存空間帳戶擷取的共用金鑰值 (存取金鑰)。

    • 資產命名空間資產命名空間

    • 擷取標籤:套用至這個動態饋給中所有事件的標籤。

  2. 點選「下一步」

  3. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)

設定 Azure 儲存空間防火牆 (如已啟用)

如果 Azure 儲存體帳戶使用防火牆,您必須新增 Google SecOps IP 範圍。

  1. Azure 入口網站中,前往「儲存體帳戶」
  2. 依序選取「安全性 + 網路」>「網路」
  3. 在「防火牆和虛擬網路」下方,選取「從所選虛擬網路和 IP 位址啟用」
  4. 在「防火牆」部分的「位址範圍」下方,按一下「+ 新增 IP 範圍」
  5. 以 CIDR 標記法新增每個 Google SecOps IP 範圍。

    如要取得目前的 IP 範圍,請按照下列步驟操作:

  6. 按一下 [儲存]

如要進一步瞭解 Google Security Operations 動態消息,請參閱 Google Security Operations 動態消息說明文件。如要瞭解各類動態饋給的規定,請參閱「依類型設定動態饋給」。

如果在建立動態饋給時遇到問題,請與 Google Security Operations 支援團隊聯絡

UDM 對應表

記錄欄位 UDM 對應 邏輯
ClientOperationId udm.additional.fields 索引鍵「ClientOperationId」設為 ClientOperationId 的值。
CorrelationRequestId udm.additional.fields 索引鍵「CorrelationRequestId」設為 CorrelationRequestId 的值。
GatewayManagerVersion udm.additional.fields 索引鍵「GatewayManagerVersion」會設為 GatewayManagerVersion 的值。
flow_tuple.column9 (flowstate) udm.additional.fields 如果是第 2 版記錄,當 flowstate 為「B」/「b」時,「flow_state」鍵會設為「BEGIN」;為「C」/「c」時,則設為「CONTINUE」;為「E」/「e」時,則設為「END」。
properties.addressfamily udm.additional.fields 「Address Family」鍵設為 properties.addressfamily 的值。
properties.locprf udm.additional.fields 「Local Pref」鍵設為 properties.locprf 的值。
properties.path udm.additional.fields 索引鍵「Path」設為 properties.path 的值。
properties.peeringType udm.additional.fields 「對等互連類型」鍵設為 properties.peeringType 的值。
properties.weight udm.additional.fields 索引鍵「Weight」設為 properties.weight 的值。
flow_tuple.column1 udm.metadata.collected_timestamp 取自 CSV flowtupleValue 的第一欄,並從 UNIX 紀元轉換而來。
record.time/time udm.metadata.event_timestamp record.time (適用於 records 陣列事件) 或 time (適用於其他事件) 取得並剖析的值。
udm.metadata.event_type 如果已識別主體和目標實體,或適用於所有內部流程元組事件,請設為 NETWORK_FLOW。如果只識別出主體,請設為 STATUS_UPDATE。否則請設為 GENERIC_EVENT
record.operationName/operationName udm.metadata.product_event_type 取自 record.operationNameoperationName 的值。
record.flowLogGUID udm.metadata.product_log_id 取自 record.flowLogGUID 的值。
record.flowLogVersion / record.properties.Version / version udm.metadata.product_version 取自 record.flowLogVersionrecord.properties.Version (透過 version 變數) 或頂層 version 欄位的值。
flow_tuple.column7 (trafficFlow) udm.network.direction 如果 trafficFlow 為「I」,值為 INBOUND;如果 trafficFlow 為「O」,值為 OUTBOUND
flow_tuple.column6 (protocol) udm.network.ip_protocol 如果 protocol 為「T」,值為 TCP;如果 protocol 為「U」,值為 UDP
flow_tuple.column11/flow_tuple.column13 udm.network.received_bytes 如果是第 2 版記錄,且 trafficFlow 為「I」,則值取自 bytesSentSourceToDestinationV2 (第 11 欄)。如果 trafficFlow 為「O」,則值取自 bytesSentFromDestinationToSourceV2 (第 13 欄)。
flow_tuple.column11/flow_tuple.column13 udm.network.sent_bytes 如果是第 2 版記錄,如果 trafficFlow 為「I」,則值取自 bytesSentFromDestinationToSourceV2 (第 13 欄)。如果 trafficFlow 為「O」,則值取自 bytesSentSourceToDestinationV2 (第 11 欄)。
properties.deviceName udm.principal.asset.hostname 取自 properties.deviceName 的值。
record.properties.primaryIPv4Address / properties.primaryIPv4Address / SrcIP_s_s / properties.network udm.principal.asset.ip 值取自 record.properties.primaryIPv4Addressproperties.primaryIPv4AddressSrcIP_s_s,或從 properties.network 擷取。
properties.vnetResourceGuid udm.principal.asset_id 值會建構為「vnetResourceGuid: %{properties_vnetResourceGuid}」。GUID 是從 properties.vnetResourceGuid 擷取。
properties.deviceName udm.principal.hostname 取自 properties.deviceName 的值。
record.properties.primaryIPv4Address / flow_tuple.column2 / properties.primaryIPv4Address / SrcIP_s_s / properties.network udm.principal.ip 取自 record.properties.primaryIPv4AddresssourceIP (CSV 的第 2 欄)、properties.primaryIPv4AddressSrcIP_s_s 或從 properties.network 擷取的 Grok 值。
record.macAddress / record.properties.macAddress / properties.macAddress / MACAddress_s_s udm.principal.mac 值取自 record.macAddressrecord.properties.macAddressproperties.macAddressMACAddress_s_s。破折號會替換為半形冒號。
flow_tuple.column4/properties.network udm.principal.port 取自 sourcePort (CSV 的第 4 欄) 或從 properties.network 中以 grok 擷取的值。
properties.serviceKey udm.principal.resource.attribute.labels 「服務金鑰」鍵設為 properties.serviceKey 的值。
properties.conditions.destinationPortRange udm.security_result.about.labels 索引鍵「Conditions_destinationPortRange」設為 properties.conditions.destinationPortRange 的值。
properties.conditions.sourcePortRange udm.security_result.about.labels 索引鍵「Conditions_sourcePortRange」設為 properties.conditions.sourcePortRange 的值。
record.properties.direction/properties.direction udm.security_result.about.labels 「方向」鍵設為 record.properties.directionproperties.direction 的值。
properties.priority udm.security_result.about.labels 「Priority」鍵設為 properties.priority 的值。
record.properties.type/properties.type udm.security_result.about.labels 索引鍵「ruleType」設為 record.properties.typeproperties.type 的值。
record.flowLogResourceID udm.security_result.about.resource.name 取自 record.flowLogResourceID 的值。
flow_tuple.column8 (trafficDecision) udm.security_result.action 如果 trafficDecision 為「A」,值為 ALLOW;如果 trafficDecision 為「D」,值為 BLOCK
flow.aclID udm.security_result.detection_fields 索引鍵 aclID[%{Index}] 會設為 flow.aclID 的值。
flowGroup.flowTuples udm.security_result.detection_fields 索引鍵 flowTuple[%{Index}][%{Index1}][%{Index2}] 會設為流程元組字串的值。
flowGroup.rule udm.security_result.detection_fields 索引鍵 rule[%{Index}][%{Index1}] 會設為 flowGroup.rule 的值。
record.properties.ruleName / flow.rule / properties.ruleName udm.security_result.rule_name 值取自 record.properties.ruleNameflow.ruleproperties.ruleName
record.category/category udm.security_result.rule_type 取自 record.categorycategory 的值。
level udm.security_result.severity 如果 level 包含「Info」,則設為 INFORMATIONAL
record.resourceId/resourceId udm.target.application 取自 appname 欄位的值,該值是從 record.resourceIdresourceId 中以 Grok 擷取而來。
properties.nexthop/DestIP_s_s udm.target.asset.ip 取自 DestIP_s_s 的值,或從 properties.nexthop 中擷取的值。
record.systemId/systemId udm.target.asset_id 值的建構方式為「System Id: %{systemId}」。
udm.target.cloud.environment 設為 MICROSOFT_AZURE
flow_tuple.column3 / properties.nexthop / DestIP_s_s udm.target.ip 取自 destinationIP (CSV 的第 3 欄)、DestIP_s_s 或從 properties.nexthop 擷取的 Grok 值。
flowTuple.mac udm.target.mac 取自 flowTuple.mac 的值,並以半形冒號格式化。
flow_tuple.column5/DestPort_d_d udm.target.port 取自 destinationPort (CSV 的第 5 欄) 或 DestPort_d_d 的值。
record.resourceId/resourceId udm.target.resource.attribute.labels 「NSG Name」鍵設為 rscname 的值,這是從資源 ID 擷取的 grok。
record.resourceId/resourceId udm.target.resource.attribute.labels 「Resource Group」鍵設為從資源 ID 擷取的 rscgrp 值。
record.resourceId/resourceId udm.target.resource.attribute.labels 「訂閱 ID」鍵設為 subcriptionid 的值,這是從資源 ID 擷取的 grok 值。
record.resourceId/resourceid udm.target.resource.product_object_id 取自 record.resourceIdresourceid 的值。
udm.target.resource.resource_type 設為 STORAGE_BUCKET
udm.metadata.product_name 設為 Azure NSG Flow
udm.metadata.vendor_name 設為 Microsoft
record.time event.idm.read_only_udm.metadata.event_timestamp 從變更記錄對應
record.flowLogGUID event.idm.read_only_udm.metadata.product_log_id 從變更記錄對應
record.flowLogResourceID event.idm.read_only_udm.security_result.about.resource.name 從變更記錄對應
record.flowLogVersion event.idm.read_only_udm.metadata.product_version 從變更記錄對應
record.macAddress event.idm.read_only_udm.principal.mac 從變更記錄對應
record.operationName event.idm.read_only_udm.metadata.product_event_type 從變更記錄對應
records.flowRecords.flows.aclID event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
record.flowRecords.flows.flowGroups.rule event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
record.flowRecords.flows.flowGroups.flowTuples event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
properties.direction", "properties.conditions.sourcePortRange", "properties.conditions.destinationPortRange", "properties_priority" and "properties.type security_result.about.labels 從變更記錄對應
record_resourceId target.resource.product_object_id 從變更記錄對應
subcriptionid", "rscgrp" and "rscname target.resource.attribute.labels 從變更記錄對應

變更記錄

查看這個剖析器的變更記錄

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。