收集 Secure Web Proxy 記錄

支援的國家/地區:

本文說明如何使用 Cloud Storage,將 Secure Web Proxy 匯出及擷取至 Google Security Operations。剖析器會從 JSON 記錄中擷取欄位,並轉換為統一資料模型 (UDM)。這個函式會初始化 UDM 欄位、剖析 JSON 酬載、擷取網路資訊、安全性詳細資料、資源屬性,並根據主體和目標資訊的存在與否設定事件類型。

事前準備

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

  • Google SecOps 執行個體。
  • Secure Web Proxy 已在您的 Google Cloud 環境中啟用及設定。
  • Secure Web Proxy 記錄的特殊存取權 Google Cloud 和適當權限。

建立 Cloud Storage 值區

  1. 登入Google Cloud 控制台
  2. 前往「Cloud Storage Buckets」(Cloud Storage bucket) 頁面。

    前往「Buckets」(值區) 頁面

  3. 點選「建立」

  4. 在「建立 bucket」頁面中,輸入 bucket 資訊。完成下列每個步驟後,請按一下「繼續」前往下一個步驟:

    1. 在「開始使用」部分,執行下列操作:

      1. 輸入符合值區名稱規定的專屬名稱,例如 gcp-swp-logs
      2. 如要啟用階層命名空間,請按一下展開箭頭,展開「為檔案導向和資料密集型工作負載提供最理想的儲存空間」部分,然後選取「為這個值區啟用階層結構式命名空間」

      3. 如要新增值區標籤,請按一下展開箭頭,展開「標籤」部分。

      4. 按一下「新增標籤」,然後指定標籤的鍵和值。

    2. 在「Choose where to store your data」(選擇資料的儲存位置) 專區中,執行下列操作:

      1. 選取「位置類型」
      2. 使用位置類型選單選取位置,永久儲存 bucket 中的物件資料。

      3. 如要設定跨 bucket 複製作業,請展開「設定跨 bucket 複製作業」部分。

    3. 在「Choose a storage class for your data」(為資料選擇儲存空間級別) 專區中,選取 bucket 的預設儲存空間級別,或選取「Autoclass」(自動分類),讓系統自動管理 bucket 資料的儲存空間級別。

    4. 在「選取如何控制物件的存取權」部分,選取「否」以強制禁止公開存取,並為值區物件選取存取權控管模型

    5. 在「選擇保護物件資料的方式」部分,請執行下列操作:

      1. 選取「資料保護」下方的任何選項,為 bucket 設定資料保護措施。
      2. 如要選擇物件資料的加密方式,請按一下標示為「資料加密」的展開箭頭,然後選取「資料加密方法」
  5. 點選「建立」

設定 Secure Web Proxy 記錄匯出功能

  1. 登入Google Cloud 控制台
  2. 依序前往「Logging」>「Log Router」
  3. 按一下「建立接收器」
  4. 提供下列設定參數:

    • 接收器名稱:輸入有意義的名稱,例如 SWP-Export-Sink
    • 接收器目的地:選取「Cloud Storage 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

設定動態饋給

如要設定動態消息,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態消息」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中,輸入動態饋給的名稱,例如「Google Cloud SWP Logs」。
  5. 選取「Google Cloud Storage V2」做為「來源類型」
  6. 將「記錄類型」設為「GCP Secure Web Proxy」
  7. 按一下「Chronicle Service Account」(Chronicle 服務帳戶) 欄位旁的「Get Service Account」(取得服務帳戶)
  8. 點選「下一步」
  9. 指定下列輸入參數的值:

    • 儲存空間值區 URI:Cloud Storage 值區網址,例如 gs://gcp-swp-logs
    • 來源刪除選項:根據偏好選取刪除選項。

    • 檔案存在時間上限:包含在過去天數內修改的檔案。預設值為 180 天。

  10. 點選「下一步」

  11. 在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」

UDM 對應表

記錄欄位 UDM 對應 邏輯
httpRequest.latency additional.fields[].keyHTTPRequest Latency
additional.fields[].value.string_value0.124462s
直接從原始記錄檔欄位對應。
httpRequest.protocol network.application_protocolHTTP
network.application_protocol_version2
通訊協定和版本是使用 grok 模式從 httpRequest.protocol 欄位擷取。
httpRequest.remoteIp target.asset.ip1.1.0.1
target.ip1.1.0.1
系統會使用 grok 模式從 httpRequest.remoteIp 欄位擷取 IP 位址。
httpRequest.requestMethod network.http.methodGET 直接從原始記錄檔欄位對應。
httpRequest.requestSize network.sent_bytes: 144 直接從原始記錄欄位對應,並轉換為整數。
httpRequest.requestUrl target.urlhttps://github.com/tempuslabs/tempusutils/info/refs?service=git-upload-pack 直接從原始記錄檔欄位對應。
httpRequest.responseSize network.received_bytes: 225 直接從原始記錄欄位對應,並轉換為整數。
httpRequest.serverIp principal.asset.ip1.8.1.4
principal.ip1.8.1.4
系統會使用 grok 模式從 httpRequest.serverIp 欄位擷取 IP 位址。
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
}
直接從原始記錄檔欄位對應。系統會剖析 httpRequest.userAgent 欄位,藉此衍生 parsed_user_agent 欄位。
insertId metadata.product_log_id1yh8wczer5o8n 直接從原始記錄檔欄位對應。
jsonPayload.@type additional.fields[].keyLog Type
additional.fields[].value.string_valuetype.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry
直接從原始記錄檔欄位對應。
jsonPayload.enforcedGatewaySecurityPolicy.hostname target.asset.hostnamegithub.com
target.hostnamegithub.com
直接從原始記錄檔欄位對應。
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action security_result.actionALLOW
security_result.action_detailsALLOWED
security_result.action 是根據 jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action 的值衍生而來。如果動作是 ALLOWED,UDM 欄位會設為 ALLOW。如果動作是 DENIED,UDM 欄位會設為 BLOCK
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].name security_result.rule_nameprojects/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[].keyrequestWasTlsIntercepted
security_result.detection_fields[].valuetrue
直接從原始記錄檔欄位對應。
logName additional.fields[].keyLog Name
additional.fields[].value.string_valueprojects/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[].keygateway-name
security_result.detection_fields[].valuegithub-access-gateway-5cec30cd
直接從原始記錄檔欄位對應。
resource.labels.gateway_type security_result.detection_fields[].keygateway-type
security_result.detection_fields[].valueSECURE_WEB_GATEWAY
直接從原始記錄檔欄位對應。
resource.labels.location target.resource.attribute.cloud.availability_zoneus-central1 直接從原始記錄檔欄位對應。
resource.labels.network_name target.resource.attribute.labels[].keyrc_network_name
target.resource.attribute.labels[].valueprojects/rws-w6uza3pn5jzzh6z3hc3d/global/networks/rws-tr-pilot-workspace
直接從原始記錄檔欄位對應。
resource.type target.resource.attribute.labels[].keyResource Type
target.resource.attribute.labels[].valuenetworkservices.googleapis.com/Gateway
直接從原始記錄檔欄位對應。
severity security_result.severityMEDIUM 從原始記錄檔欄位對應。這個值會轉換為 UDM 嚴重程度。在此情況下,WARNING 會對應至 MEDIUM
timestamp metadata.event_timestamp: {
seconds: 1710189639,
nanos: 952848000
}
使用 RFC 3339 日期格式從原始記錄檔欄位剖析。
(剖析器邏輯) metadata.event_typeNETWORK_HTTP 由剖析器邏輯根據 has_principalhas_target 和符合 http 的通訊協定決定。
(剖析器邏輯) metadata.log_typeGCP_SWP 根據產品硬式編碼的值。

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