איסוף יומני ביקורת של Azure DevOps
גרסת כלי הניתוח: 3.0
מנתח הנתונים הזה מטפל ביומני ביקורת של Azure DevOps בפורמט JSON. הוא מחלץ שדות ממבני JSON ברמה העליונה וממבנים בתצוגת עץ, וממפה אותם ל-UDM. לוגיקה מותנית שמבוססת על ערכים ספציפיים של שדות מסווגת אירועים ומעשירה את הפלט במידע רלוונטי בנושא אבטחה. הכלי לניתוח מבצע גם ניתוח של הודעות שלא בפורמט JSON, ומנסה לחלץ מטען ייעודי (payload) בפורמט JSON באמצעות דפוסי grok.
לפני שמתחילים
ודאו שהדרישות המוקדמות הבאות מתקיימות:
- מופע של Google SecOps
- ארגון פעיל ב-Azure DevOps
- גישת אדמין לארגון Azure Devops ול-Azure
הגדרת פידים
יש שתי נקודות כניסה שונות להגדרת פידים בפלטפורמת Google SecOps:
- הגדרות SIEM > פידים > הוספת פיד חדש
- מרכז התוכן > חבילות תוכן > מתחילים
איך מגדירים את פיד הביקורת של Azure DevOps
- לוחצים על חבילת Azure Platform.
- מאתרים את סוג היומן Azure DevOps audit ולוחצים על Add new feed (הוספת פיד חדש).
מציינים ערכים בשדות הבאים:
- Source Type: Microsoft Azure Blob Storage V2.
- Azure URI: כתובת ה-URL של נקודת הקצה של ה-blob.
ENDPOINT_URL/BLOB_NAME- מחליפים את הערכים בשדות הבאים:
-
ENDPOINT_URL: כתובת ה-URL של נקודת הקצה של ה-blob (https://<storageaccountname>.blob.core.windows.net) -
BLOB_NAME: השם של ה-blob (למשל,insights-logs-<logname>)
-
- מחליפים את הערכים בשדות הבאים:
אפשרויות למחיקת מקורות: בוחרים את אפשרות המחיקה בהתאם להעדפות ההטמעה.
הגיל המקסימלי של הקובץ: כולל קבצים שעברו שינוי במספר הימים האחרון. ברירת המחדל היא 180 ימים.
מפתח משותף: המפתח המשותף (מחרוזת אקראית של 512 ביט בקידוד base-64) שמשמש לגישה למשאבי Azure.
אפשרויות מתקדמות
- שם הפיד: ערך שמזהה את הפיד וממולא מראש.
- מרחב השמות של הנכס: מרחב השמות של הנכס.
- תוויות להוספה: התווית שמוחלת על האירועים מהפיד הזה.
לוחצים על יצירת פיד.
למידע נוסף על הגדרת כמה פידים לסוגים שונים של יומנים בתוך משפחת המוצרים הזו, אפשר לעיין במאמר בנושא הגדרת פידים לפי מוצר.
יצירת מפתח API לפיד ה-webhook
נכנסים אל מסוףGoogle Cloud > Credentials.
לוחצים על Create credentials ואז על מפתח API.
מגבילים את הגישה של מפתח ה-API ל-Google Security Operations API.
מציינים את כתובת ה-URL של נקודת הקצה
- באפליקציית הלקוח, מציינים את כתובת ה-URL של נקודת הקצה של HTTPS שמופיעה בפיד ה-webhook.
כדי להפעיל אימות, מציינים את מפתח ה-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: המפתח הסודי שיצרתם כדי לאמת את הפיד.
הגדרת תכונת הביקורת ב-Azure DevOps
- נכנסים לחשבון של הארגון (
https://dev.azure.com/{yourorganization}). - לוחצים על סמל גלגל השיניים של הגדרות הארגון.
- בקטע אבטחה, בוחרים באפשרות מדיניות.
- מעבירים את הלחצן רישום אירועי ביקורת למצב מופעל.
הגדרת נושא ב-Event Grid ב-Azure
- נכנסים ל-Azure Portal.
- מחפשים את Event Grid וניגשים אליו.
- מאתרים את נושאים בקטע אירועים מותאמים אישית.
- לוחצים על + Create.
- בוחרים את המינוי ואת קבוצת המשאבים. מזינים שם (לדוגמה,
DevopsAuditLog) ובוחרים את האזור. לוחצים על בדיקה ויצירה. - ניגשים אל הנושא החדש ומעתיקים את כתובת ה-URL של נקודת הקצה של הנושא.
- עוברים אל הגדרות > מקשי גישה ומעתיקים את מפתח 1.
הגדרת סטרימינג של יומנים מ-Azure DevOps אל Event Grid
- נכנסים לחשבון הארגון (
https://dev.azure.com/{yourorganization}). - לוחצים על סמל גלגל השיניים של הגדרות הארגון.
- בוחרים באפשרות ביקורת.
- עוברים לכרטיסייה מקורות נתונים ובוחרים באפשרות מקור נתונים חדש > Event Grid.
- מזינים את נקודת הקצה של הנושא ואת מפתח הגישה שנוצרו בקטע הגדרת נושא של Event Grid ב-Azure.
הגדרת Webhook ב-Azure DevOps ל-Google SecOps
- ב-Azure Portal, מחפשים את Event Grid וניגשים אליו.
- בוחרים את הנושא שיצרתם קודם.
- עוברים אל Entities > Event Subscription.
- לוחצים על + מינוי לאירוע.
- נותנים שם תיאורי (לדוגמה, *
Google SecOps Integration). - בוחרים באפשרות Web Hook ולוחצים על Configure an endpoint (הגדרת נקודת קצה).
- מגדירים את נקודת הקצה:
- נקודת קצה של המנוי: מזינים את כתובת ה-URL של נקודת הקצה של Google SecOps API.
- בקטע HTTP headers, מוסיפים את הכותרות הבאות:
- כותרת 1:
- מקרא:
X-goog-api-key - ערך: מפתח ה-API שיצרתם בקטע יצירת מפתח API לשימוש בפיד webhook.
- מקרא:
- כותרת 2:
- מפתח:
X-Webhook-Access-Key - Value: המפתח הסודי שיצרתם בקטע הגדרת פיד ב-Google SecOps להטמעת היומנים של Azure DevOps.
- מפתח:
- כותרת 1:
- מגדירים את הכותרת Content-Type ל-
application/json.
- לוחצים על יצירה.
יומני ביקורת לדוגמה של Azure DevOps שנתמכים
פורמט JSON רגיל של יומני ביקורת
{ "ActivityId": "aeec0738-ebbf-4e62-9a44-83dd7b704e75", "ActorCUID": "e0729319-5632-78c1-9625-b53fe559bcd7", "ActorDisplayName": "User Name", "ActorUPN": "user@example.com", "ActorUserId": "e0729319-5632-68c1-9625-b53fe559bcd7", "Area": "Group", "AuthenticationMechanism": "SessionToken_Unscoped authorizationId: f5729c3d-951b-4a52-88d9-a", "Category": "Modify", "CategoryDisplayName": "Modify", "CorrelationId": "a26a652e-1596-4c83-bb0f-946ff3ccc91c", "Data": { "CallerProcedure": "prc_UpdateGroupMembership", "EventAuthor": "b33f1e32-f5e3-4210-9fde-6e61f7a761b3", "Idempotent": "True", "Incremental": "True", "InsertInactiveUpdates": "False", "ScopeId": "1b713128-b6f0-4fd7-91af-94ed1f69c464", "Updates": [ { "GroupId": "BE656E6C-7C01-47DB-BC03-CD7E82610AFE", "MemberId": "9D4E1A54-8B4C-42E2-BECC-94BEDC6E2F4B", "Active": true } ], "GroupId": "be656e6c-7c01-47db-bc03-cd7e82610afe", "GroupName": "[Project_Alpha]\\Project Administrators", "MemberId": "9d4e1a54-8b4c-42e2-becc-94bedc6e2f4b", "MemberDisplayName": "Member Name" }, "Details": "Member Name was added as a member of group [Project_Alpha]\\Project Administrators", "Id": "0b11aadb-0bcc-47ef-9038-b091140dcbe5", "IpAddress": "192.168.1.10", "OperationName": "Group.UpdateGroupMembership.Add", "ProjectId": "00000000-0000-0000-0000-000000000000", "ScopeDisplayName": "Organization_X", "ScopeId": "1b713128-b6f0-4fd7-91af-94ed1f69c464", "ScopeType": "Enterprise", "SourceSystem": "Azure", "TenantId": "5ca654a4-807f-4676-9c9f-0b7335cea18e", "TimeGenerated": "2022-06-20T00:43:35.7370000Z", "Type": "AzureDevOpsAuditing", "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36", "_Internal_WorkspaceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/rg-event-grid/providers/microsoft.operationalinsights/workspaces/logging-workspace" }Event Grid Wrapped JSON
{ "id": "9362f75d-b450-47e0-a54b-4fd51d08798e", "subject": "AzureDevOps/Auditing", "data": { "Id": "9362f75d-b450-47e0-a54b-4fd51d08798e", "CorrelationId": "848f8abd-9f91-479e-857b-454efa0bf393", "ActivityId": "0b7078f1-87bb-441d-8dcc-780c6d0a0511", "ActorCUID": "00000000-0000-0000-0000-000000000000", "ActorUserId": "0000000d-0000-8888-8000-000000000000", "ActorClientId": "00000000-0000-0000-0000-000000000000", "ActorUPN": "Azure DevOps Service", "Timestamp": "2023-08-03T23:34:31.037Z", "ScopeType": 4, "ScopeDisplayName": "Organization_X", "ScopeId": "1bf2d4d0-3f60-4f08-b217-ce48cebc6816", "ProjectId": "b87f0d76-bb83-4274-a865-5ebdc6fe0500", "ProjectName": "IT_Project", "UserAgent": "TFS JobAgent(TfsJobAgent.exe, 19.224.33927.8)", "ActionId": "Release.DeploymentCompleted", "Data": { "CallerProcedure": "Release.prc_OnDeploymentCompleted", "DeploymentResult": "Succeeded", "PipelineId": "18", "PipelineName": "digital-client-app-dvlp", "ReleaseName": "23.07.38", "RequesterId": "0000000D-0000-8888-8000-000000000000", "StageName": "Build browser" }, "Details": "Deployment of release \"23.07.38\" on pipeline \"digital-client-app-dvlp\" to \"Build browser\" in Project IT_Project was Succeeded", "Area": "Release", "Category": 5, "CategoryDisplayName": "Execute", "ActorDisplayName": "Azure DevOps Service" }, "eventType": "AzureDevOpsAuditEvent", "dataVersion": "1.0", "metadataVersion": "1", "eventTime": "2023-08-03T23:34:31.037Z", "topic": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-prod/providers/Microsoft.EventGrid/topics/audit-topic" }מערך JSON של Event Grid
[ { "id": "14b02dab-67eb-4d9d-acd2-4487aac05b14", "subject": "AzureDevOps/Auditing", "data": { "Id": "14b02dab-67eb-4d9d-acd2-4487aac05b14", "CorrelationId": "e0475568-bd77-484b-b065-5170561f0bf5", "ActivityId": "a2a70439-18dd-4bbb-be20-2844600feaca", "ActorCUID": "712594c0-94c1-779b-af6c-80752141078d", "ActorUserId": "712594c0-94c1-679b-af6c-80752141078d", "ActorClientId": "00000000-0000-0000-0000-000000000000", "ActorUPN": "user@example.com", "AuthenticationMechanism": "Basic_AAD", "Timestamp": "2023-12-20T18:33:21.9375261Z", "ScopeType": 4, "ScopeDisplayName": "Organization_X", "ScopeId": "021edafa-0760-4e1d-ba33-00b910e811e9", "ProjectId": "00000000-0000-0000-0000-000000000000", "IpAddress": "10.0.0.50", "UserAgent": "python/3.11.5 (Windows-10-10.0.19045-SP0) msrest/0.7.1 azure-devops/5.1.0b4 devOpsCli/0.25.0", "ActionId": "Security.ModifyPermission", "Data": { "NamespaceId": "b7e84409-6553-448a-bbb2-af228e07cbeb", "NamespaceName": "Library", "Token": "Library/Collection/VariableGroup/4693", "Permissions": [ { "baseEntry": { "descriptor": "Microsoft.TeamFoundation.Identity;S-1-9-1551374245...", "allow": 19, "deny": 0, "isEmpty": false }, "inheritedAllow": 0, "inheritedDeny": 0, "effectiveAllow": 0, "effectiveDeny": 0, "includesExtendedInfo": false, "descriptor": "Microsoft.TeamFoundation.Identity;S-1-9-1551374245...", "allow": 19, "deny": 0, "isEmpty": false } ], "EventSummary": [ { "PermissionNames": "View library item", "Change": "allow", "SubjectDescriptor": "Microsoft.TeamFoundation.Identity;S-1-9-1551374245...", "SubjectDisplayName": "[Team_Project]\\Project Administrators" } ], "EventSummaryType": "ChangedPermission", "SubjectDisplayName": "[Team_Project]\\Project Administrators" }, "Details": "3 permissions were modified for [Team_Project]\\Project Administrators", "Area": "Permissions", "Category": 1, "CategoryDisplayName": "Modify", "ActorDisplayName": "User Name" }, "eventType": "AzureDevOpsAuditEvent", "dataVersion": "1.0", "metadataVersion": "1", "eventTime": "2023-12-20T18:33:21.9375261Z", "topic": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-prod/providers/Microsoft.EventGrid/topics/audit-topic" } ]
טבלת מיפוי UDM
| שדה ביומן | מיפוי UDM | היגיון |
|---|---|---|
ActivityId |
metadata.product_log_id |
ממופה ישירות מהשדה Id ביומן הגולמי אם השדה records לא קיים, או מהשדה ActivityId באובייקט data אם השדה records קיים. |
ActionId |
metadata.product_event_type |
ממופה ישירות מהשדה ActionId באובייקט data. |
ActorCUID |
additional.fields |
הוא נכלל כשדה נוסף עם המפתח "Actor CUID". |
ActorDisplayName |
principal.user.user_display_name |
מיפוי ישיר מהשדה ActorDisplayName אם הוא לא Azure DevOps Service. אם הוא Azure DevOps Service, הוא מתווסף כתווית ל-principal.resource.attribute.labels. |
ActorUPN |
principal.user.email_addresses |
ממופה ישירות מהשדה ActorUPN אם הוא תואם לתבנית של כתובת אימייל. |
ActorUserId |
principal.user.userid |
ממופה ישירות מהשדה ActorUserId. |
Area |
target.application |
משמש ליצירת השדה target.application על ידי הוספת המחרוזת 'DevOps ' לפני הערך Area. |
AuthenticationMechanism |
extensions.auth.auth_details, security_result.rule_id |
הניתוח מתבצע כדי לחלץ פרטי אימות ומזהה כלל. פרטי האימות ממופים ל-extensions.auth.auth_details. מזהה הכלל שחולץ ממופה ל-security_result.rule_id. |
CategoryDisplayName |
security_result.action_details |
ממופה ישירות ל-security_result.action_details. |
City |
principal.location.city |
ממופה ישירות מהשדה City. |
Conditions |
additional.fields |
נוסף כשדה נוסף עם המפתח "תנאים". |
Country |
principal.location.country_or_region |
ממופה ישירות מהשדה Country. |
Data.* |
שונים | השדות באובייקט Data ממופים לשדות UDM שונים על סמך השמות וההקשר שלהם. בהמשך מופיעות דוגמאות ספציפיות. |
Data.AccessLevel |
target.resource.attribute.labels |
נוספה כתווית עם המפתח AccessLevel. |
Data.AgentId |
target.resource.product_object_id |
ממופה ל-target.resource.product_object_id אם PipelineId ו-AuthorizationId לא קיימים. |
Data.AgentName |
target.resource.name |
ממופה ל-target.resource.name אם לא מופיעים PipelineName, NamespaceName ו-DisplayName. |
Data.AuthorizationId |
target.resource.product_object_id |
אם לא מצוין PipelineId, המיפוי מתבצע ל-target.resource.product_object_id. |
Data.CallerProcedure |
additional.fields |
נוסף כשדה נוסף עם המפתח "CallerProcedure". |
Data.CheckSuiteId |
additional.fields |
נוסף כשדה נוסף עם המפתח CheckSuiteId. |
Data.CheckSuiteStatus |
additional.fields |
השדה נוסף כשדה נוסף עם המפתח CheckSuiteStatus. |
Data.ConnectionId |
additional.fields |
נוסף כשדה נוסף עם המפתח ConnectionId. |
Data.ConnectionName |
additional.fields |
נוסף כשדה נוסף עם המפתח ConnectionName. |
Data.ConnectionType |
additional.fields |
נוסף כשדה נוסף עם המפתח ConnectionType. |
Data.DefinitionId |
additional.fields |
נוסף כשדה נוסף עם המפתח DefinitionId. |
Data.DeploymentResult |
additional.fields |
התווסף כשדה נוסף עם המפתח DeploymentResult. |
Data.DisplayName |
target.resource.name |
ממופה ל-target.resource.name אם PipelineName ו-NamespaceName לא קיימים. |
Data.EndpointIdList |
additional.fields |
נוסף כשדה נוסף עם המפתח EndpointIdList. |
Data.EnvironmentName |
additional.fields |
נוסף כשדה נוסף עם המפתח EnvironmentName. |
Data.Filter.continuationToken |
target.resource.attribute.labels |
נוסף כתווית עם המפתח continuation_token. |
Data.Filter.endTime |
target.resource.attribute.labels |
נוסף כתווית עם המפתח filter_end_time. |
Data.Filter.startTime |
target.resource.attribute.labels |
נוסף כתווית עם המפתח filter_start_time. |
Data.FinishTime |
additional.fields |
נוסף כשדה נוסף עם המפתח FinishTime. |
Data.GroupId |
target.group.product_object_id |
ממופה ישירות ל-target.group.product_object_id אם Data.Updates.0.GroupId לא קיים. |
Data.GroupName |
target.group.group_display_name |
ממופה ישירות אל target.group.group_display_name. |
Data.JobName |
additional.fields |
נוסף כשדה נוסף עם המפתח JobName. |
Data.MemberId |
target.user.userid |
ממופה ישירות ל-target.user.userid אם Data.Updates.0.MemberId לא קיים. |
Data.MemberDisplayName |
target.user.user_display_name |
ממופה ישירות ל-target.user.user_display_name. |
Data.NamespaceId |
target.resource.product_object_id |
ממופה ל-target.resource.product_object_id אם לא מופיעים PipelineId, AuthorizationId ו-AgentId. |
Data.NamespaceName |
target.resource.name |
אם לא מצוין PipelineName, המיפוי מתבצע ל-target.resource.name. |
Data.ownerDetails |
additional.fields |
נוסף כשדה נוסף עם המפתח OwnerDetails. |
Data.OwnerId |
additional.fields |
נוסף כשדה נוסף עם המפתח OwnerId. |
Data.PipelineId |
target.resource.product_object_id |
ממופה ישירות ל-target.resource.product_object_id. |
Data.PipelineName |
target.resource.name |
ממופה ישירות ל-target.resource.name. |
Data.PipelineRevision |
target.resource.attribute.labels |
נוסף כתווית עם המפתח PipelineRevision. |
Data.PipelineScope |
target.resource.attribute.labels |
נוסף כתווית עם המפתח PipelineScope. |
Data.PlanType |
additional.fields |
השדה נוסף כשדה נוסף עם המפתח PlanType. |
Data.PreviousAccessLevel |
target.resource.attribute.labels |
נוספה כתווית עם מפתח בשם PreviousAccessLevel. |
Data.PublisherName |
target.resource.attribute.labels |
נוסף כתווית עם המפתח PublisherName. |
Data.Reason |
additional.fields |
השדה נוסף כשדה נוסף עם המפתח Reason. |
Data.ReleaseId |
additional.fields |
השדה הזה נוסף כשדה נוסף עם המפתח ReleaseId. |
Data.ReleaseName |
additional.fields |
נוסף כשדה נוסף עם המפתח ReleaseName. |
Data.RequesterId |
additional.fields |
נוסף כשדה נוסף עם המפתח RequesterId. |
Data.RetentionLeaseId |
additional.fields |
נוסף כשדה נוסף עם המפתח RetentionLeaseId. |
Data.RetentionOwnerId |
additional.fields |
נוסף כשדה נוסף עם המפתח RetentionOwnerId. |
Data.RunName |
additional.fields |
התווסף כשדה נוסף עם המפתח RunName. |
Data.Scopes |
target.resource.attribute.labels |
נוספו כתוויות עם מילת המפתח Scope. |
Data.StageName |
additional.fields |
נוסף כשדה נוסף עם המפתח StageName. |
Data.StartTime |
additional.fields |
נוסף כשדה נוסף עם המפתח StartTime. |
Data.TargetUser |
target.user.userid |
ממופה ישירות ל-target.user.userid. |
Data.Timestamp |
metadata.event_timestamp |
נותח ומופה אל metadata.event_timestamp. |
Data.TokenType |
target.resource.attribute.labels |
נוסף כתווית עם המפתח TokenType. |
Data.Updates.0.GroupId |
target.group.product_object_id |
ממופה ישירות ל-target.group.product_object_id. |
Data.Updates.0.MemberId |
target.user.userid |
ממופה ישירות ל-target.user.userid. |
Data.ValidFrom |
target.resource.attribute.labels |
נוספה כתווית עם המפתח ValidFrom. |
Data.ValidTo |
target.resource.attribute.labels |
נוסף כתווית עם מפתח ValidTo. |
DewPoint |
additional.fields |
נוסף כשדה נוסף עם המפתח DewPoint. |
Details |
metadata.description |
ממופה ישירות ל-metadata.description. |
Humidity |
additional.fields |
התווסף כשדה נוסף עם המפתח Humidity. |
Icon |
additional.fields |
נוסף כשדה נוסף עם המפתח Icon. |
Id |
metadata.product_log_id |
ממופה ישירות ל-metadata.product_log_id. |
IpAddress |
principal.ip |
ממופה ישירות ל-principal.ip. |
MoonPhase |
additional.fields |
נוסף כשדה נוסף עם המפתח MoonPhase. |
Moonrise |
additional.fields |
התווסף כשדה נוסף עם המפתח Moonrise. |
Moonset |
additional.fields |
השדה נוסף כשדה נוסף עם המפתח Moonset. |
OperationName |
metadata.product_event_type |
ממופה ישירות ל-metadata.product_event_type. |
Precipitation |
additional.fields |
נוסף כשדה נוסף עם המפתח 'משקעים'. |
Pressure |
additional.fields |
נוסף כשדה נוסף עם המפתח "לחץ". |
ProjectId |
target.resource_ancestors.product_object_id |
השדה הזה משמש לאכלוס השדה product_object_id בתוך target.resource_ancestors כשהרכיב ברמה העליונה הוא מסוג CLOUD_PROJECT. |
ProjectName |
target.resource_ancestors.name, target.resource.attribute.labels |
השדה הזה משמש לאכלוס השדה name בתוך target.resource_ancestors כשהרכיב ברמה העליונה הוא מסוג CLOUD_PROJECT. נוסף גם כתווית ל-target.resource.attribute.labels עם המפתח "ProjectName". |
RoleLocation |
target.location.name |
ממופה ישירות ל-target.location.name. |
ScopeDisplayName |
target.resource_ancestors.name |
השדה הזה משמש לאכלוס השדה name בתוך target.resource_ancestors כשהרכיב ברמה העליונה הוא מסוג CLOUD_ORGANIZATION. |
ScopeId |
target.resource_ancestors.product_object_id |
השדה הזה משמש לאכלוס השדה product_object_id בתוך target.resource_ancestors כשהרכיב ברמה העליונה הוא מסוג CLOUD_ORGANIZATION. |
ScopeType |
additional.fields |
נוסף כשדה נוסף עם המפתח ScopeType. |
Sunrise |
additional.fields |
נוסף כשדה נוסף עם המפתח "Sunrise". |
Sunset |
additional.fields |
התווסף כשדה נוסף עם המפתח Sunset. |
Temperature |
additional.fields |
נוסף כשדה נוסף עם המפתח "טמפרטורה". |
TenantId |
metadata.product_deployment_id, additional.fields |
ממופה ישירות ל-metadata.product_deployment_id. נוסף גם כשדה נוסף עם המפתח TenantId. |
TimeGenerated |
metadata.event_timestamp |
נותח ומופה אל metadata.event_timestamp. |
UserAgent |
network.http.user_agent, network.http.parsed_user_agent |
ממופה ישירות ל-network.http.user_agent. השדה גם מנותח וממופה ל-network.http.parsed_user_agent. |
UVIndex |
additional.fields |
נוסף כשדה נוסף עם המפתח UVIndex. |
Visibility |
additional.fields |
התווסף כשדה נוסף עם המפתח Visibility. |
WindDirection |
additional.fields |
התווסף כשדה נוסף עם המפתח WindDirection. |
WindSpeed |
additional.fields |
נוסף כשדה נוסף עם המפתח "WindSpeed". |
_Internal_WorkspaceResourceId |
additional.fields |
נוסף כשדה נוסף עם המפתח workspace_resource_id. |
| N/A | metadata.event_type |
הערך נקבע על ידי לוגיקה שמבוססת על OperationName ושדות אחרים. אם אין התאמה לסוג אירוע ספציפי, ברירת המחדל היא GENERIC_EVENT. הערכים האפשריים כוללים את "STATUS_SHUTDOWN", "RESOURCE_CREATION", "STATUS_UPDATE", "USER_RESOURCE_DELETION", "RESOURCE_READ", "RESOURCE_WRITTEN", "RESOURCE_DELETION" ו-"GROUP_MODIFICATION". |
| N/A | metadata.vendor_name |
מגדירים את האפשרות 'Microsoft'. |
| N/A | metadata.product_name |
מגדירים את האפשרות Azure DevOps. |
| N/A | metadata.log_type |
הערך שמוגדר הוא AZURE_DEVOPS. |
| לא רלוונטי | principal.user.account_type |
צריך להגדיר את הערך "SERVICE_ACCOUNT_TYPE" אם AuthenticationMechanism מכיל את הערך "ServicePrincipal", אחרת צריך להגדיר את הערך "CLOUD_ACCOUNT_TYPE". |
| לא רלוונטי | target.asset.attribute.cloud.environment |
הערך שהוגדר הוא MICROSOFT_AZURE. |
| N/A | security_result.action |
מגדירים את הערך ALLOW לפעולות שהצליחו (Succeeded, Created, Modified, executed, updated, removed) ואת הערך BLOCK לפעולות שנכשלו (Failed, TimedOut). |
| לא רלוונטי | extensions.auth.mechanism |
ההגדרה היא USERNAME_PASSWORD אם summary היא UserAuthToken. |
| לא רלוונטי | target.resource.resource_type |
הערך הוא SETTING אם קיים pipeline_id, CREDENTIAL אם קיים authorization_id, DEVICE אם קיים agent_id או DATABASE אם קיים namespace_id. אחרת, במקרים מסוימים הערך הוא STORAGE_BUCKET על סמך operationName. |
| לא רלוונטי | target.resource.resource_subtype |
הערך שמוגדר הוא Pipeline אם pipeline_id קיים, Token אם authorization_id קיים, Agent אם agent_id קיים או Namespace אם namespace_id קיים. |
יומן שינויים
צפייה ביומן השינויים של כלי הניתוח הזה
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.