Azure App Service-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Azure APP Service-Protokolle mithilfe eines Azure-Speicherkontos in Google Security Operations exportieren. Der Parser wandelt Roh-JSON-formatierte Azure App Service-Protokolle in ein strukturiertes einheitliches Datenmodell (UDM) um. Es werden relevante Felder aus den Rohlogs extrahiert, Daten werden bereinigt und normalisiert und die extrahierten Informationen werden den entsprechenden UDM-Feldern zugeordnet. Schließlich wird für jeden Logeintrag ein UDM-konformes JSON-Objekt ausgegeben.

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

  1. Suchen Sie in der Azure-Konsole nach Speicherkonten.
  2. Klicken Sie auf + Erstellen.
  3. 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.
  4. Klicken Sie auf Überprüfen + Erstellen.
  5. Sehen Sie sich die Übersicht des Kontos an und klicken Sie auf Erstellen.
  6. Wählen Sie auf der Seite Speicherkontoübersicht unter Sicherheit & Netzwerk das Untermenü Zugriffsschlüssel aus.
  7. Klicken Sie neben Schlüssel 1 oder Schlüssel 2 auf Anzeigen.
  8. Klicke auf In die Zwischenablage kopieren, um den Schlüssel zu kopieren.
  9. Speichern Sie den Schlüssel an einem sicheren Ort, um ihn später zu verwenden.
  10. Wählen Sie auf der Seite Speicherkontoübersicht unter Einstellungen das Untermenü Endpunkte aus.
  11. Klicken Sie auf In die Zwischenablage kopieren, um die Endpunkt-URL des Blob-Dienstes (z. B. https://<storageaccountname>.blob.core.windows.net) zu kopieren.
  12. Speichern Sie die Endpunkt-URL an einem sicheren Ort für die spätere Verwendung.

Logexport für Azure AD-Anmeldeprotokolle konfigurieren

  1. Melden Sie sich mit Ihrem Konto mit Berechtigungen im Azure-Portal an.
  2. Gehen Sie zu App-Dienste und wählen Sie den erforderlichen App-Dienst aus.
  3. Wählen Sie Monitoring > App-Dienst-Logs aus.
  4. Aktivieren Sie Anwendungs-Logging (Blob).
  5. Wählen Sie unter Webdienstprotokollierung die Option Speicher aus.
  6. Wählen Sie das Abo und das Speicherkonto aus.
  7. Legen Sie den Aufbewahrungszeitraum und das Kontingent entsprechend Ihren Anforderungen fest.
  8. Aktivieren Sie Detaillierte Fehlermeldungen.
  9. Aktivieren Sie ON für Failed request tracing.
  10. Klicken Sie auf Speichern.

Feed in Google SecOps für die Aufnahme der Azure App Service-Protokolle konfigurieren

  1. Gehen Sie zu SIEM-Einstellungen > Feeds.
  2. Klicken Sie auf Neu hinzufügen.
  3. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Azure APP Service Logs.
  4. Wählen Sie Microsoft Azure Blob Storage als Quelltyp aus.
  5. Wählen Sie Azure App Service als Protokolltyp aus.
  6. Klicken Sie auf Weiter.
  7. 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. <logname>-logs)
    • URI ist: Wählen Sie den URI-TYP gemäß der Konfiguration des Protokollstreams 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.

  8. Klicken Sie auf Weiter.

  9. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

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 Früher „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 und von „Ebene“ in „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 Wurde von „resourceId“ umbenannt
read_only_udm.metadata.event_type Wird anhand der Anwesenheit von Hauptkonto, Ziel und Protokoll ermittelt. Wird auf NETWORK_HTTP gesetzt, wenn „principal“, „target“ und „Protocol=HTTP“ vorhanden sind. Wird auf NETWORK_CONNECTION gesetzt, wenn Hauptkonto und Ziel vorhanden sind. Legen Sie STATUS_UPDATE fest, wenn nur das Hauptkonto vorhanden ist. Andernfalls setzen Sie GENERIC_EVENT.

Änderungen

2024-10-18

Optimierung:

  • properties.XForwardedHost wurde principal.hostname und principal.asset.hostname zugeordnet.
  • properties_category wurde additional.fields zugeordnet.
  • properties.roleInstance wurde principal.resource.product_object_id zugeordnet.
  • properties.message wurde security_result.summary zugeordnet.

2024-09-30

Optimierung:

  • Unterstützung für das neue Format von nicht geparsten JSON-Protokollen hinzugefügt.

2024-06-24

Optimierung:

  • metadata.product_name und metadata.vendor_name wurden AZURE_APP_SERVICE zugeordnet.

2024-06-07

Optimierung:

  • Unterstützung für JSON-Protokolle hinzugefügt, die nicht im Arrayformat vorliegen.
  • properties.ScSubStatus wurde additional.fields zugeordnet.
  • properties.ScWin32Status wurde additional.fields zugeordnet.

2024-04-25

Optimierung:

  • properties.User wurde principal.user.userid zugeordnet.
  • properties.UserDisplayName wurde principal.user.user_display_name zugeordnet.
  • properties.UserAddress wurde principal.ip zugeordnet.
  • properties.Protocol, ClientBrowser, ClientModel, ClientOS, OperationId, ParentId und ItemCount wurden additional.fields zugeordnet.
  • CsUriQuery, SDKVersion und Cookie wurden principal.resource.attribute.labels zugeordnet.
  • SessionId wurde network.session_id zugeordnet.
  • Message wurde security_result.summary zugeordnet.
  • SeverityLevel wurde security_result.severity_details zugeordnet.

2024-02-20

Optimierung:

  • record.AppRoleInstance wurde principal.resource.product_object_id zugeordnet.
  • record.AppRoleName wurde principal.resource.name zugeordnet.
  • record.ClientCity wurde principal.location.city zugeordnet.
  • record.ClientCountryOrRegion wurde principal.location.country_or_region zugeordnet.
  • record.ClientStateOrProvince wurde principal.location.state zugeordnet.
  • record.ClientIP wurde principal.ip zugeordnet.
  • Result wurde security_result.summary zugeordnet.
  • UserAgent wurde network.http.user_agent zugeordnet.
  • Referer wurde network.http.referral_url zugeordnet.
  • record.ResourceGUID wurde target.resource.product_object_id zugeordnet.
  • Wenn record.ResourceGUID nicht vorhanden ist, wird record.resourceId auf target.resource.product_object_id zugeordnet.
  • Wenn record.ResourceGUID vorhanden ist, wird record.resourceId additional.fields zugeordnet.
  • record.Type wurde additional.fields zugeordnet.
  • record.ClientType wurde additional.fields zugeordnet.
  • record.SDKVersion wurde additional.fields zugeordnet.
  • record.Name wurde additional.fields zugeordnet.
  • record.Instance wurde additional.fields zugeordnet.
  • record.TimeTaken wurde additional.fields zugeordnet.
  • record.Cookie wurde additional.fields zugeordnet.
  • record.AppVersion wurde principal.resource.attribute.labels zugeordnet.
  • record.IKey wurde target.resource.attribute.labels zugeordnet.
  • record.Category wurde metadata.product_event_type zugeordnet.
  • CsUriStem wurde target.url zugeordnet.
  • Die Zuordnung von CsBytes wurde von network.received_bytes zu network.sent_bytes geändert.
  • Die Zuordnung von ScBytes wurde von network.sent_bytes zu network.received_bytes geändert.

2023-12-07

  • Neu erstellter Parser.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten