שימוש ב-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 multi-event. בכללים אפשר להשתמש ב-2 אירועים לכל היותר בתחביר של or multi-event.

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

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

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

מה השלב הבא?

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