收集 Dope Security SWG 記錄
剖析器版本:1.0
本文說明如何使用 Amazon S3,將 Dope Security SWG 記錄擷取至 Google Security Operations。
Dope Security dope.swg 是以端點為基礎的安全網路閘道,可提供即時網頁篩選、惡意軟體防護和雲端應用程式控管功能。每個 dope.endpoint 每 15 分鐘會將網路交易記錄傳送至 dope.cloud,然後系統會自動將這些記錄匯出至 AWS S3 bucket,並以壓縮的 GZIP JSONL 格式整合至 SIEM。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Dope Security dope.console 的特殊存取權
- AWS (S3、IAM) 的特殊存取權
- Dope Security 租戶必須與 S3 值區位於相同 AWS 區域 (請在「Settings」>「SIEM」頁面中驗證區域)
設定 Dope Security SIEM 整合
如要設定 Dope Security SIEM 整合,請按照下列步驟操作:
- 前往 https://console.dope.security 登入 dope.console
- 依序前往「設定」>「SIEM」>「SIEM 整合設定」。
- 在「SIEM Type」(SIEM 類型) 清單中,選取「AWS S3」。
記下頁面右側顯示的 AWS 區域 (例如 US-EAST-2)。
請勿關閉這個頁面,因為設定 AWS S3 後,您將返回這個頁面完成設定。
為 Google SecOps 設定 AWS S3 值區和 IAM
- 建立 Amazon S3 bucket。詳情請參閱「建立 bucket」一節。
- 建立值區時,請確認「Region」(區域) 與 Dope Security SIEM Integration 頁面中顯示的區域相符 (例如「US East (Ohio) us-east-2」)。
儲存 bucket 名稱,以供日後參考 (例如
chronicle-dope-swg-logs)。建立「使用者」。詳情請參閱「建立 IAM 使用者」。
選取您建立的使用者。
選取「安全憑證」分頁標籤。
在「Access Keys」部分中,按一下「Create Access Key」。
選取「第三方服務」做為「用途」。
點選「下一步」。
選用:新增說明標記。
按一下「建立存取金鑰」。
按一下「Download .csv file」(下載 .csv 檔案),儲存「Access Key」(存取金鑰) 和「Secret Access Key」(私密存取金鑰),以供日後參考。
按一下 [完成]。
選取「權限」分頁標籤。
在「權限政策」部分中,按一下「新增權限」。
選取「新增權限」。
選取「直接附加政策」。
搜尋「AmazonS3FullAccess」AmazonS3FullAccess政策。
選取政策。
點選「下一步」。
按一下「Add permissions」。
設定 Dope Security Amazon S3 連線
- 返回「Settings」(設定) >「SIEM」>「SIEM Integration Settings」(SIEM 整合設定) 頁面,網址為 dope.console。
- 在「S3 Bucket Name」(S3 值區名稱) 欄位中,輸入 S3 值區的名稱 (例如
chronicle-dope-swg-logs)。 - 在右側窗格中,您會看到「Bucket Policy」(Bucket 政策) 部分,其中包含預先產生的 JSON 政策。
- 按一下政策 JSON 旁的「複製」,將其複製到剪貼簿。
- 在新的瀏覽器分頁中前往 AWS S3 控制台。
- 選取 S3 儲存貯體 (例如
chronicle-dope-swg-logs)。 - 前往「權限」分頁標籤。
- 向下捲動至「Bucket policy」(儲存空間政策) 部分。
- 按一下 [編輯]。
- 將從 dope.console 複製的政策 JSON 貼到「政策」文字區域。
- 按一下 [儲存變更]。
- 返回 dope.console 瀏覽器分頁。
- 按一下「SIEM 整合設定」頁面底部的「同步」。
- 等待同步完成。
- 確認「S3 Bucket Name」(S3 值區名稱) 欄位旁顯示綠色勾號。
確認頁面右上角顯示「上次同步」時間戳記。
在 Google SecOps 中設定動態饋給,擷取 Dope Security SWG 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 輸入專屬的動態饋給名稱 (例如
Dope Security SWG Logs)。 - 選取「Amazon S3 V2」做為「來源類型」。
- 選取「DOPE_SWG」做為「記錄類型」。
- 依序點按「繼續」和「提交」。
為下列欄位指定值:
- S3 URI:
s3://chronicle-dope-swg-logs/(請替換為您的 bucket 名稱) - 來源刪除選項:根據偏好設定選取刪除選項
- 檔案存在時間上限:包含在過去天數內修改的檔案 (預設為 180 天)
- 存取金鑰 ID:具有 S3 值區存取權的使用者存取金鑰 (來自 AWS 設定的步驟 12)
- 存取密鑰:可存取 S3 值區的使用者密鑰 (來自 AWS 設定的步驟 12)
- 資產命名空間:資產命名空間
- 擷取標籤:要套用至這個動態饋給事件的標籤
- S3 URI:
依序點按「繼續」和「提交」。
記錄資料格式參考資料
Dope Security 會以 JSONL (JSON Lines) 格式匯出記錄,並採用 GZIP 壓縮。每個記錄項目都包含下列重要欄位:
| 欄位 | 說明 |
|---|---|
| 時間戳記 | 要求進行網路交易時的 ISO 8601 時間戳記 |
| 時間長度 | 連線時間長度 (毫秒) |
| 相符目的地 | 與藥物類別相符的網域 |
| 目的地 IP | 所要求網址的目的地 IP 位址 |
| 用戶群 ID | 客戶的 dope.cloud 專屬租戶 ID |
| 代理商 ID | dope.endpoint 的專屬代理程式 ID |
| 使用者 | 在 dope.endpoint 登入的使用者 |
| OIDC 使用者 | 經過驗證的使用者電子郵件地址 (啟用 OIDC 驗證時) |
| 類別 | 所要求網址相符的毒品類別編號 (0 到 88) |
| 認定結果 | 政策判定結果:允許 (0)、封鎖 (1)、警告 (2) 或略過 (3) |
| 已傳送的資料 | 連線中傳送的資料量 (位元組) |
| 收到的資料 | 連線中收到的資料量 (位元組) |
| 政策類型 | 套用的政策類型:網站、雲端應用程式控管 (CAC)、自訂類別、略過或惡意軟體 |
| 封鎖詳細資料 | 封鎖判決:藥物類別、自訂類別、雲端應用程式或惡意軟體類型 |
| 檔案名稱 | 任何已下載檔案的名稱 |
| 檔案雜湊 | 下載檔案的檔案雜湊 |
| 程序名稱 | 發出網址要求的程序名稱 |
| 網址 | 完整要求的網址 |
| 政策名稱 | 套用的政策名稱 |
| 通訊協定 | 使用的通訊協定 (例如 HTTP/2、HTTP/1.1) |
| 主機名稱 | 裝置主機名稱 |
| HTTP 要求方法 | HTTP 要求方法 (例如 GET、POST、PUT) |
| Process Call Tree | 透過指令引數從程序產生作業建立父項/子項關係 |
如要查看完整的類別和判定對應關係,請參閱「Dope Security Category & Verdict Mappings」說明文件。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
| policy.categories、request.processTree | additional.fields | 以 JSON 格式從 policy.categories 和 request.processTree 合併為清單 |
| 時間戳記 | metadata.event_timestamp | 在 JSON 和 CSV 中都會剖析為 ISO8601 時間戳記 |
| metadata.event_type | 如果 JSON 中有 has_principal、has_target、has_http,則設為 NETWORK_HTTP;如果只有 has_principal 和 has_target,則設為 NETWORK_CONNECTION;如果只有 has_user,則設為 USER_UNCATEGORIZED;如果只有 has_principal,則設為 STATUS_UPDATE;否則設為 GENERIC_EVENT;在 CSV 中則設為 NETWORK_HTTP | |
| schemaVersion | metadata.product_version | 直接從 JSON 中的 schemaVersion 複製的值 |
| request.httpVersion | network.http.user_agent | 直接從 JSON 中的 request.httpVersion 複製的值 |
| bandwidth.dataReceivedInBytes、bytes_received | network.received_bytes | 如果不是空白或 0,則從 JSON 中的 bandwidth.dataReceivedInBytes 或 CSV 中的 bytes_received 轉換為 uinteger |
| bandwidth.dataSentInBytes、bytes_sent | network.sent_bytes | 如果頻寬不是空白且不是 0,則從 JSON 中的 bandwidth.dataSentInBytes 或 CSV 中的 bytes_sent 轉換為 uinteger |
| request.duration | network.session_duration.seconds | 從 JSON 中的 request.duration 轉換為整數 |
| endpoint.agentID、endpoint_id | principal.asset.asset_id | 前置字元為 DS:來自 JSON 中的 endpoint.agentID 或 CSV 中的 endpoint_id |
| endpoint.tenantID | principal.asset.attribute.cloud.project.id | 直接從 JSON 中的 endpoint.tenantID 複製的值 |
| endpoint.deviceName | principal.asset.hostname | 直接從 JSON 中的 endpoint.deviceName 複製的值 |
| endpoint.deviceName、endpoint_hostname | principal.hostname | JSON 中的 endpoint.deviceName 或 CSV 中的 endpoint_hostname 值 |
| request.processName | principal.process.command_line | 直接從 JSON 中的 request.processName 複製的值 |
| process_name | principal.process.file.names | 直接從 CSV 中的 process_name 複製值 |
| sso_user、user | principal.user.account_type | 如果 sso_user 不為空白,則設為 DOMAIN_ACCOUNT_TYPE,否則設為 CSV 中的 LOCAL_ACCOUNT_TYPE |
| endpoint.oidcUser | principal.user.email_addresses | 如果 endpoint.oidcUser 符合 JSON 中的電子郵件規則運算式,則會合併 |
| endpoint.oidcUser | principal.user.user_display_name | 如果端點的 oidcUser 不符合 JSON 中的電子郵件 regex,則直接複製值 |
| endpoint.user、sso_user、user | principal.user.userid | JSON 中的 endpoint.user 值;如果 sso_user 不為空,則為 sso_user,否則為 CSV 中的 user |
| security_result | security_result | 從 JSON 中的 security_result 合併 |
| policy.verdict、verdict | security_result.action | 如果 JSON 或 CSV 中的 policy.verdict 為 1,則設為 BLOCK;如果為 0,則設為 ALLOW;如果為 2,則設為 CHALLENGE |
| 類別 | security_result.action_details | 直接從 CSV 檔案中的類別複製值 |
| policy.policyName | security_result.rule_name | 直接從 JSON 中的 policy.policyName 複製的值 |
| policy.policyType | security_result.rule_type | 直接從 JSON 中的 policy.policyType 複製的值 |
| file_name | target.file.names | 直接從 CSV 中的 file_name 複製的值 |
| file_hash | target.file.sha256 | 直接從 CSV 中的 file_hash 複製的值 |
| destination.matchedDestination、domain | target.hostname | 如果 JSON 中沒有 IP,則為 destination.matchedDestination 中的值;如果為 CSV,則為網域中的值 |
| destination.matchedDestination、destination.destinationIP、ip | target.ip | 如果 IP 位於 JSON 中,則為 destination.matchedDestination 或 destination.destinationIP 的值;如果 IP 位於 CSV 中,則為 ip 的值 |
| destination.url、url | target.url | JSON 中的 destination.url 值;CSV 中的 url 值 |
| metadata.product_name | 在 JSON 中設為「DOPE_SWG」,在 CSV 中設為「SWG」 | |
| metadata.vendor_name | 在 JSON 中設為「DOPE_SWG」,在 CSV 中設為「Dope Security」 |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。