複合偵測項目總覽

支援:

本文將介紹複合偵測功能,以及如何透過關聯多項規則的輸出內容,強化威脅偵測工作流程。

複合偵測結果是由規則產生,這些規則會使用其他規則的偵測結果做為輸入內容,並結合事件、指標或實體風險信號。接著,這些規則會與事件、指標或實體風險信號結合,偵測個別規則可能遺漏的複雜多階段威脅。

複合偵測功能可透過定義的規則互動和觸發條件,協助分析事件。這項功能可提高準確率、減少偽陽性,並透過關聯不同來源和攻擊階段的資料,提供安全威脅的全面檢視。

下列概念定義了複合規則的構成元素,並說明這些元素在偵測工作流程中的運作方式:

  • 複合規則:使用偵測結果或快訊 (或兩者) 做為輸入內容。您也可以視需要加入事件、指標,以及實體圖中的各種比對內容資料,例如普及度資料、威脅情報或實體風險評分,讓資料更豐富。這些規則一律須包含比對區段,且可參照輸入規則中的中繼欄位、match 變數和 outcome 變數。

  • 偵測結果:符合規則條件時產生的輸出內容。

  • 僅限偵測的規則:僅使用偵測或快訊做為輸入內容的複合規則。

複合式偵測的使用時機

複合偵測功能有助於達成下列目標:

  • 關聯兩項以上的規則結果 (例如,將「偵測到惡意軟體下載」與來自同一主機的後續 C2 Beaconing 快訊連結)。

  • 利用相關事件資料,讓警告更豐富。

  • 只有在多次發生低可信度的雜訊偵測,或與其他可疑活動結合時,才會觸發最終警示,減少警示疲勞。

  • 針對複雜的多階段攻擊建立快訊,其中每個階段都已由專屬規則識別。

複合偵測項目的優點

複合偵測項目有以下優點:

  • 揭露多階段攻擊:網路攻擊通常是多面向且相互關聯的。複合式偵測會連結看似孤立的安全事件,揭露更廣泛的攻擊敘事。舉例來說,複合式偵測可以識別完整的攻擊序列,例如初始違規行為,接著是提權和資料竊取。

  • 減少警報疲乏:複合規則會整合及篩除雜訊警報,讓您更專注於回應。這種做法有助於優先處理影響重大的事件,並減少整體警報疲乏。

  • 提高偵測準確度:結合通用資料模型 (UDM) 事件、規則偵測、實體背景資訊、使用者和實體行為分析 (UEBA) 發現項目和資料表的洞察資料,建立更準確的偵測邏輯。

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

  • 用於資訊主頁:將複合偵測項目無縫整合為 Google SecOps 資訊主頁的資料來源。您可以使用這些功能建立圖表,總結多階段攻擊模式,更輕鬆地瞭解複雜的風險。

常見用途

本節列出複合式偵測的一些常見用途。

利用原始事件的情境資訊豐富偵測結果

這個使用案例涉及將某個系統的高層級快訊,與另一個系統的事件記錄檔連結。

  • 目標:找出導致高層級快訊的特定本地動作。

  • 範例:

    1. 工作負載對惡意網域發出 DNS 呼叫,因此 Event Threat Detection 觸發了 Google Cloud 警告。這就是偵測。

    2. 這項偵測觸發了複合規則。

    3. 接著,這項規則會在 1 分鐘內,從相同工作負載中搜尋原始端點偵測和回應 (EDR) 記錄 (事件),尋找含有相同惡意網域的指令列作業。

    最終快訊會提供豐富的脈絡資訊,顯示系統偵測到惡意網域遭到連線,以及使用的特定 ssh 指令。這項資訊可讓結果比原始偵測結果更具實用價值。

追蹤使用者登入後的活動

主要用途是將使用者的登入事件與後續可疑活動連結。標準多事件規則可追蹤短序列,但複合式偵測更適合建構使用者整個工作階段的全面風險設定檔。

  • 目標:將單一事件 (例如高風險登入) 與一段時間內 (例如一整天) 的各種後續「微弱信號」活動建立關聯。

  • 範例:建立多項規則,產生較低層級的偵測結果。 接著,使用比對時間範圍較長 (例如 24 小時) 的複合規則,在偵測到可疑的初始登入活動時觸發,並與同一位使用者下列任一偵測結果建立關聯:

    • 使用者清除指令列記錄。

    • 建立新的本機管理員帳戶。

    • 將大量資料上傳至個人 Cloud Storage 網站。

結合 UEBA 指標

這個用途是利用現有的 UEBA 指標,做為複合式偵測的起點,找出更複雜的長期行為。

  • 目標:將 UEBA 指標的尖峰與其他異常活動建立關聯。

  • 範例:

    1. UEBA 規則偵測到某位使用者登入失敗次數過多。

    2. 另一項 UEBA 規則偵測到同一位使用者傳輸大量輸出位元組。

    3. 複合式偵測會在一段時間內連結這兩項個別的 UEBA 發現項目,以找出可能遭入侵的帳戶,以及後續的資料竊取行為。

偵測資料竊取行為

這包括關聯多個不同的使用者動作,這些動作合併後可能表示有人試圖外洩資料。

  • 目標:建立單一使用者在多部裝置和多項動作中處理風險資料的設定檔。

  • 關聯動作:

    • 從多部裝置登入 (例如家用和工作用電腦)。

    • 存取的資料來源比平常多。

    • 同時下載、列印及透過電子郵件傳送資料。

    • 計算使用者在特定時間範圍內接觸的機密文件數量。

    • 已提交辭職信。

偵測多階段惡意軟體

這個用途是找出長期緩慢運作的惡意軟體,這類軟體很難透過比對時間範圍較短的單一規則偵測到。

  • 目標:將初始感染途徑與後續的惡意行為連結,即使兩者間隔數小時或數天也一樣。

  • 範例:

    1. 使用者造訪惡意網站 (初始網路事件)。

    2. 下載並執行「植入程式檔案」(第一個程序事件)。

    3. 過了一段時間後,Dropper 檔案下載並執行另一個可執行檔 (第二個程序事件)。

    這需要較長的 match 視窗來連結父項和子項程序,而複合偵測功能可以提供這項功能。

降低警示音量

這個用途涉及管理過於「雜亂」或產生過多偽陽性的偵測結果。

  • 目標:在不關閉或建立複雜排除條件的情況下,修正有雜訊的規則。

  • 範例:

    1. 將容易產生誤報的偵測機制設為「僅偵測」,這樣就不會再產生快訊。

    2. 建立複合偵測,並將該精選規則的輸出內容做為第一個條件。

    3. 新增第二項條件,提供額外資格條件,例如「如果同一位使用者在一小時內發生 5 次偵測,才發出快訊」,或是與其他規則的偵測結果合併。

複合偵測機制的運作方式

規則符合預先定義的條件時,就會產生偵測項目。這些偵測項目可選擇包含結果變數,用於擷取特定資料或事件狀態。

複合規則會將其他規則的偵測結果做為輸入內容的一部分。 評估依據可以是原始規則的中繼區段、結果變數和比對變數。

根據這項評估結果,您可以使用複合規則建立新的偵測項目,做為調查的中介表示法,並透過後續規則發出快訊。這有助於關聯不同偵測結果中的多個因素,以識別複雜的威脅。

如要進一步瞭解語法和範例,請參閱「複合偵測規則」和「範例」。

制定策略

開始建立複合規則前,請先規劃策略,確保新規則有效、高效,且能解決正確的問題。

  1. 評估目前的偵測策略。檢查現有規則,找出過於干擾、產生大量偽陽性,或過於複雜且難以管理的規則。

  2. 判斷複合規則可發揮價值的特定情境。包括偵測多級式攻擊、將多個低信賴度警示關聯為單一高信賴度警示,或使用其他資料來源的額外背景資訊來充實偵測結果。

  3. 根據評估結果,制定實施計畫。決定要修正哪些雜訊規則、簡化哪些複雜規則,以及優先處理哪些新的多階段偵測。

這項計畫會提供藍圖,說明如何建立目標明確且有效的複合規則。請參考下列高階策略,在管理技術限制的同時,充分發揮複合偵測功能的價值。

選取適當方法

建構複合式偵測功能前,請先確認是否能透過其他替代方案達成所需結果。分析是否能透過現有的 UEBA 偵測功能,找出複雜的模式。過度複雜的偵測可能會增加維護負擔,並耗用規則配額。

  • 複合偵測的使用時機:目標是關聯兩個以上不同現有規則的最終結果。這項功能可連結概念上不同的攻擊階段。

    範例:將「惡意軟體下載」規則的偵測結果,與「偵測到 C2 呼叫」規則的後續偵測結果建立關聯。

  • 何時使用現有的 UEBA 偵測功能:想找出使用者或裝置何時打破正常活動模式。

    範例:自動偵測到使用者平常只下載 1 GB 的資料,但今天卻下載了 100 GB。

管理規則配額和風險評分

如要管理機構的資源,請瞭解不同規則類型對規則配額的影響。

  • 精選規則不會計入自訂規則配額。

  • 複合規則和自訂多重事件規則會計入配額。

您可以將精選偵測規則設為「僅偵測」,這樣一來,經過精心設計的規則就能執行初步的廣泛偵測,但不會產生警告。接著,您可以使用複合規則,對這些發現套用特定邏輯,在策略性地管理配額時提供更多價值。

瞭解風險和情境之間的差異

設計偵測邏輯時,請區分評估風險的規則和提供情境的規則。

風險是指評估一組活動有多危險。專為風險設計的規則通常會彙整多個情境事件或偵測結果,以做出判斷。舉例來說,單一登入失敗可提供背景資訊,但大量登入失敗則表示有蠻力攻擊的風險。

背景資訊是指事件的相關事實細節。這項規則專為情境設計,可從另一個事件擷取詳細資料,並用於補充事件資訊。舉例來說,雖然規則可以偵測到使用者成功登入,但情境規則會提供重要情境,指出這次登入來自新的不尋常國家/地區。

範例:初步偵測可提醒您潛在風險,例如對惡意網域的 DNS 呼叫。複合規則接著會將該快訊與 Google SecOps 中的事件記錄相互關聯,找出啟動呼叫的特定命令列程序。這項功能會提供重要且可採取行動的背景資訊,讓高風險警報更加豐富。

善用較長的比對間隔

如果複合規則設定的比對時間範圍較長 (例如 14 天),執行頻率就會降低。由於延遲時間較長,因此不適合用於時效性警告。建議使用這些長時間範圍,偵測長時間緩慢、持續的攻擊活動。

使用偵測結果進行視覺化

管理雜訊規則的一種策略,是將規則的輸出內容轉換為資訊主頁上的視覺化內容。這種方法不會耗用規則配額,而且能將大量低保真資料轉換為有價值的洞察資訊。

您可以將規則設為僅偵測,然後在資訊主頁小工具中繪製偵測結果,藉此追蹤趨勢、找出離群值,並取得活動的高階稽核檢視畫面,而不會被個別警示淹沒。

範例:追蹤 PII 資料處理情形

規則會追蹤使用者每次處理機密 PII 資料的行為。 系統不會每次都發出警示,而是只會偵測。接著,資訊主頁小工具會顯示哪些使用者即將達到每日輸出限制 (例如 10,000 位元組)。這項功能可快速提供風險行為的稽核檢視畫面,不會持續產生快訊。

範例:監控特定資料遺失防護風險:

小工具會匯總特定資料遺失防護規則子集的風險評分。這樣一來,特定團隊 (例如資料遺失防護 (DLP) 管理員) 就能只監控相關風險,篩除其他安全性領域的干擾。

建立複合偵測項目

以下工作流程說明建立複合規則的典型歷程。如要進一步瞭解語法和範例,請參閱「複合偵測規則」和「範例」。

  1. 定義威脅情境:定義要偵測的特定威脅。

  2. 建立或找出輸入規則:針對威脅情境的每個階段,建立或找出可偵測特定活動的輸入規則。

  3. 定義聯結條件:找出可連結輸入規則偵測結果的共同資訊,例如規則標籤、變數或偵測欄位。

  4. 建構複合規則:編寫規則,擷取輸入規則的偵測結果。

    • 定義 events 區段,並依名稱、ID 或共用中繼標籤參照輸入規則。

    • 定義 match 區段,指定比對的聯結鍵和時間範圍。

    • 定義 condition 區段,設定觸發最終快訊必須符合的條件。

  5. 測試及部署規則鏈:建議您手動為序列中的每條規則執行回溯搜尋。

    在複合規則中使用「測試規則」功能時,系統只會針對符合規則輸入條件的現有偵測結果執行測試。系統不會自動執行基礎規則,為測試產生新輸入內容,因此您無法透過單一動作驗證整個規則鏈。

    如要對規則序列執行回溯搜尋,請按照下列步驟操作:

    1. 從序列中的第一條規則手動啟動回溯搜尋。

    2. 等待作業完成。

    3. 繼續執行下一項規則。

範例:下列規則提供基本規則關聯範本:


rule Basic_Rule_Correlation_Template {
    
    meta:
    description = "Triggers when a user triggers two different rules within X days"

    events: 
    // 1. Identify the first sub-rule detection
    $d1.metadata.event_type = "DETECTION" $d1.metadata.rule_name = "INSERT_RULE_NAME_A_HERE" $user = [REDACTED_GENERIC_ID]

    // 2. Identify the second sub-rule detection
    $d2.metadata.event_type = "DETECTION"
    $d2.metadata.rule_name = "INSERT_RULE_NAME_B_HERE"
    $user = [REDACTED_GENERIC_ID]
    match: 
    // 3. Connect the rules by the same user over the specified window
    $user over 14d
    condition: 
    // 4. Fire when both conditions have occurred
    $d1 and $d2
}

範例:下列規則會使用事件偵測規則和事件圖表,檢查精選偵測規則,並使用一些進階 YARA-L 函式和變數定義:


rule CheckCuratedDetection_with_EDR_and_EG {

  meta:
    author = "noone@cymbal.com"

  events:

    $d.detection.detection.rule_name = /SCC: Custom Modules: Configurable Bad Domain/
    $d.detection.collection_elements.references.event.network.dns.questions.name = $domain
    $d.detection.collection_elements.references.event.principal.asset.hostname = $hostname

    $e.metadata.log_type = "LIMACHARLIE_EDR"
    $e.metadata.product_event_type = "NETWORK_CONNECTIONS"
    $domain = re.capture($e.principal.process.command_line, "\\s([a-zA-Z0-9.-]+\\.[a-zA-Z0-9.-]+)$")
    $hostname = re.capture($e.principal.hostname, "([^.]*)")

    $prevalence.graph.metadata.entity_type = "DOMAIN_NAME"
    $prevalence.graph.metadata.source_type = "DERIVED_CONTEXT"
    $prevalence.graph.entity.hostname = $domain
    $prevalence.graph.entity.domain.prevalence.day_count = 10
    $prevalence.graph.entity.domain.prevalence.rolling_max <= 5
    $prevalence.graph.entity.domain.prevalence.rolling_max > 0

  match:
    $hostname over 1h

  outcome:
    $risk_score = 80
    $CL_target = array($domain)

  condition:
    $e and $d and $prevalence

}

查看複合偵測項目發現

您可以在「偵測項目」頁面查看複合偵測結果。如果「Inputs」(輸入) 已指定類型和格式的欄顯示「Detection」(偵測) 做為來源,且「Detection type」(偵測類型) 已指定類型和格式的欄顯示「Alert」(快訊) 標籤,旁邊有數字 (例如 Alert (3)),則快訊為複合偵測。

注意:如果您同時使用 SIEM 和 SOAR,也可以在「案件」分頁中查看結果。

最佳化複合偵測

建議您採用下列做法建立複合規則。

延遲時間最佳化

如要盡可能縮短偵測管道的延遲時間,請盡可能使用單一事件規則,例如初始觸發條件。複合規則可使用偵測結果,與其他事件、實體或偵測結果執行更複雜的關聯性,有助於縮短整體延遲時間。

使用有效方法合併偵測結果

建議使用結果變數、中繼標籤和比對變數來彙整偵測結果。這些方法比使用事件樣本更確定可靠。中繼標籤特別靈活,可讓您分類規則,以便複合規則指定任何具有該標籤的偵測結果。

舉例來說,如果多項規則共用相同的中繼標籤 tactic: exfiltration,您可以建立複合規則,針對策略標籤值為 exfiltration 的任何偵測結果。

在複合偵測中使用 nocase 搭配彙整變數時,可能會收到下列語意分析錯誤:

semantic analysis: match variable <variable_name> is not assigned to an event field.

在複合偵測中,第一個變數指派 (例如 $username = $fact1...) 會定義變數的屬性,包括使用 nocase 時不區分大小寫。如果將 nocase 套用至相同聯結變數 (例如 $username = $fact2...) 的後續變數指派作業,編譯器會將其解讀為衝突的重新定義或多餘的限制,導致語意錯誤。

使用函式庫提升偵測效果

您可以在複合規則的策略點使用 YARA-L 函式庫,增加信號並新增更複雜的邏輯。

管理規則更新

更新一或多項複合規則中使用的規則時,系統會自動建立新版規則。複合規則會自動使用新版本。建議您測試整個更新後的規則序列,確認行為符合預期。

限制

設計及實作複合偵測時,請考量下列限制:

  • 排除條件:請勿直接將規則排除條件套用至複合規則。您必須將排除條件套用至構成複合規則的基礎規則。這是因為系統會根據 UDM 欄位 (例如 principal.user.userid) 評估規則排除項目,但複合規則是根據其他偵測結果觸發,而非 UDM 欄位。如果直接將規則排除條件套用至複合規則,排除條件將無法比對,事件也不會遭到排除。

  • SOAR 案件資料可用性:複合偵測項目無法存取所有 SOAR 案件資料。不支援嘗試根據狀態篩選或排除案件的規則邏輯 (例如 $edetection.feedback_summary.status != "CLOSED")。

  • 複合規則:Google SecOps 支援的複合規則深度上限為 10。深度是指從基本規則到最終複合規則的規則數量。

  • 僅限偵測規則:比對時間範圍上限為 14 天,每項規則每日偵測上限為 10,000 次。

  • 結果變數:每項規則最多只能有 20 個結果變數。此外,每個重複結果變數最多只能有 25 個值。

  • 事件樣本:規則中的每個事件變數只會儲存 10 個事件樣本,例如 $e1 和 $e2 各 10 個。

如要進一步瞭解偵測限制,請參閱「偵測限制」。

後續步驟

如要瞭解如何建構複合偵測規則,請參閱「複合偵測規則」和「範例」。

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