איסוף יומנים של Auth0

גרסת מנתח הנתונים: 16.0

נתמך ב:

הכלי הזה מנתח אירועים ביומן Auth0 ומחלץ אותם מהודעות בפורמט JSON. הוא מאתחל שדות UDM, מנתח את מטען ה-JSON הייעודי, ממפה שדות רלוונטיים לסכימת UDM ומסווג אירועים על סמך השדה type, ומגדיר פעולות אבטחה וסוגי אירועים מתאימים.

לפני שמתחילים

חשוב לוודא שמתקיימות דרישות הסף הבאות:

  • מופע של Google SecOps.
  • חשבון Auth0 עם ההרשאות הנדרשות.

הגדרת פידים

כדי להגדיר פיד, מבצעים את השלבים הבאים:

  1. עוברים אל SIEM Settings > Feeds.
  2. לוחצים על הוספת פיד חדש.
  3. בדף הבא, לוחצים על הגדרת פיד יחיד.
  4. בשדה Feed name (שם הפיד), מזינים שם לפיד (לדוגמה, Auth0 Logs).
  5. בוחרים באפשרות Webhook בתור סוג המקור.
  6. בוחרים באפשרות AUTH_ZERO בתור סוג היומן.
  7. לוחצים על הבא.
  8. אופציונלי: מציינים ערכים לפרמטרים הבאים של הקלט:
    • Split delimiter: התו או התווים שמשמשים להפרדה בין שורות ביומן, כמו \n.
    • מרחב השמות של הנכס: מרחב השמות של הנכס.
    • תוויות להעברה: התווית שמוחלת על האירועים מהפיד הזה.
  9. לוחצים על הבא.
  10. בודקים את הגדרות הפיד במסך סיום ולוחצים על שליחה.
  11. לוחצים על יצירת מפתח סודי כדי ליצור מפתח סודי לאימות הפיד הזה.
  12. מעתיקים את המפתח הסודי ושומרים אותו. לא תהיה לך אפשרות לראות שוב את המפתח הסודי הזה. במקרה הצורך, אפשר ליצור מחדש מפתח סודי חדש, אבל הפעולה הזו מבטלת את התוקף של המפתח הסודי הקודם.
  13. בכרטיסייה פרטים, מעתיקים את כתובת ה-URL של נקודת הקצה של הפיד מהשדה פרטי נקודת הקצה. צריך לציין את כתובת ה-URL של נקודת הקצה הזו באפליקציית הלקוח.
  14. לוחצים על סיום.

יצירת מפתח API ל-Webhook Feed

  1. עוברים אל Google Cloud מסוף > Credentials (פרטי כניסה).

    כניסה לדף Credentials

  2. לוחצים על Create credentials ואז על API key.

  3. הגבלת הגישה של מפתח ה-API ל-Chronicle API.

מציינים את כתובת ה-URL של נקודת הקצה

  1. באפליקציית הלקוח, מציינים את כתובת ה-URL של נקודת הקצה מסוג HTTPS שמופיעה בפיד של ה-webhook.
  2. כדי להפעיל אימות, מציינים את מפתח ה-API ואת המפתח הסודי כחלק מהכותרת המותאמת אישית בפורמט הבא:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    המלצה: כדאי לציין את מפתח ה-API ככותרת במקום לציין אותו בכתובת ה-URL. אם לקוח ה-webhook שלכם לא תומך בכותרות בהתאמה אישית, אתם יכולים לציין את מפתח ה-API ואת המפתח הסודי באמצעות פרמטרים של שאילתות בפורמט הבא:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

מחליפים את מה שכתוב בשדות הבאים:

  • ENDPOINT_URL: כתובת ה-URL של נקודת הקצה של הפיד.
  • API_KEY: מפתח ה-API לאימות ב-Google Security Operations.
  • SECRET: המפתח הסודי שיצרתם כדי לאמת את הפיד.

הגדרת webhook של Auth0 ל-Google SecOps

  1. נכנסים למרכז הבקרה של Auth0.
  2. עוברים אל Monitoring > Streams.
  3. לוחצים על יצירת מקור נתונים של יומן.
  4. לוחצים על הלחצן Custom Webhook (ווּבְּהוּק בהתאמה אישית) ונותנים לו שם לבחירתכם. לדוגמה: Google SecOps Webhook.
  5. מגדירים את ההגדרות הבאות:
    • כתובת ה-URL של מטען הייעודי (payload): מזינים את כתובת נקודת הקצה ל-API של Google SecOps.
    • Content-Type: מגדירים את הכותרת Content-Type לערך application/json. ההגדרה הזו מציינת ל-Google SecOps את פורמט הנתונים שנשלחים.
    • אופציונלי: אסימון הרשאה: הגדרת סוד לאבטחה נוספת. הוא ישמש לאימות האותנטיות של בקשות ה-webhook.

התאמה אישית של המטען הייעודי (payload): אפשר להתאים אישית את המטען הייעודי שנשלח אל Google SecOps על ידי שינוי קטגוריית האירוע. כך תוכלו לבחור נקודות נתונים ספציפיות מאירוע Auth0 ולעצב אותן לפי הצורך עבור Google SecOps. פרטים על משתני ההקשר הזמינים ואפשרויות הסקריפטים זמינים במסמכי התיעוד של Auth0. מוודאים שהמטען הייעודי (payload) הסופי תואם לפורמט הצפוי של Google SecOps UDM.

  1. לוחצים על שמירה כדי ליצור את ה-webhook.
  2. מפעילים את האירוע שמשויך ל-hook (לדוגמה, רישום משתמש חדש, התחברות).
  3. כדי לוודא שהיומנים נשלחים ל-Google SecOps, בודקים את הפיד במסוף Google SecOps.

טבלת מיפוי UDM

שדה היומן מיפוי UDM לוגיקה
client_id principal.asset.product_object_id ממופה ישירות מהשדה client_id.
client_name principal.hostname ממופה ישירות מהשדה client_name.
connection security_result.description ממופה ישירות מהשדה connection.
connection_id security_result.rule_id ממופה ישירות מהשדה connection_id.
date metadata.event_timestamp הערך מנותח מהשדה date באמצעות הפורמט ISO8601.
description metadata.description ממופה ישירות מהשדה description.
details.error security_result.detection_fields ממופה מהשדה details.error. המפתח הוא Error.
details.error.oauthError security_result.detection_fields ממופה מהשדה details.error.oauthError. המפתח הוא oauthError.
details.error.type security_result.detection_fields ממופה מהשדה details.error.type. המפתח הוא oauth_error_type.
details.ipOnAllowlist security_result.detection_fields ממופה מהשדה details.ipOnAllowlist. המפתח הוא ipOnAllowlist.
details.link target.url ממופה ישירות מהשדה details.link אם הוא קיים, אחרת הוא נגזר משדות אחרים (ראו בהמשך).
details.request.auth.strategy security_result.detection_fields ממופה מהשדה details.request.auth.strategy. המפתח הוא 'אסטרטגיה'.
details.request.body.app_metadata.blockedReason security_result.detection_fields ממופה מהשדה details.request.body.app_metadata.blockedReason. המפתח הוא blockedReason.
details.request.body.app_metadata.customer_id target.user.product_object_id ממופה ישירות מהשדה details.request.body.app_metadata.customer_id.
details.request.body.app_metadata.migrated security_result.detection_fields ממופה מהשדה details.request.body.app_metadata.migrated. המפתח הוא 'הועבר'.
details.request.channel security_result.detection_fields ממופה מהשדה details.request.channel. המפתח הוא 'ערוץ'.
details.request.method network.http.method ממופה ישירות מהשדה details.request.method אחרי המרה לאותיות רישיות.
details.request.path target.url ממופה ישירות מהשדה details.request.path אם השדה details.link לא קיים, אחרת נגזר משדות אחרים (ראו בהמשך).
details.response.body.email target.user.email_addresses ממופה ישירות מהשדה details.response.body.email.
details.response.body.email_verified security_result.detection_fields ממופה מהשדה details.response.body.email_verified. המפתח הוא email_verified.
details.response.body.nickname target.user.user_display_name ממופה ישירות מהשדה details.response.body.nickname.
details.response.body.user_id target.user.userid ממופה ישירות מהשדה details.response.body.user_id.
details.response.statusCode network.http.response_code ממופה ישירות מהשדה details.response.statusCode אחרי המרה למספר שלם.
details.return_to target.url ממופה ישירות מהשדה details.return_to אם השדות details.link ו-details.request.path לא קיימים, אחרת נגזר משדות אחרים (ראו בהמשך).
details.session_id network.session_id ממופה ישירות מהשדה details.session_id.
details.stats.loginsCount additional.fields ממופה מהשדה details.stats.loginsCount. המפתח הוא 'loginsCount'.
details.requiresVerification security_result.detection_fields ממופה מהשדה details.requiresVerification. המפתח הוא requiresVerification.
details.to target.user.email_addresses ממופה ישירות מהשדה details.to.
hostname target.hostname ממופה ישירות מהשדה hostname.
ip principal.ip ממופה ישירות מהשדה ip.
js_data.audience target.url ממופה ישירות מהשדה js_data.audience אם השדות details.link,‏ details.request.path ו-details.return_to לא קיימים.
js_data.details.body.email_verified security_result.detection_fields ממופה מהשדה js_data.details.body.email_verified. המפתח הוא email_verified.
js_data.details.body.is_signup security_result.detection_fields ממופה מהשדה js_data.details.body.is_signup. המפתח הוא 'is_signup'.
js_data.details.body.transaction.redirect_uri target.url ממופה ישירות מהשדה js_data.details.body.transaction.redirect_uri אם השדות details.link,‏ details.request.path,‏ details.return_to ו-js_data.audience לא קיימים.
js_data.scope security_result.detection_fields ממופה מהשדה js_data.scope. המפתח הוא 'היקף'.
js_data.tracking_id security_result.detection_fields ממופה מהשדה js_data.tracking_id. המפתח הוא 'tracking_id'.
log_id metadata.product_log_id ממופה ישירות מהשדה log_id.
metadata.log_type metadata.log_type ממופה ישירות מהשדה log_type.
metadata.product_name metadata.product_name הערך שמוגדר הוא AUTH_ZERO.
metadata.vendor_name metadata.vendor_name הערך שמוגדר הוא AUTH_ZERO.
metadata.product_event_type metadata.product_event_type ממופה ישירות מהשדה type.
network.http.parsed_user_agent network.http.parsed_user_agent מנותח מהשדה user_agent.
network.http.user_agent network.http.user_agent ממופה ישירות מהשדה user_agent.
security_result.action security_result.action הערך נקבע לפי השדה type (ALLOW או BLOCK). אפשר לראות את קוד הניתוח למיפויים ספציפיים.
strategy security_result.detection_fields ממופה מהשדה strategy. המפתח הוא 'אסטרטגיה'.
strategy_type security_result.detection_fields ממופה מהשדה strategy_type. המפתח הוא 'strategy_type'.
target.user.email_addresses target.user.email_addresses ממופה ישירות מהשדה user_name אם הוא כתובת אימייל, אחרת הוא נגזר משדות אחרים (ראו למעלה).
target.user.userid target.user.userid ממופה ישירות מהשדה user_id, או details.response.body.user_id או user_name אם השדה user_id לא קיים.
user_agent network.http.user_agent ממופה ישירות מהשדה user_agent.
user_id target.user.userid ממופה ישירות מהשדה user_id.
user_name target.user.email_addresses ממופה ישירות מהשדה user_name. הערך הוא MACHINE אם security_result.action הוא ALLOW ו-type הוא slo,‏ sapi,‏ s,‏ ss או ssa. הערך שמוגדר הוא OTP אם extensions.auth.type הוא MACHINE ו-type הוא slo. הערך נקבע לפי שילוב של שדות, כולל type, ‏ client_name, ‏ ip, ‏ hostname ו-has_user. אפשר לראות את קוד הניתוח למיפויים ספציפיים.

שנה רישום

צפייה ביומן השינויים של כלי הניתוח הזה

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