הטמעה של הצטרפויות ללא קטע התאמה

נתמך ב:

במסמך הזה מוסבר המושג של פעולות צירוף ללא קטע match או צירוף נתונים בחיפוש של Google Security Operations.

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

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

איך מתבצע צירוף נתונים

אפשר ליצור צירוף נתונים על ידי יצירת קורלציה בין שדות משותפים בבלוקים שונים של אירועים או ישויות. אפשר לעשות את זה באחת מהשיטות הבאות:

  • השוואה ישירה בין השדות (לדוגמה, $e1.principal.hostname = $e2.principal.hostname)

  • מקצים את שני השדות לאותו משתנה placeholder (לדוגמה, $host = $e1.principal.hostname ו-$host = $e2.principal.hostname).

בשני המקרים, Search מצטרף באופן מרומז לבלוקים שבהם הערכים של השדות האלה זהים.

סוגי איחוד נתונים נתמכים

אפשר להשתמש בסוגי הצירוף הבאים של נתונים בשאילתות החיפוש:

  • שילובים בין אירועים: מתאם בין נתונים של שני סוגים שונים של אירועים במודל הנתונים המאוחד (UDM).

  • הצטרפות מאירוע ל-ECG: העשרת נתוני אירועים ב-UDM במידע מגרף הקשר של הישות (ECG).

צירופים מאירוע לאירוע

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

בדוגמה הבאה של שאילתה מוצגות כל ההתחברויות לרשת (NETWORK_CONNECTION) שמקורן במארח שבו התרחשה גם התחברות של משתמש (USER_LOGIN):


  // Find user logins and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "USER_LOGIN"

  $host = $e1.principal.hostname

  // Find network connections and join them where the hostname matches the
  $host placeholder

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e2.principal.hostname

מגבלות

  • אפשר להצטרף לעד שני אירועים.

  • טווח הזמן של השאילתה מוגבל ל-14 ימים לכל היותר.

  • מגבלת השאילתות היא 120 שאילתות לשעה (QPH).

דוגמאות

דוגמה לשאילתה הבאה מוצאת את כל חיבורי הרשת (NETWORK_CONNECTION) שמקורם במארח שבו התרחשה גם התחברות של משתמש (USER_LOGIN):


  // Find user logins and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "USER_LOGIN"

  $host = $e1.principal.hostname

  // Find network connections and join them where the hostname matches the $host
  placeholder

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e2.principal.hostname

הצטרפות לפי מזהה משתמש


  $e1.metadata.event_type = "USER_LOGIN"

  $e1.security_result.action = "ALLOW"

  $e1.principal.user.userid = $user

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $e2.principal.user.userid = $user

הצטרפות באמצעות כתובת IP


  $e1.metadata.event_type = "USER_LOGIN"

  $e1.security_result.action = "ALLOW"

  $e1.principal.ip = $ip

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $e2.principal.ip = $ip

צירופים של גרף הקשר בין אירועים לישויות

הצטרפות של אירועים ל-ECG מתאימה במיוחד להעשרת אירועים ב-UDM בנתונים הקשריים לגבי הישויות הרלוונטיות (כמו נכסים, משתמשים) מ-ECG. השילוב הזה מספק תמונה מלאה יותר כי הוא משלב נתוני אירועים בזמן אמת עם מידע היסטורי ומידע על ישויות יחסיות.

מגבלות

  • טווח הזמן של השאילתה מוגבל ל-14 ימים לכל היותר.

  • מגבלת השאילתות היא 120 QPH.

  • אפשר לאחד בשאילתה עד שני אירועים של UDM.

  • אפשר להצטרף לעד אירוע אחד של בדיקת אק"ג בשאילתה.

  • אי אפשר לייצא לטבלת נתונים שאילתות של איחוד אירועים עם נתוני ECG.

  • אין תמיכה בצירופים של נתוני אק"ג לנתוני אק"ג.

  • אין תמיכה בצירופים של נתוני אק"ג לטבלאות נתונים.

דוגמאות

השאילתה הזו מעשירה את אירועי החיבור לרשת בפרטי נכסים מ-ECG על ידי הצטרפות לשם המארח.


  // Find network connections and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e1.principal.asset.hostname

  // Find asset entities in the graph and join where the hostname matches the
  $host placeholder

  $g1.graph.metadata.entity_type = "ASSET"

  $host = $g1.graph.entity.asset.hostname

הצטרפות לפי כתובת IP עם סוג יומן ספציפי


  $ip = $e1.principal.ip

  $ip = $g1.graph.entity.ip

  $e1.metadata.log_type = "WINDOWS_DEFENDER_ATP"

  $g1.graph.entity.ip = "10.19.6.24"

הצטרפות לפי שם מארח עם מסנן IP ספציפי


  $e1.metadata.event_type = "FILE_CREATION"

  $host = $e1.principal.hostname

  $e1.principal.ip = "10.0.0.76"

  $g1.graph.metadata.entity_type = "ASSET"

  $host = $g1.graph.entity.hostname

שיטות מומלצות

כדי למנוע ביצועים איטיים ופסק זמן של שאילתות, כדאי להשתמש במסננים ספציפיים ומצומצמים בכל בלוק ($e1,‏ $e2, ‏ $g1) בשאילתות ה-JOIN.

לדוגמה, שאילתה רחבה כמו הבאה:

$e1.metadata.event_type = "USER_LOGIN"
$e2.metadata.event_type = "NETWORK_CONNECTION"
right join $e1.principal.hostname = $e2.principal.hostname

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


$e1.metadata.event_type = "USER_LOGIN"
$e1.principal.ip = "192.168.1.101"
$e1.principal.user.userid = "alex"
$e2.metadata.event_type = "NETWORK_CONNECTION"
$e2.src.hostname = "altostrat.com"
right join $e1.principal.hostname = $e2.principal.hostname

עבודה עם תוצאות

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

אחרי שמריצים שאילתה, אפשר לבצע את הפעולות הבאות עם התוצאות:

  • הורדה כקובץ CSV: ייצוא של קבוצת התוצאות המלאה לקובץ CSV לניתוח אופליין.

  • ייצוא לטבלאות נתונים: שמירת התוצאות בטבלת נתונים במופע לצורך עיון או קורלציה נוספת (רק עבור הצטרפות של אירוע לאירוע).

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