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