收集 Akamai DNS 記錄
剖析器版本:4.0
本文說明如何使用 Google Cloud Storage V2,將 Akamai DNS 記錄檔擷取至 Google Security Operations。
Akamai Edge DNS 是權威 DNS 服務,可提供快速、高可用性且安全的 DNS 解析服務。這項服務會運用 Akamai Intelligent Edge Platform,從最接近的 PoP 提供 DNS 回應,並內建 DDoS 防護機制和 DNSSEC 支援功能。您可以使用 Akamai DataStream 2 將 Edge DNS 查詢記錄串流至 Google Cloud Storage 值區,然後由 Google SecOps 擷取。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- 已啟用 Cloud Storage API 的 GCP 專案
- 建立及管理 GCS bucket 的權限
- 管理 Google Cloud Storage 值區 IAM 政策的權限
- 具備 DataStream 存取權的 Akamai Control Center 帳戶
- 包含 Edge DNS 和 DataStream 2 的 Akamai 合約
- 在 Akamai 帳戶中設定並啟用 Edge DNS 區域
建立 Google Cloud Storage bucket
- 前往 Google Cloud 控制台。
- 選取專案或建立新專案。
- 在導覽選單中,依序前往「Cloud Storage」>「Bucket」。
- 按一下「建立值區」。
請提供下列設定詳細資料:
設定 值 為 bucket 命名 輸入全域不重複的名稱 (例如 akamai-dns-logs)位置類型 根據需求選擇 (區域、雙區域、多區域) 位置 選取位置 (例如 us-central1)儲存空間級別 標準 (建議用於經常存取的記錄) 存取控管 統一 (建議) 保護工具 選用:啟用物件版本管理或保留政策 點選「建立」。
為 DataStream 2 建立 GCS 服務帳戶
DataStream 2 需要具備寫入權限的 GCS 服務帳戶,才能將記錄檔傳送到值區。
建立服務帳戶
- 在 GCP 控制台中,依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
- 按一下「Create Service Account」(建立服務帳戶)。
- 請提供下列設定詳細資料:
- 服務帳戶名稱:輸入
akamai-datastream-sa - 服務帳戶說明:輸入
Service account for Akamai DataStream 2 to write Edge DNS logs to GCS
- 服務帳戶名稱:輸入
- 按一下「建立並繼續」。
- 在「將專案存取權授予這個服務帳戶」部分,新增下列角色:
- 按一下「選擇角色」。
- 搜尋並選取「Storage 物件建立者」。
- 按一下「繼續」。
- 按一下 [完成]。
建立並下載服務帳戶金鑰
- 在 GCP 控制台中,依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
- 按一下服務帳戶 (
akamai-datastream-sa)。 - 前往「金鑰」分頁標籤。
- 依序點選「新增金鑰」>「建立新的金鑰」。
- 選取「JSON」做為金鑰類型。
- 點選「建立」。
- 請妥善儲存下載的 JSON 金鑰檔案。設定 DataStream 2 時,您需要服務帳戶名稱和私密金鑰值。
授予 GCS 值區的 IAM 權限
將 GCS bucket 的寫入權限授予服務帳戶:
- 依序前往「Cloud Storage」>「Buckets」。
- 點按 bucket 名稱 (例如
akamai-dns-logs)。 - 前往「權限」分頁標籤。
- 按一下「授予存取權」。
- 請提供下列設定詳細資料:
- 新增主體:輸入服務帳戶電子郵件地址 (例如
akamai-datastream-sa@PROJECT_ID.iam.gserviceaccount.com) - 指派角色:選取「Storage 物件建立者」
- 新增主體:輸入服務帳戶電子郵件地址 (例如
- 按一下 [儲存]。
為 Edge DNS 設定 DataStream 2
DataStream 2 取代舊版記錄檔傳送服務 (LDS),用於串流 Edge DNS 記錄。使用 DataStream 2 建立串流,收集 Edge DNS 查詢記錄並傳送到 GCS bucket。
建立 Edge DNS 串流
- 登入 Akamai Control Center。
- 依序點選「☰」>「COMMON SERVICES」>「DataStream」。
- 按一下 [建立訊息串]。
- 從下拉式清單中選取「Edge DNS」。
- 在「設定」分頁中,提供下列設定詳細資料:
- 顯示名稱:輸入串流的名稱 (例如
Edge DNS to GCS) - 群組:選取相關帳戶控制組
- 合約 ID:驗證與群組相關聯的合約編號
- 顯示名稱:輸入串流的名稱 (例如
- 在「選取區域」中,選擇要讓串流收集記錄資料的 Edge DNS 區域。
- 點選「下一步」。
選擇資料參數
在「資料集」分頁中,選取要納入串流的資料集欄位。Edge DNS 提供下列欄位:
資料元素 JSON 金鑰 說明 Epoch 時間戳記 timeStamp記錄項目的 Unix 紀元時間戳記 日期 date記錄項目的世界標準時間日期 解析器 IP requestIP發出要求的 DNS 解析器 IP 位址 要求通訊埠 requestPortDNS 解析器的通訊埠號碼 要求名稱 requestName要求的查詢名稱 類別 dnsClass要求的 DNS 類別 要求類型 requestType要求的 DNS 記錄類型 EDNS0 旗標 edns0FlagEDNS0 用戶端子網路 (ECS) 指標 EDNS0 大小 edns0SizeECS 欄位大小 (以位元組為單位) DNSSEC 標記 dnssecFlagDNSSEC 指標 TCP 標記 tcpFlagTCP 指示燈 解答 answers要求查詢名稱的答案 時間 time記錄項目的世界標準時間 點選「下一步」。
設定 Google Cloud Storage 目的地
- 在「目的地」分頁標籤中,選取「Google Cloud Storage」。
請提供下列設定詳細資料:
- 「顯示名稱」:輸入目的地的名稱 (例如
GCS Edge DNS Logs)。 - Bucket:輸入 GCS bucket 的名稱 (例如
akamai-dns-logs)。 - 「專案 ID」:輸入 GCP 專案 ID
- 路徑 (選用):輸入記錄檔的資料夾路徑 (例如
akamai-dns) - 服務帳戶名稱:輸入 JSON 金鑰檔案 (
akamai-datastream-sa) 中的服務帳戶名稱 私密金鑰:以 PEM 格式輸入 JSON 金鑰檔案中的
private_key值,並加上換行符號-----BEGIN PRIVATE KEY-----\nprivate_key_content\n-----END PRIVATE KEY-----\n
- 「顯示名稱」:輸入目的地的名稱 (例如
按一下「驗證並儲存」,測試與 GCS bucket 的連線。
(選用) 在「傳送選項」選單中:
- 編輯「檔案名稱」欄位,變更記錄檔的前置字串和後綴字串
- 變更「推送頻率」,每 30 或 60 秒接收一次記錄檔組合包
按一下「下一步」,前往「摘要」分頁。
查看並啟用
- 在「摘要」分頁中,檢查串流設定。
- 按一下「啟用串流」。
- 等待串流狀態變更為「有效」 (可能需要幾分鐘)。
確認記錄傳送的情形
- 啟用串流後,請等待設定的推送頻率間隔 (30 或 60 秒)。
- 前往 Google Cloud 控制台。
- 依序前往「Cloud Storage」>「Buckets」。
- 點按 bucket 名稱 (例如
akamai-dns-logs)。 - 前往路徑資料夾 (例如
akamai-dns/)。 - 確認是否正在建立新的記錄檔。
如果沒有顯示記錄檔,請按照下列步驟操作:
- 在資料串流資訊主頁中,確認串流狀態為「有效」
- 確認服務帳戶具備 bucket 的「Storage 物件建立者」權限
- 確認串流設定中的 bucket 名稱和專案 ID 正確無誤
- 在 DataStream 資訊主頁中檢查驗證錯誤
擷取 Google SecOps 服務帳戶
Google SecOps 會使用專屬服務帳戶,從 GCS bucket 讀取資料。您必須授予這個服務帳戶值區存取權。
取得服務帳戶電子郵件地址
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
Akamai DNS Logs)。 - 選取「Google Cloud Storage V2」做為「來源類型」。
- 選取「AKAMAI_DNS」做為「記錄類型」。
- 按一下「取得服務帳戶」。
系統會顯示專屬服務帳戶電子郵件地址,例如:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com複製這個電子郵件地址,以便在下一步中使用。
點選「下一步」。
指定下列輸入參數的值:
儲存空間 bucket URL:輸入 GCS bucket URI,並加上前置路徑:
gs://akamai-dns-logs/akamai-dns/
來源刪除選項:根據偏好設定選取刪除選項:
- 永不:移轉後一律不刪除任何檔案 (建議用於測試)。
- 刪除已轉移的檔案:成功轉移檔案後刪除檔案。
刪除已轉移的檔案和空白目錄:成功轉移後刪除檔案和空白目錄。
檔案存在時間上限:包含在過去天數內修改的檔案 (預設為 180 天)
資產命名空間:資產命名空間
擷取標籤:要套用至這個動態饋給事件的標籤
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
將 IAM 權限授予 Google SecOps 服務帳戶
Google SecOps 服務帳戶需要 GCS bucket 的「Storage 物件檢視者」角色。
- 依序前往「Cloud Storage」>「Buckets」。
- 點按 bucket 名稱 (例如
akamai-dns-logs)。 - 前往「權限」分頁標籤。
- 按一下「授予存取權」。
- 請提供下列設定詳細資料:
- 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址
- 指派角色:選取「Storage 物件檢視者」
按一下 [儲存]。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
timestamp |
metadata.event_timestamp |
從原始記錄的 timestamp 欄位剖析。 |
source_ip |
principal.ip |
這個值取自 source_ip 欄位。 |
source_port |
principal.port |
這個值取自 source_port 欄位,並轉換為整數。 |
query |
network.dns.questions.name |
這個值取自 query 欄位。 |
query_type |
network.dns.questions.type |
這個值取自 query_type 欄位,並對應至 DNS 記錄類型。 |
response_code |
network.dns.response_code |
這個值取自 response_code 欄位。 |
metadata.event_type |
如有主要資訊,請設為 NETWORK_DNS;否則請設為 GENERIC_EVENT。 |
|
metadata.product_name |
設為 Akamai DNS。 |
|
metadata.vendor_name |
設為 Akamai。 |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。