Azure App Service-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Azure App Service-Logs mithilfe eines Azure-Speicherkontos in Google Security Operations exportieren. Der Parser wandelt Rohlogs im JSON-Format von Azure App Service in ein strukturiertes einheitliches Datenmodell (Unified Data Model, UDM) um. Es werden relevante Felder aus den Rohlogs extrahiert, Daten bereinigt und normalisiert und die extrahierten Informationen den entsprechenden UDM-Feldern zugeordnet. Schließlich wird für jeden Logeintrag ein UDM-kompatibles JSON-Objekt ausgegeben.
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.
Log-Export für Azure App Service-Logs konfigurieren
- Melden Sie sich mit Ihrem privilegierten Konto im Azure-Portal an.
- Rufen Sie App Services auf und wählen Sie den gewünschten App-Dienst aus.
- Wählen Sie Monitoring > App Service-Logs aus.
- Stellen Sie Anwendungs-Logging (Blob) auf EIN.
- Wählen Sie unter Web Service Logging (Webdienst-Logging) die Option Storage (Speicher) aus.
- Wählen Sie das Abo und das Speicherkonto aus.
- Legen Sie den Aufbewahrungszeitraum und das Kontingent entsprechend Ihren Anforderungen fest.
- Aktivieren Sie Detaillierte Fehlermeldungen.
- Aktivieren Sie Tracing fehlgeschlagener Anfragen.
- Klicken Sie auf Speichern.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds > Neu hinzufügen
- Content Hub > Content-Packs > Erste Schritte
Azure App Service-Feed einrichten
- Klicken Sie auf das Paket Azure-Plattform.
- Suchen Sie den Protokolltyp Azure App Service und klicken Sie auf Neuen Feed hinzufügen.
Geben Sie Werte für die folgenden Felder an:
- Quelltyp: Microsoft Azure Blob Storage V2.
- 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.<logname>-logs
)
- Dabei gilt:
Optionen zum Löschen der Quelle: Wählen Sie die Löschoption entsprechend Ihren Aufnahmeeinstellungen aus.
Maximales Dateialter: Enthält Dateien, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
Freigegebener Schlüssel: Der Zugriffsschlüssel für Azure Blob Storage.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Asset-Namespace: Namespace, der dem Feed zugeordnet ist.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
Klicken Sie auf Feed erstellen.
Weitere Informationen zum Konfigurieren mehrerer Feeds für verschiedene Logtypen in dieser Produktfamilie finden Sie unter Feeds nach Produkt konfigurieren.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
AppRoleInstance | read_only_udm.principal.resource.product_object_id | Direkte Zuordnung |
AppRoleName | read_only_udm.principal.resource.name | Direkte Zuordnung |
AppVersion | read_only_udm.principal.resource.attribute.labels.value | Direkte Zuordnung |
Kategorie | read_only_udm.metadata.product_event_type | Direkte Zuordnung |
CIp | read_only_udm.target.asset.ip | Direkte Zuordnung |
CIp | read_only_udm.target.ip | Direkte Zuordnung |
ClientCity | read_only_udm.principal.location.city | Direkte Zuordnung |
ClientCountryOrRegion | read_only_udm.principal.location.country_or_region | Direkte Zuordnung |
ClientIP | read_only_udm.principal.asset.ip | Direkte Zuordnung |
ClientIP | read_only_udm.principal.ip | Direkte Zuordnung |
ClientStateOrProvince | read_only_udm.principal.location.state | Direkte Zuordnung |
ClientType | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
ComputerName | read_only_udm.principal.asset.hostname | Direkte Zuordnung |
ComputerName | read_only_udm.principal.hostname | Direkte Zuordnung |
Cookie | read_only_udm.principal.resource.attribute.labels.value | Direkte Zuordnung |
CsBytes | read_only_udm.network.sent_bytes | Umbenannt von CsBytes |
CsHost | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
CsMethod | read_only_udm.network.http.method | Direkte Zuordnung |
CsUriQuery | read_only_udm.principal.resource.attribute.labels.value | Direkte Zuordnung |
CsUriStem | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
CsUriStem | read_only_udm.target.url | Direkte Zuordnung |
CsUsername | read_only_udm.principal.user.user_display_name | Direkte Zuordnung |
EventIpAddress | read_only_udm.principal.asset.ip | Direkte Zuordnung |
EventIpAddress | read_only_udm.principal.ip | Direkte Zuordnung |
EventPrimaryStampName | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
EventStampName | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
EventStampType | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
Host | read_only_udm.principal.asset.hostname | Direkte Zuordnung |
Host | read_only_udm.principal.hostname | Direkte Zuordnung |
IKey | read_only_udm.target.resource.attribute.labels.value | Direkte Zuordnung |
Instanz | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
Name | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
Protokoll | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
Protokoll | read_only_udm.network.application_protocol | Wird HTTP zugeordnet, wenn das Protokoll HTTP/1.1 ist. |
Verwiesen von: | read_only_udm.network.http.referral_url | Direkte Zuordnung |
ResourceGUID | read_only_udm.target.resource.product_object_id | Umbenannt von ResourceGUID |
SDKVersion | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
SDKVersion | read_only_udm.principal.resource.attribute.labels.value | Direkte Zuordnung |
SPort | read_only_udm.principal.port | Umbenannt von SPort |
ScBytes | read_only_udm.network.received_bytes | Umbenannt von „ScBytes“ |
ScStatus | read_only_udm.network.http.response_code | Umbenannt von ScStatus |
TimeTaken | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
Typ | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
Nutzer | read_only_udm.principal.user.userid | Direkte Zuordnung |
UserAddress | read_only_udm.principal.asset.ip | Wird aus UserAddress extrahiert, wenn es sich um eine gültige IP-Adresse handelt |
UserAddress | read_only_udm.principal.ip | Wird aus UserAddress extrahiert, wenn es sich um eine gültige IP-Adresse handelt |
User-Agent | read_only_udm.network.http.user_agent | Direkte Zuordnung |
UserDisplayName | read_only_udm.principal.user.user_display_name | Direkte Zuordnung |
Kategorie | read_only_udm.metadata.product_event_type | Direkte Zuordnung |
level | read_only_udm.security_result.severity | In Großbuchstaben geschrieben und von der Ebene umbenannt |
Standort | read_only_udm.principal.location.name | Direkte Zuordnung |
operationName | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
record.properties.Protocol | read_only_udm.additional.fields.value.string_value | Direkte Zuordnung |
record.properties.Result | read_only_udm.security_result.summary | Direkte Zuordnung |
record.time | read_only_udm.metadata.event_timestamp | Als RFC 3339-Zeitstempel geparst |
resourceId | read_only_udm.target.resource.attribute.labels.value | Direkte Zuordnung |
resourceId | read_only_udm.target.resource.product_object_id | Umbenannt von „resourceId“ |
read_only_udm.metadata.event_type | Wird anhand des Vorhandenseins von Hauptkonto, Ziel und Protokoll bestimmt. Wird auf NETWORK_HTTP gesetzt, wenn „principal“, „target“ und „Protocol=HTTP “ vorhanden sind. Wird auf NETWORK_CONNECTION gesetzt, wenn Hauptkonto und Ziel vorhanden sind. Auf STATUS_UPDATE gesetzt, wenn nur das Hauptkonto vorhanden ist. Andernfalls legen Sie GENERIC_EVENT fest. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten