收集 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 記錄檔以壓縮 .gzip 檔案的形式直接推送至 Cloud Storage bucket。
建立 Cloud Storage bucket
- 前往 Google Cloud 控制台。
- 選取專案或建立新專案。
- 在導覽選單中,依序前往「Cloud Storage」>「Bucket」。
- 按一下「建立值區」。
提供下列設定詳細資料:
設定 值 為 bucket 命名 輸入全域不重複的名稱 (例如 netskope-webtx-logs)位置類型 請根據需求選擇 (區域、雙區域、多區域) 位置 選取離貴機構最近的地點 (例如 us-central1)儲存空間級別 標準 (建議用於經常存取的記錄) 存取控管 統一 (建議) 保護工具 選用:啟用物件版本管理或資料保留政策 點選「建立」。
建立 Google Cloud 服務帳戶
Netskope 記錄串流需要 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欄位。
查看「傳送選項」:推送頻率為持續 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」做為「記錄類型」。
- 按一下「取得服務帳戶」。
系統會顯示專屬服務帳戶電子郵件地址,例如:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com複製這個電子郵件地址,以便在下一步中使用。
點選「下一步」。
指定下列輸入參數的值:
儲存空間 bucket URL:輸入 Cloud Storage bucket URI,並加上前置路徑:
gs://netskope-webtx-logs/netskope/webtx/- 取代:
netskope-webtx-logs:Cloud Storage bucket 名稱。netskope/webtx/:在 Netskope 記錄串流中設定的路徑前置字元 (如為根目錄,請留空)。
- 取代:
來源刪除選項:根據偏好選取刪除選項:
- 一律不刪除檔案:一律不刪除來源中的檔案 (建議用於測試)。
- 刪除已轉移的檔案和空白目錄:成功擷取檔案後,從來源刪除檔案和空白目錄。
檔案存在時間上限:納入在過去天數內修改的檔案 (預設為 180 天)
資產命名空間:資產命名空間
擷取標籤:要套用至這個動態饋給事件的標籤
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
將 IAM 權限授予 Google SecOps 服務帳戶
Google SecOps 服務帳戶需要 Cloud Storage bucket 的兩項角色:Storage 物件檢視者 (可讀取記錄物件),以及 bucket 層級角色 (可讀取 bucket 中繼資料)。
- 依序前往「Cloud Storage」>「Buckets」。
- 按一下 bucket 名稱 (例如
netskope-webtx-logs)。 - 前往「權限」分頁標籤。
- 按一下「授予存取權」。
- 提供下列設定詳細資料:
- 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址 (例如
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com) - 指派角色:選取下列兩個角色:
- Storage 物件檢視者:讀取記錄物件。
- Storage 舊版 bucket 讀取者:讀取 bucket 中繼資料。如果您選取「刪除已轉移的檔案和空白目錄」刪除選項,請改為選取「Storage Legacy Bucket Writer」,這也會授予刪除權限。
- 新增主體:貼上 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 用戶端,且已設定 Tenant 外掛程式和 Log Shipper 模組。
- 在 Log Shipper 中設定的 Netskope CLS 來源外掛程式 (會從 Netskope 租戶提取資料)。
- 建立 Cloud Storage bucket,用於儲存 WebTx 記錄。如果尚未建立,請按照「建立 Cloud Storage bucket」中的步驟操作。
- 具備 Cloud Storage bucket 寫入權限的 Google Cloud 服務帳戶。如果尚未建立,請按照「建立服務帳戶 Google Cloud 」、「產生 JSON 金鑰」和「授予 Cloud Storage 值區的寫入權限」中的步驟操作。
設定 Cloud Storage 目的地外掛程式
- 在 Cloud Exchange 中,依序前往 「Settings」 > 「Plugin Store」。
- 搜尋並選取「Google Cloud SCC (Google GCS)」外掛程式。
- 按一下「設定新外掛程式」 (或新增外掛程式設定)。
- 提供下列設定詳細資料:
- 設定名稱:輸入描述性名稱 (例如
GCS WebTx Destination)。 - 對應:選取對應檔。如果是以原始
.gzip檔案推送的 WebTx 記錄,系統不會套用任何對應轉換。 - Bucket:輸入 Cloud Storage bucket 的名稱 (例如
netskope-webtx-logs)。 - 路徑 (選用):輸入資料夾路徑 (例如
netskope/webtx/)。 - 金鑰檔案:貼上服務帳戶 JSON 金鑰檔案的完整內容,而不只是
private_key值。
- 設定名稱:輸入描述性名稱 (例如
- 按一下 [儲存]。
- 新的外掛程式設定會顯示在「記錄檔傳送器」>「外掛程式」頁面。
設定業務規則 (選用)
根據預設,「所有」業務規則會篩選所有快訊和事件。如要專門篩選 WebTx 記錄,請建立新的業務規則:
- 在 Log Shipper 中,前往「Business Rules」。
- 按一下「建立新規則」。
- 輸入「規則名稱」,例如
WebTx Only。 - 設定篩選器,只納入 WebTx 資料。
- 按一下 [儲存]。
設定記錄檔傳送功能
- 在「Log Shipper」中,前往「Log Delivery」。
- 按一下「新增記錄檔傳送設定」。
- 請提供下列設定詳細資料:
- 來源設定:選取 Netskope CLS 來源外掛程式 (例如
WebTxCLS或Netskope CLS)。 - 「Destination Configuration」(目的地設定):選取您設定的 Cloud Storage 目的地外掛程式 (例如
GCS WebTx Destination)。 - 業務規則:選取業務規則 (例如
All或WebTx Only)。
- 來源設定:選取 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」(傳送至外部接收者的記錄/WebTx 總數) 和「Total WebTx Sent to Storage Bucket」(傳送至儲存空間 bucket 的 WebTx 總數) 欄,確認資料已推送至目的地。
- 在 GCS bucket 中,確認 Log Shipper 正在寫入
.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:衍生值,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:剖析的使用者代理程式,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 | 系統會合併日期和時間,並轉換為紀元秒數和奈秒。奈秒設為 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 | 直接從對應的 grok 欄位對應 |
| 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 欄位對應 |
| 中介 | 中介:中介 | 直接從對應的 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 | 系統會使用「parseduseragent」篩選器剖析 requestClientApplication 欄位,藉此衍生 network.http.parsed_user_agent |
| 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 | 直接從對應的 grok 欄位對應 |
| 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 | 系統會合併日期和時間,並轉換為紀元秒數和奈秒。奈秒設為 0。 |
| 時間戳記 | metadata.event_timestamp.seconds:時間戳記 | 直接從對應的 CEF 欄位對應 |
| ts | metadata.event_timestamp.seconds:來自 ts 的 Epoch 秒數,metadata.event_timestamp.nanos:0 | 時間戳記會轉換為 Epoch 秒和奈秒。奈秒設為 0。 |
| 網址 | target.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 | 直接從對應的 grok 欄位對應 |
| 版本 | 未對應 | 這個欄位未對應至 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 | 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 專業人員尋求解答。