收集 Zscaler 網際網路存取記錄
本文說明如何設定 Google Security Operations 動態饋給,以匯出 Zscaler 網際網路存取記錄,以及記錄欄位如何對應至 Google SecOps 統一資料模型 (UDM) 欄位。
詳情請參閱「將資料匯入 Google SecOps 總覽」。
一般部署作業包括 Zscaler Internet Access 和 Google SecOps Webhook 動態饋給,並設定為將記錄傳送至 Google SecOps。每個客戶的部署作業可能有所不同,且可能更為複雜。
部署作業包含下列元件:
Zscaler Internet Access:您收集記錄的平台。
Google SecOps 動態饋給:從 Zscaler Internet Access 擷取記錄,並將記錄寫入 Google SecOps 的 Google SecOps 動態饋給。
Google SecOps:保留並分析記錄檔。
擷取標籤可識別剖析器,將原始記錄資料正規化為具結構性的 UDM 格式。本文中的資訊適用於使用 ZSCALER_INTERNET_ACCESS
攝入標籤的剖析器。
事前準備
請確認您已完成下列必要條件:
- 存取 Zscaler Internet Access 主控台。詳情請參閱「Secure Internet and SaaS Access ZIA 說明」。
- Zscaler Internet Access 2024 以上版本
- 部署架構中的所有系統都已設定為使用世界標準時間 (UTC) 時區。
- 在 Google Security Operations 中完成動態饋給設定所需的 API 金鑰。詳情請參閱「設定 API 金鑰」。
設定動態饋給
在 Google SecOps 平台中,有兩個不同的入口可用來設定動態消息:
- SIEM 設定 > 動態饋給
- 內容中心 > 內容包
依序前往「SIEM 設定」>「動態」設定動態
如要針對這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。
如要設定單一動態饋給,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一頁中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給的名稱,例如「Zscaler 網路存取記錄」。
- 將「來源類型」設為「Webhook」。
- 將「記錄類型」設為「Zscaler 網路存取稽核記錄」。
- 點選「下一步」。
- 選用:輸入下列輸入參數的值:
- 分隔符號:用於分隔記錄行。如果未使用分隔符號,請留空。
- Asset namespace:素材資源命名空間。
- 攝入標籤:要套用至這個動態饋給事件的標籤。
- 點選「下一步」。
- 查看新的動態饋給設定,然後按一下「提交」。
- 按一下「產生密鑰」,產生用於驗證這則動態饋給的密鑰。
透過內容中心設定動態饋給
指定下列欄位的值:
- 分隔符號:用於分隔記錄資料列的符號,例如
\n
。
進階選項
- 動態饋給名稱:預先填入的值,用於識別動態饋給。
- 來源類型:用於收集記錄並匯入 Google SecOps 的方法。
- 資產命名空間:資產命名空間。
- 攝入標籤:套用至這個動態饋給事件的標籤。
- 點選「下一步」。
- 在「Finalize」畫面中查看動態饋給設定,然後按一下「Submit」。
- 按一下「產生密鑰」,即可產生密鑰來驗證這項動態饋給。
設定 Zscaler 網際網路存取權
- 在 Zscaler Internet Access 主控台中,依序點選「Administration」>「Nanolog Streaming Service」>「Cloud NSS Feeds」,然後點選「Add Cloud NSS Feed」。
- 系統會隨即顯示「Add Cloud NSS Feed」視窗。在「新增 Cloud NSS 動態饋給」視窗中輸入詳細資料。
- 在「動態饋給名稱」欄位中輸入動態饋給的名稱。
- 在「NSS Type」中選取「NSS for Web」。
- 從「狀態」清單中選取狀態,即可啟用或停用 NSS 動態饋給。
- 請將「SIEM Rate」下拉式選單的值設為「Unlimited」。如要因授權或其他限制而抑制輸出串流,請變更該值。
- 在「SIEM 類型」清單中選取「其他」。
- 在「OAuth 2.0 驗證」清單中選取「已停用」。
- 在「最大批次大小」中,輸入 SIEM 最佳做法中個別 HTTP 要求酬載的大小上限。例如 512 KB。
請在 API 網址中輸入 Chronicle API 端點的 HTTPS 網址,格式如下:
https://<CHRONICLE_REGION>-chronicle.googleapis.com/v1alpha/projects/<GOOGLE_PROJECT_NUMBER>/locations/<LOCATION>/instances/<CUSTOMER_ID>/feeds/<FEED_ID>:importPushLogs
CHRONICLE_REGION
:Chronicle 執行個體所在的區域。例如美國。GOOGLE_PROJECT_NUMBER
:BYOP 專案編號。請從 C4 取得這項資訊。LOCATION
:Chronicle 區域。例如美國。CUSTOMER_ID
:Chronicle 客戶 ID。從 C4 取得。FEED_ID
:在建立的新 webhook 的動態饋給 UI 中顯示的動態饋給 IDAPI 網址範例:
https://us-chronicle.googleapis.com/v1alpha/projects/12345678910/locations/US/instances/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/feeds/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy:importPushLogs
按一下「Add HTTP Header」,然後使用以下格式新增 HTTP 標頭:
Header 1
:Key1:X-goog-api-key
和 Value1:在 Google Cloud BYOP 的 API 憑證中產生的 API 金鑰。Header 2
:Key2:X-Webhook-Access-Key
和 Value2: 在 webhook 的「SECRET KEY」中產生的 API 密鑰。
在「記錄類型」清單中選取「管理員稽核記錄」。
在「動態饋給輸出類型」清單中選取「JSON」。
將「Feed Escape Character」設為
, \ "
。如要新增欄位至動態饋給輸出格式,請在「動態饋給輸出類型」清單中選取「自訂」。
複製貼上動態饋給輸出格式,然後新增欄位。請確認鍵名稱與實際欄位名稱相符。
以下是預設的動態饋給輸出格式:
\{ "sourcetype" : "zscalernss-audit", "event" :\{"time":"%s{time}","recordid":"%d{recordid}","action":"%s{action}","category":"%s{category}","subcategory":"%s{subcategory}","resource":"%s{resource}","interface":"%s{interface}","adminid":"%s{adminid}","clientip":"%s{clientip}","result":"%s{result}","errorcode":"%s{errorcode}","auditlogtype":"%s{auditlogtype}","preaction":%s{preaction},"postaction":%s{postaction}\}\}
在「Timezone」清單中,選取輸出檔案中「Time」欄位的時區。根據預設,時區會設為貴機構的時區。
查看已設定的設定。
按一下「儲存」即可測試連線。如果連線成功,畫面上會顯示綠色勾號,並顯示「Test Connectivity Successful: OK (200)」訊息。
如要進一步瞭解 Google SecOps 動態饋給,請參閱 Google Security Operations 動態饋給說明文件。如要瞭解各個動態饋給類型的規定,請參閱「依類型分類的動態饋給設定」。
如果在建立動態饋給時遇到問題,請與 Google 安全作業支援團隊聯絡。
支援的 Zscaler 網路存取記錄格式
Zscaler Internet Access 剖析器支援 JSON 格式的記錄。
支援的 Zscaler Internet Access 記錄檔範例
JSON
{ "sourcetype": "zscalernss-audit", "event": { "time": "Wed May 29 17:45:03 2024", "recordid": "6095", "action": "UPDATE", "category": "ACCESS_CONTROL_RESOURCE", "subcategory": "URL_CATEGORY", "resource": "Custom SSL Bypass", "interface": "UI", "adminid": "abc@xyz.com", "clientip": "198.51.100.1", "result": "SUCCESS", "errorcode": "None", "auditlogtype": "ZIA", "preaction": "{"id":{"val":130%2c"mask":255%2c"parent":"CUSTOM_SUPERCATEGORY"%2c"deprecated":false%2c"backendName":"custom_03"%2c"name":"CUSTOM_03"%2c"userConfiguredName":""}%2c"configuredName":"Custom%20SSL%20Bypass"%2c"superCategory":"USER_DEFINED"%2c"keywords":[]%2c"keywordsRetainingParentCategory":[]%2c"customUrlsToAdd":[]%2c"customUrlsToDelete":[]%2c"urlsRetainingParentCategoryToAdd":[]%2c"urlsRetainingParentCategoryToDelete":[]%2c"customIpRangesToAdd":[]%2c"customIpRangesToDelete":[]%2c"ipRangesRetainingParentCategoryToAdd":[]%2c"ipRangesRetainingParentCategoryToDelete":[]%2c"customCategory":true%2c"editable":true%2c"description":"https: //help.zscaler.com/zia/url-format-guidelines"%2c"type":"URL_CATEGORY"%2c"customUrlsCount":1%2c"urlsRetainingParentCategoryCount":60%2c"customIpRangesCount":0%2c"ipRangesRetainingParentCategoryCount":0%2c"urlsToAdd":[]%2c"urlsToDelete":[]%2c"dbCategorizedUrlsToAdd":[]%2c"dbCategorizedUrlsToDelete":[]}","postaction":"{"id":{"val":130%2c"mask":255%2c"parent":"CUSTOM_SUPERCATEGORY"%2c"deprecated":false%2c"backendName":"custom_03"%2c"name":"CUSTOM_03"%2c"userConfiguredName":""}%2c"configuredName":"Custom%20SSL%20Bypass"%2c"superCategory":"USER_DEFINED"%2c"customUrlsToAdd":[]%2c"customUrlsToDelete":[]%2c"urlsRetainingParentCategoryToAdd":["webcast.temoinproduction.com"]%2c"urlsRetainingParentCategoryToDelete":[]%2c"customIpRangesToAdd":[]%2c"customIpRangesToDelete":[]%2c"ipRangesRetainingParentCategoryToAdd":[]%2c"ipRangesRetainingParentCategoryToDelete":[]%2c"customCategory":true%2c"editable":true%2c"description":"https://help.zscaler.com/zia/url-format-guidelines"%2c"type":"URL_CATEGORY"%2c"customUrlsCount":1%2c"urlsRetainingParentCategoryCount":61%2c"customIpRangesCount":0%2c"ipRangesRetainingParentCategoryCount":0%2c"urlsToAdd":[]%2c"urlsToDelete":[]%2c"dbCategorizedUrlsToAdd":[]%2c"dbCategorizedUrlsToDelete":[]}"} }
欄位對應參考資料
下表列出 ZSCALER_INTERNET_ACCESS
記錄類型的記錄欄位,以及對應的 UDM 欄位。
Log field | UDM mapping | Logic |
---|---|---|
|
metadata.event_type |
The metadata.event_type UDM field is set to STATUS_UPDATE . |
|
metadata.product_name |
The metadata.product_name UDM field is set to Admin Audit . |
|
metadata.vendor_name |
The metadata.vendor_name UDM field is set to Zscaler . |
sourcetype |
additional.fields[sourcetype] |
|
time |
metadata.event_timestamp |
|
recordid |
metadata.product_log_id |
|
action |
security_result.action_details |
|
category |
target.security_result.category_details |
|
subcategory |
target.security_result.category_details |
|
resource |
target.resource.name |
|
interface |
principal.resource.attribute.labels[interface] |
|
adminid |
principal.user.userid |
|
clientip |
principal.ip |
|
|
security_result.action |
If the event.result log field value is equal to SUCCESS , then the security_result.action UDM field is set to ALLOW .Else, if the event.result log field value is equal to FAILURE , then the security_result.action UDM field is set to BLOCK . |
errorcode |
security_result.summary |
|
auditlogtype |
additional.fields[auditlogtype] |
|
preaction |
principal.resource.attribute.labels |
Iterate through preaction object: The preaction object key is mapped to the principal.resource.attribute.labels.key UDM field and preaction object value is mapped to the principal.resource.attribute.labels.value UDM field. |
postaction |
principal.resource.attribute.labels |
Iterate through postaction object: The postaction object key is mapped to the principal.resource.attribute.labels.key UDM field and postaction object value is mapped to the principal.resource.attribute.labels.value UDM field. |
還有其他問題嗎?向社群成員和 Google SecOps 專家尋求解答。