שימוש באופרטור or בקטע של התנאי

נתמך ב:

במאמר הזה מוסבר איך להשתמש באופרטור or כדי לכתוב לוגיקה גמישה ותמציתית לזיהוי בקטע condition של השאילתה.

שימוש ב-or בין משתני אירוע או משתני placeholder מאפשר לשלב כמה תנאים, וכך להפחית את המורכבות הכוללת של תחביר השאילתה:

  • בודק אם אחד מהמשתנים שצוינו קיים. לדוגמה, $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 מסוכנת או הפעלה של גיבוב (hash) לא תקין

כלל הדוגמה הבא מזהה איום אם מזוהה הפעלת תהליך מכתובת IP מסוכנת או אם מופעל גיבוב (hash) רע ידוע:

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
}

דוגמה לחיפוש: risky IP or bad hash execution

בדוגמה הבאה אפשר לראות איך אפשר לעצב מחדש את כלל הדוגמה כשאילתת חיפוש.

$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, ויכול להיות שזמני הביצוע של השאילתות יהיו ארוכים יותר.

  • מגבלת משתני אירועים: בחיפוש ובלוחות הבקרה, אפשר להשתמש ב-3 אירועים לכל היותר בתחביר or של כמה אירועים. בכללים, אפשר להשתמש בסינטקס של or multi-event עם עד 2 אירועים.

  • קיום אירוע נדרש: ביטויים שמשתמשים ב-or לא יכולים להיות בלתי מוגבלים. הקיום של האירוע צריך להיות דרישה כדי שהסעיף יקבל את הערך True (לדוגמה, $e1 או #e1 > 0).

  • שילוב של סוגי משתנים: אי אפשר לשלב משתנים שאינם משתני UDM עם משתני אירוע UDM באותה רשימת or.

  • הגבלת חלון: אי אפשר להשתמש בחלונות עוקבים עם תחביר or.

מה השלב הבא?

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.