複合偵測項目

支援的國家/地區:

複合式偵測功能可讓您互連規則,將某項規則的輸出內容做為另一項規則的輸入內容。這項功能可讓您建立更複雜且更具彈性的規則。複合式偵測功能會關聯及分析不同資料來源和時間範圍的事件,克服單一事件偵測的限制。

複合式偵測的優點

  • 揭露多階段攻擊:網路攻擊通常是多面向且相互關聯的。複合式偵測功能會連結看似孤立的事件,揭露攻擊敘事。舉例來說,複合規則可以識別整個攻擊序列,例如初始入侵、隨後的權限提升和資料竊取。

  • 減少快訊疲乏:實作消費者規則,優先處理重大威脅,並減少快訊疲乏。這些規則會整合並篩除輸入規則產生的干擾警示,讓您能更專注於回應,有助於優先處理影響重大的事件,並減少警示疲乏。

  • 提升偵測準確度:整合 UDM 事件、其他規則偵測結果、實體資訊、UEBA 發現項目和資料表中的深入分析,建立準確的偵測邏輯。

  • 簡化複雜邏輯:將複雜的偵測情境分解為可管理、相互連結且可重複使用的規則,簡化開發和維護作業。

複合偵測項目的術語和概念

  • 偵測結果:規則的結果,也可稱為快訊。

  • 複合:一系列相互連結的規則,其中一項規則的輸出會做為下一項規則的輸入。舉例來說,在複合規則序列 rule1 -> rule2 -> rule3 中,rule1 產生的偵測結果會傳遞至 rule2,後者會處理這些結果,產生新的偵測結果。rule3 接著會使用這些偵測結果,產生最終輸出內容。

  • 輸入規則:偵測結果會做為其他規則輸入內容的規則。任何規則都可以做為輸入規則,不需要特別指定。輸入規則會將實體和事件做為輸入內容。 不會將偵測結果做為輸入內容。

  • 複合規則:在規則文字中使用偵測結果做為輸入內容的規則。複合規則必須包含 match 區段。

進階概念

單一事件偵測規則

Google SecOps 不允許單一事件複合規則。也就是說,凡是使用偵測結果做為輸入來源的規則,都必須有 match 區段

偵測延遲

由於排程行為,建議您只在單一事件輸入規則中撰寫複合規則。單一事件規則會近乎即時執行,因此通常在複合規則執行時,即可取得偵測結果。 如果複合規則以多重事件規則做為輸入內容,輸入規則可能會在複合規則排定的執行時間之後執行。這可能會導致複合規則延遲或錯過偵測結果。

TestRule 和 Retrohunt

測試或執行複合規則的追溯搜尋時,系統只會使用現有偵測結果,執行您選取的特定規則。如要執行整個複合規則,您必須從序列中的第一條規則手動啟動回溯搜尋,等待每次執行完成,然後繼續執行下一條規則。

對規則執行測試時,系統不會將偵測結果保留或寫入資料庫,且複合規則需要資料庫中存在輸入偵測結果。

對規則執行測試時,系統不會將偵測結果保留或寫入資料庫。由於複合規則需要資料庫中存在輸入偵測結果才能運作,因此您無法使用 TestRule 驗證複合規則。

建構複合規則

您可以結合輸入規則和複合規則,建立複合規則。

輸入規則

輸入規則是複合規則的基礎。偵測特定事件或條件,並在合併後指出惡意活動。如要設定輸入規則,請按照下列步驟操作:

  1. 建立新規則或重複使用現有規則。

  2. 停用快訊。這樣一來,這些輸入規則就不會產生個別快訊。使用這項設定,您可以優先處理複合規則產生的重要程度較高的快訊,這些規則會評估整個事件鏈。

  3. 使用 outcome 區段定義可供鏈結規則存取的變數。

下列製作人規則範例會偵測登入失敗情形。

rule failed_login {
  meta:

  events:
    $e.metadata.event_type = "USER_LOGIN"
    any $e.security_result.action = "BLOCK"

  outcome:
   $target_user = $e.target.user.userid

  condition:
    $e
}

這項規則會找出遭封鎖的登入作業,並提供相關聯的使用者。

複合規則

撰寫使用偵測結果的規則,與撰寫使用 UDM 的規則大致相同,但來源和可用欄位有所不同。如要參照偵測欄位,請使用關鍵字 detection 做為來源:$eventname.detection.field1.field2

detection 來源下可用的子欄位位於集合資源中。

以下是集合中的常見欄位:

  • $d.detection.detection.rule_id

  • $d.detection.detection.detection_fields["match_var_name"]

  • $d.detection.detection.outcomes["outcome_name"]

下列範例規則會偵測未啟用多重驗證的登入、列舉和外洩行為。

rule login_enumeration_exfiltration {
    meta:
description = "Detects when a user logs in without multifactor authentication (MFA) and then performs enumeration and exfiltration"
        rule_name = "Login Without MFA, Enumeration, Exfiltration"
        severity = "High"

    events:
     // Detection with name "Console Login Without MFA"
        // The affected user is saved as $target_user
        $login_without_mfa.detection.detection.rule_name = /Console Login Without MFA/
        $target_user = $login_without_mfa.detection.detection.outcomes["target_user"]

     // Any detection with a rule name containing 'enumeration'
     // The user performing enumeration is the user that logged in without mfa
        $enumeration.detection.detection.rule_name = /enumeration/ nocase
        $enumeration.detection.detection.outcomes["principal_users"] = $target_user

     // Any detection with the mitre tactic 'TA0010' (Exfiltration)
     // The user performing exfiltration is the user that logged in without mfa
        $exfiltration.detection.detection.rule_labels["tactic"] = "TA0010"
        $exfiltration.detection.detection.outcomes["principal_users"] = $target_user

    match:
     // Looks for detections over a 24 hour period
        $target_user over 24h

    condition:
     // All 3 must occur for a single user
        $login_without_mfa and $enumeration and $exfiltration
}

階層式偵測

複合偵測功能可讓您建立階層式偵測系統。低層級的輸入規則會找出孤立的可疑事件。較高層級的複合規則隨後會使用這些輸入規則的輸出內容,在時間、實體和資料來源之間建立關聯。 這種做法有助於將這項資訊與其他來源的資料建立關聯,偵測單一事件規則可能錯過的多階段攻擊模式。

Google Security Operations 最多支援三層組合,可在偵測深度邏輯和可管理複雜度之間取得平衡。

例如:

  • 第 1 級:輸入規則會偵測個別可疑事件。例如登入失敗事件、異常檔案存取活動。

  • 第 2 級:複合規則會將第 1 級的偵測結果相互關聯。舉例來說,登入失敗事件後接著發生可疑的檔案存取活動。

  • 第 3 級:高階複合規則會結合第 2 級的偵測結果和其他資料,進行更精密的偵測。舉例來說,驗證的偵測等級為 2,而所用裝置的安全狀態偵測等級為 2。

編寫複合規則時的注意事項

更新一或多個複合規則中使用的輸入規則時,系統會自動建立該輸入規則的新版本。這適用於邏輯更新 (conditioneventsoutcomes) 和中繼資料更新 (名稱、說明、嚴重程度)。複合規則會繼續使用新版本運作。建議您測試更新後的輸入規則及其下游複合規則,確保行為符合預期。

限制

複合規則有下列限制。

僅偵測規則和實體風險分數

僅偵測規則 (僅使用偵測資料做為來源,而非事件或實體資料) 不會影響實體風險分數。為僅偵測規則設定的任何風險分數,只適用於該規則建立的偵測結果。也不會計入任何匯總實體風險分數。

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