收集 Netskope 網路 Proxy 記錄
本文說明如何使用 Cloud Storage V2,將 Netskope 網路 Proxy 記錄擷取至 Google Security Operations。
Netskope 提供雲端原生安全網路閘道,可即時檢查及控管網站流量。網路交易 (WebTx) 記錄會詳細記錄 Netskope Proxy 處理的每個 HTTP 和 HTTPS 工作階段,包括使用者身分、應用程式、網址類別、威脅和資料遺失防護判定,以及網路中繼資料。
事前準備
請確認您符合下列必要條件:
- Google SecOps 執行個體
- 已啟用 Cloud Storage API 的 Google Cloud 專案
- 建立及管理 Cloud Storage bucket 的權限
- 管理 Cloud Storage bucket 的 Identity and Access Management (IAM) 政策權限
- 具備管理員憑證,可存取 Netskope 租戶
選項 1:將 Netskope 記錄檔串流至 Cloud Storage
如果租戶已啟用 Netskope Log Streaming 訂閱方案,請使用這個選項。Netskope Log Streaming 會以 240 秒的固定間隔,將 WebTx 記錄檔直接推送至 Cloud Storage bucket,並壓縮為 .gzip 檔案。
建立 Cloud Storage bucket
- 前往 Google Cloud 控制台。
- 選取專案或建立新專案。
- 在導覽選單中,依序前往「Cloud Storage」>「Bucket」。
- 按一下「建立值區」。
提供下列設定詳細資料:
設定 值 為 bucket 命名 輸入全域不重複的名稱 (例如 netskope-webtx-logs)位置類型 請根據需求選擇 (單一區域、雙區域、多區域) 位置 選取最靠近貴機構的位置 (例如 us-central1)儲存空間級別 標準 (建議用於經常存取的記錄) 存取控管 統一 (建議) 保護工具 選用:啟用物件版本管理或資料保留政策 點選「建立」。
建立 Google Cloud 服務帳戶
Netskope Log Streaming 需要 Google Cloud 服務帳戶,且該帳戶必須具備 Cloud Storage bucket 的寫入權限。Netskope 會使用這個服務帳戶的 JSON 金鑰檔案,在推送記錄檔時進行驗證。
- 在 Google Cloud 控制台,依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
- 按一下「Create Service Account」(建立服務帳戶)。
- 提供下列設定詳細資料:
- 服務帳戶名稱:輸入
netskope-log-streaming - 服務帳戶說明:輸入
Service account for Netskope Log Streaming to push WebTx logs to GCS
- 服務帳戶名稱:輸入
- 按一下「建立並繼續」。
- 在「將專案存取權授予這個服務帳戶」部分:
- 按一下「請選擇角色」。
- 搜尋並選取「Storage 物件建立者」。
- 按一下「繼續」。
- 按一下「完成」。
產生 JSON 金鑰
- 在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶),然後點選服務帳戶「
netskope-log-streaming」。 - 選取「金鑰」分頁標籤。
- 依序點選「新增金鑰」>「建立新的金鑰」。
- 選取「JSON」做為金鑰類型。
- 點選「建立」。
系統會自動下載 JSON 金鑰檔案。請妥善保存這個檔案。在下一節中,您會將這個檔案的完整內容貼到 Netskope。
授予 Cloud Storage bucket 的寫入權限
- 在 Google Cloud 控制台中,依序前往「Cloud Storage」>「Buckets」。
- 按一下 bucket 名稱 (例如
netskope-webtx-logs)。 - 前往「權限」分頁。
- 按一下「授予存取權」。
- 提供下列設定詳細資料:
- 新增主體:輸入服務帳戶電子郵件地址 (例如
netskope-log-streaming@YOUR_PROJECT_ID.iam.gserviceaccount.com) - 指派角色:選取「Storage 物件建立者」
- 新增主體:輸入服務帳戶電子郵件地址 (例如
按一下「儲存」。
建立記錄串流
- 使用管理員憑證登入 Netskope 租戶。
- 依序前往「設定」>「工具」>「記錄串流」。
- 按一下「建立串流」。
- 在「Name」(名稱) 欄位中,輸入人類可讀的串流名稱。例如:
Google SecOps WebTx GCS。 - 選取「GCP Cloud Storage」做為目的地類型。
提供下列設定詳細資料:
「Bucket」:輸入 Cloud Storage bucket 的名稱 (例如
netskope-webtx-logs)。- 路徑 (選用):輸入 bucket 內要儲存記錄的資料夾路徑,例如 `netskope/webtx/{%Y}`。
私密金鑰:貼上上一節產生的 JSON 金鑰檔案完整內容,做為以
{開頭、}結尾的單一 JSON 物件。包含type、project_id、private_key_id、private_key、client_email和client_id欄位。
查看「Delivery Options」(推送選項):推送頻率為每 240 秒一次。
按一下「儲存」(或「建立」) 啟用串流。Netskope 會將名為
netskope-test-file.txt的測試物件寫入 bucket,藉此驗證憑證。
在 Google SecOps 設定動態饋給,從 Cloud Storage 擷取 Netskope WebTx 記錄
請按照下列步驟建立 Google SecOps 動態饋給,並授予 IAM 權限:
擷取 Google SecOps 服務帳戶
Google SecOps 會使用專屬服務帳戶,從 Cloud Storage bucket 讀取資料。您必須授予這個服務帳戶值區存取權。
- 依序前往「設定」>「資料管理」>「動態饋給」。如果使用的是 SIEM 專用平台,請依序前往「設定」>「動態饋給」。
- 按一下「新增動態饋給」。
- 按一下「設定單一動態饋給」。
- 在「Feed name」(動態饋給名稱) 欄位中,輸入動態饋給名稱 (例如
Netskope WebTx Logs)。 - 選取「Google Cloud Storage V2」做為「來源類型」。
- 選取「Netskope Web Proxy」做為「記錄類型」。
- 按一下「Get Service Account」(取得服務帳戶)。
系統會顯示專屬服務帳戶電子郵件地址,例如:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com複製這個電子郵件地址,下一個步驟將會用到。
點選「下一步」。
指定下列輸入參數的值:
Storage bucket URL:輸入 Cloud Storage bucket URI,並加上前置字元路徑:
gs://netskope-webtx-logs/netskope/webtx/- 取代:
netskope-webtx-logs:Cloud Storage bucket 名稱。netskope/webtx/:在 Netskope 記錄串流中設定的路徑前置字元 (如為根目錄,請留空)。
- 取代:
來源刪除選項:根據偏好選取刪除選項:
- 一律不刪除檔案:一律不刪除來源中的檔案 (建議用於測試)。
- 刪除已轉移的檔案和空目錄:成功擷取後,從來源刪除檔案和空目錄。
檔案存在時間上限:納入過去幾天內修改過的檔案 (預設為 180 天)
資產命名空間:資產命名空間
擷取標籤:要套用至這個動態饋給事件的標籤
點選「下一步」。
在「完成」畫面中檢查新的新聞動態消息設定,然後按一下「提交」。
將 IAM 權限授予 Google SecOps 服務帳戶
Google SecOps 服務帳戶需要 Cloud Storage bucket 的兩項角色:Storage 物件檢視者 (用於讀取記錄物件),以及 bucket 層級角色 (用於讀取 bucket 中繼資料)。
- 依序前往「Cloud Storage」>「Bucket」。
- 按一下 bucket 名稱 (例如
netskope-webtx-logs)。 - 前往「權限」分頁。
- 按一下「授予存取權」。
- 提供下列設定詳細資料:
- 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址 (例如
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com) - 「指派角色」:選取下列兩項:
- Storage 物件檢視者:讀取記錄物件。
- Storage 舊版 bucket 讀取者:讀取 bucket 中繼資料。如果您選取「刪除已轉移的檔案和空白目錄」刪除選項,請改選「Storage 舊版值區寫入者」,這項角色也會授予刪除權限。
- 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址 (例如
- 按一下「儲存」。
選項 2:使用 Netskope Cloud Exchange Log Shipper 將記錄傳送至 Cloud Storage
如果您已部署 Netskope Cloud Exchange 平台,並設定 Log Shipper 模組,請使用這個選項。記錄傳送器會從 Netskope 租戶提取 WebTx 記錄,並將其壓縮為 .gzip 檔案,推送至 Cloud Storage bucket,Google SecOps 則會透過 Cloud Storage V2 動態饋給讀取這些檔案。
事前準備 (Cloud Exchange)
請確認您符合下列額外必要條件,才能使用這個選項:
- Netskope Cloud Exchange 租戶,已設定租戶外掛程式和記錄傳送工具模組。
- 在 Log Shipper 設定的 Netskope CLS 來源外掛程式 (從 Netskope 租戶提取資料)。
- 建立 Cloud Storage bucket,用於儲存 WebTx 記錄。如果尚未建立,請按照「建立 Cloud Storage bucket」中的步驟操作。
- 具備 Cloud Storage bucket 寫入權限的 Google Cloud 服務帳戶。如果尚未建立,請按照「建立 Google Cloud 服務帳戶」、「產生 JSON 金鑰」和「授予 Cloud Storage bucket 的寫入權限」中的步驟操作。
設定 Cloud Storage 目的地外掛程式
- 在 Cloud Exchange 中,依序前往「Settings」>「Plugin Store」。
- 搜尋並選取「Google Cloud SCC (Google GCS)」外掛程式。
- 按一下「Configure New Plugin」(設定新的外掛程式) (或新增外掛程式設定)。
- 提供下列設定詳細資料:
- 設定名稱:輸入描述性名稱 (例如
GCS WebTx Destination)。 - 對應:選取對應檔。如果 WebTx 記錄是以原始
.gzip檔案推送,則不會套用對應轉換。 - 「Bucket」:輸入 Cloud Storage bucket 的名稱 (例如
netskope-webtx-logs)。 - 路徑 (選用):輸入資料夾路徑 (例如
netskope/webtx/)。 - 金鑰檔案:貼上服務帳戶 JSON 金鑰檔案的完整內容,而非只有
private_key值。
- 設定名稱:輸入描述性名稱 (例如
- 按一下「儲存」。
- 新的外掛程式設定會顯示在「Log Shipper」>「Plugins」頁面。
設定業務規則 (選用)
根據預設,「全部」業務規則會篩選所有快訊和事件。如要篩選 WebTx 記錄,請建立新的業務規則:
- 在「Log Shipper」中,前往「Business Rules」。
- 按一下「建立新規則」。
- 輸入規則名稱 (例如
WebTx Only)。 - 設定篩選器,只納入 WebTx 資料。
- 按一下「儲存」。
設定記錄傳送
- 在「Log Shipper」中,前往「Log Delivery」。
- 按一下「Add Log Delivery Configuration」(新增記錄傳送設定)。
- 提供下列設定詳細資料:
- Source Configuration:選取 Netskope CLS 來源外掛程式 (例如
WebTxCLS或Netskope CLS)。 - Destination Configuration:選取您設定的 Cloud Storage 目的地外掛程式 (例如
GCS WebTx Destination)。 - 業務規則:選取業務規則 (例如
All或WebTx Only)。
- Source Configuration:選取 Netskope CLS 來源外掛程式 (例如
按一下「儲存」。
如要取得更多歷來資料,請在「記錄檔傳送」動作中,點選「擷取歷來資料」圖示。
選取「歷來資料」的「開始日期」和「結束日期」,然後按一下「擷取」。
在 Google SecOps 設定動態饋給,從 Cloud Storage 擷取 Netskope WebTx 記錄
按照 Netskope 記錄串流選項中的相同步驟,建立 Google SecOps 動態饋給並授予 IAM 權限:
- 擷取 Google SecOps 服務帳戶:建立動態饋給,來源類型設為 Google Cloud Storage V2,記錄類型設為 Netskope 網路 Proxy。
- 將 IAM 權限授予 Google SecOps 服務帳戶:將 Cloud Storage bucket 的 Storage 物件檢視者和 Storage 舊版 bucket 讀取者角色 (如果使用刪除選項,請使用 Storage 舊版 bucket 寫入者) 授予 Google SecOps 服務帳戶。
確認記錄傳送的情形
如要確認 WebTx 記錄是否已傳送至 Cloud Storage bucket,請按照下列步驟操作:
- 在 Cloud Exchange 中,依序前往「Log Shipper」>「Log Delivery」。
- 查看「Total Logs/WebTx Sent to External Receiver」和「Total WebTx Sent to Storage Bucket」欄,確認資料已推送至目的地。
- 在 GCS bucket 中,確認記錄傳送工具正在寫入
.gzip檔案。
設定 Log Shipper 全域設定 (選用)
只有管理員可以變更記錄傳送工具全域設定。依序前往「設定」>「記錄傳送工具」。其中有兩個分頁:「一般」和「對應」。
在「General」(一般) 分頁中,您可以設定記錄傳送的重試策略:
- 預設 (重試 3 次):如果記錄檔傳送失敗,記錄檔傳送工具會嘗試將記錄檔推送至目的地 3 次。如果 3 次重試都失敗,系統會捨棄對應的記錄批次。
重試直到成功傳送:無限次重試,直到成功傳送記錄。
您也可以為快訊、事件和 WebTx 啟用 UTF-8 編碼,確保能順暢處理 UTF-8 編碼資料。這項功能預設為停用。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
| applicationType | security_result.detection_fields[].key: "applicationType", security_result.detection_fields[].value: applicationType | 直接從對應的 CEF 欄位對應 |
| appcategory | security_result.category_details[]: appcategory | 直接從對應的 CEF 欄位對應 |
| browser | security_result.detection_fields[].key: "browser", security_result.detection_fields[].value: browser | 直接從對應的 CEF 欄位對應 |
| c-ip | principal.asset.ip[]: c-ip, principal.ip[]: c-ip | 直接從對應的 JSON 欄位對應 |
| cci | security_result.detection_fields[].key: "cci", security_result.detection_fields[].value: cci | 直接從對應的 CEF 欄位對應 |
| ccl | security_result.confidence: Derived value, security_result.confidence_details: ccl | security_result.confidence 是根據 ccl 的值衍生而來:「excellent」或「high」對應至 HIGH_CONFIDENCE,「medium」對應至 MEDIUM_CONFIDENCE,「low」或「poor」對應至 LOW_CONFIDENCE,「unknown」或「not_defined」對應至 UNKNOWN_CONFIDENCE。security_result.confidence_details 直接從 ccl 對應。 |
| clientBytes | network.sent_bytes: clientBytes | 直接從對應的 CEF 欄位對應 |
| cs-access-method | additional.fields[].key: "accessMethod", additional.fields[].value.string_value: cs-access-method | 直接從對應的 JSON 欄位對應 |
| cs-app | additional.fields[].key: "x-cs-app", additional.fields[].value.string_value: cs-app, principal.application: cs-app | 直接從對應的 JSON 欄位對應 |
| cs-app-activity | additional.fields[].key: "x-cs-app-activity", additional.fields[].value.string_value: cs-app-activity | 直接從對應的 JSON 欄位對應 |
| cs-app-category | additional.fields[].key: "x-cs-app-category", additional.fields[].value.string_value: cs-app-category | 直接從對應的 JSON 欄位對應 |
| cs-app-cci | additional.fields[].key: "x-cs-app-cci", additional.fields[].value.string_value: cs-app-cci | 直接從對應的 JSON 欄位對應 |
| cs-app-ccl | additional.fields[].key: "x-cs-app-ccl", additional.fields[].value.string_value: cs-app-ccl | 直接從對應的 JSON 欄位對應 |
| cs-app-from-user | additional.fields[].key: "x-cs-app-from-user", additional.fields[].value.string_value: cs-app-from-user, principal.user.email_addresses[]: cs-app-from-user | 直接從對應的 JSON 欄位對應 |
| cs-app-instance-id | additional.fields[].key: "x-cs-app-instance-id", additional.fields[].value.string_value: cs-app-instance-id | 直接從對應的 JSON 欄位對應 |
| cs-app-object-name | additional.fields[].key: "x-cs-app-object-name", additional.fields[].value.string_value: cs-app-object-name | 直接從對應的 JSON 欄位對應 |
| cs-app-object-type | additional.fields[].key: "x-cs-app-object-type", additional.fields[].value.string_value: cs-app-object-type | 直接從對應的 JSON 欄位對應 |
| cs-app-suite | additional.fields[].key: "x-cs-app-suite", additional.fields[].value.string_value: cs-app-suite | 直接從對應的 JSON 欄位對應 |
| cs-app-tags | additional.fields[].key: "x-cs-app-tags", additional.fields[].value.string_value: cs-app-tags | 直接從對應的 JSON 欄位對應 |
| cs-bytes | network.sent_bytes: cs-bytes | 直接從對應的 JSON 欄位對應 |
| cs-content-type | additional.fields[].key: "sc-content-type", additional.fields[].value.string_value: cs-content-type | 直接從對應的 JSON 欄位對應 |
| cs-dns | target.asset.hostname[]: cs-dns, target.hostname: cs-dns | 直接從對應的 JSON 欄位對應 |
| cs-host | target.asset.hostname[]: cs-host, target.hostname: cs-host | 直接從對應的 JSON 欄位對應 |
| cs-method | network.http.method: cs-method | 直接從對應的 JSON 欄位對應 |
| cs-referer | network.http.referral_url: cs-referer | 直接從對應的 JSON 欄位對應 |
| cs-uri | additional.fields[].key: "cs-uri", additional.fields[].value.string_value: cs-uri | 直接從對應的 JSON 欄位對應 |
| cs-uri-path | additional.fields[].key: "x-cs-uri-path", additional.fields[].value.string_value: cs-uri-path | 直接從對應的 JSON 欄位對應 |
| cs-uri-port | additional.fields[].key: "cs-uri-port", additional.fields[].value.string_value: cs-uri-port | 直接從對應的 JSON 欄位對應 |
| cs-uri-scheme | network.application_protocol: cs-uri-scheme | 轉換為大寫後,直接從對應的 JSON 欄位對應 |
| cs-user-agent | network.http.parsed_user_agent: Parsed user agent, network.http.user_agent: cs-user-agent | network.http.parsed_user_agent 是使用「parseduseragent」篩選器剖析 cs-user-agent 欄位而得 |
| cs-username | principal.user.userid: cs-username | 直接從對應的 JSON 欄位對應 |
| 日期 | metadata.event_timestamp.seconds:日期和時間欄位的 Epoch 秒數,metadata.event_timestamp.nanos:0 | 日期和時間會合併並轉換為 Epoch 秒數和奈秒數。奈秒設為 0。 |
| 裝置 | intermediary.hostname: device | 直接從對應的 CEF 欄位對應 |
| dst | target.ip[]: dst | 直接從對應的 CEF 欄位對應 |
| dst_country | target.location.country_or_region: dst_country | 直接從對應的 grokked 欄位對應 |
| dst_ip | target.asset.ip[]: dst_ip, target.ip[]: dst_ip | 直接從對應的 grokked 欄位對應 |
| dst_location | target.location.city: dst_location | 直接從對應的 grokked 欄位對應 |
| dst_region | target.location.state: dst_region | 直接從對應的 grokked 欄位對應 |
| dst_zip | 未對應 | 這個欄位未對應至 UDM |
| duser | target.user.email_addresses[]: duser, target.user.user_display_name: duser | 直接從對應的 CEF 欄位對應 |
| dvchost | about.hostname: dvchost, target.asset.hostname[]: dvchost, target.hostname: dvchost | 直接從對應的 CEF 欄位對應 |
| event_timestamp | metadata.event_timestamp.seconds: event_timestamp | 直接從對應的 grokked 欄位對應 |
| 主機名稱 | target.asset.hostname[]: hostname, target.hostname: hostname | 直接從對應的 CEF 欄位對應 |
| 事件 ID | security_result.detection_fields[].key: "IncidentID", security_result.detection_fields[].value: IncidentID | 直接從對應的 CEF 欄位對應 |
| 中介 | intermediary: intermediary | 直接從對應的 CEF 欄位對應 |
| md5 | target.file.md5: md5 | 直接從對應的 CEF 欄位對應 |
| 訊息 | 各種 UDM 欄位 | 系統會根據訊息欄位是否包含「CEF」來剖析該欄位。如果符合,系統會將其視為 CEF 記錄。否則,系統會將其剖析為以空格分隔的字串或 JSON。 |
| mwDetectionEngine | additional.fields[].key: "mwDetectionEngine", additional.fields[].value.string_value: mwDetectionEngine | 直接從對應的 CEF 欄位對應 |
| mwType | metadata.description: mwType | 直接從對應的 CEF 欄位對應 |
| os | principal.platform:衍生值 | 平台衍生自 OS 欄位:「Windows」對應至 WINDOWS、「MAC」對應至 MAC、「LINUX」對應至 LINUX |
| 頁面 | network.http.referral_url: page | 直接從對應的 CEF 欄位對應 |
| 參照網址 | network.http.referral_url: referer | 直接從對應的 CEF 欄位對應 |
| requestClientApplication | network.http.parsed_user_agent: Parsed user agent, network.http.user_agent: requestClientApplication | network.http.parsed_user_agent 是使用「parseduseragent」篩選器剖析 requestClientApplication 欄位而得 |
| request_method | network.http.method: request_method | 直接從對應的 grokked 欄位對應 |
| rs-status | additional.fields[].key: "rs-status", additional.fields[].value.string_value: rs-status, network.http.response_code: rs-status | 直接從對應的 JSON 欄位對應 |
| s-ip | target.asset.ip[]: s-ip、target.ip[]: s-ip | 直接從對應的 JSON 欄位對應 |
| sc-bytes | network.received_bytes: sc-bytes | 直接從對應的 JSON 欄位對應 |
| sc-content-type | additional.fields[].key: "sc-content-type", additional.fields[].value.string_value: sc-content-type | 直接從對應的 JSON 欄位對應 |
| sc-status | network.http.response_code: sc-status | 直接從對應的 JSON 欄位對應 |
| serverBytes | network.received_bytes: serverBytes | 直接從對應的 CEF 欄位對應 |
| sha256 | target.file.sha256: sha256 | 直接從對應的 CEF 欄位對應 |
| src | principal.ip[]: src | 直接從對應的 CEF 欄位對應 |
| src_country | principal.location.country_or_region: src_country | 直接從對應的 grokked 欄位對應 |
| src_ip | principal.asset.ip[]: src_ip, principal.ip[]: src_ip | 直接從對應的 grokked 欄位對應 |
| src_location | principal.location.city: src_location | 直接從對應的 grokked 欄位對應 |
| src_region | principal.location.state: src_region | 直接從對應的 grokked 欄位對應 |
| src_latitude | 未對應 | 這個欄位未對應至 UDM |
| src_longitude | 未對應 | 這個欄位未對應至 UDM |
| src_zip | 未對應 | 這個欄位未對應至 UDM |
| suser | principal.user.user_display_name: suser | 直接從對應的 CEF 欄位對應 |
| target_host | target.asset.hostname[]: target_host, target.hostname: target_host | 直接從對應的 grokked 欄位對應 |
| 時間 | metadata.event_timestamp.seconds:日期和時間欄位的 Epoch 秒數,metadata.event_timestamp.nanos:0 | 日期和時間會合併並轉換為 Epoch 秒數和奈秒數。奈秒設為 0。 |
| 時間戳記 | metadata.event_timestamp.seconds: timestamp | 直接從對應的 CEF 欄位對應 |
| ts | metadata.event_timestamp.seconds:ts 的 Epoch 秒數,metadata.event_timestamp.nanos:0 | 時間戳記會轉換為 Epoch 秒和奈秒。奈秒設為 0。 |
| 網址 | target.url: url | 直接從對應的 CEF 欄位對應 |
| user_agent | network.http.parsed_user_agent: Parsed user agent, network.http.user_agent: user_agent | network.http.parsed_user_agent 是使用「parseduseragent」篩選器剖析 user_agent 欄位而得 |
| user_key | principal.user.email_addresses[]: user_key | 直接從對應的 grokked 欄位對應 |
| 版本 | 未對應 | 這個欄位未對應至 UDM |
| x-c-browser | additional.fields[].key: "x-c-browser", additional.fields[].value.string_value: x-c-browser | 直接從對應的 JSON 欄位對應 |
| x-c-browser-version | additional.fields[].key: "x-c-browser-version", additional.fields[].value.string_value: x-c-browser-version | 直接從對應的 JSON 欄位對應 |
| x-c-country | principal.location.country_or_region: x-c-country | 直接從對應的 JSON 欄位對應 |
| x-c-device | additional.fields[].key: "x-c-device", additional.fields[].value.string_value: x-c-device | 直接從對應的 JSON 欄位對應 |
| x-c-latitude | principal.location.region_coordinates.latitude: x-c-latitude | 直接從對應的 JSON 欄位對應 |
| x-c-local-time | security_result.detection_fields[].key: "x-c-local-time", security_result.detection_fields[].value: x-c-local-time | 直接從對應的 JSON 欄位對應 |
| x-c-location | principal.location.name: x-c-location | 直接從對應的 JSON 欄位對應 |
| x-c-longitude | principal.location.region_coordinates.longitude: x-c-longitude | 直接從對應的 JSON 欄位對應 |
| x-c-os | principal.platform:衍生值 | 平台衍生自 x-c-os 欄位:「Windows」對應至 WINDOWS、「MAC」對應至 MAC、「LINUX」對應至 LINUX |
| x-c-region | principal.location.state: x-c-region | 直接從對應的 JSON 欄位對應 |
| x-c-zipcode | additional.fields[].key: "x-c-zipcode", additional.fields[].value.string_value: x-c-zipcode | 直接從對應的 JSON 欄位對應 |
| x-category | additional.fields[].key: "x-category", additional.fields[].value.string_value: x-category | 直接從對應的 JSON 欄位對應 |
| x-category-id | additional.fields[].key: "x-category-id", additional.fields[].value.string_value: x-category-id | 直接從對應的 JSON 欄位對應 |
| x-cs-access-method | additional.fields[].key: "accessMethod", additional.fields[].value.string_value: x-cs-access-method | 直接從對應的 JSON 欄位對應 |
| x-cs-app | principal.application: x-cs-app, additional.fields[].key: "x-cs-app", additional.fields[].value.string_value: x-cs-app | 直接從對應的 JSON 欄位對應 |
| x-cs-app-activity | additional.fields[].key: "x-cs-app-activity", additional.fields[].value.string_value: x-cs-app-activity | 直接從對應的 JSON 欄位對應 |
| x-cs-app-category | additional.fields[].key: "x-cs-app-category", additional.fields[].value.string_value: x-cs-app-category | 直接從對應的 JSON 欄位對應 |
| x-cs-app-cci | additional.fields[].key: "x-cs-app-cci", additional.fields[].value.string_value: x-cs-app-cci | 直接從對應的 JSON 欄位對應 |
| x-cs-app-from-user | additional.fields[].key: "x-cs-app-from-user", additional.fields[].value.string_value: x-cs-app-from-user | 直接從對應的 JSON 欄位對應 |
| x-cs-app-object-id | additional.fields[].key: "x-cs-app-object-id", additional.fields[].value.string_value: x-cs-app-object-id | 直接從對應的 JSON 欄位對應 |
| x-cs-app-object-name | additional.fields[].key: "x-cs-app-object-name", additional.fields[].value.string_value: x-cs-app-object-name | 直接從對應的 JSON 欄位對應 |
| x-cs-app-object-type | additional.fields[].key: "x-cs-app-object-type", additional.fields[].value.string_value: x-cs-app-object-type | 直接從對應的 JSON 欄位對應 |
| x-cs-app-suite | additional.fields[].key: "x-cs-app-suite", additional.fields[].value.string_value: x-cs-app-suite | 直接從對應的 JSON 欄位對應 |
| x-cs-app-tags | additional.fields[].key: "x-cs-app-tags", additional.fields[].value.string_value: x-cs-app-tags | 直接從對應的 JSON 欄位對應 |
| x-cs-app-to-user | additional.fields[].key: "x-cs-app-to-user", additional.fields[].value.string_value: x-cs-app-to-user | 直接從對應的 JSON 欄位對應 |
| x-cs-dst-ip | security_result.detection_fields[].key: "x-cs-dst-ip", security_result.detection_fields[].value: x-cs-dst-ip, target.asset.ip[]: x-cs-dst-ip, target.ip[]: x-cs-dst-ip | 直接從對應的 JSON 欄位對應 |
| x-cs-dst-port | security_result.detection_fields[].key: "x-cs-dst-port", security_result.detection_fields[].value: x-cs-dst-port, target.port: x-cs-dst-port | 直接從對應的 JSON 欄位對應 |
| x-cs-http-version | security_result.detection_fields[].key: "x-cs-http-version", security_result.detection_fields[].value: x-cs-http-version | 直接從對應的 JSON 欄位對應 |
| x-cs-page-id | additional.fields[].key: "x-cs-page-id", additional.fields[].value.string_value: x-cs-page-id | 直接從對應的 JSON 欄位對應 |
| x-cs-session-id | network.session_id: x-cs-session-id | 直接從對應的 JSON 欄位對應 |
| x-cs-site | additional.fields[].key: "x-cs-site", additional.fields[].value.string_value: x-cs-site | 直接從對應的 JSON 欄位對應 |
| x-cs-sni | network.tls.client.server_name: x-cs-sni | 直接從對應的 JSON 欄位對應 |
| x-cs-src-ip | principal.asset.ip[]: x-cs-src-ip, principal.ip[]: x-cs-src-ip, security_result.detection_fields[].key: "x-cs-src-ip", security_result.detection_fields[].value: x-cs-src-ip | 直接從對應的 JSON 欄位對應 |
| x-cs-src-ip-egress | principal.asset.ip[]: x-cs-src-ip-egress, principal.ip[]: x-cs-src-ip-egress, security_result.detection_fields[].key: "x-cs-src-ip-egress", security_result.detection_fields[].value: x-cs-src-ip-egress | 直接從對應的 JSON 欄位對應 |
| x-cs-src-port | principal.port: x-cs-src-port, security_result.detection_fields[].key: "x-cs-src-port", security_result.detection_fields[].value: x-cs-src-port | 直接從對應的 JSON 欄位對應 |
| x-cs-ssl-cipher | network.tls.cipher: x-cs-ssl-cipher | 直接從對應的 JSON 欄位對應 |
| x-cs-ssl-fronting-error | security_result.detection_fields[].key: "x-cs-ssl-fronting-error", security_result.detection_fields[].value: x-cs-ssl-fronting-error | 直接從對應的 JSON 欄位對應 |
| x-cs-ssl-handshake-error | security_result.detection_fields[].key: "x-cs-ssl-handshake-error", security_result.detection_fields[].value: x-cs-ssl-handshake-error | 直接從對應的 JSON 欄位對應 |
| x-cs-ssl-ja3 | network.tls.client.ja3: x-cs-ssl-ja3 | 直接從對應的 JSON 欄位對應 |
| x-cs-ssl-version | network.tls.version: x-cs-ssl-version | 直接從對應的 JSON 欄位對應 |
| x-cs-timestamp | metadata.event_timestamp.seconds: x-cs-timestamp | 直接從對應的 JSON 欄位對應 |
| x-cs-traffic-type | additional.fields[].key: "trafficType", additional.fields[].value.string_value: x-cs-traffic-type | 直接從對應的 JSON 欄位對應 |
| x-cs-tunnel-src-ip | security_result.detection_fields[].key: "x-cs-tunnel-src-ip", security_result.detection_fields[].value: x-cs-tunnel-src-ip | 直接從對應的 JSON 欄位對應 |
| x-cs-uri-path | additional.fields[].key: "x-cs-uri-path", additional.fields[].value.string_value: x-cs-uri-path | 直接從對應的 JSON 欄位對應 |
| x-cs-url | target.url: x-cs-url | 直接從對應的 JSON 欄位對應 |
| x-cs-userip | security_result.detection_fields[].key: "x-cs-userip", security_result.detection_fields[].value: x-cs-userip | 直接從對應的 JSON 欄位對應 |
| x-other-category | security_result.category_details[]: x-other-category | 直接從對應的 JSON 欄位對應 |
| x-other-category-id | security_result.detection_fields[].key: "x-other-category-id", security_result.detection_fields[].value: x-other-category-id | 直接從對應的 JSON 欄位對應 |
| x-policy-action | security_result.action:衍生值,security_result.action_details:x-policy-action | security_result.action 是將 x-policy-action 轉換為大寫而衍生。如果大寫值為「ALLOW」或「BLOCK」,系統會直接使用。否則不會對應。security_result.action_details 會直接從 x-policy-action 對應。 |
| x-policy-dst-host | security_result.detection_fields[].key: "x-policy-dst-host", security_result.detection_fields[].value: x-policy-dst-host | 直接從對應的 JSON 欄位對應 |
| x-policy-dst-host-source | security_result.detection_fields[].key: "x-policy-dst-host-source", security_result.detection_fields[].value: x-policy-dst-host-source | 直接從對應的 JSON 欄位對應 |
| x-policy-dst-ip | security_result.detection_fields[].key: "x-policy-dst-ip", security_result.detection_fields[].value: x-policy-dst-ip | 直接從對應的 JSON 欄位對應 |
| x-policy-name | security_result.rule_name: x-policy-name | 直接從對應的 JSON 欄位對應 |
| x-policy-src-ip | security_result.detection_fields[].key: "x-policy-src-ip", security_result.detection_fields[].value: x-policy-src-ip | 直接從對應的 JSON 欄位對應 |
| x-r-cert-enddate | network.tls.server.certificate.not_after.seconds:x-r-cert-enddate 的 Epoch 秒數 | 日期會轉換為 Epoch 秒數 |
| x-r-cert-expired | additional.fields[].key: "x-r-cert-expired", additional.fields[].value.string_value: x-r-cert-expired | 直接從對應的 JSON 欄位對應 |
| x-r-cert-incomplete-chain | additional.fields[].key: "x-r-cert-incomplete-chain", additional.fields[].value.string_value: x-r-cert-incomplete-chain | 直接從對應的 JSON 欄位對應 |
| x-r-cert-issuer-cn | network.tls.server.certificate.issuer: x-r-cert-issuer-cn | 直接從對應的 JSON 欄位對應 |
| x-r-cert-mismatch | additional.fields[].key: "x-r-cert-mismatch", additional.fields[].value.string_value: x-r-cert-mismatch | 直接從對應的 JSON 欄位對應 |
| x-r-cert-revoked | additional.fields[].key: "x-r-cert-revoked", additional.fields[].value.string_value: x-r-cert-revoked | 直接從對應的 JSON 欄位對應 |
| x-r-cert-self-signed | additional.fields[].key: "x-r-cert-self-signed", additional.fields[].value.string_value: x-r-cert-self-signed | 直接從對應的 JSON 欄位對應 |
| x-r-cert-startdate | network.tls.server.certificate.not_before.seconds:x-r-cert-startdate 的 Epoch 秒數 | 日期會轉換為 Epoch 秒數 |
| x-r-cert-subject-cn | network.tls.server.certificate.subject: x-r-cert-subject-cn | 直接從對應的 JSON 欄位對應 |
| x-r-cert-untrusted-root | additional.fields[].key: "x-r-cert-untrusted-root", additional.fields[].value.string_value: x-r-cert-untrusted-root | 直接從對應的 JSON 欄位對應 |
| x-r-cert-valid | additional.fields[].key: "x-r-cert-valid", additional.fields[].value.string_value: x-r-cert-valid | 直接從對應的 JSON 欄位對應 |
| x-request-id | additional.fields[].key: "requestId", additional.fields[].value.string_value: x-request-id | 直接從對應的 JSON 欄位對應 |
| x-rs-file-category | additional.fields[].key: "x-rs-file-category", additional.fields[].value.string_value: x-rs-file-category | 直接從對應的 JSON 欄位對應 |
| x-rs-file-type | additional.fields[].key: "x-rs-file-type", additional.fields[].value.string_value: x-rs-file-type | 直接從對應的 JSON 欄位對應 |
| x-s-country | target.location.country_or_region: x-s-country | 直接從對應的 JSON 欄位對應 |
| x-s-dp-name | additional.fields[].key: "x-s-dp-name", additional.fields[].value.string_value: x-s-dp-name | 直接從對應的 JSON 欄位對應 |
| x-s-latitude | target.location.region_coordinates.latitude: x-s-latitude | 直接從對應的 JSON 欄位對應 |
| x-s-location | target.location.name: x-s-location | 直接從對應的 JSON 欄位對應 |
| x-s-longitude | target.location.region_coordinates.longitude: x-s-longitude | 直接從對應的 JSON 欄位對應 |
| x-s-region | target.location.state: x-s-region | 直接從對應的 JSON 欄位對應 |
| x-s-zipcode | additional.fields[].key: "x-s-zipcode", additional.fields[].value.string_value: x-s-zipcode | 直接從對應的 JSON 欄位對應 |
| x-sr-ssl-cipher | security_result.detection_fields[].key: "x-sr-ssl-cipher", security_result.detection_fields[].value: x-sr-ssl-cipher | 直接從對應的 JSON 欄位對應 |
| x-sr-ssl-client-certificate-error | security_result.detection_fields[].key: "x-sr-ssl-client-certificate-error", security_result.detection_fields[].value: x-sr-ssl-client-certificate-error | 直接從對應的 JSON 欄位對應 |
| x-sr-ssl-engine-action | security_result.detection_fields[].key: "x-sr-ssl-engine-action", security_result.detection_fields[].value: x-sr-ssl-engine-action | 直接從對應的 JSON 欄位對應 |
| x-sr-ssl-engine-action-reason | security_result.detection_fields[].key: "x-sr-ssl-engine-action-reason", security_result.detection_fields[].value: x-sr-ssl-engine-action-reason | 直接從對應的 JSON 欄位對應 |
| x-sr-ssl-handshake-error | security_result.detection_fields[].key: "x-sr-ssl-handshake-error", security_result.detection_fields[].value: x-sr-ssl-handshake-error | 直接從對應的 JSON 欄位對應 |
| x-sr-ssl-ja3s | English: network.tls.server.ja3s: x-sr-ssl-ja3s | 直接從對應的 JSON 欄位對應 |
| x-sr-ssl-malformed-ssl | security_result.detection_fields[].key: "x-sr-ssl-malformed-ssl", security_result.detection_fields[].value: x-sr-ssl-malformed-ssl | 直接從對應的 JSON 欄位對應 |
| x-sr-ssl-version | security_result.detection_fields[].key: "x-sr-ssl-version", security_result.detection_fields[].value: x-sr-ssl-version | 直接從對應的 JSON 欄位對應 |
| x-s-custom-signing-ca-error | security_result.detection_fields[].key: "x-s-custom-signing-ca-error", security_result.detection_fields[].value: x-s-custom-signing-ca-error | 直接從對應的 JSON 欄位對應 |
| x-ssl-bypass | security_result.detection_fields[].key: "SSL BYPASS", security_result.detection_fields[].value: x-ssl-bypass or x-ssl-bypass-reason | 如果 x-ssl-bypass 為「Yes」,且有 x-ssl-bypass-reason,系統會使用 x-ssl-bypass-reason 的值。否則,系統會使用 x-ssl-bypass 的值。 |
| x-ssl-policy-action | security_result.detection_fields[].key: "x-ssl-policy-action", security_result.detection_fields[].value: x-ssl-policy-action | 直接從對應的 JSON 欄位對應 |
| x-ssl-policy-categories | security_result.category_details[]: x-ssl-policy-categories | 直接從對應的 JSON 欄位對應 |
| x-ssl-policy-dst-host | security_result.detection_fields[].key: "x-ssl-policy-dst-host", security_result.detection_fields[].value: x-ssl-policy-dst-host | 直接從對應的 JSON 欄位對應 |
| x-ssl-policy-dst-host-source | security_result.detection_fields[].key: "x-ssl-policy-dst-host-source", security_result.detection_fields[].value: x-ssl-policy-dst-host-source | 直接從對應的 JSON 欄位對應 |
| x-ssl-policy-dst-ip | security_result.detection_fields[].key: "x-ssl-policy-dst-ip", security_result.detection_fields[].value: x-ssl-policy-dst-ip | 直接從對應的 JSON 欄位對應 |
| x-ssl-policy-name | security_result.rule_name: x-ssl-policy-name | 直接從對應的 JSON 欄位對應 |
| x-ssl-policy-src-ip | security_result.detection_fields[].key: "x-ssl-policy-src-ip", security_result.detection_fields[].value: x-ssl-policy-src-ip | 直接從對應的 JSON 欄位對應 |
| x-sr-dst-ip | security_result.detection_fields[].key: "x-sr-dst-ip", security_result.detection_fields[].value: x-sr-dst-ip | 直接從對應的 JSON 欄位對應 |
| x-sr-dst-port | security_result.detection_fields[].key: "x-sr-dst-port", security_result.detection_fields[].value: x-sr-dst-port | 直接從對應的 JSON 欄位對應 |
| x-type | additional.fields[].key: "xType", additional.fields[].value.string_value: x-type | 直接從對應的 JSON 欄位對應 |
| x-transaction-id | additional.fields[].key: "transactionId", additional.fields[].value.string_value: x-transaction-id | 直接從對應的 JSON 欄位對應 |
| metadata.vendor_name | 設為「Netskope」 | |
| metadata.product_name | 如果尚未設定,請設為「Netskope Webproxy」 | |
| metadata.log_type | 設為「NETSKOPE_WEBPROXY」 |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。