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