收集 Auth0 記錄

支援的國家/地區:

總覽

這個剖析器會從 JSON 格式的訊息中擷取 Auth0 記錄事件。這個函式會初始化 UDM 欄位、剖析 JSON 酬載、將相關欄位對應至 UDM 結構定義,並根據 type 欄位將事件分類,設定適當的安全措施和事件類型。

事前準備

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

  • Google SecOps 執行個體。
  • 具備必要權限的 Auth0 帳戶。

設定動態饋給

在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:

  • 「SIEM 設定」>「動態消息」
  • 內容中心 > 內容包

依序前往「SIEM 設定」>「動態饋給」,設定動態饋給

如要設定動態消息,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態消息」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「Feed name」(動態消息名稱) 欄位中,輸入動態消息的名稱 (例如「Auth0 Logs」)。
  5. 選取「Webhook」做為「來源類型」
  6. 選取「AUTH_ZERO」做為「記錄類型」
  7. 點選「下一步」
  8. 選用:指定下列輸入參數的值:
    • 分割分隔符號:用於分隔記錄行的分隔符號,例如 \n
    • 資產命名空間資產命名空間
    • 擷取標籤:套用至這個動態饋給事件的標籤。
  9. 點選「下一步」
  10. 在「Finalize」畫面中檢查動態饋給設定,然後按一下「Submit」
  11. 按一下「產生密鑰」,產生驗證這個動態消息的密鑰。
  12. 複製並儲存密鑰。您無法再次查看這個密鑰。如有需要,您可以重新產生新的密鑰,但這項操作會使先前的密鑰失效。
  13. 在「詳細資料」分頁中,從「端點資訊」欄位複製動態消息端點網址。您需要在用戶端應用程式中指定這個端點網址。
  14. 按一下 [完成]

從內容中心設定動態饋給

為下列欄位指定值:

  • 分割分隔符號:用於分隔記錄行的分隔符號,例如 \n

進階選項

  • 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
  • 來源類型:將記錄收集到 Google SecOps 的方法。
  • 資產命名空間:與動態饋給相關聯的命名空間。
  • 擷取標籤:套用至這個動態饋給所有事件的標籤。

  • 按一下「產生密鑰」,產生驗證這個動態消息的密鑰。

  • 複製並儲存密鑰。您無法再次查看這個密鑰。如有需要,您可以重新產生新的密鑰,但這項操作會使先前的密鑰失效。

  • 在「詳細資料」分頁中,從「端點資訊」欄位複製動態消息端點網址。您需要在用戶端應用程式中指定這個端點網址。

為 Webhook 資訊提供建立 API 金鑰

  1. 依序前往 Google Cloud 控制台 >「憑證」

    前往「憑證」

  2. 按一下 [Create credentials] (建立憑證),然後選取 [API key] (API 金鑰)

  3. 限制 API 金鑰對 Chronicle API 的存取權。

指定端點網址

  1. 在用戶端應用程式中,指定 webhook 動態饋給中提供的 HTTPS 端點網址。
  2. 如要啟用驗證,請在自訂標頭中指定 API 金鑰和私密金鑰,格式如下:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    建議:請將 API 金鑰指定為標頭,而非在網址中指定。如果 Webhook 用戶端不支援自訂標頭,您可以使用查詢參數指定 API 金鑰和密鑰,格式如下:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

更改下列內容:

  • ENDPOINT_URL:動態消息端點網址。
  • API_KEY:用於向 Google Security Operations 進行驗證的 API 金鑰。
  • SECRET:您產生的密鑰,用於驗證動態饋給。

為 Google SecOps 設定 Auth0 Webhook

  1. 前往 Auth0 資訊主頁。
  2. 依序前往「監控」>「串流」
  3. 按一下「建立記錄串流」
  4. 按一下「Custom Webhook」按鈕,然後選擇名稱。例如:Google SecOps Webhook
  5. 設定下列項目:
    • 酬載網址:輸入 Google SecOps API 端點網址。
    • Content-Type:將 Content-Type 標頭設為 application/json。這會告知 Google SecOps 傳送資料的格式。
    • 選用:授權權杖:設定密碼,進一步提升安全性。這項資訊會用於驗證 Webhook 要求的真實性。

自訂酬載:您可以修改事件類別,自訂傳送至 Google SecOps 的酬載。您可以從 Auth0 事件選取特定資料點,並視需要設定 Google SecOps 的格式。如要進一步瞭解可用的內容變數和指令碼選項,請參閱 Auth0 說明文件。確認最終酬載符合預期的 Google SecOps UDM 格式。

  1. 按一下「儲存」即可建立 Webhook。
  2. 觸發與 Hook 相關聯的事件 (例如註冊新使用者、登入)。
  3. 在 Google SecOps 控制台中檢查動態消息,確認記錄檔已傳送至 Google SecOps。

UDM 對應表

記錄欄位 UDM 對應 邏輯
client_id principal.asset.product_object_id 直接從「client_id」欄位對應。
client_name principal.hostname 直接從「client_name」欄位對應。
connection security_result.description 直接從「connection」欄位對應。
connection_id security_result.rule_id 直接從「connection_id」欄位對應。
date metadata.event_timestamp 使用 ISO8601 格式從 date 欄位剖析。
description metadata.description 直接從「description」欄位對應。
details.error security_result.detection_fields 對應自「details.error」欄位。索引鍵為「Error」。
details.error.oauthError security_result.detection_fields 對應自「details.error.oauthError」欄位。金鑰為「oauthError」。
details.error.type security_result.detection_fields 對應自「details.error.type」欄位。金鑰為「oauth_error_type」。
details.ipOnAllowlist security_result.detection_fields 對應自「details.ipOnAllowlist」欄位。索引鍵為「ipOnAllowlist」。
details.link target.url 如果存在,則直接從 details.link 欄位對應,否則從其他欄位衍生 (請參閱下文)。
details.request.auth.strategy security_result.detection_fields 對應自「details.request.auth.strategy」欄位。索引鍵為「strategy」。
details.request.body.app_metadata.blockedReason security_result.detection_fields 對應自「details.request.body.app_metadata.blockedReason」欄位。金鑰為「blockedReason」。
details.request.body.app_metadata.customer_id target.user.product_object_id 直接從「details.request.body.app_metadata.customer_id」欄位對應。
details.request.body.app_metadata.migrated security_result.detection_fields 對應自「details.request.body.app_metadata.migrated」欄位。金鑰為「migrated」。
details.request.channel security_result.detection_fields 對應自「details.request.channel」欄位。金鑰為「channel」。
details.request.method network.http.method 轉換為大寫後,直接從 details.request.method 欄位對應。
details.request.path target.url 如果沒有 details.link 欄位,則直接從 details.request.path 欄位對應,否則會從其他欄位衍生 (請參閱下文)。
details.response.body.email target.user.email_addresses 直接從「details.response.body.email」欄位對應。
details.response.body.email_verified security_result.detection_fields 對應自「details.response.body.email_verified」欄位。金鑰為「email_verified」。
details.response.body.nickname target.user.user_display_name 直接從「details.response.body.nickname」欄位對應。
details.response.body.user_id target.user.userid 直接從「details.response.body.user_id」欄位對應。
details.response.statusCode network.http.response_code 轉換為整數後,直接從 details.response.statusCode 欄位對應。
details.return_to target.url 如果沒有 details.linkdetails.request.path,則直接從 details.return_to 欄位對應;否則從其他欄位衍生 (見下文)。
details.session_id network.session_id 直接從「details.session_id」欄位對應。
details.stats.loginsCount additional.fields 對應自「details.stats.loginsCount」欄位。金鑰為「loginsCount」。
details.requiresVerification security_result.detection_fields 對應自「details.requiresVerification」欄位。金鑰為「requiresVerification」。
details.to target.user.email_addresses 直接從「details.to」欄位對應。
hostname target.hostname 直接從「hostname」欄位對應。
ip principal.ip 直接從「ip」欄位對應。
js_data.audience target.url 如果沒有 details.linkdetails.request.pathdetails.return_to,則直接從 js_data.audience 欄位對應。
js_data.details.body.email_verified security_result.detection_fields 對應自「js_data.details.body.email_verified」欄位。金鑰為「email_verified」。
js_data.details.body.is_signup security_result.detection_fields 對應自「js_data.details.body.is_signup」欄位。索引鍵為「is_signup」。
js_data.details.body.transaction.redirect_uri target.url 如果沒有 details.linkdetails.request.pathdetails.return_tojs_data.audience,則直接從 js_data.details.body.transaction.redirect_uri 欄位對應。
js_data.scope security_result.detection_fields 對應自「js_data.scope」欄位。索引鍵為「scope」。
js_data.tracking_id security_result.detection_fields 對應自「js_data.tracking_id」欄位。金鑰為「tracking_id」。
log_id metadata.product_log_id 直接從「log_id」欄位對應。
metadata.log_type metadata.log_type 直接從「log_type」欄位對應。
metadata.product_name metadata.product_name 設為「AUTH_ZERO」。
metadata.vendor_name metadata.vendor_name 設為「AUTH_ZERO」。
metadata.product_event_type metadata.product_event_type 直接從「type」欄位對應。
network.http.parsed_user_agent network.http.parsed_user_agent user_agent 欄位剖析。
network.http.user_agent network.http.user_agent 直接從「user_agent」欄位對應。
security_result.action security_result.action type 欄位決定 (ALLOW 或 BLOCK)。請參閱特定對應項目的剖析器程式碼。
strategy security_result.detection_fields 對應「strategy」欄位。索引鍵為「strategy」。
strategy_type security_result.detection_fields 對應「strategy_type」欄位。索引鍵為「strategy_type」。
target.user.email_addresses target.user.email_addresses 如果是電子郵件地址,則直接從「user_name」欄位對應;否則會從其他欄位衍生 (如上所述)。
target.user.userid target.user.userid 直接從 user_id 欄位對應,或在 user_id 不存在時從 details.response.body.user_iduser_name 對應。
user_agent network.http.user_agent 直接從「user_agent」欄位對應。
user_id target.user.userid 直接從「user_id」欄位對應。
user_name target.user.email_addresses 直接從「user_name」欄位對應。如果 security_result.action 為「ALLOW」,且 type 為「slo」、「sapi」、「s」、「ss」或「ssa」,請設為「MACHINE」。如果 extensions.auth.type 為「MACHINE」,且 type 為「slo」,請設為「OTP」。由多個欄位組合決定,包括 typeclient_nameiphostnamehas_user。請參閱特定對應項目的剖析器程式碼。

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