תחילת העבודה עם YARA-L
YARA-L 2.0 היא שפת שאילתות ייחודית ומובנית מאוד שמפעילה את Google Security Operations לכל החיפושים, לוחות הבקרה וזיהוי האיומים שמבוסס על כללים. במסמך הזה מוסבר על המבנה הבסיסי של YARA-L, ומוצגים שלבים מעשיים לשימוש בו. המדריך הזה מיועד לכל מי שרוצה להשתמש ב-YARA-L, בין אם מדובר באנליסט אבטחה שמחפש איומים או בمهندس זיהוי שבונה לוגיקה חדשה וחזקה.
במאמר הזה מוסבר על YARA-L ועל התחביר שלה, ומוצג איך אפשר להשתמש בה כדי לבטא כל דבר, החל משאילתת סינון בסיסית ועד לכלל שמחפש דפוסים מורכבים. אפשר להשתמש בקטעים בשאילתת YARA-L כדי לתמוך בפונקציות מצטברות, בלוגי של תנאים ולהוסיף הקשר באמצעות הצטרפויות, התאמת תבניות ועוד.
לפני שמתחילים
- מוודאים שיש לכם גישה לפלטפורמת Google SecOps.
- אימות הטמעת הנתונים באמצעות כללי בדיקה.
- צריכה להיות לכם הבנה בסיסית של מושגי אבטחה ונתוני יומן.
- במסמך הזה אנחנו מניחים שהנתונים מוזנים למופע Google SecOps שלכם ועוברים נרמול לפי מודל הנתונים המאוחד (UDM).
- כדי להתחיל להעביר את השאילתות, אפשר לעיין במדריך מעבר מ-SPL ל-YARA-L 2.0, שבו מוסבר איך לתרגם פקודות SPL נפוצות כמו
stats,evalו-lookupלתנאיםoutcomesו-matchב-YARA-L.
הסבר על המבנה של YARA-L
כל שאילתת YARA-L מחולקת לקטעים נפרדים עם שמות, שקובעים את ההתנהגות של השאילתה.
המבנה הזה מאפשר ניתוח רב-שלבי ומתאם.
| הזמנה | קטע | כללים | חיפוש/מרכזי בקרה | תיאור |
|---|---|---|---|---|
| 1 | meta |
חובה | אופציונלי | הגדרה של מטא-נתונים תיאוריים לכלל, כמו מחבר, תיאור וחומרה. לדוגמה, מחבר (security team), תיאור (Detects multiple failed user logins within 10-minute windows) וחומרה (High).מידע נוסף זמין במאמר בנושא meta תחביר של קטע. |
| 2 | events |
חובה | חובה | מגדיר ומסנן את האירועים שצריך לעקוב אחריהם: התחברויות של משתמשים, התחברויות של משתמשים שנכשלו (משתני אירועים) וקישורים למשתנה של התאמת משתמשים (משתני פלייסהולדר). ההצהרה כוללת את כל מקורות הנתונים (בעיקר אירועים) שצריך לקחת בחשבון, והיא מסננת אותם באמצעות שדות UDM. תחביר של קטע events |
| 3 | match |
חובה | אופציונלי | הקבוצה לפי אירועים ומאפשרת לציין את חלון הזמן הנתמך (לדוגמה, by 5m). נדרש במקרים מסוימים לחיפושים סטטיסטיים שבהם מתבצעת צבירה. נדרש לשאילתות של קורלציה בין כמה אירועים. חובה לציין את השעה בmatch עבור כללים, ואפשר לציין אותה עבור חיפושים ולוחות בקרה. הערה: אם מחריגים קטע match, הכלל יכול להתאים לאירוע יחיד.match |
| 4 | outcome |
אופציונלי | אופציונלי | חישוב מדדים חיוניים וקבלת תובנות (לדוגמה, count(), avg()). ראו תחביר של קטע outcome. |
| 5 | condition |
חובה | אופציונלי | מגדיר את הלוגיקה שצריכה להתקיים כדי להחזיר תוצאות (בחיפוש) או להפעיל התראה (בכלל). הפונקציה מעריכה את הקריטריונים של משתנה השאילתה כדי לקבוע אם התוצאה רלוונטית (לדוגמה, $event >5). אפשר לעיין בתחביר של הקטע condition. |
| 6 | options |
אופציונלי | אופציונלי | מאפשר להפעיל או להשבית התנהגות ספציפית של כלל. תחביר של קטע options |
| 7 | dedup |
לא רלוונטי | אופציונלי | הסרת אירועים כפולים על ידי קיבוץ שלהם על סמך משתני מפתח או נתיבי אירועים (לדוגמה, target.user.userid, target.ip, principal.hostname או משתנים כמו $host, $user). מידע נוסף על משתני אירועים ועל שימוש בביטול כפילויות בחיפוש ובמרכזי בקרה. |
| 8 | order |
לא רלוונטי | אופציונלי | מיון התוצאות שמוגדרות לפי שדות ספציפיים (לדוגמה, asc). מידע נוסף על משתני אירועים. אופציונלי (רלוונטי רק כשמשתמשים ב-match). |
| 9 | limit |
לא רלוונטי | אופציונלי | מגביל את המספר המקסימלי של אירועים שמוחזרים מהשאילתה. |
| 10 | select |
לא רלוונטי | אופציונלי | מציין את רשימת השדות של UDM שייכללו בתוצאות השאילתה. |
| 11 | unselect |
לא רלוונטי | אופציונלי | מציינת את רשימת השדות של UDM שצריך להחריג מתוצאות השאילתה. |
זמינות של מקורות נתונים ב-YARA-L
ל-YARA-L יש גישה למקורות נתונים שונים, בהתאם למיקום שלכם בפלטפורמה. אירועים, ישויות (ECG) וטבלאות נתונים זמינים באופן מלא בחיפוש, במרכזי בקרה ובכללים. פרטים על שאילתות לדוגמה זמינים במאמר בנושא מקורות נתונים נתמכים.
בטבלה הבאה מפורטות התכונות הזמינות ב-YARA-L:
| תכונה | זמין בשפות |
|---|---|
| פניות והיסטוריית פניות | מרכזי שליטה |
| טבלאות נתונים | חיפוש, מרכזי בקרה, כללים |
| ישויות (ECG) | חיפוש, לוחות בקרה, כללים |
| מדדי הטמעה | מרכזי שליטה |
| התאמות של IoC | מרכזי שליטה |
| זיהויים של כללים | מרכזי בקרה, כללים |
| קבוצות כללים | מרכזי שליטה |
| אירועים | חיפוש, לוחות בקרה, כללים |
| מדדי UEBA | חיפוש, מרכזי בקרה |
יצירת החיפוש הראשון ב-YARA-L
כל הנתונים ב-Google SecOps נסרקים באמצעות שתי שיטות עיקריות על סמך המטרות שלכם: סינון החיפוש וחיפוש סטטיסטי (צבירות).
סינון החיפוש (סינון אירועים)
השיטה חיפוש באמצעות סינון מאפשרת לבודד אירועים ספציפיים מתוך הזרם הרחב יותר של נתוני הטלמטריה, בלי העומס של צבירת נתונים סטטיסטיים. בשיטה הזו נעשה שימוש בקריטריונים כדי לצמצם כמויות עצומות של נתוני אבטחה – כמו יומנים או תעבורת רשת – לקבוצת תוצאות ממוקדת. הלוגיקה דורשת רק לציין אירועים בקטע events.
כדי ליצור את החיפוש הראשון שלכם באמצעות מסנן YARA-L, פועלים לפי השלבים הבאים כדי לחפש משתמשים שהכניסה שלהם נכשלה:
- ב-Google SecOps, עוברים לדף search.
-
סינון לפי אירועי התחברות:
metadata.event_type = "USER_LOGIN"
טיפ: אפשר להשמיט את כותרת הקטע
events:בחיפושים. כברירת מחדל, תחביר החיפוש כולל את החלק הזה. - מוסיפים
eventפעולות להתחברויות שנכשלו ממשתמשים שאין להםuseridריק.metadata.event_type = "USER_LOGIN" security_result.action = "FAIL" principal.user.userid != "" - מריצים את החיפוש כדי לראות את התוצאות.
שימוש במשתני פלייסהולדר
אפשר להשתמש במשתני placeholder כדי לחלץ ערכים ספציפיים מהאירועים, כמו שם משתמש או כתובת IP. המשתנים האלה משמשים כנקודות עוגן זמניות שמאפשרות להשוות נתונים בין אירועים שונים או להציג את הערכים האלה בפלט הסופי.
משתמשים במשתני placeholder כדי:
- גישור על פערים בנתונים: אפשר להשתמש במחזיקי מקום, כמו
$useridאו$ip, כדי למצוא התאמות בין משתני אירועים שונים (לדוגמה, אפשר להשתמש ב-$useridכדי לקשר את מזהה המשתמש בין אירועי הכניסה והיציאה). - Group results: בקטע
match, משתמשים במשתני placeholder כדי להגדיר את חלון הפלט של השאילתה, כמוmatch: $userid over 1h. - יצירת תוצאות: אפשר להשתמש ב-placeholder כדי לתעד ולהציג נקודות נתונים ספציפיות בפלט של השאילתה.
לדוגמה, אם מקצים את $user = principal.user.userid, המשתנה $user מכיל עכשיו את הערך הספציפי שחולץ מהאירוע. אחר כך משתמשים באפשרות $user בקטע match כדי לקבץ את כל הפעילות שקשורה למשתמש הספציפי הזה.
חיפוש סטטיסטי (צבירה)
שיטת החיפוש הסטטיסטי עוזרת לכם לקבל תובנות, מגמות או חריגות על ידי ביצוע חישובים בקבוצות של אירועים. במקום להחזיר רשימה של יומנים ספציפיים, הוא מספק סיכומים מצטברים של הנתונים. הלוגיקה משתמשת בקטע match (לקיבוץ) ובקטע outcome (לחישובים). הקטע outcome תומך בפונקציות צבירה, כמו count(), sum(), avg(), max(), min() ו-stddev().
בדוגמה הבאה נעשה שימוש בלוגיקה הבאה של השאילתה:
-
events: מסנן את הנתונים הגולמיים של ניסיונות כניסה שנכשלו. -
match: הגדרת אירועי הקיבוץ (לפיuserid). -
outcome: מבצע צבירה סטטיסטית (מספר אירועים לכל משתמש).
דוגמה: צבירה של פעילות התחברות שנכשלה באמצעות פונקציות outcome
בדוגמה הבאה נעשה שימוש בפונקציות הצבירה של הקטע outcome (כמו count() או sum()) כדי לסכם את פעילות הכניסה שנכשלה.
משתמשים בקטע
matchכדי לקבץ את אירועי ההתחברות שנכשלו לפיuserid:metadata.event_type = "USER_LOGIN" security_result.action = "FAIL" principal.user.userid != "" match: principal.user.useridמשתמשים ב
countשל ניסיונות ההתחברות שנכשלו לכל משתמש ($failed_login_count), שמוגדר על ידי המשתנהoutcome:metadata.event_type = "USER_LOGIN" security_result.action = "FAIL" principal.user.userid != "" match: principal.user.userid outcome: $failed_login_count = count(metadata.id)מריצים את החיפוש כדי לראות את התוצאות.
אופציונלי: מוסיפים רכיב של זמן לקטע
match(במקרה הזה,day). לאחר מכן, מעדכנים את המשתנהoutcomeכך שיהיה מפורש יותר ($daily_failed_login_count):metadata.event_type = "USER_LOGIN" security_result.action = "FAIL" principal.user.userid != "" $user = principal.user.userid match: $user by day outcome: $daily_failed_login_count = count(metadata.id)
יצירת ווידג'ט ללוח הבקרה מתוך החיפוש
אפשר ליצור ווידג'ט ללוח הבקרה מחיפושים מצטברים, כמו בדוגמה יצירת החיפוש הראשון.
אחרי שהחיפוש מאומת, אפשר לשמור אותו כווידג'ט ולהוסיף אותו ללוח הבקרה, באופן הבא:
- כשהתוצאות מוצגות, לוחצים על הכרטיסייה Visualize > Add to Dashboard.
- מגדירים את הווידג'ט:
- נותנים שם לווידג'ט (לדוגמה,
"Daily Failed Login"). - בוחרים טווח תאריכים.
- בוחרים אם להוסיף אותו למרכז בקרה קיים או חדש.
- לוחצים על הוספה.
- נותנים שם לווידג'ט (לדוגמה,
- אופציונלי: אפשר ליצור שאילתות ישירות בלוחות הבקרה. לחלופין, אפשר להעתיק מרכזי בקרה שנאספו ולשנות את השאילתות שבהם כנקודת התחלה.
- אופציונלי: אתם יכולים ליצור לוח בקרה בהתאמה אישית ולהוסיף לו ווידג'טים באמצעות YARA-L. פרטים נוספים זמינים במאמר יצירת מרכז בקרה בהתאמה אישית.
הגדרת לוח בקרה
כשיוצרים מרכז בקרה חדש, הקטע events הוא נקודת התחלה חובה. משם אפשר להשתמש ב-match (לקיבוץ תוצאות) או ב-outcome (לחישוב פלטים וצבירות).
לדוגמה, אתם יכולים ליצור לוח בקרה עם קטעים של events ושל match, שבו מוצגת החומרה ($severity) של זיהויים שמקובצים by hour.
דוגמה: צבירה של נתוני סדרות זמן לפי רמת חומרה
אתם יכולים ליצור מרכז בקרה באמצעות הקטעים
eventsו-matchכדי להציג את חומרת ($severity) הזיהויים, שמקובצים ל-hourקטגוריות:detection.detection.severity != "UNKNOWN_SEVERITY" $severity = detection.detection.severity match: $severity by hour
דוגמה: צבירה של סה"כ ההשפעה הקריטית
באופן דומה, אתם יכולים ליצור לוח בקרה באמצעות הקטעים
eventsו-outcomeכדי לעקוב אחרי זיהויים ברמת חומרה גבוהה:detection.detection.severity = "CRITICAL" $severity = detection.detection.severity outcome: $detection_count = count_distinct($severity)
דוגמה: הצגה חזותית של נפח הזיהוי לפי רמת חומרה לאורך זמן
בדוגמה הבאה, אפשר לספור זיהויים קריטיים ולציין את טווח התאריכים דרך המסוף. במקרים רבים, תשתמשו גם בקטע
matchוגם בקטעoutcomeכשתיצרו תצוגה חזותית בלוח בקרה:detection.detection.severity != "UNKNOWN_SEVERITY" $severity = detection.detection.severity match: $severity by hour outcome: $detection_count = count_distinct(detection.id)
דוגמה: חישוב תדירות ההתחברות של משתמשים
בדוגמה הבאה מתמקדים בחישוב
login_countלמשתמשים ספציפיים באמצעות הקטעיםmatchו-outcome:events: metadata.event_type = "USER_LOGIN" match: target.user.userid outcome: $login_count = count(metadata.id)
יצירת כלל
כל כלל צריך לכלול את הקטעים הבאים:
-
meta: מכיל את שם הכלל ופרטים תיאוריים. -
events: מגדיר את מקורות הנתונים והמסננים באמצעות משתני אירועים. condition: מציין אילו משתני אירועים צריכים להתקיים כדי שהכלל יופעל.
הגדרה של משתני אירועים ושימוש בהם
משתני אירוע פועלים כמאגר לוגי, ומקבצים את המסננים כך שאפשר להתייחס לפעילות הספציפית הזו לאורך החיפוש, הכלל או לוח הבקרה.
כשמגדירים לוגיקה בקטע events, אפשר להשתמש במשתני אירועים (כמו $e) כדי לייצג אירוע ספציפי (או קבוצת אירועים) שעומד בקריטריונים.
דוגמה: הגדרה וסינון של משתני אירועים
כדי להגדיר משתנה אירוע (לדוגמה,
$e), משתמשים בקידומת בקטעeventsשל השאילתה. ההצהרה הזו קובעת שהמשתנה ייצג את האירועים האלה. לדוגמה, הביטוי$e.principal.hostname = "dev"מעריך כל אירוע כדי לקבוע אם שם המארח הוא התאמה מדויקת.$e.principal.hostname = "dev" $e.metadata.event_type = "USER_LOGIN"
אחר כך אפשר להשתמש במשתנה הזה בקטעים אחרים של השאילתה כדי להפנות לקבוצה הספציפית הזו של אירועים (בקטעים match, outcome, condition) ולשדות הנתונים שלהם.
ארגון המבנה והתחביר של הכללים
כדי להגדיר את המשתנים, את לוגיקת הקיבוץ ואת ספי הפעלת הטריגרים, אפשר להשתמש במבנה הכלל ובכללי התחביר הבאים:
| רכיב | תיאור | דוגמה |
|---|---|---|
| מבנה הכלל | עוטף את השאילתה בבלוק rule ומקצה שם ייחודי לזיהוי הגילוי. |
rule DailyFailedLoginAttempts { } |
meta section |
חובה. כולל מטא-נתונים תיאוריים (כמו `author`, `description`, `severity`) כדי לשפר את ניהול הכללים ולספק הקשר לצוות. מומלץ כשיטה מומלצת לניהול כללים. | author = "Alex"severity = "Medium" |
| משתנה מסוג "אירוע" | בשאילתת כללים, כל שדה בקטע events מתחיל במשתנה אירוע (כמו $e) כדי לייצג אירוע ספציפי (או קבוצה של אירועים) שתואם לקריטריונים שלכם. הם פועלים כקבוצות לוגיות של מסננים. בדוגמה Convert your search to a YARA-L rule, $e מייצג את כל ניסיונות הכניסה שנכשלו של המשתמש. |
$e.metadata.event_type = "USER_LOGIN" |
| משתנה פלייסהולדר | הפונקציה מקצה אירוע לשם נפוץ שאפשר להתייחס אליו בהמשך השאילתה. לפרטים נוספים, אפשר לעיין במאמר בנושא שימוש במשתני placeholder. | $userid = $e.principal.user.userid |
match section |
הגדרת הקיבוצים וציון חלון זמן נתמך. בדוגמה המרת החיפוש לכלל YARA-L, הקיבוץ match: $userid over day מקבץ נכון את האירועים לפי מזהה המשתמש בכל תקופה של 24 שעות (1d). כשכותבים כלל, צריך לציין חלון זמן נתמך כדי להגדיר את תקופת המבט לאחור. אתם יכולים להטמיע חלון דילוג, הזזה או עוקב, בהתאם לדרישות הלוגיות שלכם. השימוש באופרטור over יוצר במפורש חלון קצוב (hopping window). |
$userid over 1d |
outcome section |
מבצע צבירות סטטיסטיות או מתעד משתנים ספציפיים כדי שההתראות שיתקבלו יהיו אינפורמטיביות יותר. משתמשים בפונקציה count() ב-$e.metadata.id כדי לצבור אירועים בכל קבוצה match. אפשר גם להקצות משתנים, כמו $userid, כדי לתעד שדות ספציפיים של UDM ולספק הקשר נוסף בפלט הזיהוי שמתקבל. |
$failed_count = count($e.metadata.id) |
condition section |
נדרש כדי שכלל ייצור זיהוי. הגדרת הסף לזיהוי בקטע condition. לדוגמה, אם משתמשים ב-#e > 5, מספר האירועים צריך להיות גדול מחמש (5) כדי להפעיל התראה. אם לא מבצעים חישובים, עדיין צריך להוסיף קטע condition ולציין את קיומו של משתנה האירוע (לדוגמה, #e). כדאי לנתח את נתוני הבסיס של הסביבה כדי להגדיר ספים שיזהו פעילות חשודה תוך מזעור התוצאות החיוביות הכוזבות. אם אתם לא מבצעים חישובים, אתם עדיין צריכים להוסיף קטע condition ולציין את קיום משתנה האירוע, כמו #e. |
#e > 5 או $e |
כדי להבין איך המבנה הזה פועל, אפשר לעיין בדוגמה הבאה.
דוגמה: זיהוי של ניסיון לפריצה (כמה ניסיונות התחברות שנכשלו)
בדוגמה הבאה, המערכת מזהה כמה ניסיונות התחברות שנכשלו של משתמש אחד בטווח של 24 שעות:
rule DailyFailedLoginAttempts { meta: author = "Alex" description = "Detects multiple failed login attempts for a single user within a day." severity = "Medium" events: $e.metadata.event_type = "USER_LOGIN" $e.security_result.action = "FAIL" $e.principal.user.userid != "" $userid = $e.principal.user.userid match: $userid over 1d outcome: $daily_failed_login_count = count($e.metadata.id) condition: $daily_failed_login_count > 5 }
המרת החיפוש לכלל YARA-L
כדי להמיר שאילתת חיפוש סופית לכלל מהימן ליצירת זיהויים, בדרך כלל פועלים לפי השלבים הבאים:
- ב-Google SecOps, עוברים אל עורך הכללים.
- מתחילים כלל חדש.
- מדביקים את שאילתת החיפוש ומשנים אותה כך שתתאים למבנה הכלל, כולל:
- הקטע
meta: מגדיר את כלל המטא-נתונים, כולל שם הכלל, המחבר ורמת החומרה -
eventsection: חובה. בניגוד לחיפוש, צריך להגדיר כותרת ל-event. - משתני אירוע: משתנים שמצהירים על אירועים ספציפיים (או קבוצות של אירועים) בתוך הלוגיקה שלכם ומתייחסים אליהם.
- הקטע
matchעם חלונות הזמן הנתמכים: מציין את מפתחות הקיבוץ ומגדיר את פרמטרי הזמן (לדוגמה,5mאו1d). הערה: אם משתמשים בקטעmatchבכללים, צריך להוסיף חלון זמן. - הקטע
condition: מגדיר את הלוגיקה הסופית או את הסף שצריך לעמוד בו כדי להפעיל כלל.
- הקטע
מתקדם: יצירת כלל עם כמה אירועים
אתם משתמשים בכלל של מספר אירועים כדי לקשר בין סוגים שונים של פעילויות שמתרחשות במסגרת זמן מסוימת. במקום לבחון אירוע בודד, אתם יכולים לקשר בין כמה אירועים, כמו התחברות של משתמש ואז הורדה מיידית של קובץ לא רגיל, כדי לזהות איומים מורכבים.
כלל עם כמה אירועים צריך לכלול את החלקים הבאים:
-
meta: מכיל את שם הכלל ופרטים תיאוריים. -
events: מגדיר את מקורות הנתונים והמסננים באמצעות משתני אירועים. -
match: הגדרת מסגרת הזמן ומשתנה placeholder שמשמש לקישור בין האירועים. outcomeכולל הקשר נוסף לגבי ההתראה. כללים שמתייחסים לכמה אירועים דורשים פונקציית צבירה.-
condition: מציין אילו משתני אירוע צריכים להתקיים כדי שהכלל יופעל.
כדי ליצור כלל עם כמה אירועים:
- הגדרת משתני האירועים: בקטע events, מגדירים את
$e1כדי לתעד אירועי"PROCESS_LAUNCH"ואת$e2כדי לתעד גיבובים ספציפיים של קבצים זדוניים. - התאמה באמצעות פלייסהולדרים: משתמשים במשתנה ה-placeholder
$userכדי לקשר בין שני זרמי האירועים הנפרדים האלה באמצעות מזהה משתמש ראשי משותף (לדוגמה,$user = $e1.principal.user.userid and $user = $e2.principal.user.userid). - קיבוץ ההתאמה: בקטע
matchמציינים שהאירועים האלה צריכים להתרחש עבור אותו$userבפרק זמן מוגדר, למשל 5 דקות (5m).
דוגמה: יצירת כלל עם כמה אירועים
בדוגמה הבאה,
$e1מייצג אירועPROCESS_LAUNCHו-$e2מייצג אירוע עם גיבוב זדוני ספציפי. המשתנה של ה-placeholder$userמקשר בין האירועים האלה לפי אותו מזהה משתמש ראשי.rule MultiEventExample { meta: author = "Alex" description = "Detects a bad hash execution or a process launch from a specific IP for the same user." events: $e1.principal.ip = "1.1.1.1" $e1.metadata.event_type = "PROCESS_LAUNCH" $e2.target.file.sha256 = "badhash..." $user = $e1.principal.user.userid $user = $e2.principal.user.userid match: $user over 5m condition: $e1 or $e2 }
רכיבי הכלל הבאים מתארים את הלוגיקה שבה נעשה שימוש בדוגמה:
- משתני אירוע: הוגדרו שני משתני אירוע,
$e1ו-$e2. השתמשתם במשתנה placeholder$userכדי לצרף את האירועים האלה לשדה המשותףuserid. - הקטע
match: נוסף קטעmatchלכלל הזה של כמה אירועים כדי לקבץ לפי משתמש ולציין חלון זמן של קפיצה של חמש דקות (5m) לצורך קורלציה בין האירועים. - בקטע
conditionמוגדרת הלוגיקה להפעלת ההתראה. בדוגמה הזו, התראה מופעלת אם האירוע הראשון או השני קיימים.
שימוש בכלים אחרים כדי ליצור את השאילתה
הכלים האלה חיוניים לכתיבה, לאימות ולהאצת ההטמעה של YARA-L:
- כלי החיפוש של UDM: מאפשר לחפש במהירות שמות של שדות UDM, הגדרות וסוגי נתונים ישירות בממשק המשתמש. אם מזהה השדה לא ידוע, כדאי קודם לבדוק את ההפניה הזו.
- שפה טבעית לחיפוש ב-YARA-L: בשורת החיפוש, מזינים תיאורים כדי לנסח את השאילתה הראשונית או לקבל או לתרגם הצעות תואמות ב-YARA-L.
- כלי SPL → YARA-L Translator (כלי Labs): אם אתם עוברים מפלטפורמות של מתחרים, אתם יכולים להשתמש בכלי הזה (שזמין בקטע Labs) כדי להמיר שאילתות Splunk SPL מדור קודם ל-YARA-L. כך נוצרת נקודת התחלה מובנית, שמאיצה את המעבר ומשפרת את לוגיקת הזיהוי. כדי להשתמש בכלי Labs, ב-Google SecOps, עוברים אל yourinstancename.chronicle.security/labs.
המאמרים הבאים
- הסבר מלא על התחביר של YARA-L 2.0
- עיון בפונקציות ב-YARA-L 2.0
- אפשר לעיין במקורות המידע הבאים כדי לראות דוגמאות:
- דוגמאות: שאילתות YARA-L 2.0
- קהילה של Google SecOps)
- מידע נוסף על המשאבים הבאים של YARA-L:
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.