re.regex
אפשר להגדיר התאמה של ביטויים רגולריים ב-YARA-L 2.0 באמצעות אחד מסוגי התחביר הבאים:
שימוש בתחביר YARA-L – קשור לאירועים. זוהי דוגמה כללית לתחביר הזה:
$e.field = /regex/שימוש בתחביר YARA-L – כפונקציה שמקבלת את הפרמטרים הבאים:
- השדה שהביטוי הרגולרי מוחל עליו.
- ביטוי רגולרי שמוגדר כמחרוזת.
הנה ייצוג כללי של התחביר הזה:
re.regex($e.field, `regex`)
תיאור
הפונקציה מחזירה true אם המחרוזת מכילה מחרוזת משנה שתואמת לביטוי הרגולרי שצוין. אין צורך להוסיף .* לתחילת הביטוי הרגולרי או לסופו.
הפונקציה re.regex משתמשת במנוע הביטויים הרגולריים RE2.
הערות
- כדי להתאים את המחרוזת המדויקת או רק תחילית או סיומת, צריך לכלול את התווים
^(התחלה) ו-$(סיום) של העוגן בביטוי הרגולרי. לדוגמה,/^full$/תואם בדיוק ל-"full", בעוד ש-/full/יכול להתאים ל-"fullest", ל-"lawfull"ול-"joyfully". - אם שדה ה-UDM כולל תווים של שורה חדשה,
regexpמתאים רק לשורה הראשונה של שדה ה-UDM. כדי לאכוף התאמה מלאה של שדה UDM, מוסיפים(?s)לביטוי הרגולרי. לדוגמה, מחליפים את/.*allUDM.*/ב-/(?s).*allUDM.*/. - אפשר להשתמש במודיפייר
nocaseאחרי מחרוזות כדי לציין שהחיפוש צריך להתעלם מאותיות רישיות.
סוגי נתונים של פרמטרים
STRING, STRING
סוגי ביטויי פרמטרים
ANY, ANY
סוג הערך שמוחזר
BOOL
דוגמאות קוד
דוגמה 1
// Equivalent to $e.principal.hostname = /google/
re.regex($e.principal.hostname, "google")