使用或條件部分
支援:
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 專業人員尋求解答。