Azure Application Gateway-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Azure Application Gateway-Logs erfassen, indem Sie einen Google Security Operations-Feed einrichten. Dieser Parser verarbeitet sowohl JSON-Strukturen mit einem als auch mit mehreren Datensätzen, extrahiert Felder aus dem Array „records“, führt Datentypkonvertierungen durch, ordnet Felder dem UDM zu und reichert die Daten mit Metadaten und abgeleiteten Feldern wie dem Typ der Netzwerkverbindung an. Außerdem wird spezifische Logik für verschiedene operationName-Werte verarbeitet, um relevante IP-Adressen, Subnetze und andere Konfigurationsdetails zu extrahieren.

Hinweise

Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz
  • Privilegierter Zugriff auf ein Azure-Abo
  • Eine Azure Application Gateway-Umgebung (Mandant) in Azure

Azure Storage-Konto konfigurieren

  1. Suchen Sie in der Azure-Konsole nach Storage accounts (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 (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.
  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 Storage Account Overview (Speicherkonto – Übersicht) im Untermenü Security + networking (Sicherheit + Netzwerk) die Option Access keys (Zugriffsschlüssel) aus.
  7. Klicken Sie neben key1 oder key2 auf Anzeigen.
  8. Klicken Sie auf In die Zwischenablage kopieren, um den Schlüssel zu kopieren.
  9. Bewahren Sie den Schlüssel an einem sicheren Ort auf, um ihn später zu verwenden.
  10. Wählen Sie auf der Seite Storage Account Overview (Speicherkontoübersicht) im Untermenü Settings (Einstellungen) die Option Endpoints (Endpunkte) aus.
  11. Klicken Sie auf In die Zwischenablage kopieren, um die Endpunkt-URL des Blob-Dienstes zu kopieren. (z. B. https://<storageaccountname>.blob.core.windows.net)
  12. Speichern Sie die Endpunkt-URL an einem sicheren Ort für die spätere Verwendung.

Azure Application Gateway konfigurieren

  1. Melden Sie sich im Azure-Portal an.
  2. Rufen Sie die gewünschte Ressourcengruppe auf.
  3. Wählen Sie Application Gateway aus. Das Fenster Application Gateway wird angezeigt.
  4. Wählen Sie im Bereich Monitoring die Option Diagnoseeinstellungen > Diagnose aktivieren aus.
  5. Wählen Sie Diagnoseeinstellung hinzufügen aus. Im Fenster Diagnoseeinstellungen werden die Einstellungen für die Diagnoselogs angezeigt.
  6. Führen Sie im Abschnitt Log folgende Schritte aus:
    1. Klicken Sie das Kästchen ApplicationGatewayAccessLog an.
    2. Klicken Sie das Kästchen ApplicationGatewayFirewallLog an.
  7. So speichern Sie Logs im Speicherkonto:
    1. Aktivieren Sie das Kästchen In einem Speicherkonto archivieren.
    2. Wählen Sie in der Liste Abo ein vorhandenes Abo aus.
    3. Wählen Sie in der Liste Speicherkonto ein vorhandenes Speicherkonto aus.

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:

  1. Rufen Sie die SIEM-Einstellungen> Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Azure Application Gateway Logs (Azure Application Gateway-Protokolle).
  5. Wählen Sie Microsoft Azure Blob Storage als Quelltyp aus.
  6. Wählen Sie Azure Application Gateway als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. 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>)
    • URI is a (URI ist ein): Wählen Sie den URI-TYP entsprechend der Logstream-Konfiguration aus (Single file | Directory | Directory which includes subdirectories (Einzelne Datei | Verzeichnis | 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.
  9. Klicken Sie auf Weiter.

  10. 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>)
  • 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
Category metadata.product_event_type Direkt aus dem Feld Category zugeordnet.
ClientOperationId additional.fields[].key:"ClientOperationId", value.string_value Direkt aus dem Feld ClientOperationId zugeordnet.
CorrelationRequestId additional.fields[].key:"CorrelationRequestId", value.string_value Direkt aus dem Feld CorrelationRequestId zugeordnet.
GatewayManagerVersion additional.fields[].key:"GatewayManagerVersion", value.string_value Direkt aus dem Feld GatewayManagerVersion zugeordnet.
category metadata.product_event_type Direkt aus dem Feld category zugeordnet.
level security_result.severity Direkt aus dem Feld level zugeordnet und in Großbuchstaben konvertiert. Wenn der Wert „WARNING“ ist, wird die Schwere auf „HIGH“ gesetzt und security_result.severity_details auf den ursprünglichen Wert.
properties.clientIP principal.ip, principal.asset.ip Direkt aus dem Feld properties.clientIP zugeordnet.
properties.clientPort principal.port Direkt aus dem Feld properties.clientPort zugeordnet und in eine Ganzzahl konvertiert.
properties.clientResponseTime additional.fields[].key:"clientResponseTime", value.string_value Direkt aus dem Feld properties.clientResponseTime zugeordnet.
properties.configuration.BgpConfiguration.GatewayConfig.Asn security_result.detection_fields[].key:"ASN", value Direkt aus dem Feld properties.configuration.BgpConfiguration.GatewayConfig.Asn zugeordnet, wenn operationName „SetGatewayConfiguration“ ist.
properties.configuration.BgpConfiguration.GatewayConfig.PeerAddress target.ip, target.asset.ip Direkt aus dem Feld properties.configuration.BgpConfiguration.GatewayConfig.PeerAddress zugeordnet, wenn operationName „SetGatewayConfiguration“ ist.
properties.configuration.BgpConfiguration.GatewayConfig.PeerType security_result.detection_fields[].key:"PeerType", value Direkt aus dem Feld properties.configuration.BgpConfiguration.GatewayConfig.PeerType zugeordnet, wenn operationName „SetGatewayConfiguration“ ist.
properties.configuration.IkeVersion principal.resource.attribute.labels[].key:"ike_version", value Direkt aus dem Feld properties.configuration.IkeVersion zugeordnet, wenn operationName „SetConnectionConfiguration“ ist.
properties.configuration.LocalSubnets principal.resource.attribute.labels[].key:"local subnets", value Verketteter String von IP-Adressen aus dem properties.configuration.LocalSubnets-Array, wenn operationName „SetConnectionConfiguration“ ist.
properties.configuration.LocalTunnelEndpoint principal.ip, principal.asset.ip Direkt aus dem Feld properties.configuration.LocalTunnelEndpoint zugeordnet, wenn operationName „SetConnectionConfiguration“ ist.
properties.configuration.Name principal.hostname, principal.asset.hostname Direkt aus dem Feld properties.configuration.Name zugeordnet. Wenn leer, wird der Wert aus properties.instance übernommen.
properties.configuration.RemoteSite target.hostname, target.asset.hostname Direkt aus dem Feld properties.configuration.RemoteSite zugeordnet.
properties.configuration.RemoteSubnets principal.resource.attribute.labels[].key:"remote subnets", value Verketteter String von IP-Adressen aus dem properties.configuration.RemoteSubnets-Array, wenn operationName „SetConnectionConfiguration“ ist.
properties.configuration.RemoteTunnelEndpoint target.ip, target.asset.ip Direkt aus dem Feld properties.configuration.RemoteTunnelEndpoint zugeordnet, wenn operationName „SetConnectionConfiguration“ ist.
properties.configuration.VIPAddress principal.ip, principal.asset.ip Direkt aus dem Feld properties.configuration.VIPAddress zugeordnet, wenn operationName „SetGatewayConfiguration“ ist.
properties.configuration.VirtualNetworkRanges principal.resource.attribute.labels[].key:"virutal network ranges", value Verketteter String von IP-Adressen aus dem properties.configuration.VirtualNetworkRanges-Array, wenn operationName „SetGatewayConfiguration“ ist.
properties.configuration.VirtualNetworkSubnets principal.resource.attribute.labels[].key:"virtual network subnets", value Verketteter String von IP-Adressen aus dem properties.configuration.VirtualNetworkSubnets-Array, wenn operationName „SetGatewayConfiguration“ ist.
properties.error_info additional.fields[].key:"error_info", value.string_value Direkt aus dem Feld properties.error_info zugeordnet.
properties.host principal.hostname, principal.asset.hostname Direkt aus dem Feld properties.host zugeordnet, wenn properties.originalHost leer ist.
properties.httpMethod network.http.method Direkt aus dem Feld properties.httpMethod zugeordnet.
properties.httpStatus network.http.response_code Direkt aus dem Feld properties.httpStatus zugeordnet und in eine Ganzzahl konvertiert.
properties.httpVersion network.application_protocol Wird auf „HTTP“ festgelegt, wenn das Feld properties.httpVersion „HTTP“ enthält.
properties.instance principal.hostname, principal.asset.hostname Wird als Wert für principal.hostname verwendet, wenn properties.configuration.Name leer ist.
properties.message metadata.description Direkt aus dem Feld properties.message zugeordnet.
properties.operationName additional.fields[].key:"operationName", value.string_value Direkt aus dem Feld properties.operationName zugeordnet.
properties.operationStatus security_result.category_details Direkt aus dem Feld properties.operationStatus zugeordnet. Wenn der Wert „Success“ oder „InProgress“ ist, wird security_result.action auf „ALLOW“ gesetzt.
properties.originalHost principal.hostname, principal.asset.hostname Direkt aus dem Feld properties.originalHost zugeordnet.
properties.originalRequestUriWithArgs additional.fields[].key:"originalRequestUriWithArgs", value.string_value Direkt aus dem Feld properties.originalRequestUriWithArgs zugeordnet.
properties.receivedBytes network.received_bytes Direkt aus dem Feld properties.receivedBytes abgeleitet und in eine vorzeichenlose Ganzzahl konvertiert.
properties.requestQuery additional.fields[].key:"requestQuery", value.string_value Direkt aus dem Feld properties.requestQuery zugeordnet.
properties.requestUri target.url Direkt aus dem Feld properties.requestUri zugeordnet.
properties.sentBytes network.sent_bytes Direkt aus dem Feld properties.sentBytes abgeleitet und in eine vorzeichenlose Ganzzahl konvertiert.
properties.serverResponseLatency additional.fields[].key:"Server Response Latency", value.string_value Direkt aus dem Feld properties.serverResponseLatency zugeordnet.
properties.serverRouted target.ip, target.asset.ip, target.port Die IP-Adresse und der Port werden mithilfe eines regulären Ausdrucks aus dem Feld properties.serverRouted extrahiert.
properties.sslCipher network.tls.cipher Direkt aus dem Feld properties.sslCipher zugeordnet.
properties.sslClientCertificateIssuerName network.tls.server.certificate.issuer Direkt aus dem Feld properties.sslClientCertificateIssuerName zugeordnet.
properties.sslProtocol network.tls.version Direkt aus dem Feld properties.sslProtocol zugeordnet.
properties.timeTaken additional.fields[].key:"timeTaken", value.string_value Direkt aus dem Feld properties.timeTaken zugeordnet.
properties.transactionId network.session_id Direkt aus dem Feld properties.transactionId zugeordnet.
properties.userAgent network.http.user_agent, network.http.parsed_user_agent Direkt aus dem Feld properties.userAgent zugeordnet. Außerdem wird das Feld in einen geparsten User-Agent umgewandelt und network.http.parsed_user_agent zugeordnet.
properties.WAFEvaluationTime additional.fields[].key:"WAFEvaluationTime", value.string_value Direkt aus dem Feld properties.WAFEvaluationTime zugeordnet.
properties.WAFMode additional.fields[].key:"WAFMode", value.string_value Direkt aus dem Feld properties.WAFMode zugeordnet.
resourceId target.resource.id Direkt aus dem Feld resourceId zugeordnet.
resourceid target.resource.product_object_id Direkt aus dem Feld resourceid zugeordnet.
ruleName security_result.rule_name Direkt aus dem Feld ruleName zugeordnet.
time/timeStamp metadata.event_timestamp, timestamp Wird als Zeitstempel im RFC 3339- oder ISO8601-Format geparst. timeStamp wird bevorzugt, aber time wird verwendet, wenn timeStamp nicht vorhanden ist.
(Parserlogik) metadata.event_type Auf „NETWORK_CONNECTION“ festgelegt, wenn sowohl das Hauptkonto als auch das Ziel vorhanden sind, auf „STATUS_UPDATE“, wenn nur das Hauptkonto vorhanden ist, und andernfalls auf „GENERIC_EVENT“.
(Parserlogik) metadata.product_name Legen Sie diesen Wert auf „Azure Gateway“ fest.
(Parserlogik) metadata.vendor_name Legen Sie diesen Wert auf „Microsoft“ fest.
(Parserlogik) has_principal Ein boolescher Parameter, der auf „true“ gesetzt wird, wenn Hauptinformationen (Hostname, IP oder Port) extrahiert werden, andernfalls auf „false“.
(Parserlogik) has_target Ein boolescher Parameter, der auf „true“ gesetzt wird, wenn Zielinformationen (Hostname, IP, Port, Ressourcen-ID oder URL) extrahiert werden, andernfalls auf „false“.
(Parserlogik) disambiguation_key Wird hinzugefügt, wenn mehrere Ereignisse aus einem einzelnen Logeintrag extrahiert werden.