איסוף יומני כניסה של Microsoft Entra ID (לשעבר Azure Active Directory)
גרסת מנתח הנתונים: 26.0
במאמר הזה מוסבר איך לאסוף יומני כניסה של Microsoft Entra ID (לשעבר Azure Active Directory) על ידי הגדרת פיד של Google Security Operations. אפשר להגדיר את ההעברה בשתי דרכים: Azure Event Hub (מומלץ) או API של צד שלישי.
לפני שמתחילים
חשוב לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מופע של Google SecOps.
- גישה עם הרשאות מיוחדות לפורטל Microsoft Azure.
- תפקיד אדמין אבטחה או אדמין כללי ב-Microsoft Entra ID (נדרש להגדרות אבחון).
- בשיטה של API של צד שלישי, אחת מההרשאות הבאות למתן הסכמת אדמין:
- אדמין כללי: יכול לתת הסכמה לכל הרשאה, לכל API.
- אדמין עם הרשאות מיוחדות לניהול תפקידים: יכול להעניק הסכמה לכל הרשאה, לכל API.
- אדמין של אפליקציות בענן: יכול להעניק הסכמה לכל הרשאה לכל API, חוץ מתפקידי אפליקציה (הרשאות אפליקציה) של Microsoft Graph.
שיטה 1: Azure Event Hub (מומלץ)
בשיטה הזו, יומני הכניסה של Microsoft Entra ID מועברים בסטרימינג דרך Azure Event Hub באמצעות הגדרות אבחון. Google SecOps קולט את היומנים ישירות מ-Event Hub באמצעות סוג הפיד Azure Event Hub.
יצירת מרחב שמות של Event Hub
מרחב שמות של Event Hub הוא מאגר ניהול של Event Hub אחד או יותר.
- ב-Azure portal, מחפשים את Event Hubs.
- לוחצים על + Create.
מזינים את פרטי ההגדרה הבאים:
הגדרה ערך מינוי בוחרים את המינוי ל-Azure קבוצת משאבים בוחרים באפשרות 'קיים' או 'יצירה של קהל חדש' שם מרחב השמות מזינים שם ייחודי (לדוגמה, secops-entraid-signin).Location בחירת האזור שהכי קרוב לדייר Microsoft Entra רמת מחיר רגיל (מומלץ לשימוש בסביבת ייצור) יחידות של נפח נתונים מתחילים עם 1, מפעילים את ההגדלה האוטומטית (מומלץ) לוחצים על בדיקה + יצירה.
בודקים את הסקירה ולוחצים על יצירה.
ממתינים עד שהפריסה תושלם (דקה או שתיים).
יצירת מרכז אירועים
- אחרי פריסת מרחב השמות, עוברים למרחב השמות של Event Hub.
- בחלונית הימנית, בוחרים באפשרות Event Hubs (מרכזי אירועים) בקטע Entities (ישויות).
- לוחצים על + Event Hub (מרכז אירועים).
מזינים את פרטי ההגדרה הבאים:
הגדרה ערך שם מזינים שם ייחודי (לדוגמה, entraid-signin-logs).מספר המחיצות 40 (מומלץ לאופטימיזציה של ההתאמה של Google SecOps) שמירת הודעות 7 ימים (מומלץ לפחות) Capture מושבת (לא נדרש ל-Google SecOps) לוחצים על יצירה.
קבלת מחרוזת חיבור של Event Hub
כדי לבצע אימות ל-Event Hub, צריך מחרוזת חיבור ל-Google SecOps.
אפשרות א': מחרוזת חיבור ברמת מרחב השמות (מומלץ)
- עוברים אל מרחב השמות של Event Hub.
- בתפריט הניווט הימני, בוחרים באפשרות מדיניות גישה משותפת בקטע הגדרות.
- לוחצים על מדיניות ברירת המחדל RootManageSharedAccessKey.
- מעתיקים את מחרוזת החיבור – מפתח ראשי.
- חשוב לשמור את מחרוזת החיבור הזו באופן מאובטח.
דוגמה:
Original: Endpoint=sb://secops-entraid-signin.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==;EntityPath=entraid-signin-logs Remove EntityPath: Endpoint=sb://secops-entraid-signin.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==
אפשרות ב': מחרוזת חיבור ברמת Event Hub
- עוברים אל מרכז האירועים (לא אל מרחב השמות).
- בתפריט הניווט הימני, בוחרים באפשרות מדיניות גישה משותפת בקטע הגדרות.
- לוחצים על + הוספה כדי ליצור מדיניות חדשה.
- מזינים את פרטי ההגדרה הבאים:
- שם המדיניות: מזינים שם תיאורי (לדוגמה,
chronicle-read) - הרשאות: בוחרים באפשרות האזנה בלבד (גישה לקריאה בלבד)
- שם המדיניות: מזינים שם תיאורי (לדוגמה,
- לוחצים על יצירה.
- לוחצים על המדיניות החדשה שיצרתם.
- מעתיקים את מחרוזת החיבור – מפתח ראשי.
חשוב לשמור את מחרוזת החיבור הזו באופן מאובטח.
הגדרת הגדרות אבחון ב-Microsoft Entra ID
- נכנסים אל מרכז הניהול של Microsoft Entra לפחות בתור אדמין אבטחה.
- עוברים אל Entra ID > Monitoring & health > Diagnostic settings (ניטור ובדיקת תקינות > הגדרות אבחון).
- לוחצים על + הוספת הגדרת אבחון.
- מזינים את פרטי ההגדרה הבאים:
- שם הגדרת האבחון: מזינים שם תיאורי (לדוגמה,
signin-logs-to-eventhub). - בקטע יומנים, בוחרים את הקטגוריות של יומני הכניסה שרוצים לייצא:
- SignInLogs: כניסות אינטראקטיביות של משתמשים.
- NonInteractiveUserSignInLogs: כניסות של משתמשים לא אינטראקטיביים (מומלץ).
- ServicePrincipalSignInLogs: כניסות של חשבונות ראשיים של שירותים (אופציונלי).
- ManagedIdentitySignInLogs: כניסות של זהויות מנוהלות (אופציונלי).
- ADFSSignInLogs: יומני כניסה ל-AD FS (אופציונלי, אם נעשה שימוש ב-AD FS).
- RiskyUsers: משתמשים שסומנו כסיכון על ידי Microsoft Entra ID Protection (אופציונלי).
- UserRiskEvents: פרטים על אירועי כניסה מסוכנים (אופציונלי).
- בקטע פרטי יעד, בוחרים באפשרות הזרמה למרכז אירועים.
- מינוי: בוחרים את המינוי שמכיל את מרחב השמות של Event Hub.
- מרחב שמות של Event Hub: בוחרים את מרחב השמות שיצרתם (למשל,
secops-entraid-signin). - שם של מרכז אירועים: בוחרים את מרכז האירועים שיצרתם (לדוגמה,
entraid-signin-logs). - שם המדיניות של מרכז האירועים: בוחרים באפשרות RootManageSharedAccessKey.
- שם הגדרת האבחון: מזינים שם תיאורי (לדוגמה,
לוחצים על Save.
(אופציונלי) הגדרת Azure Blob Storage ליצירת נקודות ביקורת
Google SecOps יכול להשתמש ב-Azure Blob Storage כדי לאחסן נקודות ביקורת של Event Hub, שמאפשרות לעקוב אחרי האירועים שעברו עיבוד. כך נמנעת הטמעה כפולה אם יש הפרעה זמנית לפיד.
יצירת חשבון אחסון לנקודות ביקורת
- ב-Azure portal, מחפשים Storage accounts.
- לוחצים על + Create.
מזינים את פרטי ההגדרה הבאים:
הגדרה ערך מינוי בוחרים את המינוי ל-Azure קבוצת משאבים שימוש באותה קבוצת משאבים כמו Event Hub שם חשבון האחסון מזינים שם ייחודי (לדוגמה, secopsaadsignin).אזור אותו אזור כמו Event Hub ביצועים רגילה יתירות LRS (Locally redundant storage) לוחצים על בדיקה + יצירה.
לוחצים על יצירה.
יצירת קונטיינר Blob
- עוברים לחשבון האחסון שיצרתם.
- בתפריט הניווט הימני, בקטע אחסון נתונים, בוחרים באפשרות מאגרי תגים.
- לוחצים על + מאגר תגים.
- מזינים את פרטי ההגדרה הבאים:
- שם: מזינים
checkpoints - רמת הגישה הציבורית: פרטית (אין גישה אנונימית)
- שם: מזינים
- לוחצים על יצירה.
קבלת פרטי כניסה לחשבון אחסון
- בחשבון האחסון, בוחרים באפשרות מפתחות גישה בקטע אבטחה + רשת.
- לוחצים על הצגת המקשים.
- העתקה ושמירה:
- שם חשבון האחסון: השם של חשבון האחסון.
- מפתח 1: ערך מפתח הגישה.
(אופציונלי) יצירת קבוצת צרכנים ייעודית
כברירת מחדל, Event Hub מספק קבוצת צרכנים בשם $Default. בסביבות ייצור, מומלץ ליצור קבוצת צרכנים ייעודית ל-Google SecOps.
- עוברים אל מרכז האירועים (לא אל מרחב השמות).
- בתפריט הניווט הימני, בוחרים באפשרות קבוצות צרכנים בקטע ישויות.
- לוחצים על + קבוצת צרכנים.
- מזינים את פרטי ההגדרה הבאים:
- שם: מזינים שם תיאורי (לדוגמה,
chronicle)
- שם: מזינים שם תיאורי (לדוגמה,
לוחצים על יצירה.
הגדרת פיד ב-Google SecOps להטמעה של יומני כניסה של Microsoft Entra ID
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Microsoft Entra ID Sign-In Logs - Event Hub). - בוחרים באפשרות Microsoft Azure Event Hub בתור סוג המקור.
- בוחרים באפשרות Microsoft Azure AD בתור סוג היומן.
- לוחצים על הבא.
מציינים ערכים לפרמטרים הבאים של הקלט:
- מחרוזת חיבור של Event Hub: מזינים את מחרוזת החיבור של Event Hub ששמרתם קודם.
אם משתמשים במחרוזת חיבור ברמת מרחב השמות:
- חשוב לוודא שהסרתם את הפרמטר
EntityPath. - בשדה הבא צריך להזין גם את שם מרכז האירועים.
אם משתמשים במחרוזת חיבור ברמת מרכז האירועים:
- משתמשים במחרוזת החיבור כמו שהיא (כולל
EntityPath). אפשר להשאיר את השדה Event hub name (שם מרכז האירועים) ריק.
- שם מרכז האירועים: מזינים את שם מרכז האירועים (לדוגמה,
entraid-signin-logs).
נדרש אם משתמשים במחרוזת חיבור ברמת מרחב השמות. אופציונלי אם משתמשים במחרוזת חיבור ברמת מרכז האירועים.
- שם מרכז האירועים: מזינים את שם מרכז האירועים (לדוגמה,
קבוצת צרכנים (אופציונלי): מזינים את שם קבוצת הצרכנים.
כדי להשתמש בברירת המחדל של קבוצת הצרכנים
$Default, משאירים את השדה ריק.אם יצרתם קבוצת צרכנים ייעודית, מזינים את השם שלה (לדוגמה,
chronicle).שם מאגר Blob Storage (אופציונלי): כדי ליצור נקודת ביקורת, מזינים את שם המאגר (לדוגמה,
checkpoints).
אם מספקים אחסון Blob לנקודות ביקורת:
- שם חשבון אחסון ב-Azure: מזינים את שם חשבון האחסון מתוך הגדרת יצירת נקודות ביקורת.
מפתח של חשבון אחסון ב-Azure: מזינים את מפתח הגישה מהגדרת יצירת נקודות ביקורת.
מרחב השמות של הנכס: מרחב השמות של הנכס.
תוויות להוספה: התווית שתתווסף לאירועים מהפיד הזה.
לוחצים על הבא.
בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
שיטה 2: API של צד שלישי
בשיטה הזו נעשה שימוש ב-Microsoft Graph API כדי לאחזר יומני כניסה של Microsoft Entra ID ישירות מהדייר שלכם ב-Microsoft.
הגדרה של רשימת היתרים של כתובות IP
לפני שיוצרים את הפיד, צריך להוסיף לרשימת ההיתרים את טווחי כתובות ה-IP של Google SecOps בהגדרות הרשת של Microsoft Azure או במדיניות הגישה המותנית.
קבלת טווחי כתובות IP של Google SecOps
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- שימו לב לטווח כתובות ה-IP שמוצג בממשק ליצירת פידים.
- אפשר גם לאחזר טווחים של כתובות IP באופן פרוגרמטי באמצעות Feed Management API.
הגדרת גישה מותנית לזהויות של עומסי עבודה (אם נדרש)
אם הארגון שלכם משתמש במדיניות של גישה מותנית שמגבילה את הגישה לפי מיקום:
- במרכז הניהול של Microsoft Entra, עוברים אל הגנה > גישה מותנית > מיקומים עם שמות.
- לוחצים על + מיקום חדש.
- מזינים את פרטי ההגדרה הבאים:
- שם: מזינים
Google SecOps IP Ranges. - סימון כמיקום מהימן: אופציונלי, בהתאם למדיניות האבטחה שלכם.
- טווחים של כתובות IP: מוסיפים כל טווח של כתובות IP של Google SecOps בסימון CIDR.
- שם: מזינים
- לוחצים על יצירה.
- עוברים אל גישה מותנית > מדיניות.
- לכל כללי המדיניות שחלים על זהויות של עומסי עבודה, צריך להגדיר החרגה למיקום בעל שם
Google SecOps IP Rangesאו למנהל השירות הספציפי.
הגדרת גישה ל-API של Microsoft Entra ID
יצירת רישום אפליקציה
- נכנסים אל מרכז הניהול של Microsoft Entra או אל Azure portal.
- עוברים אל Identity > Applications > App registrations.
- לוחצים על New registration.
מזינים את פרטי ההגדרה הבאים:
- שם: מזינים שם תיאורי (לדוגמה,
Google SecOps Sign-In Logs Integration). - Supported account types (סוגי חשבונות נתמכים): בוחרים באפשרות Accounts in this organizational directory only (Single tenant) (חשבונות רק בספרייה הארגונית הזו (דייר יחיד)).
- מזהה משאבים אחיד (URI) להפניה אוטומטית: משאירים את השדה ריק (לא נדרש לאימות של חשבון שירות).
- שם: מזינים שם תיאורי (לדוגמה,
לוחצים על הרשמה.
אחרי ההרשמה, מעתיקים ושומרים את הערכים הבאים:
- מזהה אפליקציה (לקוח)
- מזהה ספרייה (דייר)
הגדרת הרשאות API
השילוב דורש את הרשאות האפליקציה הבאות של Microsoft Graph:
- ברישום האפליקציה, עוברים אל הרשאות API.
- לוחצים על הוספת הרשאה.
- בוחרים באפשרות Microsoft Graph > הרשאות לאפליקציה.
- בוחרים את ההרשאות הבאות:
- AuditLog.Read.All: נדרשת כדי לקרוא יומני כניסה.
- Directory.Read.All: נדרשת על ידי Microsoft Graph API לגישה ליומן הכניסה (בעיה ידועה).
- SecurityEvents.Read.All: נדרש על ידי Google Security Operations.
- לוחצים על הוספת הרשאות.
- לוחצים על Grant admin consent for [Your Organization] (מתן הסכמת אדמין ל[שם הארגון]).
- מוודאים שבעמודה סטטוס מופיע הערך הוענקה ל[שם הארגון] עבור כל שלוש ההרשאות.
| הרשאה | סוג | תיאור |
|---|---|---|
| AuditLog.Read.All | בקשת הצטרפות | קריאה של כל נתוני הכניסה ויומני הביקורת |
| Directory.Read.All | בקשת הצטרפות | קריאת נתונים בספרייה (נדרש לגישה ל-API) |
| SecurityEvents.Read.All | בקשת הצטרפות | קריאת אירועי אבטחה |
יצירת סוד לקוח
- עוברים אל Certificates & secrets.
- לוחצים על New client secret (סוד לקוח חדש).
מזינים את פרטי ההגדרה הבאים:
- תיאור: מזינים שם תיאורי (לדוגמה,
Google SecOps Feed). - תפוגה: בוחרים תקופת תפוגה.
- תיאור: מזינים שם תיאורי (לדוגמה,
לוחצים על הוספה.
חשוב: צריך להעתיק מיד את הערך של סוד הלקוח. הערך הזה מוצג רק פעם אחת ואי אפשר לאחזר אותו מאוחר יותר.
אימות גישה ל-API לפני יצירת פיד
לפני שיוצרים את הפיד של Google SecOps, צריך לוודא שהחשבון הראשי של השירות יכול לבצע אימות ולגשת ל-Microsoft Graph API.
בדיקת האימות באמצעות PowerShell
# Replace with your actual values $tenantId = "your-tenant-id" $clientId = "your-client-id" $clientSecret = "your-client-secret" # Token request parameters (must be lowercase) $tokenBody = @{ grant_type = "client_credentials" client_id = $clientId client_secret = $clientSecret scope = "https://graph.microsoft.com/.default" } # Request access token $tokenEndpoint = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" $tokenResponse = Invoke-RestMethod -Method Post -Uri $tokenEndpoint -Body $tokenBody -ContentType "application/x-www-form-urlencoded" if ($tokenResponse.access_token) { Write-Host "✓ Successfully obtained access token" -ForegroundColor Green # Test API call to sign-ins endpoint $apiUrl = "https://graph.microsoft.com/v1.0/auditLogs/signIns?`$top=1" $headers = @{ Authorization = "Bearer $($tokenResponse.access_token)" } try { $signInResponse = Invoke-RestMethod -Method Get -Uri $apiUrl -Headers $headers Write-Host "✓ Successfully accessed sign-ins API" -ForegroundColor Green Write-Host "Sample sign-in log retrieved successfully" -ForegroundColor Green } catch { Write-Host "✗ Failed to access sign-ins API" -ForegroundColor Red Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red } } else { Write-Host "✗ Failed to obtain access token" -ForegroundColor Red }הפלט אמור להיראות כך:
✓ Successfully obtained access token ✓ Successfully accessed sign-ins API Sample sign-in log retrieved successfully
בדיקת האימות באמצעות curl
# Replace with your actual values TENANT_ID="your-tenant-id" CLIENT_ID="your-client-id" CLIENT_SECRET="your-client-secret" # Request access token curl -X POST "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials" \ -d "client_id=$CLIENT_ID" \ -d "client_secret=$CLIENT_SECRET" \ -d "scope=https://graph.microsoft.com/.default" # Test API access curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$top=1"
הגדרת פיד ב-Google SecOps להטמעה של יומני כניסה של Microsoft Entra ID
הגדרת הפיד
- עוברים אל SIEM Settings > Feeds (הגדרות SIEM > פידים).
- לוחצים על הוספת פיד חדש.
- בדף הבא, לוחצים על הגדרת פיד יחיד.
- בשדה שם הפיד, מזינים שם לפיד (לדוגמה,
Microsoft Entra ID Sign-In Logs). - בוחרים באפשרות Third party API (API של צד שלישי) בתור Source type (סוג המקור).
- בוחרים באפשרות Microsoft Azure AD בתור סוג היומן.
- לוחצים על הבא.
הגדרת פרמטרים של פיד
מציינים ערכים לפרמטרים הבאים של הקלט:
- מזהה לקוח ב-OAuth: מזהה האפליקציה (הלקוח) מרישום האפליקציה.
- הסוד של לקוח OAuth: הערך של סוד הלקוח שהעתקתם קודם.
- מזהה הדייר: מזהה הדייר שלכם במיקרוסופט מרישום האפליקציה (בפורמט UUID, למשל,
0fc279f9-fe30-41be-97d3-abe1d7681418). נתיב מלא של API: כתובת URL של נקודת קצה ל-API בארכיטקטורת REST של Microsoft Graph:
graph.microsoft.com/v1.0/auditLogs/signInsנקודת קצה לאימות API: נקודת קצה לאימות של Microsoft Active Directory:
login.microsoftonline.comאפשרויות מתקדמות:
- שם הפיד: ערך שמולא מראש ומזהה את הפיד.
- סוג המקור: API של צד שלישי (מנגנון לאיסוף היומנים ב-Google SecOps).
- מרחב השמות של הנכס: מרחב השמות של הנכס שהפיד ישויך אליו.
- תוויות של העברה: התוויות יתווספו לכל האירועים מהפיד הזה.
- לוחצים על הבא.
בודקים את ההגדרות של הפיד החדש במסך סיום ולוחצים על שליחה.
נקודות קצה אזוריות
בפריסות של Microsoft Entra ID בעננים ריבוניים, משתמשים בנקודות הקצה האזוריות המתאימות:
| סביבת הענן | נתיב מלא של API | נקודת קצה לאימות API |
|---|---|---|
| גלובלי | graph.microsoft.com/v1.0/auditLogs/signIns |
login.microsoftonline.com |
| US Government L4 | graph.microsoft.us/v1.0/auditLogs/signIns |
login.microsoftonline.us |
| US Government L5 (DOD) | dod-graph.microsoft.us/v1.0/auditLogs/signIns |
login.microsoftonline.us |
| סין (21Vianet) | microsoftgraph.chinacloudapi.cn/v1.0/auditLogs/signIns |
login.chinacloudapi.cn |
טבלת מיפוי UDM
| שדה היומן | מיפוי UDM | לוגיקה |
|---|---|---|
activityDateTime |
principal.event_timestamp |
מנותח מהשדה activityDateTime. אם השדה לא בפורמט הנדרש yyyy-MM-ddTHH:mm:ss.SSSZ או בפורמט ISO8601, מנתח התוכן ינסה פורמטים אחרים כמו MM/dd/yyyy HH:mm:ss A או MM/d/yyyy HH:mm:ss A. |
activityDisplayName |
security_result.summary |
מיפוי ישיר מ-activityDisplayName. |
additionalDetails.0.value |
network.http.user_agent |
מיפוי ישיר מ-additionalDetails.0.value. |
additionalDetails.1.key |
target.resource.attribute.labels.key |
מיפוי ישיר מ-additionalDetails.1.key. |
additionalDetails.1.value |
target.resource.attribute.labels.value |
מיפוי ישיר מ-additionalDetails.1.value. |
additionalInfo.[].Key |
network.http.user_agent, target.url |
אם Key הוא userAgent, ממפים את Value אל network.http.user_agent ואל network.http.parsed_user_agent. אם Key הוא alertUrl, ממפים את Value ל-target.url. |
additionalInfo.[].Value |
network.http.user_agent, target.url |
אם Key הוא userAgent, ממפים את Value אל network.http.user_agent ואל network.http.parsed_user_agent. אם Key הוא alertUrl, ממפים את Value ל-target.url. |
am_category |
metadata.description |
מיפוי ישיר מ-am_category. |
am_tenantId |
metadata.product_deployment_id |
מיפוי ישיר מ-am_tenantId. |
appId |
target.resource.attribute.labels.value |
ממופה ישירות מ-appId עם מפתח התווית 'מזהה אפליקציה'. |
appDisplayName |
target.application |
מיפוי ישיר מ-appDisplayName. |
appliedConditionalAccessPolicies.[].displayName |
security_result.[].rule_name, about.[].user.user_display_name |
מיפוי ישיר מ-appliedConditionalAccessPolicies.[].displayName. |
appliedConditionalAccessPolicies.[].enforcedGrantControls |
security_result.[].rule_labels.value |
מיפוי ישיר מ-appliedConditionalAccessPolicies.[].enforcedGrantControls עם מפתח התווית applied_conditional_access_policies_enforced_grant_controls. |
appliedConditionalAccessPolicies.[].enforcedSessionControls |
security_result.[].rule_labels.value |
ממופה ישירות מ-appliedConditionalAccessPolicies.[].enforcedSessionControls עם מפתח התווית applied_conditional_access_policies_enforced_session_controls. |
appliedConditionalAccessPolicies.[].id |
security_result.[].rule_id, about.[].user.userid |
מיפוי ישיר מ-appliedConditionalAccessPolicies.[].id. |
appliedConditionalAccessPolicies.[].result |
security_result.[].detection_fields.value, about.[].labels.value |
מופה ישירות מ-appliedConditionalAccessPolicies.[].result עם מפתח התווית 'תוצאה'. |
authenticationDetails.[].authenticationMethod |
security_result.[].detection_fields.value |
מופה ישירות מ-authenticationDetails.[].authenticationMethod עם מפתח התווית authenticationMethod. |
authenticationDetails.[].authenticationMethodDetail |
security_result.[].detection_fields.value |
מופה ישירות מ-authenticationDetails.[].authenticationMethodDetail עם מפתח התווית authenticationMethodDetail. |
authenticationDetails.[].authenticationStepDateTime |
security_result.[].detection_fields.value |
מופה ישירות מ-authenticationDetails.[].authenticationStepDateTime עם מפתח התווית authenticationStepDateTime. |
authenticationDetails.[].authenticationStepRequirement |
security_result.[].detection_fields.value |
מופה ישירות מ-authenticationDetails.[].authenticationStepRequirement עם מפתח התווית authenticationStepRequirement. |
authenticationDetails.[].authenticationStepResultDetail |
security_result.[].detection_fields.value |
מופה ישירות מ-authenticationDetails.[].authenticationStepResultDetail עם מפתח התווית authenticationStepResultDetail. |
authenticationDetails.[].succeeded |
security_result.action |
אם הערך הוא true, הפונקציה מחזירה את ALLOW, אחרת היא מחזירה את BLOCK. |
authenticationRequirement |
additional.fields.value.string_value |
מופה ישירות מ-authenticationRequirement עם מפתח התווית AuthenticationRequirement. |
authenticationRequirementPolicies.[].detail |
security_result.detection_fields.value |
מופה ישירות מ-authenticationRequirementPolicies.[].detail עם מפתח התווית 'detail'. |
authenticationRequirementPolicies.[].requirementProvider |
security_result.detection_fields.value |
מופה ישירות מ-authenticationRequirementPolicies.[].requirementProvider עם מפתח התווית requirementProvider. |
callerIpAddress |
principal.ip, principal.asset.ip |
מיפוי ישיר מ-callerIpAddress. |
category |
metadata.description |
מיפוי ישיר מ-category. |
clientAppUsed |
principal.application |
מיפוי ישיר מ-clientAppUsed. |
conditionalAccessStatus |
additional.fields.value.string_value |
מופה ישירות מ-conditionalAccessStatus עם מפתח התווית conditionalAccessStatus. |
correlationId |
network.session_id, security_result.detection_fields.value |
מיפוי ישיר מ-correlationId. משמש גם כ-security_result.detection_fields.value עם מפתח התווית CorrelationId. |
createdDateTime |
when |
השדה when נגזר מהשדה createdDateTime. התאריך והשעה מחולצים מהשדה createdDateTime באמצעות grok ואז משולבים ליצירת השדה when. |
deviceDetail.browser |
network.http.user_agent |
מיפוי ישיר מ-deviceDetail.browser. |
deviceDetail.deviceId |
principal.asset.asset_id, principal.asset_id |
מופה ישירות מ-deviceDetail.deviceId ומופיע עם הקידומת 'מזהה מכשיר:'. |
deviceDetail.displayName |
principal.asset.hostname |
מיפוי ישיר מ-deviceDetail.displayName. |
deviceDetail.isCompliant |
principal.asset.attribute.labels.value |
מופה ישירות מ-deviceDetail.isCompliant עם מפתח התווית isCompliant. |
deviceDetail.isManaged |
principal.asset.attribute.labels.value |
מופה ישירות מ-deviceDetail.isManaged עם מפתח התווית isManaged. |
deviceDetail.operatingSystem |
principal.platform_version |
מיפוי ישיר מ-deviceDetail.operatingSystem. |
deviceDetail.trustType |
principal.asset.attribute.labels.value |
מופה ישירות מ-deviceDetail.trustType עם מפתח התווית trustType. |
durationMs |
additional.fields.value.string_value |
מופה ישירות מ-durationMs עם מפתח התווית 'durationMs'. |
event.id |
- | לא ממופה בהתאם להוראות (נקודה 3). |
id |
metadata.product_log_id |
מיפוי ישיר מ-id. |
identity |
target.user.user_display_name |
ממופה ישירות מ-identity אם הוא שונה מ-userId והוא לא כתובת אימייל. |
initiatedBy.user.displayName |
principal.user.user_display_name |
מיפוי ישיר מ-initiatedBy.user.displayName. |
initiatedBy.user.id |
principal.user.userid, principal.user.windows_sid |
מיפוי ישיר מ-initiatedBy.user.id. |
initiatedBy.user.ipAddress |
principal.ip, principal.asset.ip |
מיפוי ישיר מ-initiatedBy.user.ipAddress. |
initiatedBy.user.userPrincipalName |
principal.user.email_addresses, principal.user.userid |
מיפוי ישיר מ-initiatedBy.user.userPrincipalName. אם זה כתובת אימייל, היא ממופה ל-email_addresses, אחרת היא ממופה ל-userid. |
Level |
security_result.severity_details, level |
מיפוי ישיר מ-Level. |
level |
security_result.severity_details, security_result.severity |
מיפוי ישיר מ-level. מופה גם ל-security_result.severity אחרי המרה לאותיות רישיות. טיפול מיוחד בערכים 'מידע', 'למידע בלבד', '0', '4', 'אזהרה', '1', '3', 'שגיאה', '2' ו'קריטי'. |
location.city |
principal.location.city |
מיפוי ישיר מ-location.city. |
location.countryOrRegion |
principal.location.country_or_region |
מיפוי ישיר מ-location.countryOrRegion. |
location.geoCoordinates.altitude |
additional.fields.value.string_value |
מיפוי ישיר מ-location.geoCoordinates.altitude עם מפתח התווית 'location_geoCoordinates_altitude'. |
location.geoCoordinates.latitude |
principal.location.region_latitude, principal.location.region_coordinates.latitude |
מיפוי ישיר מ-location.geoCoordinates.latitude. |
location.geoCoordinates.longitude |
principal.location.region_longitude, principal.location.region_coordinates.longitude |
מיפוי ישיר מ-location.geoCoordinates.longitude. |
location.state |
principal.location.state |
מיפוי ישיר מ-location.state. |
location |
principal.location.name |
מיפוי ישיר מ-location. |
log_type |
metadata.log_type |
מיפוי ישיר מ-log_type. |
networkLocationDetails.[].networkNames |
additional.fields.value.string_value |
ערכים משורשרים מ-networkLocationDetails.[].networkNames עם מפתח התווית networkName {index}. |
networkLocationDetails.[].networkType |
security_result.detection_fields.value, additional.fields.value.string_value |
מופה ישירות מ-networkLocationDetails.[].networkType עם מפתח התווית 'networkType'. משמש גם כ-additional.fields.value.string_value עם מפתח התווית 'networkType {index}'. |
operationName |
event_type |
אם operationName הוא 'פעילות כניסה', אז USER_LOGIN. אם operationName הוא 'הוספת חבר לקבוצה', אז USER_CHANGE_PERMISSIONS. |
operationType |
security_result.action_details |
מיפוי ישיר מ-operationType. |
properties.activity |
security_result.summary |
מיפוי ישיר מ-properties.activity. |
properties.activityDateTime |
when |
מנותח מהשדה properties.activityDateTime. אם השדה לא בפורמט הצפוי yyyy-MM-ddTHH:mm:ss.SSSZ או בפורמט ISO8601, מנתח התוכן ינסה פורמטים אחרים כמו MM/dd/yyyy HH:mm:ss A או MM/d/yyyy HH:mm:ss A. |
properties.activityDisplayName |
security_result.summary |
מיפוי ישיר מ-properties.activityDisplayName. |
properties.additionalInfo |
network.http.user_agent, target.url |
הערך מנותח כ-JSON, ואם המפתח הוא userAgent, הערך ממופה ל-network.http.user_agent ול-network.http.parsed_user_agent. אם המפתח הוא alertUrl, ממפים את הערך ל-target.url. |
properties.appliedConditionalAccessPolicies.[].displayName |
security_result.[].rule_name |
מיפוי ישיר מ-properties.appliedConditionalAccessPolicies.[].displayName. |
properties.appliedConditionalAccessPolicies.[].enforcedGrantControls |
security_result.[].rule_labels.value |
מיפוי ישיר מ-properties.appliedConditionalAccessPolicies.[].enforcedGrantControls עם מפתח התווית applied_conditional_access_policies_enforced_grant_controls. |
properties.appliedConditionalAccessPolicies.[].enforcedSessionControls |
security_result.[].rule_labels.value |
ממופה ישירות מ-properties.appliedConditionalAccessPolicies.[].enforcedSessionControls עם מפתח התווית applied_conditional_access_policies_enforced_session_controls. |
properties.appliedConditionalAccessPolicies.[].id |
security_result.[].rule_id |
מיפוי ישיר מ-properties.appliedConditionalAccessPolicies.[].id. |
properties.appliedConditionalAccessPolicies.[].result |
security_result.[].detection_fields.value |
מופה ישירות מ-properties.appliedConditionalAccessPolicies.[].result עם מפתח התווית 'תוצאה'. |
properties.appId |
appId |
מיפוי ישיר מ-properties.appId. |
properties.appDisplayName |
target.application |
מיפוי ישיר מ-properties.appDisplayName. |
properties.authenticationDetails.[].authenticationMethod |
security_result.detection_fields.value |
מופה ישירות מ-properties.authenticationDetails.[].authenticationMethod עם מפתח התווית authenticationMethod. |
properties.authenticationDetails.[].authenticationMethodDetail |
security_result.detection_fields.value |
מופה ישירות מ-properties.authenticationDetails.[].authenticationMethodDetail עם מפתח התווית authenticationMethodDetail. |
properties.authenticationDetails.[].authenticationStepDateTime |
security_result.detection_fields.value |
מופה ישירות מ-properties.authenticationDetails.[].authenticationStepDateTime עם מפתח התווית authenticationStepDateTime. |
properties.authenticationDetails.[].authenticationStepRequirement |
security_result.detection_fields.value |
מופה ישירות מ-properties.authenticationDetails.[].authenticationStepRequirement עם מפתח התווית authenticationStepRequirement. |
properties.authenticationDetails.[].authenticationStepResultDetail |
security_result.detection_fields.value |
מופה ישירות מ-properties.authenticationDetails.[].authenticationStepResultDetail עם מפתח התווית authenticationStepResultDetail. |
properties.authenticationRequirement |
additional.fields.value.string_value |
מופה ישירות מ-properties.authenticationRequirement עם מפתח התווית AuthenticationRequirement. |
properties.authenticationRequirementPolicies.[].detail |
security_result.detection_fields.value |
מופה ישירות מ-properties.authenticationRequirementPolicies.[].detail עם מפתח התווית 'detail'. |
properties.authenticationRequirementPolicies.[].requirementProvider |
security_result.detection_fields.value |
מופה ישירות מ-properties.authenticationRequirementPolicies.[].requirementProvider עם מפתח התווית requirementProvider. |
properties.clientAppUsed |
principal.application |
מיפוי ישיר מ-properties.clientAppUsed. |
properties.conditionalAccessStatus |
additional.fields.value.string_value |
מופה ישירות מ-properties.conditionalAccessStatus עם מפתח התווית conditionalAccessStatus. |
properties.crossTenantAccessType |
additional.fields.value.string_value |
מופה ישירות מ-properties.crossTenantAccessType עם מפתח התווית crossTenantAccessType. |
properties.detectedDateTime |
additional.fields.value.string_value |
מופה ישירות מ-properties.detectedDateTime עם מפתח התווית 'detectedDateTime'. |
properties.detectionTimingType |
additional.fields.value.string_value |
מופה ישירות מ-properties.detectionTimingType עם מפתח התווית detectionTimingType. |
properties.homeTenantId |
additional.fields.value.string_value |
מופה ישירות מ-properties.homeTenantId עם מפתח התווית 'homeTenantId'. |
properties.id |
metadata.product_log_id |
מיפוי ישיר מ-properties.id. |
properties.initiatedBy.user.displayName |
principal.user.user_display_name |
מיפוי ישיר מ-properties.initiatedBy.user.displayName. |
properties.initiatedBy.user.id |
principal.user.windows_sid |
מיפוי ישיר מ-properties.initiatedBy.user.id. |
properties.initiatedBy.user.ipAddress |
principal.ip, principal.asset.ip |
מיפוי ישיר מ-properties.initiatedBy.user.ipAddress. |
properties.initiatedBy.user.userPrincipalName |
principal.user.email_addresses, principal.user.userid |
מיפוי ישיר מ-properties.initiatedBy.user.userPrincipalName. אם זה כתובת אימייל, היא ממופה ל-email_addresses, אחרת היא ממופה ל-userid. |
properties.ipAddress |
principal.ip, principal.asset.ip |
מיפוי ישיר מ-properties.ipAddress. |
properties.isGuest |
additional.fields.value.string_value |
מופה ישירות מ-properties.isGuest עם מפתח התווית isGuest. |
properties.isDeleted |
additional.fields.value.string_value |
מופה ישירות מ-properties.isDeleted עם מפתח התווית 'isDeleted'. |
properties.isProcessing |
additional.fields.value.string_value |
מיפוי ישיר מ-properties.isProcessing עם מפתח התווית isProcessing. |
properties.lastUpdatedDateTime |
additional.fields.value.string_value |
מופה ישירות מ-properties.lastUpdatedDateTime עם מפתח התווית 'lastUpdatedDateTime'. |
properties.location.city |
principal.location.city |
מיפוי ישיר מ-properties.location.city. |
properties.location.countryOrRegion |
principal.location.country_or_region |
מיפוי ישיר מ-properties.location.countryOrRegion. |
properties.location.geoCoordinates.latitude |
principal.location.region_latitude, principal.location.region_coordinates.latitude |
מיפוי ישיר מ-properties.location.geoCoordinates.latitude. |
properties.location.geoCoordinates.longitude |
principal.location.region_longitude, principal.location.region_coordinates.longitude |
מיפוי ישיר מ-properties.location.geoCoordinates.longitude. |
properties.location.state |
principal.location.state |
מיפוי ישיר מ-properties.location.state. |
properties.networkLocationDetails.[].networkNames |
additional.fields.value.string_value |
ערכים משורשרים מ-properties.networkLocationDetails.[].networkNames עם מפתח התווית 'properties networkName {index}'. |
properties.networkLocationDetails.[].networkType |
additional.fields.value.string_value |
מופה ישירות מ-properties.networkLocationDetails.[].networkType עם מפתח התווית 'properties networkType {index}'. |
properties.riskEventType |
additional.fields.value.string_value |
מופה ישירות מ-properties.riskEventType עם מפתח התווית 'riskEventType'. |
properties.riskLastUpdatedDateTime |
additional.fields.value.string_value |
מופה ישירות מ-properties.riskLastUpdatedDateTime עם מפתח התווית riskLastUpdatedDateTime. |
properties.riskLevel |
additional.fields.value.string_value |
מופה ישירות מ-properties.riskLevel עם מפתח התווית 'riskLevel'. |
properties.riskLevelDuringSignIn |
additional.fields.value.string_value |
מופה ישירות מ-properties.riskLevelDuringSignIn עם מפתח התווית riskLevelDuringSignIn. |
properties.riskState |
additional.fields.value.string_value |
מיפוי ישיר מ-properties.riskState עם מפתח התווית riskState. |
properties.riskDetail |
additional.fields.value.string_value |
מופה ישירות מ-properties.riskDetail עם מפתח התווית riskDetail. |
properties.riskType |
additional.fields.value.string_value |
מופה ישירות מ-properties.riskType עם מפתח התווית riskType. |
properties.source |
additional.fields.value.string_value |
מופה ישירות מ-properties.source עם מפתח התווית 'מקור'. |
properties.targetResources.0.id |
target.user.product_object_id |
מיפוי ישיר מ-properties.targetResources.0.id. |
properties.targetResources.modifiedProperties.0.newValue |
target.group.product_object_id |
מיפוי ישיר מ-properties.targetResources.modifiedProperties.0.newValue. |
properties.tokenIssuerType |
additional.fields.value.string_value |
מופה ישירות מ-properties.tokenIssuerType עם מפתח התווית tokenIssuerType. |
properties.userAgent |
network.http.user_agent, network.http.parsed_user_agent |
מיפוי ישיר מ-properties.userAgent. |
properties.userDisplayName |
target.user.user_display_name |
מיפוי ישיר מ-properties.userDisplayName. |
properties.userId |
target.user.product_object_id |
מיפוי ישיר מ-properties.userId. |
properties.userPrincipalName |
target.user.userid, target.user.email_addresses |
מיפוי ישיר מ-properties.userPrincipalName. אם זה כתובת אימייל, היא ממופה ל-email_addresses, אחרת היא ממופה ל-userid. |
result |
security_result.action, security_result.action_details |
אם result הוא 'success', אז ALLOW. |
resultDescription |
security_result.description |
מיפוי ישיר מ-resultDescription. |
resultSignature |
additional.fields.value.string_value |
מופה ישירות מ-resultSignature עם מפתח התווית resultSignature. |
resultType |
security_result.rule_id, action, security_result.summary |
אם resultType הוא '0', אז ALLOW ו-'Successful login occurred'. אחרת, BLOCK ו-"Failed login occurred". |
resourceId |
target.resource.id, target.resource.product_object_id |
מיפוי ישיר מ-resourceId. |
resourceDisplayName |
target.resource.name, appDisplayName |
מיפוי ישיר מ-resourceDisplayName. |
riskDetail |
additional.fields.value.string_value |
מופה ישירות מ-riskDetail עם מפתח התווית riskDetail. |
riskEventTypes.[]. |
additional.fields.value.string_value, additional.fields.value.list_value.values.string_value |
הערכים מתווספים לרשימה עם המפתח riskEventTypes ב-additional.fields. בנוסף, כל ערך מתווסף כשדה נפרד עם המפתח riskEventType ב-additional.fields. |
riskEventTypes_v2.[]. |
additional.fields.value.list_value.values.string_value |
הערכים נוספים לרשימה עם המפתח riskEventTypes_v2 ב-additional.fields. |
riskLevelAggregated |
additional.fields.value.string_value |
מופה ישירות מ-riskLevelAggregated עם מפתח התווית riskLevelAggregated. |
riskLevelDuringSignIn |
additional.fields.value.string_value |
מופה ישירות מ-riskLevelDuringSignIn עם מפתח התווית riskLevelDuringSignIn. |
riskState |
additional.fields.value.string_value |
מיפוי ישיר מ-riskState עם מפתח התווית riskState. |
status.additionalDetails |
security_result.description |
מיפוי ישיר מ-status.additionalDetails. |
status.errorCode |
security_result.rule_id, errorCode |
מיפוי ישיר מ-status.errorCode. |
target.displayName |
resourceDisplayName |
מיפוי ישיר מ-target.displayName. |
target.id |
resourceId |
מיפוי ישיר מ-target.id. |
target.modifiedProperties.[].displayName |
target.resource.attribute.labels.key |
מיפוי ישיר מ-target.modifiedProperties.[].displayName. |
target.modifiedProperties.[].newValue |
target.resource.attribute.labels.value, target.resource.product_object_id |
מיפוי ישיר מ-target.modifiedProperties.[].newValue. |
target.modifiedProperties.[].oldValue |
target.resource.attribute.labels.value |
מיפוי ישיר מ-target.modifiedProperties.[].oldValue. |
target.type |
target.resource.type |
מיפוי ישיר מ-target.type. |
tenantId |
metadata.product_deployment_id |
מיפוי ישיר מ-tenantId. |
time |
when |
השדה when נגזר מהשדה time. התאריך והשעה מחולצים מהשדה time באמצעות grok ואז משולבים ליצירת השדה when. |
userAgent |
network.http.user_agent, network.http.parsed_user_agent |
מיפוי ישיר מ-userAgent. |
userDisplayName |
target.user.user_display_name |
מיפוי ישיר מ-userDisplayName. |
userId |
target.user.product_object_id |
מיפוי ישיר מ-userId. |
userPrincipalName |
target.user.userid, principal.administrative_domain, target.user.email_addresses |
מיפוי ישיר מ-userPrincipalName. אם מדובר בכתובת אימייל, היא ממופה ל-email_addresses, וחלק הדומיין שלה מחולץ וממופה ל-principal.administrative_domain. אחרת, הוא ממופה ל-userid. |
| (Parser Logic) | event.idm.is_alert, event.idm.is_significant |
הערך הוא True אם הרמה היא Critical. |
| (Parser Logic) | event.idm.read_only_udm.metadata.event_type |
הערך שמוגדר הוא USER_LOGIN אם has_target_user הוא true. הערך שמוגדר הוא USER_UNCATEGORIZED אם has_principal_user הוא true. הערך הוא STATUS_UPDATE אם has_principal הוא true. אחרת, מגדירים את הערך כ-GENERIC_EVENT. |
| (Parser Logic) | event.idm.read_only_udm.metadata.vendor_name |
מגדירים את האפשרות 'Microsoft'. |
| (Parser Logic) | event.idm.read_only_udm.metadata.product_name |
מגדירים את האפשרות Azure AD. |
| (Parser Logic) | event.idm.read_only_udm.extensions.auth.type |
מגדירים את האפשרות 'כניסה יחידה (SSO)'. |
| (Parser Logic) | event.idm.read_only_udm.extensions.auth.mechanism |
הערך שמוגדר הוא INTERACTIVE אם isInteractive הוא true. אחרת, מגדירים את הערך ל-MECHANISM_OTHER. |
| (Parser Logic) | security_result.action |
הערך מוגדר כ-ALLOW אם התוצאה היא הצלחה. |
| (Parser Logic) | security_result.action |
מגדירים את הערך ALLOW אם resultType הוא 0. |
| (Parser Logic) | security_result.action |
הערך הוא BLOCK אם resultType לא שווה ל-0 ולא שווה ל-"". |
| (Parser Logic) | security_result.category |
הערך שמוגדר הוא AUTH_VIOLATION אם resultType הוא לא 0 ולא "". |
| (Parser Logic) | security_result.description |
הערך הוא Group membership modified (חברות בקבוצה שונתה) אם operationName הוא Add member to group (הוספת חבר לקבוצה) והתוצאה היא success (הצלחה). |
| (Parser Logic) | security_result.priority |
הערך שמוגדר הוא MEDIUM_PRIORITY אם properties.riskLevelDuringSignIn הוא medium. |
| (Parser Logic) | security_result.summary |
אם resultType הוא 0, הערך שמוגדר הוא 'התחברות מוצלחת'. |
| (Parser Logic) | security_result.summary |
הערך צריך להיות 'Failed login occurred' (התרחשה כניסה שנכשלה) אם resultType הוא לא 0 ולא ''. |
| (Parser Logic) | security_result.summary |
מוגדר ל-properties.activityDisplayName אם הוא קיים. |
| (Parser Logic) | security_result.severity |
מגדירים את הערך INFORMATIONAL אם הרמה היא Information (מידע), Informational (מידע), 0 או 4. הערך הוא MEDIUM אם הרמה היא Warning, 1 או 3. הערך שמוגדר הוא ERROR אם הרמה היא Error או 2. הערך הוא CRITICAL אם הרמה היא Critical. |
| (Parser Logic) | security_result.severity |
הערך הוא ERROR אם resultType לא שווה ל-0 ולא שווה ל-"". |
שנה רישום
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.