收集 Oracle Cloud Infrastructure - Oracle Cloud Guard 記錄

支援的國家/地區:

本文說明如何設定 Oracle Cloud Infrastructure Cloud Guard,透過 Webhook 將記錄檔推送至 Google Security Operations。

Oracle Cloud Guard 是一項雲端原生安全防護服務,可監控及識別 Oracle Cloud Infrastructure (OCI) 的安全狀態,並協助維持強大的安全防護。Cloud Guard 會檢查 OCI 資源的設定相關安全弱點,並偵測異常活動。Cloud Guard 發現偵測器規則有偏差時,會建立問題事件,全面監控 OCI 租戶的安全。這項整合功能會使用 OCI Events Service 和 OCI Functions,將 Cloud Guard 問題事件近乎即時轉送至 Google SecOps。

事前準備

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

  • Google SecOps 執行個體
  • 已啟用 Cloud Guard 的有效 Oracle Cloud Infrastructure 租戶
  • Oracle Cloud Infrastructure 主控台的管理員存取權
  • 建立及管理 OCI Functions 應用程式的權限
  • 建立 OCI Events 規則和通知主題的權限
  • 存取 OCI Cloud Shell,或安裝 Fn Project CLI 的本機環境
  • 已安裝 Docker (用於在本機建構 OCI 函式)
  • 存取 Google Cloud 控制台 (用於建立 API 金鑰)

在 Google SecOps 中建立 Webhook 動態饋給

建立動態饋給

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 OCI Cloud Guard Problems)。
  5. 選取「Webhook」做為「來源類型」
  6. 選取「Oracle Cloud Infrastructure - Oracle Cloud Guard」做為「記錄類型」
  7. 點選「下一步」
  8. 指定下列輸入參數的值:
    • 分割分隔符 (選填):留空 (每次函式叫用都會傳送單一事件)。
    • 資產命名空間資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤
  9. 點選「下一步」
  10. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)

產生並儲存密鑰

建立動態饋給後,您必須產生驗證用的密鑰:

  1. 在動態饋給詳細資料頁面中,按一下「產生密鑰」
  2. 對話方塊會顯示密鑰。
  3. 複製並妥善儲存密鑰。

重要事項:密鑰只會顯示一次,之後便無法擷取,如果遺失,就必須產生新的密鑰。

取得動態消息端點網址

  1. 前往動態消息的「詳細資料」分頁。
  2. 在「端點資訊」部分,複製「動態消息端點網址」
  3. 網址格式為:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    

    https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    
  4. 請儲存這個網址,以供後續步驟使用。

  5. 按一下 [完成]

建立 Google Cloud API 金鑰

Chronicle 需要 API 金鑰才能進行驗證。在 Google Cloud 控制台中建立受限制的 API 金鑰。

建立 API 金鑰

  1. 前往 Google Cloud 控制台的「憑證」頁面
  2. 選取專案 (與 Chronicle 執行個體相關聯的專案)。
  3. 依序按一下「建立憑證」>「API 金鑰」
  4. 系統會建立 API 金鑰,並顯示在對話方塊中。
  5. 按一下「編輯 API 金鑰」即可限制金鑰。

限制 API 金鑰

  1. 在「API 金鑰」設定頁面中:
    • 名稱:輸入描述性名稱 (例如 Chronicle Webhook API Key)
  2. 在「API 限制」下方:
    1. 選取「Restrict key」(限制金鑰)
    2. 在「選取 API」下拉式選單中,搜尋並選取「Google SecOps API」 (或「Chronicle API」)。
  3. 按一下 [儲存]
  4. 從頁面頂端的「API key」(API 金鑰) 欄位複製 API 金鑰值。
  5. 安全地儲存 API 金鑰。

啟用 Cloud Guard Cloud Event 回應程式

Cloud Guard 會使用 Cloud Event 回應程式,將問題詳細資料發送至 OCI Events Service。Cloud Event 回覆者是 Responder 配方的一部分,必須啟用並設為自動執行。

在 Responder 食譜中啟用 Cloud Event 規則

  1. 登入 Oracle Cloud Infrastructure Console
  2. 開啟導覽選單,依序選取「身分與安全性」>「Cloud Guard」>「配方」
  3. 選取「Responder Recipes」
  4. 按一下附加至目標的回覆者配方。
  5. 在「回應者規則」部分,找出「雲端事件」規則。
  6. 如果狀態為「已停用」
    1. 開啟「動作」選單 (三點圖示),然後選取「編輯」
    2. 將「狀態」變更為「已啟用」
    3. 按一下 [儲存]

在目標上設定自動執行

  1. Oracle Cloud Infrastructure Console 中,開啟導覽選單,然後依序選取「Identity & Security」>「Cloud Guard」>「Configuration」>「Targets」
  2. 選取目標區間。
  3. 在「資源」下方,選取「回覆者食譜」
  4. 按一下回覆者方案連結。
  5. 找到「Cloud Event」回應者規則。
  6. 開啟「動作」選單 (三點圖示),然後選取「編輯」
  7. 將「規則觸發條件」設為「自動執行」
  8. 勾選「確認自動執行」核取方塊。
  9. 按一下 [儲存]

建立 OCI Functions 應用程式

建立 OCI Functions 應用程式,用於代管負責將 Cloud Guard 事件轉送至 Google SecOps 的函式。

建立應用程式

  1. Oracle Cloud Infrastructure Console 中,開啟導覽選單,然後依序選取「Developer Services」>「Functions」>「Applications」
  2. 選取要建立應用程式的區間。
  3. 點選「Create Application」(建立應用程式)
  4. 請提供下列設定詳細資料:
    • 「Name」(名稱):輸入 cloudguard-chronicle-forwarder
    • VCN:選取可存取網際網路的 VCN (函式必須存取網際網路,才能連上 Chronicle Webhook 端點)
    • 子網路:選取已設定 NAT 閘道的公用子網路或私有子網路
  5. 點選「建立」

建立及部署函式

使用 OCI Cloud Shell 或本機環境搭配 Fn Project CLI,建立及部署函式。

  1. 從 Oracle Cloud Infrastructure 控制台開啟 OCI Cloud Shell (按一下頂端導覽列中的 Cloud Shell 圖示)。
  2. 為 OCI Functions 應用程式設定 Fn 環境:

    fn list context
    fn use context <your-region-context>
    fn update context oracle.compartment-id <compartment_OCID>
    fn update context registry <region-key>.ocir.io/<tenancy-namespace>/cloudguard-chronicle
    
  3. 初始化新的 Python 函式:

    fn init --runtime python cloudguard-to-chronicle
    cd cloudguard-to-chronicle
    
  4. func.py 檔案的內容替換成以下程式碼:

    import io
    import json
    import logging
    import requests
    
    from fdk import response
    
    def handler(ctx, data: io.BytesIO = None):
        """
        OCI Function that receives Cloud Guard events from OCI Events Service
        and forwards them to Google SecOps (Chronicle) webhook endpoint.
        """
        logger = logging.getLogger()
    
        try:
            cfg = ctx.Config()
            chronicle_endpoint = cfg.get("CHRONICLE_ENDPOINT")
            chronicle_api_key = cfg.get("CHRONICLE_API_KEY")
            chronicle_secret = cfg.get("CHRONICLE_SECRET")
    
            if not all([chronicle_endpoint, chronicle_api_key, chronicle_secret]):
                logger.error("Missing required configuration: CHRONICLE_ENDPOINT, CHRONICLE_API_KEY, or CHRONICLE_SECRET")
                return response.Response(
                    ctx, response_data=json.dumps({"error": "Missing configuration"}),
                    headers={"Content-Type": "application/json"}, status_code=500
                )
    
            event_data = json.loads(data.getvalue())
            logger.info(f"Received Cloud Guard event: {event_data.get('eventType', 'unknown')}")
    
            webhook_url = f"{chronicle_endpoint}?key={chronicle_api_key}&secret={chronicle_secret}"
    
            headers = {
                "Content-Type": "application/json"
            }
    
            resp = requests.post(
                webhook_url,
                json=event_data,
                headers=headers,
                timeout=30
            )
    
            if resp.status_code >= 200 and resp.status_code < 300:
                logger.info(f"Successfully forwarded event to Chronicle (HTTP {resp.status_code})")
            else:
                logger.error(f"Failed to forward event to Chronicle (HTTP {resp.status_code}): {resp.text}")
    
            return response.Response(
                ctx, response_data=json.dumps({"status": resp.status_code}),
                headers={"Content-Type": "application/json"}, status_code=200
            )
    
        except Exception as e:
            logger.error(f"Error processing Cloud Guard event: {str(e)}")
            return response.Response(
                ctx, response_data=json.dumps({"error": str(e)}),
                headers={"Content-Type": "application/json"}, status_code=500
            )
    
  5. 取代 requirements.txt 檔案的內容:

    fdk>=0.1.0
    requests>=2.25.0
    
  6. 將函式部署至應用程式:

    fn -v deploy --app cloudguard-chronicle-forwarder
    
  7. 等待部署作業完成。

設定函式環境變數

  1. Oracle Cloud Infrastructure Console 中,開啟導覽選單,然後依序選取「Developer Services」>「Functions」>「Applications」
  2. 按一下 cloudguard-chronicle-forwarder 應用程式。
  3. 在「資源」下方,選取「函式」
  4. 按一下「cloudguard-to-chronicle」函式。
  5. 在「資源」下方,選取「設定」
  6. 按一下「編輯」,然後新增下列鍵/值組合:

    CHRONICLE_ENDPOINT Chronicle Webhook 端點網址 (例如 https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate)
    CHRONICLE_API_KEY 為 Chronicle webhook 建立的 Google Cloud API 金鑰
    CHRONICLE_SECRET Chronicle Webhook 密鑰
  7. 按一下 [儲存]

為 OCI Functions 建立 IAM 政策

OCI Functions 服務和 Events 服務需要 IAM 政策才能叫用函式。

為函式建立動態群組

  1. Oracle Cloud Infrastructure 控制台中,開啟導覽選單,然後依序選取「Identity & Security」>「Domains」
  2. 選取「預設」網域。
  3. 在「身分網域資源」下方,選取「動態群組」
  4. 按一下「建立動態群組」
  5. 請提供下列設定詳細資料:

    • 「Name」(名稱):輸入 cloudguard-chronicle-functions
    • 說明:輸入 Dynamic group for Cloud Guard to Chronicle forwarder function
    • 相符規則:輸入下列規則:
    ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_OCID>'}
    
  6. 點選「建立」

建立 IAM 政策

  1. Oracle Cloud Infrastructure Console 中,開啟導覽選單,然後依序選取「Identity & Security」>「Policies」
  2. 確認您位於根區間
  3. 點選「建立政策」
  4. 請提供下列設定詳細資料:
    • 「Name」(名稱):輸入 cloudguard-chronicle-policy
    • 說明:輸入 Allows Events Service to invoke Cloud Guard Chronicle forwarder function
    • 區間:確認已選取根區間。
  5. 在「政策建立工具」部分,切換「顯示手動編輯器」
  6. 在「Statement」欄位中,輸入下列政策陳述式:

    Allow dynamic-group cloudguard-chronicle-functions to use fn-function in compartment <compartment_name>
    Allow dynamic-group cloudguard-chronicle-functions to use fn-invocation in compartment <compartment_name>
    Allow service cloudguardevents to use fn-function in compartment <compartment_name>
    Allow service cloudguardevents to use fn-invocation in compartment <compartment_name>
    
  7. 點選「建立」

為 Cloud Guard 建立 OCI Events 規則

建立事件規則,在 Cloud Guard 偵測到、排除或修正問題時觸發 OCI 函式。

建立「Events」規則

  1. Oracle Cloud Infrastructure 控制台中,開啟導覽選單,然後依序選取「可觀測性與管理」>「事件服務」>「規則」

  2. 按一下 [建立規則]

  3. 請提供下列設定詳細資料:

    • 「顯示名稱」:輸入 cloudguard-to-chronicle
    • 說明:輸入 Forwards Cloud Guard problem events to Google SecOps via OCI Functions
  4. 在「規則條件」部分中:

    1. 將「Condition」設為「Event Type」
    2. 將「Service Name」(服務名稱) 設為「Cloud Guard」。
    3. 將「活動類型」設為下列項目 (可選取多個):
      • 偵測到問題
      • 已排除 - 問題
      • 已修正 - 問題
  5. 在「Actions」(動作) 部分中:

    1. 將「動作類型」設為「函式」
    2. 將「函式區間」設為包含函式應用程式的區間。
    3. 將「函式應用程式」設為「cloudguard-chronicle-forwarder」
    4. 將「函式」設為「cloudguard-to-chronicle」
  6. 按一下 [建立規則]

選用:依風險等級篩選

如要只轉送嚴重程度較高的問題,請在「事件」規則中新增屬性篩選條件:

  1. 在「規則條件」部分,按一下「+ 其他條件」
  2. 將「Condition」設為「Attribute」
  3. 將「Attribute Name」(屬性名稱) 設為 riskLevel
  4. 將「屬性值」設為所需的風險等級:

    • CRITICAL
    • HIGH

驗證整合

手動測試函式

  1. Oracle Cloud Infrastructure Console 中,開啟導覽選單,然後依序選取「Developer Services」>「Functions」>「Applications」
  2. 按一下 cloudguard-chronicle-forwarder 應用程式。
  3. 在「資源」下方,選取「函式」
  4. 按一下「cloudguard-to-chronicle」函式。
  5. 按一下「Invoke」(叫用),使用範例資料測試函式,或使用 OCI Cloud Shell:

    echo '{"eventType":"com.oraclecloud.cloudguard.problemdetected","cloudEventsVersion":"0.1","eventID":"test-event-001","data":{"compartmentId":"ocid1.compartment.oc1..example","resourceName":"test-problem","additionalDetails":{"riskLevel":"HIGH","problemDescription":"Test problem for integration verification","status":"OPEN","region":"us-ashburn-1"}}}' | fn invoke cloudguard-chronicle-forwarder cloudguard-to-chronicle
    
  6. 依序前往「開發人員服務」>「函式」>「應用程式」>「cloudguard-chronicle-forwarder」,然後選取「記錄」部分,即可驗證函式記錄。

  7. 尋找確認轉送成功的記錄項目:

    Received Cloud Guard event: com.oraclecloud.cloudguard.problemdetected
    Successfully forwarded event to Chronicle (HTTP 200)
    

在 Google SecOps 中驗證

  1. 登入 Google SecOps
  2. 前往「搜尋」,並查詢記錄類型為 OCI_CLOUDGUARD 的事件。
  3. 確認搜尋結果中顯示 Cloud Guard 問題事件。

如果活動未顯示,請按照下列步驟操作:

  • 在函式設定中驗證 Chronicle Webhook 端點網址、API 金鑰和密鑰
  • 確認事件規則位於正確的 OCI 區域 (Cloud Guard 報告區域)
  • 確認已啟用 Cloud Event 回應程式,並設為自動執行
  • 查看函式記錄檔中的錯誤訊息

Cloud Guard 事件類型參考資料

Cloud Guard 會透過 OCI Events Service 發出下列事件類型:

事件類型 觸發條件
com.oraclecloud.cloudguard.problemdetected 偵測到新問題
com.oraclecloud.cloudguard.problemdismissed 問題已關閉
com.oraclecloud.cloudguard.problemremediated 問題已修正
com.oraclecloud.cloudguard.sightingdetected 偵測到新的目擊事件

驗證方法參考資料

Chronicle 網頁掛鉤動態消息支援多種驗證方法。選擇供應商支援的方法。

如果供應商支援自訂 HTTP 標頭,請使用這個方法,以提升安全性。

  • 要求格式:

    POST <ENDPOINT_URL> HTTP/1.1
    Content-Type: application/json
    x-goog-chronicle-auth: <API_KEY>
    x-chronicle-auth: <SECRET_KEY>
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

優點:

  • 網址中不會顯示 API 金鑰和密鑰
  • 更安全 (標頭不會記錄在網路伺服器存取記錄中)
  • 如果供應商支援,則為首選方法

方法 2:查詢參數

如果供應商不支援自訂標頭,請將憑證附加至網址。

  • 網址格式:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
  • 範例:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...
    
  • 要求格式:

    POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1
    Content-Type: application/json
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

缺點:

  • 網址中顯示憑證
  • 可能會記錄在網路伺服器存取記錄中
  • 安全性不如標頭

方法 3:混合式 (網址 + 標頭)

部分設定會在網址中使用 API 金鑰,並在標頭中使用密鑰。

  • 要求格式:

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    x-chronicle-auth: <SECRET_KEY>
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

驗證標頭名稱

Chronicle 接受下列驗證標頭名稱:

  • API 金鑰:

    • x-goog-chronicle-auth (建議)
    • X-Goog-Chronicle-Auth (不區分大小寫)
  • 密鑰:

    • x-chronicle-auth (建議)
    • X-Chronicle-Auth (不區分大小寫)

Webhook 限制和最佳做法

要求限制

限制
要求大小上限 4 MB
每秒查詢次數 (QPS) 上限 15,000
要求逾時 30 秒
重試行為 自動執行指數輪詢

UDM 對應表

記錄欄位 UDM 對應 邏輯
contentType additional.fields 從各種額外欄位合併
cloudEventsVersion additional.fields
data.additionalDetails.reason additional.fields
data.additionalDetails.tenantId additional.fields
data.additionalDetails.problemType additional.fields
data.resourceName additional.fields
data.resourceId additional.fields
狀態 additional.fields
problem_recommendation additional.fields
compartment_id additional.fields
compartment_name additional.fields
product_event extensions.auth.type 如果 product_event 與登入相符,請設為「AUTHTYPE_UNSPECIFIED」
data.additionalDetails.problemDescription metadata.description 如果 data.additionalDetails.problemDescription 不為空值,則為該值,否則為 data.additionalDetails.description
data.additionalDetails.description metadata.description
has_user metadata.event_type 如果具有使用者和目標資源,則設為 USER_RESOURCE_ACCESS;如果具有使用者,則設為 USER_UNCATEGORIZED;如果 product_event 符合登入條件,則設為 USER_LOGIN;如果具有主體,則設為 STATUS_UPDATE;否則設為 GENERIC_EVENT
has_target_resource metadata.event_type
product_event metadata.event_type
has_principal metadata.event_type
eventType metadata.product_event_type 如果 eventType 不為空白,則為該值,否則為 product_event
product_event metadata.product_event_type
eventID metadata.product_log_id 直接複製值
版本 metadata.product_version 直接複製值
觀察員 observer.domain.name 使用 grok 從觀察者擷取的網域
觀察員 observer.hostname 如果不是 IP,則為觀察者的值
觀察員 observer.ip 如果是 IP,則為觀察者提供的值
主體 principal.administrative_domain 使用 grok 從主體或主體主機擷取的網域
principal_host principal.administrative_domain
data.additionalDetails.problemAdditionalDetails.public_ips principal.asset.ip 如果 data.additionalDetails.problemAdditionalDetails.public_ips 不為空白,則為該值;否則如果 vnicDetails.0.vnicPublicIp 不為空白,則為該值;否則如果主體為 IP,則為該值;否則如果 principal_host 為 IP,則為該值
vnicDetails.0.vnicPublicIp principal.asset.ip
主體 principal.asset.ip
principal_host principal.asset.ip
主體 principal.hostname 如果不是 IP,則為來自主體的 Value,否則如果不是 IP,則為 principal_host
principal_host principal.hostname
data.additionalDetails.problemAdditionalDetails.public_ips principal.ip 如果 data.additionalDetails.problemAdditionalDetails.public_ips 不為空白,則為該值;否則如果 vnicDetails.0.vnicPublicIp 不為空白,則為該值;否則如果主體為 IP,則為該值;否則如果 principal_host 為 IP,則為該值
vnicDetails.0.vnicPublicIp principal.ip
主體 principal.ip
principal_host principal.ip
data.additionalDetails.region principal.location.name 直接複製值
principal_port principal.port 從 principal_port 轉換為整數
data.additionalDetails.resourceName principal.resource.name 如果 data.additionalDetails.resourceName 不為空白,則為該值,否則為 data.additionalDetails.principalResourceName
data.additionalDetails.principalResourceName principal.resource.name
data.additionalDetails.resourceId principal.resource.product_object_id 如果 data.additionalDetails.resourceId 不為空值,則為該值;否則為 data.additionalDetails.principalResourceId
data.additionalDetails.principalResourceId principal.resource.product_object_id
data.additionalDetails.resourceType principal.resource.resource_subtype 如果 data.additionalDetails.resourceType 不是空白,則為該值;否則為 data.additionalDetails.principalResourceType
data.additionalDetails.principalResourceType principal.resource.resource_subtype
data.additionalDetails.resourceName principal.user.userid 如果 data.additionalDetails.resourceType ==「User」,則為 data.additionalDetails.resourceName 的值;如果 data.additionalDetails.principalResourceType ==「User」,則為 data.additionalDetails.principalResourceName 的值
data.additionalDetails.principalResourceName principal.user.userid
動作 security_result.action 如果動作符合封鎖條件,請設為 BLOCK;如果動作成功,請設為 ALLOW;如果動作失敗,請設為 FAIL;否則請設為 UNKNOWN
動作 security_result.action_details 直接複製值
data.additionalDetails.tacticName security_result.attack_details.tactics 值直接複製到 tactic_data.name,然後合併
data.additionalDetails.techniqueName security_result.attack_details.techniques 值直接複製到 technique_data.name,然後合併
data.additionalDetails.confidence security_result.confidence_score 直接複製值
sightingType security_result.detection_fields 從 sightingType、sightingScore、riskScore 標籤合併
sightingScore security_result.detection_fields
riskScore security_result.detection_fields
data.additionalDetails.detectorRuleId security_result.rule_id 直接複製值
data.additionalDetails.detectorRuleType security_result.rule_name 直接複製值
嚴重性 security_result.severity 如果嚴重程度為 INFO,請設為 INFORMATIONAL;如果為 Low,請設為 LOW;如果為 WARN,請設為 MEDIUM;如果為 High,請設為 HIGH;如果為 Critical,請設為 CRITICAL
嚴重性 security_result.severity_details 直接複製值
目標 target.administrative_domain 使用 grok 從目標或 target_host 擷取的網域
target_host target.administrative_domain
目標 target.hostname 如果不是 IP,則為目標中的值;如果不是 IP,則為 target_host
target_host target.hostname
目標 target.ip 如果為 IP,則為目標的值;如果為 IP,則為 target_host
target_host target.ip
target_port target.port 從 target_port 轉換為整數
targetId target.resource.attribute.labels 從各種標籤欄位合併
標籤 target.resource.attribute.labels
vnicAttachmentId target.resource.attribute.labels
vnicAttachmentDisplayName target.resource.attribute.labels
subnets target.resource.attribute.labels
instance_ocid target.resource.attribute.labels
route_table_ocids target.resource.attribute.labels
security_list_ocids target.resource.attribute.labels
data.additionalDetails.impactedResourceName target.resource.name 如果 data.additionalDetails.impactedResourceName 不為空白,則為該值,否則為 vnicDetails.0.vnicDisplayName
vnicDetails.0.vnicDisplayName target.resource.name
data.additionalDetails.impactedResourceId target.resource.product_object_id 如果 data.additionalDetails.impactedResourceId 不為空值,則為該值;否則為 vnicDetails.0.vnicId
vnicDetails.0.vnicId target.resource.product_object_id
data.additionalDetails.impactedResourceType target.resource.resource_subtype 直接複製值
target_url target.url 直接複製值
target_user target.user.userid 直接複製值
產品 metadata.product_name 直接複製值
vendor metadata.vendor_name 直接複製值
data.additionalDetails.tacticName security_result.attack_details.tactics.name 從變更記錄對應
data.additionalDetails.techniqueName security_result.attack_details.techniques.name 從變更記錄對應

變更記錄

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

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