יצירת תוספים לניתוח נתונים באמצעות Gemini
במדריך הזה מוסבר איך אנליסטים של אבטחה ומהנדסי זיהוי יכולים להשתמש בהנחיות בשפה טבעית כדי לשפר את מנתחי היומנים שמוגדרים כברירת מחדל. באמצעות התכונה 'תוסף מנתח מבוסס-AI', אתם יכולים לחלץ במהירות שדות נוספים, להחיל לוגיקה מותנית ולמפות יומנים גולמיים למודל הנתונים המאוחד (UDM) בלי לכתוב תחביר מורכב של מנתח או ביטויים רגולריים.
כשמנתח יומנים שמוגדר כברירת מחדל ב-Google SecOps מנתח את מקור היומן, יכול להיות שהוא ידלג על מאפיינים מותאמים אישית שספציפיים ללקוח, על שדות אופציונליים או על טלמטריה מיוחדת. השימוש בתכונה 'תוסף מנתח ה-AI' מאפשר לכם:
- אפשר לחלץ שדות נוספים מיומנים גולמיים ולמפות אותם לשדות סטנדרטיים של UDM או ל-
additional.fieldsבהתאמה אישית. - החלת לוגיקה מותנית וטרנספורמציות של ערכים, כמו מיפוי של פעולות מחרוזת לסוגים ממוספרים של UDM.
- לשפר את התוספים שנוצרו באופן אינטראקטיבי בשיחות עם זיכרון עם כמה תגובות, בלי להתחיל הכול מחדש.
מונחים חשובים
- מודל נתונים מאוחד (UDM): מבנה הנתונים הסטנדרטי שמשמש ב-Google SecOps לאחסון ולניתוח של נתוני יומן.
לפני שמתחילים
לפני שמתחילים, צריך לוודא שהתנאים המוקדמים הבאים מתקיימים:
- מכסות שימוש: אפשר להפעיל עד 10 סשנים של יצירת תוסף לניתוח באמצעות AI בחלון של 24 שעות, עם עד 5 הודעות בכל סשן.
שיטות מומלצות לכתיבת פרומפטים
כדי לקבל תוספי ניתוח מדויקים בניסיון הראשון, כדאי לפעול לפי הנחיות התיוג הבאות:
- מציינים במפורש את המקור והיעד: מציינים בבירור איזה חלק מיומן הגולמי צריך לחלץ ולאיזה נתיב שדה UDM מדויק הוא מאכלס, לדוגמה,
principal.ip,target.user.email_addressesאוsecurity_result.action. - שימוש במירכאות לציון ליטרלים של התאמה מדויקת: כשמתייחסים למחרוזות ליטרליות, לתווי הפרדה או לערכים לדוגמה ביומנים לא מובנים, צריך להקיף אותם במירכאות, לדוגמה,
"198.51.100.0"או"allow". - טיפול בשדות מותאמים אישית באמצעות additional.fields: במקרה של מאפיינים קנייניים או מאפיינים ספציפיים לספק שאין להם שדה UDM ייעודי, צריך להנחות את ה-AI למפות אותם ל-
additional.fieldsעם שם מפתח ברור, למשל,additional.fields["application"].
יצירת תוסף לניתוח
אפשר להתחיל את תהליך העבודה של תוסף הניתוח באחד מהמקומות הבאים ב-Google SecOps:
- דף ההגדרות של כלי הניתוח: עוברים לדף Parsers (כלי ניתוח) כדי לבחור כלי ניתוח יומנים קיים ולהרחיב אותו.
- דף החיפוש: כשבודקים יומנים בדף חיפוש, אפשר לפתוח את תהליך יצירת התוסף ישירות מאירוע עם שדות לא מנותחים.
כדי ליצור תוסף ניתוח מתוך דף ההגדרות Parsers (ניתוח):
- ב-Google SecOps, עוברים לדף ההגדרות Parsers (מנתחי נתונים).
- מחפשים את סוג היומן שרוצים להרחיב.
- לוחצים על התפריט לצד הכלי לניתוח הנתונים ובוחרים באפשרות להרחבת הכלי.
- בשדה RAW LOG (יומן גולמי), מדביקים דוגמה של היומן שרוצים לנתח.
- בקטע Extension Method (שיטת ההרחבה), לוחצים על הכרטיסייה Generate with AI (יצירה באמצעות AI).
- בשדה הפרומפט, כותבים תיאור פשוט באנגלית של החילוץ.
לוחצים על אישור.
המערכת יוצרת את קוד התוסף ומעדכנת את הפלט של UDM.
שיפור התוסף של מנתח הנתונים
אתם יכולים ליצור ולשפר את תוסף הניתוח שלכם באופן איטרטיבי במהלך שיחות צ'אט מרובות. כששולחים הנחיה להמשך, ה-AI מיישם את ההוראות החדשות על התוסף שנוצר קודם. מיפויים קיימים ולוגיקה מותנית משיחות קודמות נשמרים אוטומטית, אלא אם מבקשים במפורש לשנות או להסיר אותם.
- בשדה הפרומפט, מזינים הוראה להמשך כדי לשנות את הקוד שנוצר.
- לוחצים על אישור.
- אחרי כל הנחיה, כדאי לראות תצוגה מקדימה של קוד התוסף שנוצר, לבדוק פלט לדוגמה של UDM ולאשר או לשנות את הלוגיקה.
בדוגמה הבאה מוצג תהליך עבודה שבו שיפור איטרטיבי יוצר תוסף לניתוח תחבירי בכמה תורות:
- Turn 1 (initial extraction):
- הנחיה למשתמש:
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." - תוצאה: ה-AI יוצר מיפוי של התוסף
principal.ipו-target.ip.
- הנחיה למשתמש:
- Turn 2 (additive mapping):
- הנחיה למשתמש:
"Also map virtual system string 'vsys1' to observer.administrative_domain." - תוצאה: ה-AI מעדכן את התוסף למיפוי
observer.administrative_domainתוך שמירה על מיפויי ה-IP מהתור הראשון.
- הנחיה למשתמש:
- תור 3 (שיפור מותנה):
- הנחיה למשתמש:
"In addition, map action string 'allow' to security_result[0].action as ALLOW." - תוצאה: ה-AI משלב את מיפוי הספירה של הפעולה המותנית בנוסף לכל החילוצים הקודמים.
- הנחיה למשתמש:
אימות של תוסף הניתוח
- לוחצים על אימות.
- אחרי שהתהליך מסתיים, בודקים את מדדי האימות.
גישה למידע על הפניות
הדוגמאות הבאות יעזרו לכם לכתוב הנחיות מדויקות.
פרומפטים של יומנים מובנים
עבור יומנים מובְנים שבהם הנתונים מאורגנים במפתחות, במאפיינים או בתגי XML עם שמות, מציינים את שמות השדות או הנתיבים בהנחיה.
דוגמה ליומן מובנה – פורמט JSON
{
"insertId": "u0mlpdesys",
"logName": "projects/sample-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"authenticationInfo": {
"principalEmail": "analyst@example-domain.com"
},
"methodName": "GenerateAccessToken",
"requestMetadata": {
"callerIp": "203.0.113.195",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/392.0.0"
},
"resourceName": "projects/-/serviceAccounts/110649196922301550006",
"serviceName": "iamcredentials.googleapis.com"
}
}
דוגמאות להנחיות ליומנים מובנים
| הוראה לפרומפט | שדה או מפתח מקור | שדה היעד ב-UDM |
|---|---|---|
"Map principalEmail to principal.user.email_addresses." |
principalEmail |
principal.user.email_addresses |
"Extract callerIp to principal.ip and methodName to metadata.product_event_type." |
callerIp, methodName |
principal.ip, metadata.product_event_type |
"Map resourceName to target.resource.name and serviceName to target.application." |
resourceName, serviceName |
target.resource.name, target.application |
"From XML tags, map /Event/System/Hostname to principal.hostname." |
/Event/System/Hostname |
principal.hostname |
פרומפטים ליומנים לא מובנים
במקרה של יומנים לא מובנים, מציינים ערכים מילוליים ישירות מיומן הדוגמה, הפניות מיקום או תוויות תיאוריות.
דוגמה להודעת syslog לא מובנית
<14>Nov 9 18:52:45 198.51.100.1 1,2021/11/09 18:52:45,007051000184334,TRAFFIC,start,2561,2021/11/09 18:52:45,198.51.100.0,198.51.100.1,0.0.0.0,0.0.0.0,any allow,,,ping,vsys1,LAN,LAN,ethernet1/2,ethernet1/2,LFPpan,2021/11/09 18:52:45,9729,6,0,0,2048,0,0x100000,icmp,allow,444,444,0,6
דוגמאות לפרומפטים ליומנים לא מובנים
| הוראה לפרומפט | ערך מילולי או תיאור לדוגמה | שדה היעד ב-UDM |
|---|---|---|
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." |
'198.51.100.0', '198.51.100.1' |
principal.ip, target.ip |
"Extract the application string 'ping' from the log and map it to additional.fields['application']." |
'ping' |
additional.fields["application"] |
"Map rule name 'any allow' to security_result.rule_id." |
'any allow' |
security_result[0].rule_id |
"Extract sent bytes and received bytes into network.sent_bytes and network.received_bytes." |
מונה בייטים מספרי ביומן | network.sent_bytes, network.received_bytes |
הנחיות ללוגיקה מותנית
מתארים את הלוגיקה של תנאים כדי לנרמל ערכים גולמיים של יומנים לספירות UDM ספציפיות.
- נרמול של ספירה:
"If the firewall action in the log is 'allow', set security_result.action to ALLOW; otherwise set security_result.action to BLOCK." - מיפוי שדות מותנה:
"If the protocol is 'icmp', map the ICMP type and code into network.icmp.type and network.icmp.code." - מיפוי סטטוסים:
"When the log status contains 'success' or '0', set security_result.severity to INFO; if it contains 'error', set it to ERROR."
מכסות שימוש
כדי לשמור על ביצועים אופטימליים ועל זמינות המשאבים, התכונה 'כלי לניתוח נתוני AI' כוללת את מכסות השימוש הבאות:
- 10 סשנים בפרק זמן של 24 שעות: כל לקוח יכול ליצור עד 10 סשנים של יצירת תוסף AI Parser בפרק זמן של 24 שעות.
- 5 הודעות לכל סשן: בסשן אחד, אפשר לשלוח עד 5 הודעות, כולל הפרומפט הראשוני והפרומפטים הבאים לחידוד, כדי ליצור ולשפר את תוסף הניתוח.
אם הגעתם למגבלת ההודעות בסשן, אתם יכולים לשמור את התוסף הנוכחי או להתחיל סשן חדש.
המאמרים הבאים
- פרטים נוספים על שיטות אחרות להרחבת מנתח זמינים במאמר פיתוח הרחבות של מנתח.
- דוגמאות לקטעי קוד של תוספים ותרחישים מופיעות במאמר דוגמאות לתוספי ניתוח.
- סקירה כללית על ניתוח יומנים גולמיים ל-UDM זמינה במאמר סקירה כללית על ניתוח יומנים.
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.