收集 Dope Security SWG 記錄
本文說明如何使用 Amazon S3,將 Dope Security SWG 記錄擷取至 Google Security Operations。
Dope Security dope.swg 是以端點為基礎的安全網路閘道,可提供即時網路篩選、惡意軟體防護和雲端應用程式控管功能。每 15 分鐘,每個 dope.endpoint 都會將網路交易記錄傳送至 dope.cloud,然後自動以壓縮的 GZIP JSONL 格式匯出至 AWS S3 值區,以供 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」一節。
- 建立值區時,請確認「Region」(區域) 與 Dope Security SIEM 整合頁面中顯示的區域相符 (例如「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 bucket 的名稱 (例如
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 | 如果頻寬的 bandwidth.dataSentInBytes (JSON) 或 bytes_sent (CSV) 不為空白且不為 0,則會轉換為 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 中的 policy.verdict 或 CSV 中的 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 專業人員尋求答案。