איסוף יומנים של שרת ה-Proxy לאינטרנט של Netskope
במאמר הזה מוסבר איך להטמיע יומנים של Netskope web proxy ב-Google Security Operations באמצעות Cloud Storage V2.
Netskope מספקת שער אינטרנט מאובטח בענן שבודק את תעבורת האינטרנט בזמן אמת ושולט בה. ביומני העסקאות באינטרנט (WebTx) מתועדים כל הסשנים של HTTP ו-HTTPS שעובדו על ידי שרת ה-proxy של Netskope, כולל זהות המשתמש, האפליקציה, קטגוריית כתובת ה-URL, החלטות לגבי איומים ו-DLP ומטא-נתונים של הרשת.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מכונה של Google SecOps
- פרויקט ב- Google Cloud עם Cloud Storage API מופעל
- הרשאות ליצירה ולניהול של קטגוריות ב-Cloud Storage
- הרשאות לניהול כללי מדיניות של ניהול זהויות והרשאות גישה (IAM) בקטגוריות של Cloud Storage
- גישה עם הרשאות לדייר ב-Netskope באמצעות פרטי כניסה של אדמין
אפשרות 1: סטרימינג של יומנים מ-Netskope אל Cloud Storage
משתמשים באפשרות הזו אם יש לכם מינוי ל-Netskope Log Streaming שמופעל בדייר. העברת יומנים בסטרימינג של Netskope מעבירה קובצי יומן של WebTx ישירות לקטגוריה של Cloud Storage כקובצי .gzip דחוסים במרווח קבוע של 240 שניות.
יצירת קטגוריה של Cloud Storage
- עוברים אל Google Cloud המסוף.
- בוחרים פרויקט או יוצרים פרויקט חדש.
- בתפריט הניווט, עוברים אל Cloud Storage > Buckets.
- לוחצים על Create bucket.
ממלאים את פרטי ההגדרה הבאים:
הגדרה ערך Name your bucket מזינים שם ייחודי גלובלית (לדוגמה, netskope-webtx-logs)סוג המיקום בוחרים לפי הצרכים (אזור, שני אזורים, מספר אזורים) Location בוחרים את המיקום הכי קרוב לארגון (לדוגמה, us-central1)סוג האחסון (storage class) רגיל (מומלץ ליומנים שמתבצעת אליהם גישה לעיתים קרובות) בקרת גישה אחידה (מומלץ) כלי הגנה אופציונלי: הפעלת ניהול גרסאות של אובייקטים או מדיניות שמירת נתונים לוחצים על יצירה.
יצירת Google Cloud חשבון שירות
כדי להשתמש ב-Netskope Log Streaming, צריך Google Cloud חשבון שירות עם הרשאות כתיבה לקטגוריה של Cloud Storage. קובץ המפתח בפורמט JSON של חשבון השירות הזה משמש את Netskope לאימות כשדוחפים קובצי יומן.
- במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts.
- לוחצים על יצירת חשבון שירות.
- מספקים את פרטי ההגדרה הבאים:
- שם חשבון השירות: מזינים
netskope-log-streaming - Service account description: מזינים
Service account for Netskope Log Streaming to push WebTx logs to GCS
- שם חשבון השירות: מזינים
- לוחצים על יצירה והמשך.
- בקטע Grant this service account access to project:
- לוחצים על בחירת תפקיד.
- מחפשים את התפקיד יצירת אובייקטים של אחסון ובוחרים אותו.
- לוחצים על Continue.
- לוחצים על סיום.
יצירת מפתח JSON
- במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts (ניהול הרשאות גישה > חשבונות שירות), לוחצים על חשבון השירות
netskope-log-streaming. - לוחצים על הכרטיסייה Keys (מפתחות).
- לוחצים על Add Key > Create new key.
- בוחרים באפשרות JSON בתור סוג המפתח.
- לוחצים על יצירה.
קובץ JSON עם המפתח יורד באופן אוטומטי. שומרים את הקובץ באופן מאובטח. בקטע הבא תדביקו את כל התוכן של הקובץ הזה ב-Netskope.
מתן הרשאות כתיבה בקטגוריה של Cloud Storage
- במסוף Google Cloud , נכנסים אל Cloud Storage > Buckets.
- לוחצים על שם הקטגוריה (לדוגמה,
netskope-webtx-logs). - עוברים לכרטיסייה Permissions.
- לוחצים על הענקת גישה.
- מזינים את פרטי ההגדרה הבאים:
- Add principals (הוספת ישויות מורשות): מזינים את כתובת האימייל בחשבון של חשבון השירות (לדוגמה,
netskope-log-streaming@YOUR_PROJECT_ID.iam.gserviceaccount.com). - הקצאת תפקידים: בוחרים באפשרות יצירת אובייקטים של אחסון.
- Add principals (הוספת ישויות מורשות): מזינים את כתובת האימייל בחשבון של חשבון השירות (לדוגמה,
לוחצים על Save.
יצירת מקור נתונים של יומן
- נכנסים לדייר (tenant) ב-Netskope באמצעות פרטי כניסה של אדמין.
- עוברים אל הגדרות > כלים > סטרימינג של יומנים.
- לוחצים על יצירת מקור נתונים.
- בשדה Name, מזינים שם קריא לאנשים בשביל מקור הנתונים. לדוגמה,
Google SecOps WebTx GCS. - בוחרים באפשרות GCP Cloud Storage כסוג היעד.
ממלאים את פרטי ההגדרה הבאים:
קטגוריה: מזינים את השם של הקטגוריה ב-Cloud Storage (לדוגמה,
netskope-webtx-logs).- נתיב (אופציונלי): מזינים נתיב של תיקייה בתוך מאגר הנתונים שבו יאוחסנו היומנים (לדוגמה, `netskope/webtx/{%Y}`).
מפתח פרטי: מדביקים את כל התוכן של קובץ המפתח בפורמט JSON שנוצר בקטע הקודם, כאובייקט JSON יחיד שמתחיל ב-
{ומסתיים ב-}. הוא כולל את השדותtype, project_id, private_key_id, private_key, client_emailו-client_id.
מעיינים באפשרויות המשלוח: תדירות השליחה היא 240 שניות.
לוחצים על שמירה (או על יצירה) כדי להפעיל את מקור הנתונים. מערכת Netskope מאמתת את פרטי הכניסה על ידי כתיבת אובייקט בדיקה בשם
netskope-test-file.txtלקטגוריה.
הגדרת פיד ב-Google SecOps להטמעה של יומני Netskope WebTx מ-Cloud Storage
כדי ליצור את הפיד של Google SecOps ולתת הרשאות IAM:
אחזור של חשבון השירות של Google SecOps
Google SecOps משתמש בחשבון שירות ייחודי כדי לקרוא נתונים מהקטגוריה שלכם ב-Cloud Storage. אתם צריכים לתת לחשבון השירות הזה גישה לקטגוריה שלכם.
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Netskope WebTx Logs). - בוחרים באפשרות Google Cloud Storage V2 בתור סוג המקור.
- בוחרים באפשרות Netskope Web Proxy בתור סוג היומן.
- לוחצים על Get Service Account (קבלת חשבון שירות).
תוצג כתובת האימייל בחשבון שירות ייחודי, לדוגמה:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comמעתיקים את כתובת האימייל הזו לשימוש בשלב הבא.
לוחצים על הבא.
מציינים ערכים לפרמטרים הבאים של הקלט:
URL של קטגוריה של Cloud Storage: מזינים את ה-URI של קטגוריה של Cloud Storage עם נתיב הקידומת:
gs://netskope-webtx-logs/netskope/webtx/- מחליפים את:
-
netskope-webtx-logs: שם הקטגוריה שלכם ב-Cloud Storage. -
netskope/webtx/: קידומת הנתיב שהוגדרה ב-Netskope Log Streaming (אם רוצים להשתמש בנתיב הבסיסי, משאירים את השדה הזה ריק).
-
- מחליפים את:
אפשרות למחיקת המקור: בוחרים את אפשרות המחיקה לפי ההעדפה שלכם:
- אף פעם לא למחוק קבצים: אף פעם לא למחוק קבצים מהמקור (מומלץ לבדיקה).
- מחיקת קבצים שהועברו וספריות ריקות: מחיקת קבצים וספריות ריקות מהמקור אחרי השלמת אחזור מוצלח.
הגיל המקסימלי של הקובץ: כולל קבצים ששונו במספר הימים האחרון (ברירת המחדל היא 180 ימים)
מרחב השמות של הנכס: מרחב השמות של הנכס
תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה
לוחצים על הבא.
בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
הקצאת הרשאות IAM לחשבון השירות של Google SecOps
לחשבון השירות של Google SecOps נדרשים שני תפקידים בקטגוריה של Cloud Storage: צפייה באובייקט אחסון כדי לקרוא את אובייקטי היומן, ותפקיד ברמת הקטגוריה כדי לקרוא את המטא-נתונים של הקטגוריה.
- עוברים אל Cloud Storage > Buckets (קטגוריות).
- לוחצים על שם הקטגוריה (לדוגמה,
netskope-webtx-logs). - עוברים לכרטיסייה Permissions.
- לוחצים על הענקת גישה.
- מזינים את פרטי ההגדרה הבאים:
- Add principals: מדביקים את כתובת האימייל של חשבון השירות של Google SecOps (לדוגמה,
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com) - הקצאת תפקידים: בוחרים את שתי האפשרויות הבאות:
- צפייה באובייקט אחסון: קריאת אובייקטים של יומנים.
- קריאה בקטגוריה באחסון מדור קודם: קריאת המטא-נתונים של הקטגוריה. אם בחרתם באפשרות המחיקה מחיקת קבצים שהועברו וספריות ריקות, במקום זאת בוחרים באפשרות Storage Legacy Bucket Writer, שמעניקה גם את הרשאת המחיקה.
- Add principals: מדביקים את כתובת האימייל של חשבון השירות של Google SecOps (לדוגמה,
- לוחצים על Save.
אפשרות 2: שימוש ב-Netskope Cloud Exchange Log Shipper ל-Cloud Storage
האפשרות הזו מתאימה אם פרסתם את פלטפורמת Netskope Cloud Exchange והגדרתם את המודול Log Shipper. הכלי Log Shipper שולף יומני WebTx מדייר Netskope שלכם ומעביר אותם כקובצי .gzip דחוסים לקטגוריה של Cloud Storage, ש-Google SecOps קורא דרך פיד Cloud Storage V2.
לפני שמתחילים (Cloud Exchange)
כדי להשתמש באפשרות הזו, צריך לוודא שמתקיימות הדרישות הנוספות הבאות:
- דייר (tenant) ב-Netskope Cloud Exchange עם פלאגין של דייר ומודול Log Shipper שכבר מוגדרים.
- תוסף המקור Netskope CLS שהוגדר ב-Log Shipper (התוסף שולף נתונים מדייר Netskope).
- קטגוריה של Cloud Storage שנוצרה לאחסון יומני WebTx. אם לא יצרתם קטגוריה, אתם יכולים לפעול לפי השלבים במאמר יצירת קטגוריה של Cloud Storage.
- Google Cloud חשבון שירות עם הרשאת כתיבה לקטגוריה של Cloud Storage. אם עדיין לא יצרתם חשבון שירות, פועלים לפי השלבים שמפורטים במאמרים יצירת חשבון שירות של Google Cloud , יצירת מפתח JSON ומתן הרשאות כתיבה בקטגוריה של Cloud Storage.
הגדרת פלאגין היעד של Cloud Storage
- ב-Cloud Exchange, עוברים אל Settings > Plugin Store (הגדרות > חנות הפלאגינים).
- מחפשים את הפלאגין Google Cloud SCC (Google GCS) ובוחרים בו.
- לוחצים על Configure New Plugin (הגדרת פלאגין חדש) או מוסיפים הגדרה חדשה של פלאגין.
- מספקים את פרטי ההגדרה הבאים:
- שם ההגדרה האישית: מזינים שם תיאורי (לדוגמה,
GCS WebTx Destination). - מיפוי: בוחרים קובץ מיפוי. לגבי יומני WebTx שנשלחים כקבצי
.gzipמקוריים, לא מוחל מיפוי של טרנספורמציה. - קטגוריה: מזינים את השם של הקטגוריה ב-Cloud Storage (לדוגמה,
netskope-webtx-logs). - נתיב (אופציונלי): מזינים נתיב לתיקייה (לדוגמה,
netskope/webtx/). - קובץ מפתח: מדביקים את כל התוכן של קובץ מפתח ה-JSON של חשבון השירות, ולא רק את הערך
private_key.
- שם ההגדרה האישית: מזינים שם תיאורי (לדוגמה,
- לוחצים על Save.
- ההגדרה החדשה של הפלאגין תופיע בדף Log Shipper > Plugins.
הגדרת כלל עסקי (אופציונלי)
כברירת מחדל, הכלל העסקי הכול מסנן את כל ההתראות והאירועים. אם רוצים לסנן ספציפית את יומני WebTx, צריך ליצור כלל עסקי חדש:
- ב-Log Shipper, עוברים אל Business Rules.
- לוחצים על יצירת כלל חדש.
- מזינים שם כלל (לדוגמה,
WebTx Only). - מגדירים את המסננים כך שיכללו רק נתוני WebTx.
- לוחצים על Save.
הגדרת הצגה של יומנים
- ב-Log Shipper, עוברים אל Log Delivery.
- לוחצים על Add Log Delivery Configuration (הוספת הגדרה של העברת יומנים).
- מזינים את פרטי ההגדרה הבאים:
- הגדרת המקור: בוחרים את פלאגין המקור של Netskope CLS (לדוגמה,
WebTxCLSאוNetskope CLS). - הגדרת יעד: בוחרים את פלאגין היעד של Cloud Storage שהגדרתם (לדוגמה,
GCS WebTx Destination). - כלל עסקי: בוחרים כלל עסקי (לדוגמה,
AllאוWebTx Only).
- הגדרת המקור: בוחרים את פלאגין המקור של Netskope CLS (לדוגמה,
לוחצים על Save.
כדי לקבל נתונים היסטוריים נוספים, לוחצים על הסמל שליפת נתונים היסטוריים מתוך הפעולות של מסירת יומנים.
בוחרים טווח תאריכים של היסטוריה (מ עד ) ולוחצים על שליפה.
הגדרת פיד ב-Google SecOps כדי להטמיע יומני Netskope WebTx מ-Cloud Storage
פועלים לפי אותם השלבים כמו באפשרות Netskope Log Streaming כדי ליצור פיד של Google SecOps ולהעניק הרשאות IAM:
- אחזור של חשבון השירות של Google SecOps – יוצרים פיד עם Google Cloud Storage V2 כסוג המקור ו-Netskope web proxy כסוג היומן.
- הקצאת הרשאות IAM לחשבון השירות של Google SecOps – הקצאת התפקידים Storage Object Viewer ו-Storage Legacy Bucket Reader (אם משתמשים באפשרות המחיקה, צריך להקצות את התפקיד Storage Legacy Bucket Writer) בחשבון השירות של Google SecOps בקטגוריה של Cloud Storage.
אימות של העברת יומנים
כדי לוודא שיומני WebTx מועברים למאגר Cloud Storage:
- ב-Cloud Exchange, עוברים אל Log Shipper > Log Delivery.
- בודקים את העמודות Total Logs/WebTx Sent to External Receiver ו-Total WebTx Sent to Storage Bucket כדי לוודא שהנתונים נדחפים ליעד.
- בקטגוריה ב-GCS, מוודאים שקובצי
.gzipנכתבים על ידי Log Shipper.
הגדרת ההגדרות הגלובליות של Log Shipper (אופציונלי)
רק אדמינים יכולים לשנות את ההגדרות הגלובליות של כלי העברת היומנים. עוברים אל הגדרות > Log Shipper. יש שתי כרטיסיות: כללי ומיפויים.
בכרטיסייה General אפשר להגדיר את אסטרטגיית הניסיונות החוזרים לשליחת היומנים:
- ברירת מחדל (3 ניסיונות חוזרים): אם מסירת היומנים נכשלת, Log Shipper ינסה 3 פעמים לשלוח את היומנים ליעד. אם כל 3 הניסיונות החוזרים ייכשלו, קבוצת היומנים המתאימה תימחק.
Retry till Successful Delivery: ניסיונות חוזרים ללא הגבלה עד למסירה מוצלחת של היומנים.
אפשר גם להפעיל קידוד UTF-8 להתראות, לאירועים ול-WebTx כדי להבטיח טיפול חלק בנתונים בקידוד UTF-8. התכונה הזו מושבתת כברירת מחדל.
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
| applicationType | security_result.detection_fields[].key: "applicationType", security_result.detection_fields[].value: applicationType | ממופה ישירות משדה ה-CEF המתאים |
| appcategory | security_result.category_details[]: appcategory | ממופה ישירות מהשדה המתאים ב-CEF |
| דפדפן | security_result.detection_fields[].key: "browser", security_result.detection_fields[].value: browser | ממופה ישירות משדה ה-CEF המתאים |
| c-ip | principal.asset.ip[]: c-ip, principal.ip[]: c-ip | ממופה ישירות משדה ה-JSON המתאים |
| cci | security_result.detection_fields[].key: "cci", security_result.detection_fields[].value: cci | ממופה ישירות משדה ה-CEF המתאים |
| ccl | security_result.confidence: ערך נגזר, security_result.confidence_details: ccl | הערך של security_result.confidence נגזר מהערך של ccl: הערך 'excellent' או 'high' ממופה ל-HIGH_CONFIDENCE, הערך 'medium' ממופה ל-MEDIUM_CONFIDENCE, הערך 'low' או 'poor' ממופה ל-LOW_CONFIDENCE, והערך 'unknown' או 'not_defined' ממופה ל-UNKNOWN_CONFIDENCE. הערך של security_result.confidence_details ממופה ישירות מהערך של ccl. |
| clientBytes | network.sent_bytes: clientBytes | ממופה ישירות משדה ה-CEF המתאים |
| cs-access-method | additional.fields[].key: "accessMethod", additional.fields[].value.string_value: cs-access-method | ממופה ישירות משדה ה-JSON המתאים |
| cs-app | additional.fields[].key: "x-cs-app", additional.fields[].value.string_value: cs-app, principal.application: cs-app | ממופה ישירות משדה ה-JSON המתאים |
| cs-app-activity | additional.fields[].key: "x-cs-app-activity", additional.fields[].value.string_value: cs-app-activity | ממופה ישירות משדה ה-JSON המתאים |
| cs-app-category | additional.fields[].key: "x-cs-app-category", additional.fields[].value.string_value: cs-app-category | ממופה ישירות משדה ה-JSON המתאים |
| cs-app-cci | additional.fields[].key: "x-cs-app-cci", additional.fields[].value.string_value: cs-app-cci | ממופה ישירות משדה ה-JSON התואם |
| cs-app-ccl | additional.fields[].key: "x-cs-app-ccl", additional.fields[].value.string_value: cs-app-ccl | ממופה ישירות משדה ה-JSON התואם |
| cs-app-from-user | additional.fields[].key: "x-cs-app-from-user", additional.fields[].value.string_value: cs-app-from-user, principal.user.email_addresses[]: cs-app-from-user | ממופה ישירות משדה ה-JSON המתאים |
| cs-app-instance-id | additional.fields[].key: "x-cs-app-instance-id", additional.fields[].value.string_value: cs-app-instance-id | ממופה ישירות משדה ה-JSON המתאים |
| cs-app-object-name | additional.fields[].key: "x-cs-app-object-name", additional.fields[].value.string_value: cs-app-object-name | ממופה ישירות משדה ה-JSON התואם |
| cs-app-object-type | additional.fields[].key: "x-cs-app-object-type", additional.fields[].value.string_value: cs-app-object-type | ממופה ישירות משדה ה-JSON המתאים |
| cs-app-suite | additional.fields[].key: "x-cs-app-suite", additional.fields[].value.string_value: cs-app-suite | ממופה ישירות משדה ה-JSON התואם |
| cs-app-tags | additional.fields[].key: "x-cs-app-tags", additional.fields[].value.string_value: cs-app-tags | ממופה ישירות משדה ה-JSON התואם |
| cs-bytes | network.sent_bytes: cs-bytes | ממופה ישירות משדה ה-JSON המתאים |
| cs-content-type | additional.fields[].key: "sc-content-type", additional.fields[].value.string_value: cs-content-type | ממופה ישירות משדה ה-JSON התואם |
| cs-dns | target.asset.hostname[]: cs-dns, target.hostname: cs-dns | ממופה ישירות משדה ה-JSON התואם |
| cs-host | target.asset.hostname[]: cs-host, target.hostname: cs-host | ממופה ישירות משדה ה-JSON המתאים |
| cs-method | network.http.method: cs-method | ממופה ישירות משדה ה-JSON המתאים |
| cs-referer | network.http.referral_url: cs-referer | ממופה ישירות משדה ה-JSON המתאים |
| cs-uri | additional.fields[].key: "cs-uri", additional.fields[].value.string_value: cs-uri | ממופה ישירות משדה ה-JSON התואם |
| cs-uri-path | additional.fields[].key: "x-cs-uri-path", additional.fields[].value.string_value: cs-uri-path | ממופה ישירות משדה ה-JSON התואם |
| cs-uri-port | additional.fields[].key: "cs-uri-port", additional.fields[].value.string_value: cs-uri-port | ממופה ישירות משדה ה-JSON התואם |
| cs-uri-scheme | network.application_protocol: cs-uri-scheme | מיפוי ישיר משדה ה-JSON המתאים אחרי המרה לאותיות רישיות |
| cs-user-agent | network.http.parsed_user_agent: Parsed user agent, network.http.user_agent: cs-user-agent | הערך של network.http.parsed_user_agent נגזר מניתוח השדה cs-user-agent באמצעות המסנן parseduseragent |
| cs-username | principal.user.userid: cs-username | ממופה ישירות משדה ה-JSON המתאים |
| תאריך | metadata.event_timestamp.seconds: שניות מתחילת התקופה משדות התאריך והשעה, metadata.event_timestamp.nanos: 0 | התאריך והשעה משולבים ומומרים לשניות ולננו-שניות מאז ראשית זמן יוניקס. הערך של הננו-שניות הוא 0. |
| מכשיר | intermediary.hostname: device | ממופה ישירות משדה ה-CEF המתאים |
| dst | target.ip[]: dst | ממופה ישירות משדה ה-CEF המתאים |
| dst_country | target.location.country_or_region: dst_country | ממופה ישירות מהשדה המתאים שנותח |
| dst_ip | target.asset.ip[]: dst_ip, target.ip[]: dst_ip | ממופה ישירות מהשדה המתאים שנותח |
| dst_location | target.location.city: dst_location | ממופה ישירות מהשדה המתאים שנותח |
| dst_region | target.location.state: dst_region | ממופה ישירות מהשדה המנותח התואם |
| dst_zip | לא ממופים | השדה הזה לא ממופה ל-UDM |
| duser | target.user.email_addresses[]: duser, target.user.user_display_name: duser | ממופה ישירות משדה ה-CEF המתאים |
| dvchost | about.hostname: dvchost, target.asset.hostname[]: dvchost, target.hostname: dvchost | ממופה ישירות משדה ה-CEF המתאים |
| event_timestamp | metadata.event_timestamp.seconds: event_timestamp | ממופה ישירות מהשדה המתאים שנותח |
| שם המארח | target.asset.hostname[]: hostname, target.hostname: hostname | ממופה ישירות משדה ה-CEF המתאים |
| מזהה אירוע | security_result.detection_fields[].key: "IncidentID", security_result.detection_fields[].value: IncidentID | ממופה ישירות מהשדה המתאים ב-CEF |
| מתווך | מתווך: intermediary | ממופה ישירות משדה ה-CEF המתאים |
| md5 | target.file.md5: md5 | ממופה ישירות משדה ה-CEF המתאים |
| הודעה | שדות שונים ב-UDM | השדה message מנותח על סמך השאלה אם הוא מכיל את המחרוזת 'CEF'. אם כן, הוא מטופל כיומן CEF. אחרת, הוא מנותח כמחרוזת מופרדת ברווח או כ-JSON. |
| mwDetectionEngine | additional.fields[].key: "mwDetectionEngine", additional.fields[].value.string_value: mwDetectionEngine | ממופה ישירות משדה ה-CEF המתאים |
| mwType | metadata.description: mwType | ממופה ישירות מהשדה המתאים ב-CEF |
| מערכת הפעלה | principal.platform: ערך נגזר | הפלטפורמה נגזרת מהשדה os: הערך "Windows" ממופה ל-WINDOWS, הערך "MAC" ממופה ל-MAC והערך "LINUX" ממופה ל-LINUX |
| ייפתח | network.http.referral_url: page | ממופה ישירות משדה ה-CEF המתאים |
| מקור ההפניה (referrer) | network.http.referral_url: referer | ממופה ישירות משדה ה-CEF המתאים |
| requestClientApplication | network.http.parsed_user_agent: Parsed user agent, network.http.user_agent: requestClientApplication | הערך של network.http.parsed_user_agent נגזר מניתוח השדה requestClientApplication באמצעות המסנן parseduseragent |
| request_method | network.http.method: request_method | ממופה ישירות מהשדה המתאים שנותח |
| rs-status | additional.fields[].key: "rs-status", additional.fields[].value.string_value: rs-status, network.http.response_code: rs-status | ממופה ישירות משדה ה-JSON המתאים |
| s-ip | target.asset.ip[]: s-ip, target.ip[]: s-ip | ממופה ישירות משדה ה-JSON המתאים |
| sc-bytes | network.received_bytes: sc-bytes | ממופה ישירות משדה ה-JSON המתאים |
| sc-content-type | additional.fields[].key: "sc-content-type", additional.fields[].value.string_value: sc-content-type | ממופה ישירות משדה ה-JSON התואם |
| sc-status | network.http.response_code: sc-status | ממופה ישירות משדה ה-JSON התואם |
| serverBytes | network.received_bytes: serverBytes | ממופה ישירות מהשדה המתאים ב-CEF |
| sha256 | target.file.sha256: sha256 | ממופה ישירות משדה ה-CEF המתאים |
| src | principal.ip[]: src | ממופה ישירות מהשדה המתאים ב-CEF |
| src_country | principal.location.country_or_region: src_country | ממופה ישירות מהשדה המתאים שנותח |
| src_ip | principal.asset.ip[]: src_ip, principal.ip[]: src_ip | ממופה ישירות מהשדה התואם שנותח |
| src_location | principal.location.city: src_location | ממופה ישירות מהשדה המתאים שנותח |
| src_region | principal.location.state: src_region | ממופה ישירות מהשדה המתאים שנותח |
| src_latitude | לא ממופים | השדה הזה לא ממופה ל-UDM |
| src_longitude | לא ממופים | השדה הזה לא ממופה ל-UDM |
| src_zip | לא ממופים | השדה הזה לא ממופה ל-UDM |
| suser | principal.user.user_display_name: suser | ממופה ישירות מהשדה המתאים ב-CEF |
| target_host | target.asset.hostname[]: target_host, target.hostname: target_host | ממופה ישירות מהשדה המתאים שנותח |
| פעם | metadata.event_timestamp.seconds: שניות מאז ראשית זמן יוניקס (Unix epoch) משדות התאריך והשעה, metadata.event_timestamp.nanos: 0 | התאריך והשעה משולבים ומומרים לשניות ולננו-שניות מאז ראשית זמן יוניקס. הערך של הננו-שניות הוא 0. |
| חותמת זמן | metadata.event_timestamp.seconds: timestamp | ממופה ישירות משדה ה-CEF המתאים |
| ts | metadata.event_timestamp.seconds: Epoch seconds from ts, metadata.event_timestamp.nanos: 0 | חותמת הזמן מומרת לשניות ולננו-שניות מאז תקופת ה-Epoch. הערך של הננו-שניות הוא 0. |
| url | target.url: url | ממופה ישירות משדה ה-CEF המתאים |
| user_agent | network.http.parsed_user_agent: סוכן משתמש שנותח, network.http.user_agent: סוכן משתמש | השדה network.http.parsed_user_agent נגזר מניתוח של השדה user_agent באמצעות המסנן parseduseragent |
| user_key | principal.user.email_addresses[]: user_key | ממופה ישירות מהשדה המתאים שנותח |
| גרסה | לא ממופים | השדה הזה לא ממופה ל-UDM |
| x-c-browser | additional.fields[].key: "x-c-browser", additional.fields[].value.string_value: x-c-browser | ממופה ישירות משדה ה-JSON המתאים |
| x-c-browser-version | additional.fields[].key: "x-c-browser-version", additional.fields[].value.string_value: x-c-browser-version | ממופה ישירות משדה ה-JSON המתאים |
| x-c-country | principal.location.country_or_region: x-c-country | ממופה ישירות משדה ה-JSON המתאים |
| x-c-device | additional.fields[].key: "x-c-device", additional.fields[].value.string_value: x-c-device | ממופה ישירות משדה ה-JSON המתאים |
| x-c-latitude | principal.location.region_coordinates.latitude: x-c-latitude | ממופה ישירות משדה ה-JSON המתאים |
| x-c-local-time | security_result.detection_fields[].key: "x-c-local-time", security_result.detection_fields[].value: x-c-local-time | ממופה ישירות משדה ה-JSON המתאים |
| x-c-location | principal.location.name: x-c-location | ממופה ישירות משדה ה-JSON המתאים |
| x-c-longitude | principal.location.region_coordinates.longitude: x-c-longitude | ממופה ישירות משדה ה-JSON המתאים |
| x-c-os | principal.platform: ערך נגזר | הפלטפורמה נגזרת מהשדה x-c-os: Windows ממופה ל-WINDOWS, MAC ממופה ל-MAC ו-LINUX ממופה ל-LINUX |
| x-c-region | principal.location.state: x-c-region | ממופה ישירות משדה ה-JSON התואם |
| x-c-zipcode | additional.fields[].key: "x-c-zipcode", additional.fields[].value.string_value: x-c-zipcode | ממופה ישירות משדה ה-JSON המתאים |
| x-category | additional.fields[].key: "x-category", additional.fields[].value.string_value: x-category | ממופה ישירות משדה ה-JSON המתאים |
| x-category-id | additional.fields[].key: "x-category-id", additional.fields[].value.string_value: x-category-id | ממופה ישירות משדה ה-JSON התואם |
| x-cs-access-method | additional.fields[].key: "accessMethod", additional.fields[].value.string_value: x-cs-access-method | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-app | principal.application: x-cs-app, additional.fields[].key: "x-cs-app", additional.fields[].value.string_value: x-cs-app | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-app-activity | additional.fields[].key: "x-cs-app-activity", additional.fields[].value.string_value: x-cs-app-activity | ממופה ישירות משדה ה-JSON התואם |
| x-cs-app-category | additional.fields[].key: "x-cs-app-category", additional.fields[].value.string_value: x-cs-app-category | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-app-cci | additional.fields[].key: "x-cs-app-cci", additional.fields[].value.string_value: x-cs-app-cci | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-app-from-user | additional.fields[].key: "x-cs-app-from-user", additional.fields[].value.string_value: x-cs-app-from-user | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-app-object-id | additional.fields[].key: "x-cs-app-object-id", additional.fields[].value.string_value: x-cs-app-object-id | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-app-object-name | additional.fields[].key: "x-cs-app-object-name", additional.fields[].value.string_value: x-cs-app-object-name | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-app-object-type | additional.fields[].key: "x-cs-app-object-type", additional.fields[].value.string_value: x-cs-app-object-type | ממופה ישירות משדה ה-JSON התואם |
| x-cs-app-suite | additional.fields[].key: "x-cs-app-suite", additional.fields[].value.string_value: x-cs-app-suite | ממופה ישירות משדה ה-JSON התואם |
| x-cs-app-tags | additional.fields[].key: "x-cs-app-tags", additional.fields[].value.string_value: x-cs-app-tags | ממופה ישירות משדה ה-JSON התואם |
| x-cs-app-to-user | additional.fields[].key: "x-cs-app-to-user", additional.fields[].value.string_value: x-cs-app-to-user | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-dst-ip | security_result.detection_fields[].key: "x-cs-dst-ip", security_result.detection_fields[].value: x-cs-dst-ip, target.asset.ip[]: x-cs-dst-ip, target.ip[]: x-cs-dst-ip | ממופה ישירות משדה ה-JSON התואם |
| x-cs-dst-port | security_result.detection_fields[].key: "x-cs-dst-port", security_result.detection_fields[].value: x-cs-dst-port, target.port: x-cs-dst-port | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-http-version | security_result.detection_fields[].key: "x-cs-http-version", security_result.detection_fields[].value: x-cs-http-version | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-page-id | additional.fields[].key: "x-cs-page-id", additional.fields[].value.string_value: x-cs-page-id | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-session-id | network.session_id: x-cs-session-id | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-site | additional.fields[].key: "x-cs-site", additional.fields[].value.string_value: x-cs-site | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-sni | network.tls.client.server_name: x-cs-sni | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-src-ip | principal.asset.ip[]: x-cs-src-ip, principal.ip[]: x-cs-src-ip, security_result.detection_fields[].key: "x-cs-src-ip", security_result.detection_fields[].value: x-cs-src-ip | ממופה ישירות משדה ה-JSON התואם |
| x-cs-src-ip-egress | principal.asset.ip[]: x-cs-src-ip-egress, principal.ip[]: x-cs-src-ip-egress, security_result.detection_fields[].key: "x-cs-src-ip-egress", security_result.detection_fields[].value: x-cs-src-ip-egress | ממופה ישירות משדה ה-JSON התואם |
| x-cs-src-port | principal.port: x-cs-src-port, security_result.detection_fields[].key: "x-cs-src-port", security_result.detection_fields[].value: x-cs-src-port | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-ssl-cipher | network.tls.cipher: x-cs-ssl-cipher | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-ssl-fronting-error | security_result.detection_fields[].key: "x-cs-ssl-fronting-error", security_result.detection_fields[].value: x-cs-ssl-fronting-error | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-ssl-handshake-error | security_result.detection_fields[].key: "x-cs-ssl-handshake-error", security_result.detection_fields[].value: x-cs-ssl-handshake-error | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-ssl-ja3 | network.tls.client.ja3: x-cs-ssl-ja3 | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-ssl-version | network.tls.version: x-cs-ssl-version | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-timestamp | metadata.event_timestamp.seconds: x-cs-timestamp | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-traffic-type | additional.fields[].key: "trafficType", additional.fields[].value.string_value: x-cs-traffic-type | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-tunnel-src-ip | security_result.detection_fields[].key: "x-cs-tunnel-src-ip", security_result.detection_fields[].value: x-cs-tunnel-src-ip | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-uri-path | additional.fields[].key: "x-cs-uri-path", additional.fields[].value.string_value: x-cs-uri-path | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-url | target.url: x-cs-url | ממופה ישירות משדה ה-JSON המתאים |
| x-cs-userip | security_result.detection_fields[].key: "x-cs-userip", security_result.detection_fields[].value: x-cs-userip | ממופה ישירות משדה ה-JSON המתאים |
| x-other-category | security_result.category_details[]: x-other-category | ממופה ישירות משדה ה-JSON המתאים |
| x-other-category-id | security_result.detection_fields[].key: "x-other-category-id", security_result.detection_fields[].value: x-other-category-id | ממופה ישירות משדה ה-JSON התואם |
| x-policy-action | security_result.action: Derived value, security_result.action_details: x-policy-action | security_result.action נגזר מהמרת x-policy-action לאותיות רישיות. אם הערך באותיות רישיות הוא ALLOW או BLOCK, המערכת משתמשת בו ישירות. אחרת, לא מתבצע מיפוי. security_result.action_details ממופה ישירות מ-x-policy-action. |
| x-policy-dst-host | security_result.detection_fields[].key: "x-policy-dst-host", security_result.detection_fields[].value: x-policy-dst-host | ממופה ישירות משדה ה-JSON המתאים |
| x-policy-dst-host-source | security_result.detection_fields[].key: "x-policy-dst-host-source", security_result.detection_fields[].value: x-policy-dst-host-source | ממופה ישירות משדה ה-JSON המתאים |
| x-policy-dst-ip | security_result.detection_fields[].key: "x-policy-dst-ip", security_result.detection_fields[].value: x-policy-dst-ip | ממופה ישירות משדה ה-JSON המתאים |
| x-policy-name | security_result.rule_name: x-policy-name | ממופה ישירות משדה ה-JSON המתאים |
| x-policy-src-ip | security_result.detection_fields[].key: "x-policy-src-ip", security_result.detection_fields[].value: x-policy-src-ip | ממופה ישירות משדה ה-JSON המתאים |
| x-r-cert-enddate | network.tls.server.certificate.not_after.seconds: Epoch seconds from x-r-cert-enddate | התאריך מומר לשניות מאז תקופת ה-Epoch |
| x-r-cert-expired | additional.fields[].key: "x-r-cert-expired", additional.fields[].value.string_value: x-r-cert-expired | ממופה ישירות משדה ה-JSON המתאים |
| x-r-cert-incomplete-chain | additional.fields[].key: "x-r-cert-incomplete-chain", additional.fields[].value.string_value: x-r-cert-incomplete-chain | ממופה ישירות משדה ה-JSON המתאים |
| x-r-cert-issuer-cn | network.tls.server.certificate.issuer: x-r-cert-issuer-cn | ממופה ישירות משדה ה-JSON המתאים |
| x-r-cert-mismatch | additional.fields[].key: "x-r-cert-mismatch", additional.fields[].value.string_value: x-r-cert-mismatch | ממופה ישירות משדה ה-JSON המתאים |
| x-r-cert-revoked | additional.fields[].key: "x-r-cert-revoked", additional.fields[].value.string_value: x-r-cert-revoked | ממופה ישירות משדה ה-JSON התואם |
| x-r-cert-self-signed | additional.fields[].key: "x-r-cert-self-signed", additional.fields[].value.string_value: x-r-cert-self-signed | ממופה ישירות משדה ה-JSON המתאים |
| x-r-cert-startdate | network.tls.server.certificate.not_before.seconds: שניות של תקופת זמן המערכת מ-x-r-cert-startdate | התאריך מומר לשניות מאז תחילת התקופה (epoch) |
| x-r-cert-subject-cn | network.tls.server.certificate.subject: x-r-cert-subject-cn | ממופה ישירות משדה ה-JSON המתאים |
| x-r-cert-untrusted-root | additional.fields[].key: "x-r-cert-untrusted-root", additional.fields[].value.string_value: x-r-cert-untrusted-root | ממופה ישירות משדה ה-JSON המתאים |
| x-r-cert-valid | additional.fields[].key: "x-r-cert-valid", additional.fields[].value.string_value: x-r-cert-valid | ממופה ישירות משדה ה-JSON התואם |
| x-request-id | additional.fields[].key: "requestId", additional.fields[].value.string_value: x-request-id | ממופה ישירות משדה ה-JSON המתאים |
| x-rs-file-category | additional.fields[].key: "x-rs-file-category", additional.fields[].value.string_value: x-rs-file-category | ממופה ישירות משדה ה-JSON המתאים |
| x-rs-file-type | additional.fields[].key: "x-rs-file-type", additional.fields[].value.string_value: x-rs-file-type | ממופה ישירות משדה ה-JSON המתאים |
| x-s-country | target.location.country_or_region: x-s-country | ממופה ישירות משדה ה-JSON התואם |
| x-s-dp-name | additional.fields[].key: "x-s-dp-name", additional.fields[].value.string_value: x-s-dp-name | ממופה ישירות משדה ה-JSON המתאים |
| x-s-latitude | target.location.region_coordinates.latitude: x-s-latitude | ממופה ישירות משדה ה-JSON התואם |
| x-s-location | target.location.name: x-s-location | ממופה ישירות משדה ה-JSON המתאים |
| x-s-longitude | target.location.region_coordinates.longitude: x-s-longitude | ממופה ישירות משדה ה-JSON המתאים |
| x-s-region | target.location.state: x-s-region | ממופה ישירות משדה ה-JSON המתאים |
| x-s-zipcode | additional.fields[].key: "x-s-zipcode", additional.fields[].value.string_value: x-s-zipcode | ממופה ישירות משדה ה-JSON המתאים |
| x-sr-ssl-cipher | security_result.detection_fields[].key: "x-sr-ssl-cipher", security_result.detection_fields[].value: x-sr-ssl-cipher | ממופה ישירות משדה ה-JSON המתאים |
| x-sr-ssl-client-certificate-error | security_result.detection_fields[].key: "x-sr-ssl-client-certificate-error", security_result.detection_fields[].value: x-sr-ssl-client-certificate-error | ממופה ישירות משדה ה-JSON התואם |
| x-sr-ssl-engine-action | security_result.detection_fields[].key: "x-sr-ssl-engine-action", security_result.detection_fields[].value: x-sr-ssl-engine-action | ממופה ישירות משדה ה-JSON המתאים |
| x-sr-ssl-engine-action-reason | security_result.detection_fields[].key: "x-sr-ssl-engine-action-reason", security_result.detection_fields[].value: x-sr-ssl-engine-action-reason | ממופה ישירות משדה ה-JSON המתאים |
| x-sr-ssl-handshake-error | security_result.detection_fields[].key: "x-sr-ssl-handshake-error", security_result.detection_fields[].value: x-sr-ssl-handshake-error | ממופה ישירות משדה ה-JSON התואם |
| x-sr-ssl-ja3s | network.tls.server.ja3s: x-sr-ssl-ja3s | ממופה ישירות משדה ה-JSON התואם |
| x-sr-ssl-malformed-ssl | security_result.detection_fields[].key: "x-sr-ssl-malformed-ssl", security_result.detection_fields[].value: x-sr-ssl-malformed-ssl | ממופה ישירות משדה ה-JSON המתאים |
| x-sr-ssl-version | security_result.detection_fields[].key: "x-sr-ssl-version", security_result.detection_fields[].value: x-sr-ssl-version | ממופה ישירות משדה ה-JSON המתאים |
| x-s-custom-signing-ca-error | security_result.detection_fields[].key: "x-s-custom-signing-ca-error", security_result.detection_fields[].value: x-s-custom-signing-ca-error | ממופה ישירות משדה ה-JSON המתאים |
| x-ssl-bypass | security_result.detection_fields[].key: "SSL BYPASS", security_result.detection_fields[].value: x-ssl-bypass or x-ssl-bypass-reason | אם הערך של x-ssl-bypass הוא Yes וקיים x-ssl-bypass-reason, נעשה שימוש בערך של x-ssl-bypass-reason. אחרת, נעשה שימוש בערך של x-ssl-bypass. |
| x-ssl-policy-action | security_result.detection_fields[].key: "x-ssl-policy-action", security_result.detection_fields[].value: x-ssl-policy-action | ממופה ישירות משדה ה-JSON המתאים |
| x-ssl-policy-categories | security_result.category_details[]: x-ssl-policy-categories | ממופה ישירות משדה ה-JSON המתאים |
| x-ssl-policy-dst-host | security_result.detection_fields[].key: "x-ssl-policy-dst-host", security_result.detection_fields[].value: x-ssl-policy-dst-host | ממופה ישירות משדה ה-JSON המתאים |
| x-ssl-policy-dst-host-source | security_result.detection_fields[].key: "x-ssl-policy-dst-host-source", security_result.detection_fields[].value: x-ssl-policy-dst-host-source | ממופה ישירות משדה ה-JSON התואם |
| x-ssl-policy-dst-ip | security_result.detection_fields[].key: "x-ssl-policy-dst-ip", security_result.detection_fields[].value: x-ssl-policy-dst-ip | ממופה ישירות משדה ה-JSON המתאים |
| x-ssl-policy-name | security_result.rule_name: x-ssl-policy-name | ממופה ישירות משדה ה-JSON המתאים |
| x-ssl-policy-src-ip | security_result.detection_fields[].key: "x-ssl-policy-src-ip", security_result.detection_fields[].value: x-ssl-policy-src-ip | ממופה ישירות משדה ה-JSON התואם |
| x-sr-dst-ip | security_result.detection_fields[].key: "x-sr-dst-ip", security_result.detection_fields[].value: x-sr-dst-ip | ממופה ישירות משדה ה-JSON התואם |
| x-sr-dst-port | security_result.detection_fields[].key: "x-sr-dst-port", security_result.detection_fields[].value: x-sr-dst-port | ממופה ישירות משדה ה-JSON המתאים |
| x-type | additional.fields[].key: "xType", additional.fields[].value.string_value: x-type | ממופה ישירות משדה ה-JSON המתאים |
| x-transaction-id | additional.fields[].key: "transactionId", additional.fields[].value.string_value: x-transaction-id | ממופה ישירות משדה ה-JSON המתאים |
| metadata.vendor_name | ההגדרה היא Netskope | |
| metadata.product_name | אם הערך לא מוגדר, מגדירים אותו ל-Netskope Webproxy | |
| metadata.log_type | צריך להגדיר את הערך NETSKOPE_WEBPROXY. |
יומן שינויים
צפייה ביומן השינויים של המנתח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.