收集 Cisco Umbrella 稽核記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 AWS S3 儲存空間,將 Cisco Umbrella 稽核記錄收集到 Google Security Operations 資訊提供。剖析器會將原始 CSV 記錄資料正規化,處理不同的分隔符號和潛在的格式不一致問題。然後,根據記錄類型 (DNS 或稽核),將擷取的欄位對應至相應的 UDM 結構定義,並以額外背景資訊擴充資料,以及將表示法標準化,以利進一步分析。
事前準備
- 確認您擁有 Google SecOps 執行個體。
- 確認您有權存取 AWS IAM 和 S3。
- 確認您具備 Cisco Umbrella 的特殊權限。
設定 Cisco 管理的 Amazon S3 儲存空間
- 登入 Cisco Umbrella 資訊主頁。
- 依序前往「管理」>「記錄管理」。
- 選取「Use a Cisco-managed Amazon S3 bucket」(使用 Cisco 管理的 Amazon S3 bucket) 選項。
- 提供下列設定詳細資料:
- 選取區域:選取離您較近的區域,以降低延遲。
- 選取保留期限:選取時間範圍。保留時間為 7 天、14 天或 30 天。超過所選時間範圍後,系統就會刪除資料,且無法復原。如果擷取週期規律,請使用較短的時間範圍。您日後可以變更保留期限。
- 按一下 [儲存]。
- 按一下「繼續」,確認所選項目並接收啟用通知。
在隨即顯示的「Activation complete」(啟用完成) 視窗中,會顯示「Access key」(存取金鑰) 和「Secret key」(私密金鑰) 值。 - 複製「存取金鑰」和「私密金鑰」值。如果遺失這些金鑰,就必須重新產生。
- 依序點選「我知道了」>「繼續」。
- 摘要頁面會顯示設定和 bucket 名稱。您可以視貴機構的需求開啟或關閉記錄功能。不過,系統會根據保留期限清除記錄,不會因為新增資料而有所不同。
選用:為自行管理的 AWS S3 值區設定使用者存取金鑰
- 登入 AWS 管理主控台。
- 請按照這份使用者指南建立使用者:建立 IAM 使用者。
- 選取建立的「使用者」。
- 選取「安全憑證」分頁標籤。
- 在「Access Keys」部分中,按一下「Create Access Key」。
- 選取「第三方服務」做為「用途」。
- 點選「下一步」。
- 選用:新增說明標記。
- 按一下「建立存取金鑰」。
- 按一下「下載 CSV 檔案」,儲存「存取金鑰」和「私密存取金鑰」,以供日後使用。
- 按一下 [完成]。
- 選取 [權限] 分頁標籤。
- 在「Permissions policies」(權限政策) 區段中,按一下「Add permissions」(新增權限)。
- 選取「新增權限」。
- 選取「直接附加政策」。
- 搜尋並選取 AmazonS3FullAccess 政策。
- 點選「下一步」。
- 按一下「Add permissions」。
選用:設定自行管理的 Amazon S3 值區
登入 AWS 管理主控台。
前往 S3。
點選「建立值區」。
請提供下列設定詳細資料:
- 「Bucket name」(儲存桶名稱):提供 Amazon S3 儲存桶的名稱。
- 「Region」(區域):選取區域。
點選「建立」。
選用:為自行管理的 AWS S3 值區設定值區政策
- 按一下新建立的 bucket 開啟。
- 依序選取「內容」> 權限。
- 在「Permissions」(權限) 清單中,按一下「Add bucket policy」(新增 bucket 政策)。
輸入預先設定的值區政策,如下所示:
{ "Version": "2008-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::BUCKET_NAME/*" }, { "Sid": "", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BUCKET_NAME/*"}, { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::BUCKET_NAME" }, { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::568526795995:user/logs" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::BUCKET_NAME" } ] }
- 將
BUCKET_NAME
替換成您提供的 Amazon S3 bucket 名稱。
- 將
按一下 [儲存]。
選用:自行管理的 Amazon S3 儲存貯體必須通過驗證
- 在 Cisco Umbrella 資訊主頁中,依序選取「Admin」>「Log management」>「Amazon S3」。
- 在「Bucket name」欄位中,指定確切的 Amazon S3 值區名稱,然後按一下「Verify」。
- 在驗證過程中,系統會將名為
README_FROM_UMBRELLA.txt
的檔案從 Cisco Umbrella 上傳至 Amazon S3 值區。上傳讀我檔案後,可能需要重新整理瀏覽器才能看到。 - 下載
README_FROM_UMBRELLA.txt
檔案,然後使用文字編輯器開啟。 - 複製並儲存檔案中的專屬 Cisco Umbrella 權杖。
- 前往 Cisco Umbrella 資訊主頁。
- 在「權杖號碼」欄位中指定權杖,然後按一下「儲存」。
- 如果驗證成功,資訊主頁會顯示確認訊息,指出儲存空間已通過驗證。如果收到錯誤訊息,指出無法驗證儲存空間,請重新檢查儲存空間名稱的語法,並檢查設定。
在 Google SecOps 中設定動態饋給,擷取 Cisco Umbrella 稽核記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱,例如「Cisco Umbrella Audit Logs」。
- 選取「Amazon S3 V2」做為「來源類型」。
- 選取「Cisco Umbrella Audit」做為「記錄類型」。
- 點選「下一步」。
指定下列輸入參數的值:
- S3 URI:值區 URI。
s3:/BUCKET_NAME
- 請將
BUCKET_NAME
替換為實際值區名稱。
- 請將
- 來源刪除選項:根據偏好設定選取刪除選項。
- S3 URI:值區 URI。
點選「下一步」。
在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
action_type | security_result.action_details | 直接從原始記錄欄位 action_type 對應。 |
action_type | security_result.action | 如果 action_type 包含 allow (不區分大小寫),請設為 ALLOW 。如果 action_type 包含 block (不區分大小寫),請設為 BLOCK 。 |
additionalValue | additional.fields{}.key | 設為 Additional Value 。 |
additionalValue | additional.fields{}.value.string_value | 直接從原始記錄欄位 additionalValue 對應。 |
blocked_categories | additional.fields{}.key | 設為 blocked_categories 。 |
blocked_categories | additional.fields{}.value.string_value | 直接從原始記錄欄位 blocked_categories 對應。 |
類別 | security_result.category_details | 直接從原始記錄欄位 categories 對應,並以半形逗號分隔。 |
第 1 欄 | metadata.product_log_id | 如果記錄是稽核記錄,則會從原始記錄欄位 column1 對應。 |
第 1 欄 | date_time | 如果記錄是 DNS 記錄,則會從原始記錄欄位 column1 對應。 |
column10 | 類別 | 直接從原始記錄欄位 column10 對應。 |
column11 | most_granular_identity_type | 直接從原始記錄欄位 column11 對應。 |
column12 | identity_types | 直接從原始記錄欄位 column12 對應。 |
column13 | blocked_categories | 直接從原始記錄欄位 column13 對應。 |
第 2 欄 | date_time | 如果記錄是稽核記錄,則會從原始記錄欄位 column2 對應。 |
第 2 欄 | most_granular_identity | 如果記錄是 DNS 記錄,則會從原始記錄欄位 column2 對應。 |
第 3 欄 | principal.user.email_addresses | 如果記錄是稽核記錄,則會從原始記錄欄位 column3 對應。 |
第 3 欄 | 身分 | 如果記錄是 DNS 記錄,則會從原始記錄欄位 column3 對應。 |
column4 | principal.user.userid | 如果記錄是稽核記錄,則會從原始記錄欄位 column4 對應。 |
column4 | internal_ip | 如果記錄是 DNS 記錄,則會從原始記錄欄位 column4 對應。 |
column5 | security_result.rule_name | 如果記錄是稽核記錄,則會從原始記錄欄位 column5 對應。 |
column5 | external_ip | 如果記錄是 DNS 記錄,則會從原始記錄欄位 column5 對應。 |
column6 | action_type | 直接從原始記錄欄位 column6 對應。 |
column7 | principal.ip | 如果記錄是稽核記錄,則會從原始記錄欄位 column7 對應。 |
column7 | dns_query_type | 如果記錄是 DNS 記錄,則會從原始記錄欄位 column7 對應。 |
column8 | additionalValue | 如果記錄是稽核記錄,則會從原始記錄欄位 column8 對應。 |
column8 | dns_response_code | 如果記錄是 DNS 記錄,則會從原始記錄欄位 column8 對應。 |
column9 | 網域 | 直接從原始記錄欄位 column9 對應。 |
date_time | metadata.event_timestamp.seconds | 從 date_time 欄位擷取的 Epoch 時間戳記。 |
dns_query_type | network.dns.questions.type | 使用規則運算式從 dns_query_type 欄位擷取,並轉換為整數。 |
dns_response_code | network.dns.response_code | 從 dns_response_code 欄位對應,並根據 DNS 回應代碼值轉換為整數。 |
網域 | network.dns.questions.name | 直接從「domain 」欄位對應。 |
external_ip | principal.ip | 如果 external_ip 欄位不為空,且與 internal_ip 不同,則會從該欄位對應。 |
身分 | principal.location.name | 如果對應的 identity_types 欄位為 Networks ,則會從 identities 欄位對應。 |
身分 | principal.hostname | 如果對應的 identity_types 欄位為 AD Computers 、Roaming Computers 或 Anyconnect Roaming Client ,則會從 identities 欄位對應。 |
身分 | principal.asset.hostname | 如果對應的 identity_types 欄位為 AD Computers 、Roaming Computers 或 Anyconnect Roaming Client ,則會從 identities 欄位對應。 |
身分 | principal.location.city | 如果對應的 identity_types 欄位為 Sites ,則會從 identities 欄位對應。 |
identity_types | additional.fields{}.key | 設為 identities_types 。 |
identity_types | additional.fields{}.value.string_value | 直接從原始記錄欄位 identity_types 對應。 |
internal_ip | principal.ip | 如果 internal_ip 欄位不為空白,系統會從該欄位對應。 |
most_granular_identity | additional.fields{}.key | 設為 most_granular_identity 。 |
most_granular_identity | additional.fields{}.value.string_value | 直接從原始記錄欄位 most_granular_identity 對應。 |
most_granular_identity_type | additional.fields{}.key | 設為 most_granular_identity_type 。 |
most_granular_identity_type | additional.fields{}.value.string_value | 直接從原始記錄欄位 most_granular_identity_type 對應。 |
metadata.event_type | 如果記錄是 DNS 記錄,請設為 NETWORK_DNS 。 |
|
metadata.event_type | 如果記錄是稽核記錄,且 principal_ip 不為空白,則設為 STATUS_UPDATE 。 |
|
metadata.event_type | 如果記錄是稽核記錄,且 principal_ip 為空白,請設為 GENERIC_EVENT 。 |
|
metadata.vendor_name | 設為 CISCO UMBERLLA 。 |
|
metadata.product_name | 設為 CISCO UMBERLLA 。 |
|
metadata.log_type | 設為 AUDITD 。 |
|
network.application_protocol | 如果記錄是 DNS 記錄,請設為 DNS 。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。