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")