ביטול כפילויות בתוצאות החיפוש

נתמך ב:

ב-Google Security Operations, תוצאות החיפוש יכולות לכלול כפילויות כשכמה מערכות מתעדות את אותו אירוע (לדוגמה, מערכת אימות וחומת אש שמתעדות שתיהן כניסה יחידה).

כדי להחזיר רק תוצאות ייחודיות, משתמשים בקטע dedup בתחביר YARA-L. הוספת שדות UDM לקטע הזה מבטיחה שהשאילתה תחזיר תוצאה אחת לכל שילוב ערכים ייחודי.

הנחיות לשיפור הביצועים

האופרטור dedup מעבד את כל הנתונים בטווח זמן כיחידה אחת כדי לשמור על נכונות הנתונים.

  • טווחים אופטימליים: הביצועים הכי טובים מתקבלים בטווחים של יום אחד או פחות.
  • זמן אחזור: טווחים של 7 עד 30 ימים מגדילים באופן משמעותי את זמן האחזור ועלולים לגרום לפסק זמן של השאילתה.

מומלץ להשתמש תמיד בטווח הזמן הקצר ביותר שמתאים לחקירה כשמחילים את האופרטור dedup.

ביטול כפילויות לפי סוג שאילתה

ההתנהגות של ביטול הכפילויות תלויה בשאילתה שלכם, אם היא משתמשת באגרגציות, והיא חלה על הסוגים הבאים של שאילתות חיפוש ושאילתות של מרכזי בקרה.

שאילתות חיפוש מצטברות

שאילתות חיפוש מצטברות כוללות את הקטעים match, match ו-outcome או aggregated outcome. הסרת הכפילויות מתבצעת אחרי קביעת התוצאות.

לגבי השאילתות האלה, מוסיפים את השדות הבאים לקטע dedup:

  • שדות מהקטע match
  • שדות מהקטע outcome

שאילתות חיפוש ב-UDM

שאילתות חיפוש ב-UDM לא כוללות את הקטעים match, outcome או outcome. הערה: שאילתות חיפוש ב-UDM יכולות לכלול קטע outcome כל עוד אין צבירות ואין קטע match.

כדי לבטל כפילויות בחיפושים ב-UDM, מוסיפים את השדות הבאים לקטע dedup:

  • כל שדות האירועים שלא חוזרים על עצמם, שלא מוגדרים כמערך ושלא מקובצים.
  • שדות placeholder מהקטע events.
  • משתני התוצאה מהקטע outcome (אם אין נתונים מצטברים).

בקטע הזה מוצג התחביר של YARA-L, שאפשר להריץ בחיפוש.

דוגמה: חיפוש של כתובות IP ייחודיות

שאילתת הדוגמה הבאה מזהה חיבורים לרשת בין כתובות IP פנימיות וחיצוניות, ללא כפילויות לפי כתובת ה-IP הפנימית (principal.ip):

events:
   metadata.event_type = "NETWORK_CONNECTION"
   target.ip != ""
   principal.ip != ""

match:
   target.ip, principal.ip

dedup:
   principal.ip

דוגמה: כתובות IP ייחודיות עם נפח תנועה

בדומה לדוגמה הקודמת, החיפוש בדוגמה הבאה מציג אירועים של חיבור לרשת עם כתובות IP ייחודיות. הפעלת המסנן dedup על principal.ip תצמצם את התוצאות לאירועים שמשויכים לכתובות IP ייחודיות. בקטע outcome מוצג מספר הבייטים הכולל שנשלחו בין principal.ip לבין target.ip, והתוצאות מסודרות לפי נפח התנועה, מהגבוה לנמוך.

events:
   metadata.event_type = "NETWORK_CONNECTION"
   target.ip != ""
   principal.ip != ""

match:
   target.ip, principal.ip

outcome:
   $total_bytes = sum(network.sent_bytes)

dedup:
   principal.ip

order:
   $total_bytes desc

דוגמה: ביטול כפילויות בסיסי ב-UDM

בדוגמה הבאה מתבצע חיפוש של תצוגה ברמה גבוהה של שמות מארחים ייחודיים שהייתה אליהם גישה בכל סוגי היומנים. הוספת dedup ל-target.hostname מצמצמת את התוצאות לאירועים שמשויכים לשמות מארחים חיצוניים ייחודיים. הערה: הפורמט הזה יעיל לשאילתות שלא דורשות צבירות.

metadata.log_type != ""

dedup:
    target.hostname

הנה דוגמה מקבילה בלי האפשרות dedup. בדרך כלל, הפונקציה מחזירה הרבה יותר אירועים.

metadata.log_type != "" AND target.hostname != ""

דוגמה: שמות מארחים ייחודיים

בדומה לדוגמה הקודמת, בחיפוש הזה מוצגים אירועים של חיבור לרשת עם שמות מארחים ייחודיים. החלת האפשרות dedup על principal.hostname מצמצמת את התוצאות לאירועים שמשויכים למארחים ייחודיים:

events:
   metadata.event_type = "NETWORK_CONNECTION"
   target.hostname != ""
   principal.hostname != ""

match:
   target.hostname, principal.hostname

outcome:
   $total_bytes = sum(network.sent_bytes)

dedup:
   principal.hostname

order:
   $total_bytes desc

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.