Azure AD-Anmeldeprotokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Azure AD-Anmeldelogs mithilfe eines Azure-Speicherkontos in Google Security Operations exportieren. Der Parser nimmt Rohlogs im JSON-Format entgegen und wandelt sie in ein strukturiertes Format um, das dem einheitlichen Datenmodell (Unified Data Model, UDM) entspricht. Es werden relevante Felder extrahiert, Werte normalisiert, verschiedene Zeitstempel verarbeitet und die Daten mit sicherheitsrelevanten Kontextinformationen wie Nutzerinformationen, IP-Adressen und Richtlinien für bedingten Zugriff angereichert.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google SecOps-Instanz
- Ein aktiver Azure-Mandant
- Privilegierter Zugriff auf Azure
Azure Storage-Konto konfigurieren
- Suchen Sie in der Azure-Konsole nach Storage accounts (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 (Standard wird empfohlen).
- Redundanz: Wählen Sie die Redundanz aus (GRS oder LRS empfohlen).
- Storage-Kontoname: 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 Storage Account Overview (Speicherkonto – Übersicht) unter Security + networking (Sicherheit + Netzwerk) das Untermenü Access keys (Zugriffsschlüssel) aus.
- Klicken Sie neben key1 oder key2 auf Anzeigen.
- Klicken Sie auf In die Zwischenablage kopieren, um den Schlüssel zu kopieren.
- Bewahren Sie den Schlüssel an einem sicheren Ort auf, um ihn später zu verwenden.
- Wählen Sie auf der Seite Storage Account Overview (Speicherkontoübersicht) unter Settings (Einstellungen) das Untermenü Endpoints (Endpunkte) aus.
- Klicken Sie auf In die Zwischenablage kopieren, um die Endpunkt-URL des Blob-Dienstes zu kopieren, z. B.
https://<storageaccountname>.blob.core.windows.net
. - 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 privilegierten Konto im Azure-Portal an.
- Rufen Sie Microsoft Entra ID > Überwachung > Diagnoseeinstellungen auf.
- 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.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds
- Content Hub> Content-Pakete
Feeds über die SIEM-Einstellungen > „Feeds“ einrichten
Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen in dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
So konfigurieren Sie einen einzelnen Feed:
- Rufen Sie die SIEM-Einstellungen> Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. Azure Sign-In Logs (Azure-Anmeldeprotokolle).
- Wählen Sie Microsoft Azure Blob Storage als Quelltyp aus.
- Wählen Sie Azure Sign-In 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
- Dabei gilt:
ENDPOINT_URL
: Die Blob-Endpunkt-URL (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: Der Name des Blobs (z. B.insights-logs-<logname>
)
- Dabei gilt:
- URI is a (URI ist ein): Wählen Sie den URI-TYP entsprechend der Logstream-Konfiguration aus (Single file (Einzelne Datei) | Directory (Verzeichnis) | Directory which includes subdirectories (Verzeichnis mit Unterverzeichnissen)).
Optionen zum Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Aufnahmeeinstellungen 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.
Feeds über den Content Hub einrichten
Geben Sie Werte für die folgenden Felder an:
- Azure-URI: Die Blob-Endpunkt-URL.
ENDPOINT_URL/BLOB_NAME
- Dabei gilt:
ENDPOINT_URL
: Die Blob-Endpunkt-URL (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: Der Name des Blobs (z. B.insights-logs-<logname>
)
- Dabei gilt:
- URI is a (URI ist ein): Wählen Sie den URI-TYP entsprechend der Logstream-Konfiguration aus (Single file (Einzelne Datei) | Directory (Verzeichnis) | Directory which includes subdirectories (Verzeichnis mit Unterverzeichnissen)).
- Optionen zum Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Aufnahmeeinstellungen aus.
- Freigegebener Schlüssel: Der Zugriffsschlüssel für Azure Blob Storage.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
- Asset-Namespace: Namespace, der dem Feed zugeordnet ist.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
AppDisplayName | read_only_udm.target.application | Direkt aus dem Feld AppDisplayName im Rohlog zugeordnet. |
AppId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld AppId im Rohlog zugeordnet. Der Schlüssel ist auf appId festgelegt. |
Kategorie | read_only_udm.security_result.category_details | Direkt aus dem Feld Category im Rohlog zugeordnet. |
ConditionalAccessPolicies[].displayName | read_only_udm.security_result.rule_name | Direkt aus dem Feld displayName im Array ConditionalAccessPolicies im Rohlog zugeordnet. |
ConditionalAccessPolicies[].enforcedGrantControls[] | read_only_udm.security_result.rule_labels.value | Direkt aus dem enforcedGrantControls -Array im ConditionalAccessPolicies -Array im Rohlog 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 Rohlog zugeordnet. Der Schlüssel ist auf applied_conditional_access_policies_enforced_session_controls festgelegt. |
ConditionalAccessPolicies[].id | read_only_udm.security_result.rule_id | Direkt aus dem Feld id im Array ConditionalAccessPolicies im Rohlog zugeordnet. |
ConditionalAccessPolicies[].Result | read_only_udm.security_result.rule_labels.value | Direkt aus dem Feld Result im Array ConditionalAccessPolicies im Rohlog 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 Rohlog zugeordnet. Der Schlüssel ist auf conditionalAccessStatus festgelegt. |
CorrelationId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld CorrelationId im Rohlog zugeordnet. Der Schlüssel ist auf correlationId festgelegt. |
DurationMs | read_only_udm.additional.fields.value.string_value | Direkt aus dem Feld DurationMs im Rohlog zugeordnet. Der Schlüssel ist auf durationMs festgelegt. |
HomeTenantId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld HomeTenantId im Rohlog 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 Rohlog zugeordnet. |
ID | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld Id im Rohlog zugeordnet. Der Schlüssel ist auf id festgelegt. |
Identität | read_only_udm.target.resource.attribute.labels.value | Direkt aus dem Feld Identity im Rohlog 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 Rohlog zugeordnet. Der Schweregrad wird anhand des Werts von Level bestimmt: Information , Informational , 0 oder 4 wird INFORMATIONAL zugeordnet; Warning , 1 oder 3 wird MEDIUM zugeordnet; Error oder 2 wird ERROR zugeordnet; Critical wird CRITICAL zugeordnet. |
OperationName | read_only_udm.metadata.product_event_type | Direkt aus dem Feld OperationName im Rohlog zugeordnet. |
ResourceGroup | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld ResourceGroup im Rohlog zugeordnet. Der Schlüssel ist auf ResourceGroup festgelegt. |
ResultSignature | read_only_udm.additional.fields.value.string_value | Direkt aus dem Feld ResultSignature im Rohlog zugeordnet. Der Schlüssel ist auf resultSignature festgelegt. |
ResultType | read_only_udm.additional.fields.value.string_value | Direkt aus dem Feld ResultType im Rohlog zugeordnet. Der Schlüssel ist auf resultType festgelegt. |
TenantId | read_only_udm.metadata.product_deployment_id | Direkt aus dem Feld TenantId im Rohlog zugeordnet. |
TimeGenerated | read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos | Direkt aus dem Feld TimeGenerated im Rohlog 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 Rohlog zugeordnet. Der Schlüssel ist auf TokenIssuerType festgelegt. |
UniqueTokenIdentifier | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld UniqueTokenIdentifier im Rohlog 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 Rohlog 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 Rohlog zugeordnet. |
UserId | read_only_udm.target.user.userid | Direkt aus dem Feld UserId im Rohlog zugeordnet. |
UserPrincipalName | read_only_udm.target.user.email_addresses | Direkt aus dem Feld UserPrincipalName im Rohlog zugeordnet, aber nur, wenn es dem E-Mail-Adressmuster entspricht. |
UserType | read_only_udm.target.user.attribute.roles.name | Direkt aus dem Feld UserType im Rohlog zugeordnet. |
_Internal_WorkspaceResourceId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld _Internal_WorkspaceResourceId im Rohlog zugeordnet. Der Schlüssel ist auf Internal_WorkspaceResourceId festgelegt. |
_ItemId | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld _ItemId im Rohlog 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 Rohlog 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 Rohlog zugeordnet. Der Schlüssel ist auf authenticationMethod festgelegt. |
properties.authenticationDetails[].authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld authenticationMethodDetail im Array authenticationDetails im Rohlog zugeordnet. Der Schlüssel ist auf authenticationMethodDetail festgelegt. |
properties.authenticationDetails[].authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld authenticationStepDateTime im Array authenticationDetails im Rohlog 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 Rohlog zugeordnet. Der Schlüssel ist auf authenticationStepRequirement festgelegt. |
properties.authenticationDetails[].authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld authenticationStepResultDetail im Array authenticationDetails im Rohlog zugeordnet. Der Schlüssel ist auf authenticationStepResultDetail festgelegt. |
properties.authenticationDetails[].succeeded | read_only_udm.security_result.action, read_only_udm.security_result.action_details | Direkt aus dem Feld succeeded im Array authenticationDetails im Rohlog zugeordnet. Wenn der Wert true ist, wird die Aktion auf ALLOW gesetzt. Andernfalls wird sie auf BLOCK gesetzt. |
properties.conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | Direkt aus dem Feld conditionalAccessStatus im properties -Objekt im Rohlog zugeordnet. Der Schlüssel ist auf conditionalAccessStatus festgelegt. |
properties.id | read_only_udm.security_result.detection_fields.value | Direkt aus dem Feld id im properties -Objekt im Rohlog 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 wird sie auf BLOCK festgelegt. |
properties.userId | read_only_udm.target.user.userid | Direkt aus dem Feld userId im properties -Objekt im Rohlog zugeordnet. |
properties.userPrincipalName | read_only_udm.target.user.email_addresses | Direkt aus dem Feld userPrincipalName im Objekt properties im Rohlog zugeordnet, aber nur, wenn es dem E-Mail-Adressmuster entspricht. |
resourceId | read_only_udm.target.resource.name | Direkt aus dem Feld resourceId im Rohlog zugeordnet. |
Zeit | read_only_udm.metadata.event_timestamp.seconds, read_only_udm.metadata.event_timestamp.nanos | Direkt aus dem Feld time im Rohlog 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 wird auf AUTHTYPE_UNSPECIFIED festgelegt. |
|
read_only_udm.metadata.event_type | Der Wert wird anhand des Vorhandenseins 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. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten