收集 Azure Cosmos DB 記錄

剖析器版本:1.0

支援的國家/地區:

本文說明如何使用 Microsoft Azure Blob 儲存體設定 Google Security Operations 資訊提供,藉此收集 Azure Cosmos DB 記錄。

Azure Cosmos DB 是全代管的多重模型資料庫服務,支援全球分散式架構,具備低延遲、彈性擴充和高可用性等特性。支援多種 API,包括 NoSQL、MongoDB、Apache Cassandra、Apache Gremlin 和 Table。診斷記錄檔會擷取資料層要求、控制層作業、查詢執行階段統計資料,以及分區鍵耗用指標。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體
  • 具備下列權限的 Microsoft Azure 入口網站特殊存取權:
    • 建立儲存空間帳戶
    • 設定 Azure Cosmos DB 的診斷設定
    • 管理存取金鑰
  • 現有的 Azure Cosmos DB 帳戶,且具備設定診斷設定的適當權限

設定 Azure 儲存體帳戶

建立儲存空間帳戶

  1. Azure 入口網站中,搜尋「儲存體帳戶」
  2. 點選「+ 建立」
  3. 請提供下列設定詳細資料:

    設定
    訂閱項目 選取 Azure 訂閱項目
    資源群組 選取現有資料庫或建立新資料庫
    儲存體帳戶名稱 輸入不重複的名稱 (例如 cosmosdbsecops)
    區域 選取區域 (例如 East US)
    效能 標準 (建議)
    備援功能 GRS (異地備援儲存空間) 或 LRS (本機備援儲存空間)
  4. 按一下「Review + create」

  5. 查看帳戶總覽,然後按一下「建立」

  6. 等待部署作業完成。

取得儲存空間帳戶憑證

  1. 前往您剛建立的「儲存空間帳戶」
  2. 在左側導覽中,選取「Security + networking」(安全性 + 網路) 下方的「Access keys」(存取金鑰)
  3. 按一下「顯示金鑰」
  4. 複製並儲存下列項目,以供日後使用:
    • 儲存空間帳戶名稱:您的儲存空間帳戶名稱 (例如 cosmosdbsecops)
    • 「金鑰 1」或「金鑰 2」:共用存取金鑰 (採用 Base64 編碼的 512 位元隨機字串)

取得 Blob 服務端點

  1. 在同一個儲存空間帳戶中,選取左側導覽列的「Endpoints」(端點)
  2. 複製並儲存「Blob service」端點網址。
    • 範例:https://cosmosdbsecops.blob.core.windows.net/

設定 Azure Cosmos DB 診斷設定

  1. Azure 入口網站中,搜尋 Azure Cosmos DB
  2. 選取 Azure Cosmos DB 帳戶。
  3. 在左側導覽面板中,選取「監控」下方的「診斷設定」
  4. 按一下「+ 新增診斷設定」
  5. 請提供下列設定詳細資料:
    • 診斷設定名稱:輸入描述性名稱 (例如 cosmosdb-to-secops)。
    • 在「記錄」部分中,選取下列類別:
      • DataPlaneRequests:資料平面作業記錄,包括讀取、寫入和刪除要求
      • QueryRuntimeStatistics:已執行查詢的查詢文字和執行階段統計資料
      • PartitionKeyStatistics:邏輯分區索引鍵的儲存空間用量統計資料
      • PartitionKeyRUConsumption:每個邏輯分區索引鍵的請求單位消耗量
      • ControlPlaneRequests:控制層作業,包括帳戶修改、容錯移轉政策變更、索引政策更新、VNet 和防火牆規則變更,以及 IAM 角色指派
      • TableApiRequests:Table API 帳戶的資料平面要求 (如適用)
      • MongoRequests:MongoDB API 帳戶的資料平面要求 (如適用)
      • CassandraRequests:Cassandra API 帳戶的資料層要求 (如適用)
      • GremlinRequests:Gremlin API 帳戶的資料平面要求 (如適用)
    • 在「目的地詳細資料」部分,選取「封存至儲存空間帳戶」核取方塊。
    • 訂閱項目:選取包含儲存空間帳戶的訂閱項目。
    • 儲存空間帳戶:選取您建立的儲存空間帳戶 (例如 cosmosdbsecops)。
  6. 按一下 [儲存]

瞭解 Blob 容器結構

  • 設定完成後,記錄會儲存在下列結構中:

    https://<storage-account>.blob.core.windows.net/
      insights-logs-<log-category>/
        resourceId=/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/
          y=<year>/m=<month>/d=<day>/h=<hour>/m=<minute>/
            PT1H.json
    

診斷設定建立的容器範例:

  • insights-logs-dataplanerequests
  • insights-logs-queryruntimestatistics
  • insights-logs-partitionkeystatistics
  • insights-logs-partitionkeyruconsumption
  • insights-logs-controlplanerequests

在 Google SecOps 中設定資訊提供,擷取 Azure Cosmos DB 記錄

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 Azure Cosmos DB Logs)。
  5. 選取「Microsoft Azure Blob Storage V2」做為「來源類型」
  6. 選取「Azure Cosmos DB」做為「記錄類型」
  7. 點選「下一步」
  8. 指定下列輸入參數的值:

    • Azure URI:輸入 Blob 服務端點網址和容器路徑:

      https://cosmosdbsecops.blob.core.windows.net/insights-logs-dataplanerequests/
      

    更改下列內容:

    • cosmosdbsecops:您的 Azure 儲存空間帳戶名稱。
    • insights-logs-dataplanerequests:儲存記錄的 Blob 容器名稱。
    • 來源刪除選項:根據偏好選取刪除選項:
      • 永不:轉移後一律不刪除任何檔案。
      • 刪除已轉移的檔案:成功轉移檔案後刪除檔案。
      • 刪除已轉移的檔案和空白目錄:成功轉移後刪除檔案和空白目錄。
    • 檔案存在時間上限:納入在過去天數內修改的檔案。預設值為 180 天。
    • 共用金鑰:輸入從儲存空間帳戶擷取的共用金鑰值 (存取金鑰)。
    • 資產命名空間資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤。
  9. 點選「下一步」

  10. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)

從多個容器擷取資料

如果您在診斷設定中選取多個記錄類別,每個類別都會建立個別的 Blob 容器。為要擷取的每個容器分別建立動態饋給:

  1. 為主要資料平面記錄檔建立動態饋給 (如上所示)。
  2. 按一下「新增動態饋給」即可建立其他動態饋給。
  3. Azure URI 中使用相同的儲存空間帳戶憑證,但使用不同的容器路徑。

範例:

  • 動態饋給 1 (資料層要求):https://cosmosdbsecops.blob.core.windows.net/insights-logs-dataplanerequests/
  • 動態饋給 2 (查詢執行階段統計資料):https://cosmosdbsecops.blob.core.windows.net/insights-logs-queryruntimestatistics/
  • 動態饋給 3 (控制層要求):https://cosmosdbsecops.blob.core.windows.net/insights-logs-controlplanerequests/
  • 動態消息 4 (分割區鍵 RU 消耗量):https://cosmosdbsecops.blob.core.windows.net/insights-logs-partitionkeyruconsumption/
  • 動態饋給 5 (分割區鍵統計資料):https://cosmosdbsecops.blob.core.windows.net/insights-logs-partitionkeystatistics/

設定 Azure 儲存體防火牆 (如已啟用)

如果 Azure 儲存體帳戶使用防火牆,您必須新增 Google SecOps IP 範圍。

  1. Azure 入口網站中,前往「儲存體帳戶」
  2. 選取「Security + networking」(安全性 + 網路) 下方的「Networking」(網路)
  3. 在「防火牆和虛擬網路」下方,選取「從所選虛擬網路和 IP 位址啟用」
  4. 在「防火牆」部分的「位址範圍」下方,按一下「+ 新增 IP 範圍」
  5. 以 CIDR 標記法新增每個 Google SecOps IP 範圍。

    如要取得目前的 IP 範圍,請按照下列步驟操作:

  6. 按一下 [儲存]

UDM 對應表

記錄欄位 UDM 對應 邏輯
activity_id_label additional.fields 已合併
additional_Channel additional.fields 已合併
additional_Event_Origin_Id additional.fields 已合併
additional_Management_Group_Name additional.fields 已合併
additional_Source_System additional.fields 已合併
additional_Task additional.fields 已合併
auth_token_type_label additional.fields 已合併
collection_rid_label additional.fields 已合併
connection_mode_label additional.fields 已合併
key_type_label additional.fields 已合併
number_of_rows_returned_label additional.fields 已合併
operation_name_label additional.fields 已合併
param_value additional.fields 已對應:trueparameter_label
parameter_label additional.fields 已合併
partition_id_label additional.fields 已合併
shapesignature_label additional.fields 已合併
signature_label additional.fields 已合併
properties.partialipaddress intermediary.ip 已合併
Activity metadata.description 直接對應
time metadata.event_timestamp 已剖析為 ISO8601
TenantId metadata.product_deployment_id 直接對應
EventSourceName metadata.product_event_type 直接對應
category metadata.product_event_type 直接對應
EventID metadata.product_log_id 直接對應
properties.statusCode network.http.response_code 直接對應
properties.userAgent network.http.user_agent 直接對應
properties.useragent network.http.user_agent 直接對應
properties.responseLength network.received_bytes 直接對應
properties.requestLength network.sent_bytes 直接對應
SubjectDomainName principal.administrative_domain 直接對應
domain principal.administrative_domain 直接對應
SourceComputerId principal.asset.asset_id 直接對應
Computer principal.hostname 直接對應
properties.clientIpAddress principal.ip 已合併
EventSourceName principal.platform 對應:(?i)WindowsWINDOWS(?i)macMAC(?i)LinuxLINUX
SubjectUserName principal.user.user_display_name 直接對應
user_name principal.user.user_display_name 直接對應
Account principal.user.userid 直接對應
SubjectLogonId principal.user.userid 直接對應
SubjectUserSid principal.user.windows_sid 直接對應
properties.queryexecutionstatus security_result.summary 直接對應
TargetDomainName target.administrative_domain 直接對應
target_application target.application 已重新命名/對應
FilePath target.file.full_path 直接對應
FileHash target.file.sha256 直接對應
properties.region target.location.country_or_region 直接對應
CommandLine target.process.command_line 直接對應
properties.querytext.query target.process.command_line 直接對應
Process target.process.file.full_path 直接對應
ParentProcessName target.process.parent_process.file.full_path 直接對應
ProcessId target.process.pid 直接對應
Token_Elevation_Type target.resource.attribute.labels 已合併
Workspace_Resource_Id target.resource.attribute.labels 已合併
resource_attribute_labels target.resource.attribute.labels 已重新命名/對應
properties.databaseName target.resource.name 直接對應
properties.databasename target.resource.name 直接對應
_ResourceId target.resource.product_object_id 直接對應
resourceId target.resource.product_object_id 直接對應
properties.collectionName target.resource.resource_subtype 直接對應
properties.collectionname target.resource.resource_subtype 直接對應
TargetUserName target.user.user_display_name 直接對應
TargetLogonId target.user.userid 直接對應
TargetUserSid target.user.windows_sid 直接對應
不適用 metadata.event_type 常數:USER_RESOURCE_ACCESS
不適用 metadata.product_name 常數:Azure Cosmos DB
不適用 metadata.vendor_name 常數:Microsoft
不適用 principal.platform 常數:WINDOWS
不適用 target.resource.resource_type 常數:DATABASE
_Internal_WorkspaceResourceId", "TokenElevationType target.resource.attribute.labels 從變更記錄對應
Channel", "Task", "SourceSystem", "EventOriginId", "ManagementGroupName additional.fields 從變更記錄對應

變更記錄

查看這個剖析器的變更記錄

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。