比對區段語法
在 YARA-L 2.0 中,match 部分提供多事件關聯的機制。這項功能會連結特定時間範圍內的常見屬性 (例如使用者、IP 位址或檔案雜湊),定義將事件歸類為單一偵測結果的邏輯。
您可以在下列情況使用 match 區段:
- 在規則中連結兩個以上不同的事件。
- 在「搜尋」和「資訊主頁」中匯總資料,例如計算特定時間範圍內的登入失敗次數。
定義關聯條件
您可以指定下列項目,定義這項關聯性的條件:
分組欄位 (鍵):事件 (定義於
events區段) 必須具有相同值的變數 (例如$user或$ip),才能觸發比對。時間限制:事件必須在時間範圍內發生,才能滿足規則或匯總條件。在「規則」中,這會定義偵測時間範圍;在「搜尋」和「資訊主頁」中,這會定義彙整或關聯時間範圍。
比較功能需求
下表詳細比較了規則與搜尋和資訊主頁。
| 功能 | 規則規定 | 搜尋和資訊主頁支援 |
|---|---|---|
| 變數類型 | 必須使用 events 區段中定義的預留位置。 |
支援預留位置和直接 UDM 欄位。 |
| 時間範圍 | 定義偵測邊界。 | 定義匯總或關聯性 bucket。 |
| 語法 | over <number><m/h/d> (例如 10m、2h、1d) |
over <number><m/h/d> |
| 限制 | 最小值:1m / 最大值:48h |
最小值:1m / 最大值:48h |
支援的視窗類型
YARA-L 2.0 會使用不同的視窗行為,判斷時間的劃分方式和事件的分組方式。您可以在「match」部分,使用下列任一支援的視窗,依指定的時間精細度將事件欄位和預留位置分組。
如要進一步瞭解 YARA-L 2.0 支援的視窗類型,請參閱 YARA-L 2.0 視窗邏輯。
瞭解時間界線
「match」部分會根據分組鍵將事件劃分為不同群組。指定的時間長度會定義每個群組的時間界線:
- 納入:只有在時間範圍內的事件,才會傳遞至該特定相符項目的
condition評估。 - 排除:系統會忽略視窗外的事件,避免不相關的事件觸發偽陽性。
「match」部分中的零值
Google SecOps 會隱含地篩除 match 區段中使用的所有預留位置的零值 (字串為 ""、數字為 0、布林值為 false,列舉型別則為位置 0 中的值)。
範例:篩除零值
以下範例說明如何查詢並篩除零值。
rule ZeroValuePlaceholderExample {
events:
// Because $host is used in the match section, the query behaves
// as if the following predicate was added to the events section:
// $host != ""
$host = $e.principal.hostname
// Because $otherPlaceholder was not used in the match,
// there is no implicit filtering of zero values for $otherPlaceholder.
$otherPlaceholder = $e.principal.ip
match:
$host over 5m
condition:
$e
}不過,如果預留位置已指派給函式,查詢不會在 match 區段中,隱含地篩除預留位置的零值。
如要停用零值的隱含篩選,可以在選項部分使用 allow_zero_values 選項。「allow_zero_values」選項僅適用於規則。
範例:允許零值
以下範例說明查詢不會隱含篩除 match 區段中使用的預留位置零值:
rule AllowZeroValuesExample {
events:
// Because allow_zero_values is set to true, there is no implicit filtering
// of zero values for $host.
$host = $e.principal.hostname
// Because $otherPlaceholder was not used in the match,
// there is no implicit filtering of zero values for $otherPlaceholder.
$otherPlaceholder = $e.principal.ip
match:
$host over 5m
condition:
$e
options:
allow_zero_values = true
}後續步驟
如要繼續使用 YARA-L 邏輯,或深入瞭解進階查詢函式,請參閱下列資源:
語法和邏輯
參考資料和範例
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。