Azure AD-Anmeldeprotokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Azure AD-Anmeldeprotokolle mithilfe eines Azure-Speicherkontos in Google Security Operations exportieren. Der Parser nimmt Rohprotokolle im JSON-Format und wandelt sie in ein strukturiertes Format um, das dem Unified Data Model (UDM) entspricht. Dabei werden relevante Felder extrahiert, Werte normalisiert, verschiedene Zeitstempel verarbeitet und die Daten um sicherheitsrelevante Informationen wie Nutzerinformationen, IP-Adressen und Richtlinien für den bedingten Zugriff ergänzt.
Hinweise
- Sie benötigen eine Google SecOps-Instanz.
- Sie benötigen einen aktiven Azure-Mandanten.
- Sie benötigen Berechtigungen für den Zugriff auf Azure.
Azure-Speicherkonto konfigurieren
- Suchen Sie in der Azure-Konsole nach Speicherkonten.
- Klicken Sie auf + Erstellen.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Abo: Wählen Sie das Abo aus.
- Ressourcengruppe: Wählen Sie die Ressourcengruppe aus.
- Region: Wählen Sie die Region aus.
- Leistung: Wählen Sie die Leistung aus. Wir empfehlen „Standard“.
- Redundanz: Wählen Sie die Redundanz aus (GRS oder LRS empfohlen).
- Speicherkontoname: Geben Sie einen Namen für das neue Speicherkonto ein.
- Klicken Sie auf Überprüfen + Erstellen.
- Sehen Sie sich die Übersicht des Kontos an und klicken Sie auf Erstellen.
- Wählen Sie auf der Seite Speicherkontoübersicht unter Sicherheit & Netzwerk das Untermenü Zugriffsschlüssel aus.
- Klicken Sie neben Schlüssel 1 oder Schlüssel 2 auf Anzeigen.
- Klicke auf In die Zwischenablage kopieren, um den Schlüssel zu kopieren.
- Speichern Sie den Schlüssel an einem sicheren Ort, um ihn später zu verwenden.
- Wählen Sie auf der Seite Speicherkontoübersicht unter Einstellungen das Untermenü Endpunkte aus.
- Klicken Sie auf In die Zwischenablage kopieren, um die Endpunkt-URL des Blob-Dienstes (z. B.
https://<storageaccountname>.blob.core.windows.net
) zu kopieren. - Speichern Sie die Endpunkt-URL an einem sicheren Ort für die spätere Verwendung.
Logexport für Azure AD-Anmeldeprotokolle konfigurieren
- Melden Sie sich mit Ihrem Konto mit Berechtigungen im Azure-Portal an.
- Gehen Sie zu Microsoft Entra ID > Monitoring > Diagnoseeinstellungen.
- Klicken Sie auf Diagnoseeinstellung hinzufügen.
- Geben Sie einen aussagekräftigen Namen für die Diagnoseeinstellung ein.
- Wählen Sie Anmeldeprotokolle aus.
- Wählen Sie das Kästchen In einem Speicherkonto archivieren als Ziel aus.
- Geben Sie das Abo und das Speicherkonto an.
Feed in Google SecOps für die Aufnahme der Azure-Anmeldeprotokolle konfigurieren
- Gehen Sie zu SIEM-Einstellungen > Feeds.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Azure-Anmeldeprotokolle.
- Wählen Sie Microsoft Azure Blob Storage als Quelltyp aus.
- Wählen Sie Azure-Anmeldung als Logtyp aus.
- Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
- Azure-URI: die Blob-Endpunkt-URL.
ENDPOINT_URL/BLOB_NAME
- Ersetzen Sie Folgendes:
ENDPOINT_URL
: die Blob-Endpunkt-URL (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: der Name des Blobs (z. B.insights-logs-<logname>
)
- URI ist: Wählen Sie den URI-TYP gemäß der Logstream-Konfiguration aus (Einzeldatei | Verzeichnis | Verzeichnis mit Unterverzeichnissen).
Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.
Freigegebener Schlüssel: Der Zugriffsschlüssel für Azure Blob Storage.
Asset-Namespace: der Asset-Namespace.
Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
- Azure-URI: die Blob-Endpunkt-URL.
Klicken Sie auf Weiter.
Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
AppDisplayName | read_only_udm.target.application | Direkt aus dem Feld AppDisplayName im Rohprotokoll zugeordnet. |
AppId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld AppId im Rohprotokoll zugeordnet. Der Schlüssel ist auf appId festgelegt. |
Kategorie | read_only_udm.security_result.category_details | Direkt aus dem Feld Category im Rohprotokoll zugeordnet. |
ConditionalAccessPolicies[].displayName | read_only_udm.security_result.rule_name | Direkt aus dem Feld displayName im Array ConditionalAccessPolicies im Rohprotokoll zugeordnet. |
ConditionalAccessPolicies[].enforcedGrantControls[] | read_only_udm.security_result.rule_labels.value | Direkt aus dem enforcedGrantControls -Array im ConditionalAccessPolicies -Array im Rohprotokoll zugeordnet. Der Schlüssel ist auf applied_conditional_access_policies_enforced_grant_controls festgelegt. |
ConditionalAccessPolicies[].enforcedSessionControls[] | read_only_udm.security_result.rule_labels.value | Direkt aus dem enforcedSessionControls -Array im ConditionalAccessPolicies -Array im Rohprotokoll zugeordnet. Der Schlüssel ist auf applied_conditional_access_policies_enforced_session_controls festgelegt. |
ConditionalAccessPolicies[].id | read_only_udm.security_result.rule_id | Wird direkt aus dem Feld id im Array ConditionalAccessPolicies im Rohprotokoll zugeordnet. |
ConditionalAccessPolicies[].Result | read_only_udm.security_result.rule_labels.value | Wird direkt aus dem Feld Result im Array ConditionalAccessPolicies im Rohprotokoll zugeordnet. Der Schlüssel ist auf applied_conditional_access_policies_result festgelegt. |
ConditionalAccessStatus | read_only_udm.additional.fields.value.string_value | Direkt aus dem Feld ConditionalAccessStatus im Rohprotokoll zugeordnet. Der Schlüssel ist auf conditionalAccessStatus festgelegt. |
CorrelationId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld CorrelationId im Rohprotokoll zugeordnet. Der Schlüssel ist auf correlationId festgelegt. |
DurationMs | read_only_udm.additional.fields.value.string_value | Direkt aus dem Feld DurationMs im Rohprotokoll zugeordnet. Der Schlüssel ist auf durationMs festgelegt. |
HomeTenantId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld HomeTenantId im Rohprotokoll zugeordnet. Der Schlüssel ist auf HomeTenantId festgelegt. |
IPAddress | read_only_udm.principal.asset.ip, read_only_udm.principal.ip | Direkt aus dem Feld IPAddress im Rohprotokoll zugeordnet. |
ID | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld Id im Rohprotokoll zugeordnet. Der Schlüssel ist auf id festgelegt. |
Identität | read_only_udm.target.resource.attribute.labels.value | Direkt aus dem Feld Identity im Rohprotokoll zugeordnet. Der Schlüssel ist auf identity festgelegt. |
Level | read_only_udm.security_result.severity, read_only_udm.security_result.severity_details | Direkt aus dem Feld Level im Rohprotokoll zugeordnet. Der Schweregrad wird anhand des Werts von Level bestimmt: Information , Informational , 0 oder 4 entspricht INFORMATIONAL ; Warning , 1 oder 3 entspricht MEDIUM ; Error oder 2 entspricht ERROR ; Critical entspricht CRITICAL . |
OperationName | read_only_udm.metadata.product_event_type | Direkt aus dem Feld OperationName im Rohprotokoll zugeordnet. |
ResourceGroup | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld ResourceGroup im Rohprotokoll zugeordnet. Der Schlüssel ist auf ResourceGroup festgelegt. |
ResultSignature | read_only_udm.additional.fields.value.string_value | Direkt aus dem Feld ResultSignature im Rohprotokoll zugeordnet. Der Schlüssel ist auf resultSignature festgelegt. |
ResultType | read_only_udm.additional.fields.value.string_value | Direkt aus dem Feld ResultType im Rohprotokoll zugeordnet. Der Schlüssel ist auf resultType festgelegt. |
TenantId | read_only_udm.metadata.product_deployment_id | Direkt aus dem Feld TenantId im Rohprotokoll zugeordnet. |
TimeGenerated | read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos | Direkt aus dem Feld TimeGenerated im Rohprotokoll zugeordnet. Das Feld wird als Zeitstempel geparst und zum Ausfüllen der Felder seconds und nanos verwendet. |
TokenIssuerType | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld TokenIssuerType im Rohprotokoll zugeordnet. Der Schlüssel ist auf TokenIssuerType festgelegt. |
UniqueTokenIdentifier | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld UniqueTokenIdentifier im Rohprotokoll zugeordnet. Der Schlüssel ist auf UniqueTokenIdentifier festgelegt. |
User-Agent | read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent | Direkt aus dem Feld UserAgent im Rohprotokoll zugeordnet. Das Feld wird als User-Agent-String geparst und zum Ausfüllen des parsed_user_agent -Objekts verwendet. |
UserDisplayName | read_only_udm.target.user.user_display_name | Direkt aus dem Feld UserDisplayName im Rohprotokoll zugeordnet. |
UserId | read_only_udm.target.user.userid | Direkt aus dem Feld UserId im Rohprotokoll zugeordnet. |
UserPrincipalName | read_only_udm.target.user.email_addresses | Wird direkt aus dem Feld UserPrincipalName im Rohprotokoll zugeordnet, aber nur, wenn es dem Muster für E-Mail-Adressen entspricht. |
UserType | read_only_udm.target.user.attribute.roles.name | Direkt aus dem Feld UserType im Rohprotokoll zugeordnet. |
_Internal_WorkspaceResourceId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld _Internal_WorkspaceResourceId im Rohprotokoll zugeordnet. Der Schlüssel ist auf Internal_WorkspaceResourceId festgelegt. |
_ItemId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld _ItemId im Rohprotokoll zugeordnet. Der Schlüssel ist auf ItemId festgelegt. |
properties.appId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld appId im properties -Objekt im Rohprotokoll zugeordnet. Der Schlüssel ist auf appId festgelegt. |
properties.authenticationDetails[].authenticationMethod | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld authenticationMethod im Array authenticationDetails im Rohprotokoll zugeordnet. Der Schlüssel ist auf authenticationMethod festgelegt. |
properties.authenticationDetails[].authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | Wird direkt aus dem Feld authenticationMethodDetail im Array authenticationDetails im Rohprotokoll zugeordnet. Der Schlüssel ist auf authenticationMethodDetail festgelegt. |
properties.authenticationDetails[].authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | Wird direkt aus dem Feld authenticationStepDateTime im Array authenticationDetails im Rohprotokoll zugeordnet. Der Schlüssel ist auf authenticationStepDateTime festgelegt. |
properties.authenticationDetails[].authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld authenticationStepRequirement im Array authenticationDetails im Rohprotokoll zugeordnet. Der Schlüssel ist auf authenticationStepRequirement festgelegt. |
properties.authenticationDetails[].authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | Wird direkt aus dem Feld authenticationStepResultDetail im Array authenticationDetails im Rohprotokoll zugeordnet. Der Schlüssel ist auf authenticationStepResultDetail festgelegt. |
properties.authenticationDetails[].succeeded | read_only_udm.security_result.action, read_only_udm.security_result.action_details | Wird direkt aus dem Feld succeeded im Array authenticationDetails im Rohprotokoll zugeordnet. Wenn der Wert true ist, wird die Aktion auf ALLOW gesetzt, andernfalls auf BLOCK . |
properties.conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | Direkt aus dem Feld conditionalAccessStatus im properties -Objekt im Rohprotokoll zugeordnet. Der Schlüssel ist auf conditionalAccessStatus festgelegt. |
properties.id | read_only_udm.security_result.detection_fields.value | Wird direkt aus dem Feld id im properties -Objekt im Rohprotokoll zugeordnet. Der Schlüssel ist auf id festgelegt. |
properties.status.errorCode | read_only_udm.security_result.action | Wenn der Wert 0 ist, wird die Aktion auf ALLOW festgelegt, andernfalls auf BLOCK . |
properties.userId | read_only_udm.target.user.userid | Direkt aus dem Feld userId im properties -Objekt im Rohprotokoll zugeordnet. |
properties.userPrincipalName | read_only_udm.target.user.email_addresses | Wird direkt aus dem Feld userPrincipalName im Objekt properties im Rohprotokoll zugeordnet, aber nur, wenn es mit dem Muster für E-Mail-Adressen übereinstimmt. |
resourceId | read_only_udm.target.resource.name | Direkt aus dem Feld resourceId im Rohprotokoll zugeordnet. |
Zeit | read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos | Direkt aus dem Feld time im Rohprotokoll zugeordnet. Das Feld wird als Zeitstempel geparst und zum Ausfüllen der Felder seconds und nanos verwendet. |
read_only_udm.extensions.auth.type | Der Wert ist auf AUTHTYPE_UNSPECIFIED festgelegt. |
|
read_only_udm.metadata.event_type | Der Wert wird anhand der Anwesenheit der Felder principal.ip und target.user.userid bestimmt: Wenn beide vorhanden sind, wird der Typ auf USER_LOGIN festgelegt. Wenn nur principal.ip vorhanden ist, wird der Typ auf STATUS_UPDATE festgelegt. Andernfalls wird er auf GENERIC_EVENT festgelegt. |
Änderungen
2024-05-07
- Neu erstellter Parser
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten