שימוש ברשימות הפניה ובטבלאות נתונים ב-YARA-L 2.0

נתמך ב:

רשימות הפניה וטבלאות הנתונים מאפשרות לכם להשוות בין שדות אירועים לבין מערכי נתונים מותאמים אישית כדי ליצור מבנה ללוגיקה שלכם. אתם יכולים להשתמש באובייקטים האלה כדי לנהל אינדיקטורים של נפח גבוה – כמו כתובות IP ידועות כמזיקות או שמות מארחים מאושרים – בחיפוש, בלוחות בקרה ובזיהויים, בלי לשנות את התחביר הבסיסי.

אפשר להשתמש ברשימות הפניות או בטבלאות נתונים בקטע events או outcome של כלל. מידע נוסף על התנהגות ועל תחביר של רשימות הפניות וטבלאות הנתונים זמין במאמרים בנושא רשימות הפניות ושימוש בטבלאות נתונים.

שימוש בתחביר של רשימת הפניות וטבלת הנתונים

רשימות הפניה וטבלאות הנתונים פועלות לפי תחביר דומה, שמוגדר על ידי מזהה האובייקט וסוג ההתאמה (string,‏ regex או CIDR) שנדרש לפעולה. בקטע הזה מוצגות דוגמאות לתחביר של שימוש בסוגים שונים של רשימות הפניה.

ב-Google Security Operations, רשימות הפניות וטבלאות נתונים משמשות בקטעים events או outcome של כלל YARA-L כדי להשוות נתוני אירועים לערכות נתונים שהועלו. הפעולות האלה מתבצעות במהלך תהליך הערכת הכלל כדי לסנן אירועים או להעשיר את תוצאות הזיהוי.

משתמשים ברשימות הפניה כשצריך לבדוק אם שדה יחיד תואם לאחד מהערכים ברשימה מוגדרת מראש (לדוגמה, רשימה של כתובות IP זדוניות ידועות).

  • STRING: $e.principal.hostname in %string_list_name
  • REGEX: $e.principal.hostname in regex %regex_list_name

  • CIDR: $e.principal.ip in cidr %cidr_list_name

משתמשים בטבלאות נתונים כשלנתוני ההפניה יש מבנה של שורות או עמודות, וכך אפשר למפות שדות ספציפיים לעמודות ספציפיות.

  • STRING: $e.target.hostname in %table_name.column_name

  • REGEX: $e.target.hostname in regex %table_name.column_name

  • CIDR: $e.principal.ip in cidr %table_name.column_name

דוגמאות: תחביר והתנהגות של רשימת הפניות

בדוגמאות הבאות מוסבר איך לבנות שאילתות לסוגים שונים של מערכי נתונים ולהחיל לוגיקה מותנית על ההתאמות:

דוגמה: תחביר של רשימת הפניות בשאילתה

// STRING reference list
$e.principal.hostname in %string_reference_list

// Regular expression reference list
$e.principal.hostname in regex %regex_reference_list

// CIDR reference list
$e.principal.ip in cidr %cidr_reference_list

דוגמה: תחביר של טבלת נתונים

// STRING data table
$e.target.hostname in %data_table_name.column_name

// Regular expression data table
$e.target.hostname in regex %regex_table_name.column_name

// CIDR data table
$e.principal.ip in cidr %cidr_table_name.column_name

דוגמה: אופרטורים not ו-nocase

האופרטור nocase תואם לרשימות STRING ולרשימות REGEX.

// Exclude events whose hostnames match substrings in my_regex_list.
not $e.principal.hostname in regex %my_regex_list

// Event hostnames must match at least one string in my_string_list (case insensitive).
$e.principal.hostname in %my_string_list nocase
    

האופרטור nocase תואם לרשימות STRING ולרשימות REGEX.

מטעמי ביצועים, מנוע הזיהוי מגביל את השימוש ברשימת ההפניות.

  • מספר ההצהרות המקסימלי של in בכלל, עם או בלי אופרטורים מיוחדים: 10
  • מספר מקסימלי של הצהרות in עם האופרטור regex: 5
  • מספר מקסימלי של הצהרות in עם האופרטור cidr: 5

מידע נוסף על אופן הפעולה של רשימות הפניות ועל התחביר של רשימות הפניות זמין במאמר רשימות הפניות.

כדי לשמור על ביצועים אופטימליים בחיפוש, בלוחות הבקרה ובזיהויים, מנוע YARA-L אוכף את המגבלות הבאות:

  • מספר ההצהרות המקסימלי של in בשאילתה, עם או בלי אופרטורים מיוחדים: 7
  • מספר מקסימלי של הצהרות in עם האופרטור regex: 4
  • מספר ההצהרות המקסימלי עם האופרטור cidr: 2in

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