חיפוש בטבלאות נתונים
טבלאות נתונים הן מבני נתונים מרובי עמודות שמאפשרים להזין נתונים משלכם ב-Google Security Operations. טבלאות נתונים יכולות לשמש כטבלאות חיפוש עם עמודות מוגדרות והנתונים מאוחסנים בשורות. אפשר ליצור או לייבא טבלת נתונים לחשבון Google SecOps באמצעות ממשק האינטרנט של Google SecOps, באמצעות data tables API או באמצעות שאילתה של סקירה כללית של YARA-L 2.0.
הקצאת הרשאות גישה לטבלאות נתונים באמצעות RBAC לנתונים
כדי להשתמש בטבלאות נתונים, צריך להקצות היקפי גישה לטבלאות נתונים באמצעות בקרת גישה מבוססת-תפקידים (RBAC) לנתונים. הקצאת היקפי הרשאות לטבלת נתונים מאפשרת לכם לקבוע אילו משתמשים ומשאבים יכולים לגשת אליה ולהשתמש בה. מידע נוסף זמין במאמר הגדרת RBAC של נתונים לטבלאות נתונים.
ניהול טבלאות נתונים באמצעות ממשק האינטרנט של Google SecOps
בקטעים הבאים מוסבר איך לנהל טבלאות נתונים באמצעות ממשק האינטרנט, כולל איך לגשת לטבלאות נתונים, להוסיף טבלת נתונים חדשה, לערוך את התוכן שלה, להוסיף שורות ואיך להסיר טבלת נתונים מהחשבון.
גישה לטבלאות הנתונים
כדי לגשת לדף טבלאות נתונים:
- בסרגל הצד, בוחרים באפשרות חקירה > טבלאות נתונים.
כדי למצוא טבלת נתונים ספציפית, מזינים את השם שלה בשדה חיפוש שבחלק העליון של סרגל הצד טבלאות נתונים.
הוספת טבלת נתונים חדשה
כשמוסיפים טבלת נתונים חדשה, אפשר להזין נתוני CSV באופן ידני, להדביק נתוני CSV או לייבא קובץ CSV או TSV לטבלת הנתונים.
ההגדרות הבאות הן קבועות ואי אפשר לשנות אותן אחרי ששומרים טבלת נתונים חדשה:
כדי להוסיף טבלת נתונים חדשה ל-Google SecOps, מבצעים את הפעולות הבאות:
בסרגל הצד, בוחרים באפשרות חקירה > טבלאות נתונים.
בחלק העליון של סרגל הצד טבלאות נתונים, לוחצים על יצירה.
בתיבת הדו-שיח יצירת טבלת נתונים חדשה, נותנים לטבלה שם ואפשר גם להוסיף תיאור.
מבצעים אחת מהפעולות הבאות:
- מזינים נתוני CSV באופן ידני או מדביקים נתוני CSV באזור Text (מצב עריכה).
- כדי לייבא נתונים מקובץ CSV או TSV לטבלת הנתונים:
- לוחצים על ייבוא קובץ.
- עוברים לקובץ ולוחצים על פתיחה. תיבת הדו-שיח ייבוא קובץ תיפתח.
- אם בחרתם קובץ TSV בשלב הקודם, מבצעים את הפעולות הבאות:
- מהרשימה סוג התו המפריד, בוחרים באפשרות זיהוי אוטומטי או Tab (טאב).
- ברשימה התחלת הייבוא בשורה, מציינים את השורה בקובץ שממנה רוצים לייבא את הנתונים.
- לוחצים על ייבוא נתונים.
בוחרים במצב העריכה Table ומגדירים את האפשרויות הבאות לפי הצורך:
לוחצים על Save. טבלת הנתונים החדשה מוצגת בסרגל הצד טבלאות נתונים ומוכנה לקבל נתונים נוספים.
מיפוי של סוגי נתונים לעמודות בטבלת נתונים
כשמוסיפים טבלת נתונים חדשה, אפשר למפות סוגי נתונים (מחרוזת, ביטוי רגולרי, CIDR או מספר) לעמודות בטבלת הנתונים.
אפשר למפות שדות נתונים בודדים לעמודת נתונים, ולמפות שדות נתונים חוזרים לעמודת נתונים באמצעות ממשק האינטרנט או ה-API, באופן הבא:
גם בממשק האינטרנט וגם ב-API, צריך להפריד בין הערכים של שדות הנתונים באמצעות קו אנכי (
|). בממשק האינטרנט, אם ערך כלשהו כולל קו אנכי (|), המערכת מתייחסת אליו כאל ערך חוזר כברירת מחדל.בבקשות API, מגדירים את
repeated_valuesלערךtrue.
מידע נוסף מופיע במאמר בנושא שדות חוזרים.
בדוגמה הבאה, העמודה Field_value בטבלת הנתונים מכילה ערכים
לכמה שדות:
| Field_value | Field_name |
|---|---|
| altostrat.com | FQDN |
| 192.0.2.135 | קניין רוחני (IP) |
| צ'רלי | userid |
| דוגמה | hostname |
הטבלה שלמעלה מחולקת לארבע עמודות, וכל עמודה ממופה לסוג שדה אחד בלבד לפני שאפשר להשתמש בה לכל אחד מתרחישי השימוש של טבלת הנתונים שמוצגים במסמך הזה.
| FQDN | קניין רוחני (IP) | Userid | שם המארח |
|---|---|---|---|
| altostrat.com | 192.0.2.135 | צ'רלי | דוגמה |
| … | … | … | … |
הגדרת עמודות מרכזיות
כשמוסיפים טבלת נתונים חדשה, אפשר להגדיר עמודות ספציפיות כעמודות מפתח.
סימון עמודה כעמודת מפתח מזהה באופן ייחודי את הערכים בעמודה הזו, מונע כפילויות בנתונים ומשפר את גילוי הנתונים עבור כללים וחיפושים.
הגדרת עמודות לתמיכה בשדות חוזרים
כשמוסיפים טבלת נתונים חדשה, אפשר להגדיר עמודות ספציפיות לתמיכה בשדות חוזרים.
כשיוצרים את טבלת הנתונים, צריך לציין במפורש שעמודות שמיועדות לאחסון של שדות מרובי-ערכים או של שדות חוזרים הן חוזרות.
מיפוי שמות עמודות לשדות של ישויות (אופציונלי)
כשמוסיפים טבלת נתונים חדשה, אפשר למפות את שמות העמודות של טבלת הנתונים לשדות של ישות.
בדוגמה הבאה של טבלת נתונים, העמודות Userid ו-Role ממופות לעמודות entity.user.userid ו-entity.user.attribute.role.name, בהתאמה:
| Userid (מיפוי אל entity.user.userid) |
אימייל | תפקיד (מיפוי ל-entity.user.attribute.role.name) |
|---|---|---|
| תקע | jack123@gmail.com | אדמין |
| טוני | tony123@gmail.com | מהנדס |
אפשר למפות עמודה בטבלת נתונים לשדה פרוטו של ישות באמצעות השדה
mapped_column_path של משאב DataTable.
בעמודות ללא נתיב יישות מוגדר, כמו Email בטבלת הדוגמה הזו, צריך לציין ידנית את סוג הנתונים. בדומה לרשימות הפניה, סוגי הנתונים הנתמכים בטבלאות נתונים הם number, string, regex ו-cidr.
כדי לכלול בטבלת נתונים עמודות ממופות ועמודות לא ממופות, צריך לציין תנאי join.
עמודות שלא מופו נשמרות בשדה additional של הישות שהטבלה מצטרפת אליה. הם מתווספים כצמדי מפתח/ערך, כאשר key הוא שם העמודה ו-value הוא ערך השורה התואם.
הוספת שורה חדשה לטבלת נתונים
כדי להוסיף שורה חדשה:
- בכרטיסייה פרטים, בוחרים במצב עריכה טבלה.
- לוחצים לחיצה ימנית על שורה קיימת ובוחרים באפשרות הוספת שורה מעל.
- מזינים נתונים לשורה חדשה. המערכת מתייחסת לשורה הראשונה כאל כותרת של טבלה. חשוב להתאים כל פריט נתונים לעמודת הנתונים ולסוג הנתונים המתאימים.
- לוחצים על Save.
עריכת שורה בטבלת נתונים
כדי לערוך שורה:
- לוחצים על השדה שרוצים לשנות. השדה הופך לעריכה.
- מבצעים את השינויים הרצויים.
- לוחצים על Save.
חיפוש שורות בטבלת הנתונים
אפשר לחפש מידע ספציפי בטבלת נתונים באמצעות ממשק האינטרנט. בכרטיסייה פרטים, מזינים מחרוזת חיפוש בשדה החיפוש ולוחצים על חיפוש. מוצגות השורות שמכילות את המחרוזת לחיפוש.
ניהול ה-TTL של שורה בטבלה
כדי לנהל את הערך של אורך החיים (TTL) של שורות בטבלה, מבצעים את הפעולות הבאות:
לוחצים על הצגת TTL לכל שורה. מוצגת עמודה של TTL, שבה מצוין אם תוקף השורה פג. אם התוקף לא פג, מוצג הזמן שנותר עד לתפוגה.
לוחצים על הזמן של תפוגת שורת ברירת המחדל כדי להציג את תיבת הדו-שיח עדכון תפוגת שורת ברירת המחדל ומשנים את ה-TTL של שורת הטבלה.
מזינים ערך חדש של TTL בשדה שעות או ימים. הערך המינימלי הוא שעה אחת. הערך המקסימלי הוא 365 ימים.
לוחצים על Save.
התנהגות של שינוי TTL ברמת השורה
השורות מקבלות בירושה את ה-TTL שהוחל ברמת הטבלה. אפשר גם להגדיר TTL ספציפי לשורות בודדות, וה-TTL ברמת השורה מקבל עדיפות על פני ברירת המחדל ברמת הטבלה. כשמוסיפים שורה חדשה, ה-TTL שלה מתחיל מרגע היצירה.
מחיקת שורה בטבלה
כדי למחוק שורה, לוחצים לחיצה ימנית על השורה ובוחרים באפשרות מחיקת שורות.
כדי למחוק כמה שורות, בוחרים כל שורה שרוצים להסיר. אחר כך לוחצים לחיצה ימנית על שורה כלשהי מתוך השורות שנבחרו ובוחרים באפשרות מחיקת שורות.
הסרת טבלת נתונים
כדי להסיר טבלת נתונים:
בסרגל הצד, בוחרים טבלת נתונים מהרשימה טבלאות נתונים.
לוחצים על Delete.
ניהול טבלאות נתונים באמצעות Chronicle API
אפשר גם להשתמש במשאבי REST שזמינים ב-Chronicle API כדי לנהל טבלאות נתונים ב-Google SecOps. ה-API יכול לשכפל את כל התכונות שזמינות בממשק האינטרנט, והוא כולל כמה תכונות נוספות שמאפשרות לכם לנהל טבלאות נתונים עם ביצועים טובים יותר ועם יכולת התרחבות גדולה יותר.
אלה משאבי REST של טבלת הנתונים:
דוגמה: תחביר של מסנן
בדוגמה הבאה של Chronicle API אפשר לראות איך משתמשים בתחביר filter כדי לחפש את google.com בשורות של טבלת נתונים:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://staging-chronicle.sandbox.googleapis.com/v1alpha/projects/{$PROJECT}/locations/${REGION}/instances/${INSTANCE}/dataTables/${DATA_TABLE_NAME}/dataTableRows?filter=google.com"
שימוש בטבלאות נתונים ב-Google SecOps
אחרי שמוסיפים טבלאות נתונים למופע של Google SecOps, אפשר להשתמש בהן כדי לסנן, לשפר ולהעשיר את הנתונים באמצעות שאילתות YARA-L. המסמך הזה כולל דוגמאות רבות בתחביר YARA-L, שאפשר לשלב ב-Google SecOps.
אפשר להשתמש בטבלאות נתונים בשילוב עם שאילתות YARA-L גם בחיפוש וגם בכללים.
אפשר להשתמש בטבלאות נתונים בדרכים הבאות:
סינון נתוני אירועים או ישויות ב-UDM באמצעות טבלת נתונים
אפשר לסנן אירועי טלמטריה וישויות של UDM על ידי השוואה שלהם לרשומות בטבלת נתונים.
שימוש בטבלת נתונים כרשימת הפניות עם כמה עמודות
אפשר להשתמש בטבלת נתונים כרשימת הפניות עם כמה עמודות. רשימת הפניות יכולה לגשת לנתונים במאפיין יחיד, אבל טבלאות נתונים מאפשרות לגשת לנתונים בכמה מאפיינים, ולסנן את הנתונים.
שילוב טבלת נתונים עם אירוע או ישות
אפשר לקשר אירועי UDM לטבלת נתונים באמצעות אופרטור השוויון (
=) להשוואות מבוססות שורות. ההשוואה הזו מאפשרת לכם לסנן את הנתונים. השוואה מבוססת-שורה מחזירה את הערךtrueרק אם כל התנאים בהצהרה תואמים לשורה אחת בטבלת הנתונים.
סינון נתוני אירועים וישויות של UDM באמצעות טבלת נתונים
אפשר לסנן אירועים וישויות של UDM על ידי השוואה שלהם לרשומות בטבלת נתונים. מצטרפים לטבלת הנתונים עם אירוע או ישות של UDM באמצעות השוואות מבוססות שורה או מבוססות עמודה.
השוואות מבוססות-שורות ומבוססות-עמודות בטבלאות נתונים
| סוג ההשוואה | לוגיקה של מפתחות | אופרטורים נפוצים | תחביר לדוגמה | מתי משתמשים |
|---|---|---|---|---|
| מבוסס על שורות | כל התנאים צריכים להתקיים באותה שורה | =, !=, >, >=, <, <= |
$e.field = %table.col_a |
כשחשוב להגדיר את הקשר בין כמה ערכים בעמודות באותה שורה. |
| על בסיס עמודות | הערך חייב להופיע בכל מקום בעמודה | IN, IN regex, IN cidr |
$e.field IN %table.col_b |
כשבודקים אם ערך מסוים קיים בקבוצת ערכים בעמודה אחת. |
מקשרים אירועים של UDM לטבלאות נתונים באמצעות שיטות השוואה מבוססות שורות או מבוססות עמודות:
השוואה מבוססת-שורה כדי לקשר אירועי UDM לטבלאות נתונים
כדי לקשר אירועים של UDM לטבלאות נתונים באמצעות השוואה מבוססת-שורות, משתמשים באופרטורים של שוויון (
=, !=, >, >=, <, <=).לדוגמה:
$<udm_variable>.<field_path> = %<data_table_name>.<column_name>- אם משתמשים בכמה הצהרות השוואה, כל השדות או התנאים צריכים להיות זהים בשורה של טבלת הנתונים.
כדי להשתמש באופרטורים (כמו
not,!=,>,>=,<,<=) בשאילתה, צריך לכלול לפחות תנאיjoinאחד בין שדות UDM לבין שורות בטבלת נתונים.מערכת Google SecOps מתייחסת לכל כלל עם טבלת נתונים
joinכאל כלל מרובה אירועים, שנדרש בו קטעmatchבהגדרת הכלל.
כדי לסנן נתונים לפי ערכים תואמים מאירועי UDM לעומת שורות בטבלת הנתונים, אפשר להשתמש בתחביר הבא של הצטרפות:
תחביר נכון של הצטרפות:
לדוגמה, כדי להשתמש ב'החרגה משולבת' שמבוססת על שורות, צריך להשתמש ב-
left outerjoin ובסעיףwhereכדי לבדוק אם ישnulls.תחביר שגוי של הצטרפות:
אל תשתמשו ב-
NOTכדי להקיף כמה תנאי שוויון שמבוססים על שורות. התחביר הזה לא מאפשר להשיג את האפקט של 'החרגה אם נמצא השילוב הזה'.לדוגמה, אל תשתמשו בתחביר הזה:
NOT (field1 = %table.col1 AND field2 = %table.col2)הסיבה לכך היא שההתאמה עדיין מתבצעת שורה אחר שורה. אם אחת מהשורות לא עומדת בתנאי המשולב הפנימי, הפונקציה
NOTגורמת לכך שהערכת השורה הזו תהיהtrue, ויכול להיות שהאירוע ייכלל במקום שיוחרג.
כדי להשתמש בעמודה בטבלת נתונים מהסוגים
CIDRאוregexלהשוואה מבוססת-שורה, צריך להשתמש בתחביר הבא:net.ip_in_range_cidr($e.principal.ip, %<data_table_name>.<column_name>) re.regex($e.principal.hostname, %<data_table_name>.<column_name>)
השוואה מבוססת-עמודות כדי לקשר אירועים של UDM לטבלאות נתונים
כדי לקשר אירועי UDM לטבלאות נתונים באמצעות השוואה מבוססת-עמודות, משתמשים במילת המפתח
in.לדוגמה:
$<udm_variable>.<field_path> in %<data_table_name>.<column_name>כדי לסנן אירועים שבהם ערך השדה קיים בעמודה שצוינה (לדוגמה, רשימת חסימה או רשימת היתרים), משתמשים בתחביר הבא:
NOT (... IN %table.column)לדוגמה:
not ($evt_username in %my_data_table.username)כדי להשתמש בעמודה בטבלת נתונים מהסוגים
CIDRאוregexלצורך השוואה מבוססת-עמודות, צריך להשתמש בתחביר הבא:$e.principal.ip in cidr %cidr_data_table.column_name $e.principal.hostname in regex %regex_data_table.column_nameכשמשווים עמודות בטבלאות נתונים שהן מסוגי הנתונים CIDR או ביטוי רגולרי, מילות המפתח
cidrו-regexהן אופציונליות.אפשר להשתמש באופרטור
notגם עם טבלאות נתונים.שאילתת הדוגמה הבאה מסננת רשומות שבהן כתובות ה-IP (
$e.principal.ip) לא תואמות לאף אחד מטווחי ה-CIDR שמופיעים בעמודהbenign_ipבטבלהcidr_data_table:not $e.principal.ip in %data_table.benign_ip
שימוש בטבלת נתונים כרשימת הפניות מרובת עמודות
אפשר להשתמש בטבלת נתונים כרשימת הפניות עם כמה עמודות. למרות שרשימת הפניות יכולה לגשת לנתונים במאפיין יחיד (עמודה אחת), טבלאות נתונים תומכות בכמה עמודות, ומאפשרות לכם לסנן ולגשת לנתונים בכמה מאפיינים.
אפשר לקשר אירועי UDM לטבלת נתונים באמצעות מילת המפתח in להשוואה מבוססת-עמודות, וכך להתאים ערכים בשדה UDM ספציפי לערכים בעמודה יחידה של טבלת הנתונים.
בדוגמה הבאה, טבלת הנתונים badApps מכילה שתי עמודות:
hostname ו-ip. השאילתה מתאימה לשני הערכים (הערך שמבוסס על שדה UDM והערך שמבוסס על טבלת הנתונים, שניהם מסוג נתוני מחרוזת) באופן עצמאי.
דוגמה לכלל:
rule udm_in_data_table { meta: description = "Use data table as multicolumn reference list" events: $e.metadata.event_type = "NETWORK_CONNECTION" $e.security_result.action = "ALLOW" $e.target.asset.asset_id = $assetid // Event hostname matches at least one value in table column hostname. $e.target.hostname in %badApps.hostname // Event IP matches at least one value in table column ip. $e.target.ip in %badApps.ip match: $assetid over 1h condition: $e }דוגמה לחיפוש:
events: $e.metadata.event_type = "NETWORK_CONNECTION" $e.security_result.action = "ALLOW" $e.target.asset.asset_id = $assetid // Event hostname matches at least one value in table column hostname. $e.target.hostname in %badApps.hostname // Event IP matches at least one value in table column ip. $e.target.ip in %badApps.ip
צירופים מבוססי-שורה בין טבלת נתונים לבין אירוע או ישות של UDM
אתם יכולים לקשר אירועים של UDM לטבלת נתונים באמצעות אופרטורים של שוויון והשוואה (=, !=, >, >=,
<, <=) כדי לבצע השוואות ברמת השורה. הגישה הזו מאפשרת לכם לסנן נתונים לפי ערכים תואמים מאירועי UDM בהשוואה לשורות בטבלת הנתונים. אם משתמשים בכמה הצהרות השוואה, כל השדות או התנאים צריכים להיות זהים בשורה של אותה טבלת נתונים.
כדי להשתמש באופרטורים (כמו not, !=, >, >=, <, <=) בשאילתה, צריך לכלול לפחות join תנאי בין שדות UDM לבין שורות בטבלת הנתונים.
מערכת Google SecOps מתייחסת לכל כלל עם טבלת נתונים join כאל כלל מרובה אירועים, שנדרש עבורו קטע match תואם בהגדרת הכלל.
כשמתבצעת הצטרפות, השורות של טבלת הנתונים המקושרת מוצגות בחיפוש. מידע נוסף מפורט במאמר הצגת שורות של טבלאות נתונים בחיפוש.
יש תמיכה ב-placeholder לטבלאות נתונים בקטע
eventשל שאילתה, אבל צריך לקשר אותם לאירוע או לישות של UDM.בדוגמה הבאה נעשה שימוש בעמודה של טבלת נתונים מסוג
string.בדוגמה הזו של שאילתת YARA-L נבדק אם אירוע התחברות של משתמש תואם לשורה ב-
example_table.- אחד התנאים הוא ש
user IDקיים ב-example_table. - שני התנאים צריכים להתקיים באותה שורה ב-
example_tableכדי שהכלל יופעל.
- אחד התנאים הוא ש
דוגמה לכלל:
// Check if user exists in a data table and is active in all user login events. rule udm_join_data_table { meta: description = "Join data table with UDM event" events: $e.metadata.event_type = "USER_LOGIN" $e.security_result.action = "ALLOW" $e.principal.user.userid = $userid // Event must match at least 1 row in the data table // where the uid in the data table row is the userid on the event // and the active date in the same data table row is before the event timestamp. %example_table.uid = $userid $e.principal.hostname = %example_table.hostname match: $userid over 1h condition: $e }דוגמה לחיפוש:
events: $e.metadata.event_type = "USER_LOGIN" $e.security_result.action = "ALLOW" $e.principal.user.userid = $userid // Event must match at least 1 row in the data table // where the uid in the data table row is the userid on the event // and the active date in the same data table row is before the event timestamp %example_table.uid = $userid $e.principal.hostname = %example_table.hostname
הדוגמה הבאה ממחישה איך טבלת נתונים ונתוני אירועים של UDM פועלים יחד.
על סמך הלוגיקה בשאילתת YARA-L הקודמת, משתמש עם
user ID 32452מופיע בזיהוי כhostnameשל המשתמש מהמערכת, ותואם לhostnameבטבלת הנתונים.טבלת נתונים uid title שם מארח 32452 משאבי אנוש host1 64452 כספים host2 46364 איטלקית host3 טבלת אירועים של UDM principal מטא-נתונים security_result principal 32452 USER_LOGIN אישור host1 64589 USER_LOGIN אישור host9 87352 USER_LOGIN אישור host4
כתיבת תוצאות משאילתות YARA-L לטבלאות נתונים
אפשר לכתוב את התוצאות משאילתות YARA-L לטבלת נתונים. התכונה הזו מאפשרת ליצור טבלאות נתונים מהנתונים של Google SecOps ולהשתמש בטבלאות האלה כדי לסנן ולשפר נתונים אחרים.
אפשר להשתמש בתחביר של כתיבת שאילתות ב-YARA-L כדי:
הגדרת תחביר YARA-L לכתיבת תוצאות שאילתות לטבלאות נתונים.
אפשר להשתמש בטבלאות נתונים כדי לקבל מודיעין על איומים, להגיב לתקריות ולמקרים אחרים של שימוש באבטחה.
הנתונים צריכים להיות בהתאם לתחביר ולמוסכמות של YARA-L.
כתיבת זיהויים והתראות לטבלאות נתונים באמצעות YARA-L
אתם יכולים להשתמש בשאילתת YARA-L כדי לשלוח זיהויים והתראות לטבלאות נתונים.
באמצעות הפונקציה write_row, אפשר להחליף שורה בטבלת נתונים במפתח התואם בטבלת הנתונים באמצעות התוצאות מכלל. אם המפתח לא נמצא בטבלה, מוסיפים שורה חדשה במקום זאת.
מציינים את הפונקציה write_row בקטע הייצוא של שאילתת YARA-L. הפעולה האחרונה בשאילתה חייבת להיות כתיבת נתונים לטבלת הנתונים. כתוצאה מכך, משתני התוצאה נכתבים בטבלת הנתונים.
דוגמה
export: %<data_table_name>.write_row( data_table_column_x_name: <value>, data_table_column_y_name: <value>, ..., ..., data_table_column_z_name: <value> ) // depending on the key column(s), the rows will be updated for existing keys and appended for new keysדוגמה: ייצוא תוצאות חיפוש לטבלת נתונים
events: $e.metadata.event_type = "USER_LOGIN" $e.security_result.action = "ALLOW" outcome: $user = $e.principal.user.userid $ip = $e.target.ip[0] // Assuming target.ip is an array $timestamp = $e.metadata.event_timestamp.seconds export: // Write to the data table named 'successful_logins' %successful_logins.write_row( user: $user, // Maps $user variable to 'user' column ip: $ip, // Maps $ip variable to 'ip' column first_seen: $timestamp // Maps $timestamp variable to 'first_seen' column )
שינוי טבלת נתונים באמצעות YARA-L
בדוגמה הבאה מוצג איך לשנות טבלת נתונים באמצעות YARA-L:
TableName: ip_user_domain_table (עמודות המפתח של המפתח הראשי מוגדרות בזמן היצירה)
| כתובת IP | employee_id* | דומיין |
|---|---|---|
| 192.0.2.10 | Dana | altostrat.com |
| 192.0.2.20 | Quinn | altostrat.com |
| 192.0.2.30 | Lee | cymbalgroup.com |
* מציין את המפתח הראשי.
השאילתה הבאה מתעדת שילובים ייחודיים של principal.ip, principal.user.employee_id ו-target.domain. היא מסננת את התוצאות על סמך השכיחות של target.domain:
דוגמה
events: $e.principal.ip = $principal_ip $e.principal.user.employee_id = $principal_user_employee_id $e.target.domain.name = $target_domain $e.target.domain.prevalence.day_count < 5 // To run this query as a rule, add Condition Section here // condition:$e
תוצאות השאילתה:
| ip | empid | דומיין |
|---|---|---|
| 192.0.2.10 | Dana | altostrat.com |
| 192.0.2.30 | Lee | examplepetstore.com |
| 192.0.2.20 | Quinn | altostrat.com |
דוגמה: שימוש בפונקציה write_row כדי לכתוב פלט של שאילתה בטבלת נתונים
דוגמה לכלל:
rule udm_write_data_table { meta: description = "Writeto data table" events: $e.principal.user.employee_id = $principal_user_employee_id $e.target.domain.name = $target_domain $e.target.domain.prevalence.day_count < 5 outcome: $hostname = $target_domain $principal_emp_id = $principal_user_employee_id condition: $e export: %ips_with_hostnames.write_row( employeeid:$principal_emp_id, hostname:$hostname ) }דוגמה לחיפוש:
events: $e.principal.user.employee_id = $principal_user_employee_id $e.target.domain.name = $target_domain $e.target.domain.prevalence.day_count < 5 outcome: $hostname = $target_domain $principal_emp_id = $principal_user_employee_id export: %ips_with_hostnames.write_row( employeeid:$principal_emp_id, hostname:$hostname )
דוגמה: הסבר על write_row
בדוגמה הבאה, user ו-ip משמשים כמקשים ראשיים. כל זיהוי שמופיע בטבלת הזיהויים מוביל להערכה אחת של קריאת הפונקציה בקטע הייצוא של השאילתה.
דוגמה לכלל:
rule udm_write_data_table { meta: description = "Write data table" events: $e.metadata.event_type = "USER_LOGIN" all $e.security_result.action != "BLOCK" all $e.security_result.action != "UNKNOWN_ACTION" $user = $e.principal.user.userid $ip = $e.target.ip $ts = $e.metadata.event_timestamp.seconds match: $user, $ip over 1h outcome: $first_seen = min($ts) condition: $e export: %successful_logins.write_row(user:$user, ip:$ip) }דוגמה לחיפוש:
events: $e.metadata.event_type = "USER_LOGIN" all $e.security_result.action != "BLOCK" all $e.security_result.action != "UNKNOWN_ACTION" $ts = $e.metadata.event_timestamp.seconds outcome: $user = $e.principal.user.userid $ip = $e.target.ip[0] export: %successful_logins.write_row(user:$user, ip:$ip)אלה נתוני האירוע:
metadata: { event_type: USER_LOGIN event_timestamp: { seconds: 1283299200 } } principal: { user: { userid: "charlie" } } target: { ip: ["192.0.2.135", "192.0.2.136"] } security_result: { action: ALLOW }הזיהויים הבאים מוחזרים כשמריצים את השאילתה הזו ככלל:
מזהה הזיהוי התאמה ל-$user Match $ip 0 צ'רלי 192.0.2.135 1 צ'רלי 192.0.2.136 טבלת הנתונים מכילה את הפרטים הבאים:
user ip צ'רלי 192.0.2.135 צ'רלי 192.0.2.136 שאילתת החיפוש הבאה ממחישה את התמיכה שמוצעת בחיפוש לכתיבת ערכים סקלריים בטבלאות נתונים.
events: $e.metadata.event_type = "NETWORK_CONNECTION" export: %summary_table.write_row(col_name: $e.metadata.product_name, Vendor_name: $e.metadata.vendor_name)
הוספת טבלת נתונים לגרף של ישויות
אתם יכולים להשתמש בטבלאות נתונים כדי להוסיף, להסיר או להחליף את הישויות שמוצגות בתרשים הישויות מכללים. משתמשים בפונקציות בקטע setup של הכלל כדי לציין איך צריך למזג את טבלת הנתונים עם אירועי הישות שאליהם מתייחסים בקטע events, לצרף אותה אליהם או להשתמש בה כדי להסיר ישויות מאירועים כאלה.
אפשר להשתמש בתבנית הכלל הבאה כדי לשנות גרף ישויות:
תבנית כלל
rule entity_graph_template { meta: ... setup: // import the data table into entity graph <enrichment_keyword> <join_condition> events: ... match: ... condition: ... }
אתם יכולים להשתמש בפונקציות הבאות של YARA-L 2.0 כדי לשפר את גרף הישויות באמצעות טבלת נתונים:
graph_override: החלפת השורות בתרשים הישות שתואמות לתנאי הצירוף בנתונים מטבלת הנתונים.לדוגמה:
[graph_override](?tab=t.0#heading=h.v0fps7eke1if)
graph_append: הוספת השורות מטבלת הנתונים לשורות בתרשים הישות. הפעולהgraph_appendדורשת מערך שכולל משתנה של טבלת נתונים ומשתנה של אירוע ישות, ולא תנאי של צירוף.בדוגמה הבאה,
$g1הוא משתנה של גרף הישויות ו-example_tableהוא טבלת הנתונים:graph_append [$g1, %example_table]כדי לאמת את הישות באמצעות הפונקציה
append, טבלאות הנתונים צריכות לכלול את העמודות הבאות:
start_time(ממופה ל-metadata.interval.start_time.seconds)
end_time(ממופה ל-metadata.interval.end_time.seconds)
אי אפשר למפות עמודות בטבלת נתונים לשדות מטא נתונים באמצעות ממשק האינטרנט. ב
appendתרחישי שימוש, צריך ליצור טבלאות נתונים באמצעות Chronicle API (https://cloud.google.com/chronicle/docs/reference/rest/v1alpha/projects.locations.instances.dataTables/create)
graph_exclude: הסרת השורות בתרשים הישות שתואמות לתנאיjoin.לדוגמה:
[graph_exclude](?tab=t.0#heading=h.o0qbb5paki6g)
תנאי הצירוף חייב להיות ביטוי שוויון בין העמודה בטבלת הנתונים לבין השדה בתרשים הישות. התחביר של הפונקציות graph_override ו-graph_exclude לגישה לטבלת נתונים הוא:
<data_table_name>.<column_name>
כל מסנן שצוין עבור <entity_variable> בקטע האירוע מוחל אחרי השיפור שלו באמצעות טבלת הנתונים.
אחרי שהישות בתרשים הישויות מתעשרת בישות בטבלת הנתונים, צריך לצרף את משתנה הישות בתרשים הישויות לישות ב-UDM.
החלפת גרף הישות בנתונים מטבלת נתונים
באמצעות הפונקציה graph_override, שדות שמופיעים גם בתרשים הישות וגם בטבלת הנתונים מוחלפים בשדות מטבלת הנתונים. השדות
שמופיעים בתרשים הישות ולא בטבלת הנתונים נשארים ללא שינוי. שדות
שלא מופיעים בתרשים הישות אבל מופיעים בטבלת הנתונים נכללים.
רק העמודות בטבלת הנתונים שממופות מחליפות את העמודות בתרשים הישות. העמודות שלא מופו מתווספות לשדה additional של גרף הישות שאליו מצורפת טבלת הנתונים.
דוגמה: התאמה בהצטרפות יחידה
בדוגמה הבאה, השורות בתרשים הישויות שתואמות לתנאי הצירוף בין העמודה בטבלת הנתונים לבין השדה בתרשים הישויות ($g1.graph.entity.ip = %example_table.my_ip) מוחלפות על ידי טבלת הנתונים.
דוגמה
rule rule_override { meta: description = "Override entity context with data table before joining with UDM event" setup: //Rows in the entity graph that match the join condition are overridden by the data table graph_override ($g1.graph.entity.ip = %example_table.my_ip) events: $e.metadata.event_type = "NETWORK_CONNECTION" $e.security_result.action = "ALLOW" // Filter will be applied after graph is overridden by data table $g1.graph.entity.hostname = "ftp01" // Accessing unmapped columns $g1.graph.additional.fields["Owner"] = "alice" // Joining the UDM event with the enriched entity graph $e.target.ip = $iocip $g1.graph.entity.ip = $iocip match: $iocip over 1h condition: $e and $g1 }
כדי להשתמש בעמודה לא ממופה (למשל, Owner) של טבלת הנתונים, צריך להשתמש בהצהרה מקבילה עבור $g1.graph.entity.owner = "alice" is $g1.graph.additional.fields["Owner"] = "alice".
הסיבה לכך היא שכל העמודות שלא מופו בטבלת הנתונים נכנסות לשדה additional של גרף הישות ($g1).
בטבלאות הבאות מוצגת פעולת החלפה שבה שורות בתרשים הישות מועשרות כשהשדה IP בטבלת הנתונים תואם לשדה IP בתרשים הישות.
| גרף ישויות קיים | ||
|---|---|---|
| שם מארח | IP | MAC |
| ftp01 | 10.1.1.4 | …:01 |
| www01 | 10.1.1.5 | …:02 |
| טבלת נתונים | |||
|---|---|---|---|
| שם מארח | IP | MAC | בעלים |
| ftp01 | 10.1.1.4 | …:bb | alice |
| h1 | 10.1.1.6 | …:cc | bob |
| h2 | 10.1.1.7 | …:dd | chris |
| h3 | 10.1.1.4 | …:ee | אלפי |
| גרף ישויות מועשר | |||
|---|---|---|---|
| שם מארח | IP | MAC | בעלים |
| ftp01 | 10.1.1.4 | …:bb | alice |
| www01 | 10.1.1.5 | …:02 | |
| h3 | 10.1.1.4 | …:ee | אלפי |
דוגמה: התאמה בכמה הצטרפויות
בדוגמה הבאה, השורות בתרשים הישות שתואמות לכמה תנאי הצטרפות ($g1.graph.entity.ip = %example_table.my_ip ו-$g1.graph.entity.hostname = %example_table.my_hostname) מוחלפות על ידי טבלת הנתונים.
דוגמה
rule rule_override { meta: description = "Override Entity context with Data Table before joining with UDM event" setup: // example with more than one condition graph_override ($g1.graph.entity.ip = %example_table.my_ip and $g1.graph.entity.hostname = %example_table.my_hostname) events: $e.metadata.event_type = "NETWORK_CONNECTION" $e.security_result.action = "ALLOW" // Filter will be applied after graph is overridden by data table $g1.graph.entity.hostname = "ftp01" // joining the UDM event with the enriched entity graph $e.target.ip = $iocip $g1.graph.entity.ip = $iocip match: $iocip over 1h condition: $e and $g1 }
בטבלאות הבאות מוצג תרחיש של פעולת החלפה שבה השורות בתרשים הישויות מועשרות כשהשדה של כתובת ה-IP והשדה של שם המארח בטבלת הנתונים תואמים לשדה של כתובת ה-IP ולשדה של שם המארח בתרשים הישויות.
| גרף ישויות קיים | ||
|---|---|---|
| שם מארח | IP | MAC |
| ftp01 | 10.1.1.4 | …:01 |
| www01 | 10.1.1.5 | …:02 |
| טבלת נתונים | |||
|---|---|---|---|
| שם מארח | IP | MAC | בעלים |
| ftp01 | 10.1.1.4 | …:bb | alice |
| h1 | 10.1.1.5 | …:cc | bob |
| h2 | 10.1.1.6 | …:dd | chris |
| h3 | 10.1.1.4 | …:ee | אלפי |
| גרף ישויות מועשר | |||
|---|---|---|---|
| שם מארח | IP | MAC | בעלים |
| ftp01 | 10.1.1.4 | …:bb | alice |
| www01 | 10.1.1.5 | …:02 | |
צירוף נתונים מטבלת הנתונים לגרף הישויות
כשמשתמשים בפונקציה graph_append, לא צריך לציין תנאי לצירוף.
בדוגמה הבאה, כל השורות בטבלת הנתונים מצורפות לשורות בתרשים הישות.
דוגמה
rule rule_append { meta: description = "Data table append entity" setup: graph_append [$g1, %example_table] events: // filter UDM events $e.metadata.event_type = "NETWORK_CONNECTION" $e.security_result.action = "ALLOW" // Join the filtered UDM events with the enriched graph $e.target.ip = $iocip $g1.graph.entity.ip = $iocip match: $iocip over 1h condition: $e and $g1 }
בדוגמה הבאה מוצגת פעולת הוספה שבה השורות בטבלת הנתונים מתווספות לשורות בגרף הישויות:
| גרף ישויות קיים | ||
|---|---|---|
| שם מארח | IP | MAC |
| ftp01 | 10.1.1.4 | …:01 |
| www01 | 10.1.1.5 | …:02 |
| טבלת נתונים | ||
|---|---|---|
| IP | MAC | בעלים |
| 10.1.1.4 | …:01 | alice |
| 10.1.1.6 | …:cc | bob |
| 10.1.1.7 | …:dd | chris |
| 10.1.1.4 | …:ee | אלפי |
| גרף ישויות מועשר | |||
|---|---|---|---|
| שם מארח | IP | MAC | בעלים |
| ftp01 | 10.1.1.4 | …:01 | |
| www01 | 10.1.1.5 | …:02 | |
| 10.1.1.4 | …:bb | alice | |
| 10.1.1.6 | …:cc | bob | |
| 10.1.1.7 | …:dd | chris | |
| 10.1.1.4 | …:ee | אלפי | |
שימוש ב-graph_exclude כדי להסיר שורות מתרשים הישויות
באמצעות הפונקציה graph_exclude, השורות בתרשים הישויות שתואמות לתנאי הצירוף מוסרות מתרשים הישויות.
בדוגמה הבאה, כל השורות בתרשים הישויות שתואמות לתנאי הצירוף שצוין (בין העמודה בטבלת הנתונים לבין השדה בתרשים הישויות) מוסרות. אף שורה מטבלת הנתונים לא מתווספת לתרשים הישות.
דוגמה
rule rule_exclude { meta: setup: graph_exclude ($g1.graph.entity.ip = %example_table.ip) events: $e.metadata.event_type = "NETWORK_CONNECTION" $e.security_result.action = "ALLOW" $e.target.ip = $iocip $g1.graph.entity.ip = $iocip match: $iocip over 1h condition: $e and $g1 }
בטבלאות הבאות מוצגת פעולת החרגה שבה השורות בתרשים הישות שתואמות לשדה ה-IP בטבלת הנתונים מוסרות:
| גרף ישויות קיים | ||
|---|---|---|
| שם מארח | IP | MAC |
| ftp01 | 10.1.1.4 | …:01 |
| www01 | 10.1.1.5 | …:02 |
| טבלת נתונים | ||
|---|---|---|
| IP | MAC | בעלים |
| 10.1.1.4 | …:bb | alice |
| 10.1.1.6 | …:cc | bob |
| 10.1.1.7 | …:dd | chris |
| גרף ישויות מועשר | ||
|---|---|---|
| שם מארח | IP | MAC |
| www01 | 10.1.1.5 | …:02 |
מגבלות קצב של ממשקי API
מכסות השאילתות לדקה (QPM) הבאות נאכפות לכל פרויקט ולכל משתמש כשקוראים לנקודות הקצה של Google SecOps Data Table ו-Data Table Row REST API:
| משאב | פעולת API | מגבלת קצב (סטנדרטית) |
|---|---|---|
| DataTables | CreateDataTable (data_table/create_requests) |
60 QPM |
| DataTables | GetDataTable (data_table/get_requests) |
120 QPM |
| DataTables | ListDataTables (data_table/list_requests) |
120 QPM |
| DataTables | UpdateDataTable (data_table/update_requests) |
60 QPM |
| DataTables | DeleteDataTable (data_table/delete_requests) |
60 QPM |
| DataTableRows | CreateDataTableRow (data_table_row/create_requests) |
60 QPM |
| DataTableRows | GetDataTableRow (data_table_row/get_requests) |
120 QPM |
| DataTableRows | ListDataTableRows (data_table_row/list_requests) |
120 QPM |
| DataTableRows | UpdateDataTableRow (data_table_row/update_requests) |
60 QPM |
| DataTableRows | DeleteDataTableRow (data_table_row/delete_requests) |
60 QPM |
| DataTableRows | BulkCreateDataTableRows (סנכרון / אסינכרוני) |
30 QPM |
| DataTableRows | BulkReplaceDataTableRows (סנכרון / אסינכרוני) |
30 QPM |
| DataTableRows | BulkUpdateDataTableRows (סנכרון / אסינכרוני) |
10 QPM |
| DataTableRows | BulkDeleteDataTableRows (סנכרון / אסינכרוני) |
30 QPM |
| DataTableRows | BulkGetDataTableRows (data_table_row/bulk_get_requests) |
120 QPM |
מגבלות
המספר המקסימלי של טבלאות נתונים בחשבון Google SecOps: 1,000.
טבלאות נתונים תומכות רק בנתוני CSV. טבלאות נתונים תומכות בערכים מופרדים בטאבים רק כשמוסיפים טבלת נתונים חדשה ומייבאים קובץ של ערכים מופרדים בטאבים (TSV).
השדות בטבלת הנתונים לא תומכים בתו פסיק (
,).המגבלות על מספר הצהרות
inכשמפנים לרשימת הפניות בשאילתה חלות גם על הצהרותinבטבלת נתונים.מספר ההצהרות המקסימלי של
inבשאילתה לעמודות מסוג הנתוניםStringו-Number: 10.המספר המקסימלי של הצהרות
inעם אופרטורים של ביטויים רגולריים: 5.המספר המקסימלי של הצהרות
inעם אופרטורים של CIDR: 5.מספר ההצהרות המקסימלי של
= (JOIN): 10.מספר העמודות המקסימלי לכל טבלת נתונים: 1,000.
מספר השורות המקסימלי לכל טבלת נתונים: 10 מיליון.
מגבלת התצוגה המקסימלית בדף אינטרנט לשורות של טבלת נתונים בתצוגת עורך הטקסט והטבלאות: 10,000 שורות.
נפח הנתונים המקסימלי בטבלת נתונים: 10GB.
אסור להשתמש בplaceholder בקטע ההגדרה.
אפשר לצרף עמודות לא ממופות של טבלת נתונים עם סוג הנתונים
stringרק לשדות מחרוזת של אירוע UDM או ישות UDM.אפשר להשתמש רק בעמודות לא ממופות בטבלת נתונים עם סוג נתונים שמוגדר כ-
cidrאו כ-regexעבור CIDR או ביטוי רגולרי.חיפושים בטבלת נתונים: אין תמיכה בתווים כלליים לחיפוש של ביטויים רגולריים, ומונחי החיפוש מוגבלים ל-100 תווים.
מגבלות על שאילתות איחוד (join) של טבלאות נתונים בכללים
ההגבלות הבאות חלות על צירופים של טבלאות נתונים בכללים.
אי אפשר לאחזר את כל דוגמאות האירועים לצורך זיהוי כשמשתמשים בצירופי טבלאות נתונים עם אירועים.
בניגוד לישויות ול-UDM, טבלאות נתונים לא תומכות בפלייסהולדרים. הדבר מוביל למגבלות הבאות:
אי אפשר להחיל קבוצת מסננים על טבלת נתונים ולצרף אותה לישות UDM.
אי אפשר להחיל קבוצה שונה של מסננים על אותה טבלת נתונים בזמן שמצטרפים אליה עם placeholder אחר של UDM.
לדוגמה, טבלת נתונים בשם
dtעם שלוש עמודות:my_hostname, orgו-my_email, ועם הכלל הבא:events: $e1.principal.hostname = %dt.my_hostname %dt.org ="hr" $e2.principal.email = %dt.my_email %dt.org !="hr"
כל המסננים בטבלת נתונים מופעלים קודם, ואז השורות המסוננות מטבלת הנתונים מצורפות ל-UDM. במקרה הזה, המסננים הסותרים (%dt.org ="hr" and %dt.org !="hr") בטבלה dt יוצרים טבלת נתונים ריקה, שמצורפת לטבלאות e1 ו-e2.
מגבלות בשימוש בטבלאות נתונים עם כללים
המגבלות הבאות חלות על טבלאות נתונים כשמשתמשים בהן עם כללים.
מגבלות על תדירות ההפעלה
תדירות הפעלה בזמן אמת לא נתמכת בכללים עם טבלאות נתונים.
מגבלות על פלט לטבלאות נתונים
אין תמיכה במגדירי המיקום
anyו-allבעמודות של שדות חוזרים בטבלאות נתונים.אין תמיכה באינדקס של מערכים בעמודות של שדות חוזרים בטבלאות נתונים.
אפשר לייצא משתני תוצאה רק לטבלת נתונים. אי אפשר לייצא ישירות נתיבי אירועים או עמודות של טבלאות נתונים.
רשימות העמודות חייבות לכלול את עמודות המפתח הראשי של טבלאות הנתונים.
אפשר להגדיר עד 20 תוצאות.
אם טבלת הנתונים לא קיימת, נוצרת טבלה חדשה עם סוג הנתונים
stringשמוגדר כברירת מחדל לכל העמודות, לפי הסדר שצוין.אפשר להגדיר עד חמישה כללים שיכתבו לטבלת נתונים בו-זמנית.
אין ערובה לכך שכלל של יצרן יוכל להוסיף שורות לטבלת נתונים לפני שכלל של צרכן עבור אותה טבלת נתונים יתחיל.
יש מגבלה על מספר השורות של תוצאות בכלל יחיד. יש מגבלה של 10,000 שורות על התוצאה ועל הנתונים שנשמרו, וגם על טבלאות נתונים.
כשמעדכנים שורה, הערכים החדשים של כל העמודות שאינן עמודות מפתח מחליפים את הערכים הקודמים. כל העדכונים, כולל הוספה של שורה חדשה, יהיו זמינים לשליפת נתונים תוך חמש דקות בערך.
מגבלות על העשרת ישויות מטבלאות נתונים
אפשר להחיל רק פעולת העשרה אחת (
override,appendאוexclude) על משתנה אחד של גרף ישויות.כל פעולת העשרה יכולה להשתמש רק בטבלת נתונים אחת.
אפשר להגדיר עד שתי פעולות העשרה מכל סוג בקטע
setupשל כלל YARA-L.
בדוגמה הבאה, פעולת override מוחלת על משתנה גרף הישות $g1 ופעולת append מוחלת על משתנה גרף הישות $g2.
none setup: graph_override($g1.graph.entity.user.userid = %table1.myids) graph_append [$g2, %table1]
בדוגמה הקודמת, אותה טבלת נתונים (table1) משמשת לשיפור גרפים שונים של ישויות. אפשר גם להשתמש בטבלאות נתונים שונות כדי לשפר את תרשימי הישויות השונים, באופן הבא:
none setup: graph_override($g1.graph.entity.user.userid = %table1.myids) graph_append [$g2, %table2]
מגבלות בשימוש בטבלאות נתונים עם חיפוש
המגבלות הבאות חלות על טבלאות נתונים כשמשתמשים בהן עם חיפוש:
אי אפשר להריץ שאילתות חיפוש בטבלאות נתונים באמצעות Chronicle API. אפשר להשתמש בשאילתות רק דרך ממשק האינטרנט.
הפעלת שאילתה אחת יכולה להפיק עד מיליון שורות לטבלת נתונים או עד 1GB, לפי המגבלה הראשונה שמתקבלת.
אם גודל הפלט של חיפוש בטבלת נתונים חורג מ-5MB, שורות האירועים לא נכללות בו.
אין תמיכה בהעשרה של ישויות בחיפוש.
אין תמיכה בטבלאות נתונים למשתמשים במפתחות הצפנה בניהול הלקוח (CMEK).
הכתיבה מוגבלת ל-6 פעמים בדקה לכל לקוח.
אין תמיכה ב-API לפעולות בטבלאות נתונים שקשורות לחיפוש.
טבלת נתונים וצירופים של טבלאות נתונים נתמכים רק באירועי UDM, ולא בישויות.
נתמך:
%datatable1.column1 = %datatable2.column1לא נתמך:
graph.entity.hostname = %sample.testאי אפשר לכלול משתנה
matchבקטעexportשל שאילתת נתונים סטטיסטיים.לדוגמה, אין תמיכה ב:
match: principal.hostname export: %sample.write_row( row: principal.hostname )
מגבלות כשמשנים את השם של טבלאות נתונים או מוחקים אותן באמצעות Chronicle API או Terraform
- אין תמיכה בשינוי שם דרך הפלטפורמה או ה-API.
- אי אפשר למחוק טבלת נתונים (דרך הפלטפורמה או ה-API) אם יש הפניה אליה בכלל.
- ב-Terraform, שינוי השם של טבלת נתונים מפעיל פעולת השמדה ויצירה מחדש. אם יש הפניה לטבלת הנתונים בכלל, הפעולה הזו תיכשל כי ה-API חוסם את המחיקה של הטבלה הישנה.
- סיכון לאובדן נתונים ב-Terraform: גם אם טבלת נתונים לא מוזכרת בכלל, שינוי השם שלה באמצעות Terraform גורם לאובדן נתונים בלתי הפיך. Terraform משמיד את הטבלה הקיימת ומחליף אותה בטבלה חדשה וריקה שלא מכילה נתונים מהטבלה המקורית.
- פתרון עקיף מומלץ:
- יוצרים טבלת נתונים חדשה עם השם החדש.
- כדי להתחיל להשתמש בטבלת הנתונים החדשה, צריך לעדכן את הכללים.
- מוחקים את טבלת הנתונים הישנה.
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.