שימוש באופרטור 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של כמה אירועים. בכללים, אפשר להשתמש בסינטקס שלormulti-event עם עד 2 אירועים.קיום אירוע נדרש: ביטויים שמשתמשים ב-
orלא יכולים להיות בלתי מוגבלים. הקיום של האירוע צריך להיות דרישה כדי שהסעיף יקבל את הערך True (לדוגמה,$e1או#e1 > 0).שילוב של סוגי משתנים: אי אפשר לשלב משתנים שאינם משתני UDM עם משתני אירוע UDM באותה רשימת
or.הגבלת חלון: אי אפשר להשתמש בחלונות עוקבים עם תחביר
or.
מה השלב הבא?
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.