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