使用或在條件部分
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 or 運算子,在查詢的 condition 區段中編寫彈性且簡潔的偵測邏輯。
在事件或預留位置變數之間使用 or,即可合併多個條件,降低查詢語法的整體複雜度:
- 檢查是否存在任一指定變數。舉例來說,
$e1 or $e2至少需要一個$e1執行個體或一個$e2執行個體。
條件區段中的 or 語法
直接在變數之間使用 or 關鍵字。以下範例與 COUNT($e1)>0 or COUNT($e2)>0 等效:
condition:
$e1 or $e2 // True if $e1 exists or $e2 exists
規則範例:執行風險 IP 或不良雜湊
如果系統偵測到從有風險的 IP 位址啟動的程序,或是執行已知的錯誤雜湊,下列範例規則就會偵測到威脅:
rule MultiEventOr {
meta:
author = "google-secops"
events:
$e1.principal.ip = "1.1.1.1"
$e1.metadata.event_type = "PROCESS_LAUNCH"
$e2.target.file.sha256 = "badhash..."
$user = $e1.principal.user.userid
$user = $e2.principal.user.userid
match:
$user over 5m
condition:
$e1 or $e2
}
例如:執行高風險 IP 或不良雜湊
以下範例說明如何將範例規則重新格式化為搜尋查詢。
$e1.principal.ip = "1.1.1.1"
$e1.metadata.event_type = "PROCESS_LAUNCH"
$e2.target.file.sha256 = "badhash..."
$user = $e1.principal.user.userid
$user = $e2.principal.user.userid
match:
$user over 5m
condition:
$e1 or $e2
已知限制
資源耗用量:在事件變數之間使用
or時,耗用的資源會比使用and多,且可能導致查詢執行時間變長。事件變數限制:在搜尋和資訊主頁中,您最多可以在多事件
or語法中使用 3 個事件。如果是規則,您最多可以在多事件or語法中使用 2 個事件。必要事件存在:使用
or的運算式不能沒有界限。子句必須存在事件,才能為 true (例如$e1或#e1 > 0)。變數類型混用:您無法在同一份
or清單中,將非 UDM 變數與 UDM 事件變數合併。視窗限制:您無法搭配
or語法使用滾動視窗。
後續步驟
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。