תחביר של קטע האפשרויות
הקטע options של שאילתת YARA-L זמין רק לכללים.
אפשר לציין אפשרויות באמצעות התחביר key = value, כאשר key הוא שם אפשרות מוגדר מראש ו-value הוא ערך תקין לאפשרות:
rule RuleOptionsExample {
// Other rule sections
options:
allow_zero_values = true
}
ערכים של אפשרויות
אלה הערכים האפשריים לאפשרויות:
האפשרות allow_zero_values
הערכים התקינים לאפשרות allow_zero_values הם true ו-false (ברירת מחדל), שקובעים אם האפשרות מופעלת או לא. האפשרות
allow_zero_values מושבתת אם היא לא מצוינת בשאילתה.
כדי להפעיל את ההגדרה allow_zero_values, מוסיפים את השורה הבאה לקטע options של השאילתה:
allow_zero_values = true
הפעולה הזו מונעת מהשאילתה לסנן באופן מרומז את ערכי האפס של הפלייסהולדרים שמשמשים בקטע match, כפי שמתואר במאמר ערכי אפס בקטע ההתאמה.
האפשרות suppression_window
האפשרות suppression_window מספקת מנגנון ניתן להרחבה לשליטה בנפח ההתראות ולביטול כפילויות בממצאים, במיוחד למשתמשים שעוברים מ-Splunk (ומפלטפורמות אחרות) שמשתמשות ביכולות דומות של הגבלת קצב ההתראות.
ה-suppression_window משתמש בגישה של חלון עוקב (tumbling window) – חלון בגודל קבוע שלא חופף לחלונות אחרים, שמונע זיהוי כפול. אפשר גם לספק suppression_key כדי לצמצם עוד יותר את מופעי השאילתות שמוסתרים בתוך suppression window. מפתח ביטול הכפילויות (suppression_key), נקודת הנתונים הספציפית שהמערכת בודקת כדי להחליט אם אירוע הוא כפילות, משתנה בהתאם לסוג הכלל:
- שאילתות של אירוע יחיד משתמשות במשתנה
outcomeשנקראsuppression_keyכדי להגדיר את היקף ביטול הכפילויות. אם לא מצייניםsuppression_key, כל המופעים של השאילתה מושעים באופן גלובלי במהלך חלון הזמן.
דוגמה: אפשרות של חלון השהיה לשאילתות של אירוע יחיד
בדוגמה הבאה, הערך suppression_window מוגדר ל-5m והערך suppression_key מוגדר למשתנה $hostname. אחרי שהשאילתה מפעילה זיהוי של $hostname, כל זיהוי נוסף של $hostname מוסתר למשך חמש הדקות הבאות. עם זאת, אם השאילתה מופעלת באירוע עם שם מארח שונה, נוצר זיהוי.
rule SingleEventSuppressionWindowExample {
// Other rule sections
outcome:
$suppression_key = $hostname
options:
suppression_window = 5m
}- שאילתות של כמה אירועים משתמשות במשתנים שהוגדרו בקטע
matchכדי לקבוע מה צריך להסתיר. הערך שלsuppression_windowצריך להיות גדול גם מהחלון שלmatch.
דוגמה: אפשרות חלון השהיה לשאילתות של כמה אירועים
בדוגמה הבאה, הערך suppression_window מוגדר ל-1h. אחרי שהשאילתה מפעילה זיהוי של ($hostname, $ip) בחלון של 10m, כל זיהוי נוסף של ($hostname, $ip) מודחק למשך השעה הבאה. עם זאת, אם השאילתה מופעלת על אירועים עם שילוב שונה, נוצרת זיהוי.
rule MultipleEventSuppressionWindowExample {
// Other rule sections
match:
$hostname, $ip over 10m
options:
suppression_window = 1h
}מידע נוסף
- ביטויים, אופרטורים ומבנים שמשמשים ב-YARA-L 2.0
- פונקציות ב-YARA-L 2.0
- יצירת כללי זיהוי מורכבים
- דוגמאות: שאילתות YARA-L 2.0
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.