F5 BIG-IP ASM-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie F5 BIG-IP Application Security Manager-Logs (ASM) mithilfe von Bindplane in Google Security Operations aufnehmen. Der Parser verarbeitet verschiedene Logformate (Syslog, CSV, CEF usw.) und normalisiert sie in das UDM. Sie verwendet Grok-Muster und Schlüssel/Wert-Extraktionen zum Parsen von Feldern, XML-Filterung für Details zu Verstößen, bedingte Logik für die Ereigniskategorisierung und die Zuordnung von Schweregraden und führt extrahierte Felder in das UDM-Schema ein.

Hinweise

  • Prüfen Sie, ob Sie eine Google Security Operations-Instanz haben.
  • Achten Sie darauf, dass Sie Windows 2016 oder höher oder einen Linux-Host mit systemd verwenden.
  • Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.
  • Prüfen Sie, ob Sie privilegierten Zugriff auf F5 BIG-IP ASM haben.

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Fenstereinbau

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Zusätzliche Installationsressourcen

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

  1. Greifen Sie auf die Konfigurationsdatei zu:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Öffnen Sie die Datei mit einem Texteditor (z. B. nano, vi oder Notepad).
  2. Bearbeiten Sie die Datei config.yamlso:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: F5_ASM
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kunden-ID.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  • Wenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Remote-Logging auf F5 BIG-IP ASM konfigurieren

  1. Melden Sie sich in der ASM Console-Web-UI an.
  2. Rufen Sie Sicherheit > Ereignisprotokolle > Protokollierungsprofile auf.
  3. Klicken Sie auf Erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:

    • Profilname: Geben Sie einen eindeutigen Namen für das Profil ein.
    • Wählen Sie Anwendungssicherheit aus.
    • Wählen Sie auf dem Tab „Anwendungssicherheit“ die Option Erweitert aus, falls zusätzliche Konfigurationen erforderlich sind.
    • Speicherziel: Wählen Sie Remotespeicher aus.
    • Logging Format (Protokollierungsformat): Wählen Sie Common Event Format (CEF) aus.
    • Löschen Sie den lokalen Speicher.
    • Protocol (Protokoll): Wählen Sie UDP oder TCP aus (je nach Konfiguration des Bindplane-Agents).
    • Server Addresses (Serveradressen): Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Port: Standardmäßig ausgewählt 514. Aktualisieren Sie die Porteinstellung entsprechend Ihrer Bindplane-Agent-Konfiguration.
    • Klicken Sie auf Hinzufügen.
    • Wählen Sie Garantieprotokollierung aus.
    • Wählen Sie Erkannte Anomalien melden aus.
    • Einrichtung: Wählen Sie LOG_LOCAL6 aus. Optional können Sie die Kategorie der Einrichtung für den erfassten Traffic auswählen. Die möglichen Werte sind LOG_LOCAL0 bis LOG_LOCAL7.
  5. Klicken Sie auf Fertig.

Logging-Profil mit einer Sicherheitsrichtlinie verknüpfen

  1. Klicken Sie auf Lokaler Traffic > Virtuelle Server.
  2. Klicken Sie auf den Namen des virtuellen Servers, der von der Sicherheitsrichtlinie verwendet wird.
  3. Wählen Sie im Menü Sicherheit die Option Richtlinien aus.
  4. Achten Sie darauf, dass die Einstellung Application Security Policy (Anwendungssicherheitsrichtlinie) auf Enabled (Aktiviert) gesetzt ist und dass Policy (Richtlinie) auf die gewünschte Sicherheitsrichtlinie festgelegt ist.
  5. Prüfe, ob die Einstellung Log-Profil auf Aktiviert festgelegt ist.
  6. Wählen Sie in der Liste Verfügbar das Profil aus, das für die Sicherheitsrichtlinie verwendet werden soll, und verschieben Sie es in die Liste Ausgewählt.
  7. Klicken Sie auf Aktualisieren.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
act security_result.action Wenn act den Wert blocked hat, entspricht das BLOCK. Wenn act passed oder legal ist, wird ALLOW zugeordnet. Wenn act alerted enthält, wird QUARANTINE zugeordnet. Andernfalls wird für das Splunk-Format standardmäßig ALLOW verwendet.
app network.application_protocol Wird direkt HTTPS zugeordnet, wenn es im Rohlog vorhanden ist.
attack_type security_result.category_details, metadata.description Wird in Verbindung mit anderen Feldern verwendet, um security_result.category zu bestimmen. Wenn keine andere Beschreibung verfügbar ist, wird sie zur Ereignisbeschreibung. Bei Protokollen im Splunk-Format wird damit die Kategorie und die Zusammenfassung bestimmt, wenn violations leer ist.
client_ip principal.ip, principal.asset.ip Wird direkt der primären IP-Adresse zugeordnet.
cn1 network.http.response_code Wird direkt dem HTTP-Antwortcode zugeordnet.
cn2 security_result.severity_details Wird direkt den Schweregradinformationen des Sicherheitsergebnisses zugeordnet. Wird mit response_code verwendet, um festzustellen, ob ein Ereignis eine Benachrichtigung ist.
column1 principal.ip, principal.asset.ip Wird der primären IP-Adresse für bestimmte CSV-formatierte Protokolle zugeordnet.
column2 target.port Wird dem Zielport für bestimmte CSV-formatierte Protokolle zugeordnet.
column3 target.ip, target.asset.ip Entspricht der Ziel-IP für bestimmte Protokolle im CSV-Format.
column4 security_result.severity Ordnet die Schweregrade von Sicherheitsergebnissen bestimmten CSV-formatierten Protokollen zu. Die Werte Information, Informational, 0 und 4 entsprechen INFORMATIONAL. Warning, 1 und 3 werden MEDIUM zugeordnet. Error und 2 werden ERROR zugeordnet. Critical, CRITICAL und critical werden CRITICAL zugeordnet.
column7 security_result.detection_fields, network.http.response_code Enthält XML-Daten. viol_name in request-violations wird extrahiert und als Erkennungsfelder mit dem Schlüssel Request Violation Name_index hinzugefügt. viol_name in response_violations wird extrahiert und als Erkennungsfelder mit dem Schlüssel Response Violation Name_index hinzugefügt. response_code in response_violations entspricht network.http.response_code.
column8 security_result.rule_name Wird bestimmten Protokollen im CSV-Format dem Namen der Regel für das Sicherheitsergebnis zugeordnet.
cs1 security_result.rule_name Wird direkt dem Namen der Sicherheitsergebnisregel zugeordnet.
cs2 security_result.summary Wird direkt der Zusammenfassung der Sicherheitsergebnisse zugeordnet.
cs5 principal.ip, principal.asset.ip, additional.fields Wenn cs5 eine JNDI-LDAP-URL enthält, wird sie als zusätzliches Feld mit dem Schlüssel JNDI_LDAP_URL hinzugefügt. Andernfalls wird jede IP-Adresse, die sich von principal_ip unterscheidet, als zusätzliche primäre IP-Adresse hinzugefügt, wenn sie durch Kommas getrennt ist.
cs6 principal.location.country_or_region Wird direkt dem Land oder der Region des Hauptstandorts zugeordnet.
data network.session_id, network.sent_bytes, network.tls.version Falls vorhanden, wird der Wert als JSON geparst, um sessionid, bits (zugeordnet zu sent_bytes) und version zu extrahieren.
date_time metadata.event_timestamp Wird nach dem Parsen und Konvertieren in das richtige Format direkt dem Zeitstempel des Ereignisses zugeordnet.
dest_ip target.ip, target.asset.ip Wird direkt der Ziel-IP zugeordnet.
dest_port target.port Wird direkt dem Zielport zugeordnet.
dhost target.hostname Wird direkt dem Ziel-Hostname zugeordnet.
dpt target.port Wird direkt dem Zielport zugeordnet.
dst target.ip Wird direkt der Ziel-IP zugeordnet.
dvc intermediary.ip Wird direkt der Zwischen-IP zugeordnet.
dvchost target.hostname, intermediary.hostname Wird direkt dem Ziel-Hostname und dem Zwischen-Hostname zugeordnet.
errdefs_msgno additional.fields Als zusätzliches Feld mit dem Schlüssel errdefs_msgno hinzugefügt.
externalId additional.fields Als zusätzliches Feld mit dem Schlüssel Support_Id hinzugefügt.
f5_host target.hostname, intermediary.hostname Wird direkt dem Ziel-Hostname und dem Zwischen-Hostname zugeordnet.
geo_info principal.location.country_or_region, security_result.detection_fields Entspricht dem Land oder der Region des Hauptstandorts. Wird auch als Erkennungsfeld mit dem Schlüssel geo_info hinzugefügt.
host target.hostname Wird direkt dem Ziel-Hostname zugeordnet.
ids additional.fields Wird als durch Kommas getrennte Liste von Support-IDs geparst. Jede ID wird einem zusätzlichen Feld mit dem Schlüssel supportid hinzugefügt, das eine Liste als Wert hat.
ip_addr_intelli security_result.detection_fields Als Erkennungsfeld mit dem Schlüssel ip_addr_intelli hinzugefügt.
ip_client principal.ip Wird direkt der primären IP-Adresse zugeordnet.
ip_route_domain principal.ip, principal.asset.ip Der IP-Anteil wird extrahiert und der Haupt-IP zugeordnet.
irule security_result.rule_name Wird direkt dem Namen der Sicherheitsergebnisregel zugeordnet.
irule-version security_result.rule_version Wird direkt der Version der Regel für das Sicherheitsergebnis zugeordnet.
level security_result.severity, security_result.severity_details Wird verwendet, um den Schweregrad des Sicherheitsergebnisses zu bestimmen. error oder warning entsprechen HIGH. notice entspricht MITTEL. information oder info entsprechen NIEDRIG. Der Rohwert wird auch severity_details zugeordnet.
logtime metadata.event_timestamp Wird nach dem Parsen direkt dem Ereigniszeitstempel zugeordnet.
management_ip_address, management_ip_address_2 intermediary.ip Wird direkt der Zwischen-IP zugeordnet.
method network.http.method Wird direkt der HTTP-Methode zugeordnet.
msg security_result.summary, metadata.description Wird für einige Logformate direkt der Zusammenfassung der Sicherheitsergebnisse zugeordnet. Wenn keine andere Beschreibung verfügbar ist, wird sie zur Ereignisbeschreibung.
policy_name security_result.about.resource.name, security_result.rule_name Wird direkt dem Ressourcennamen oder dem Namen der Sicherheitsergebnisse zugeordnet.
process target.application Wird direkt der Zielanwendung zugeordnet.
process_id principal.process.pid Wird direkt der Hauptprozess-ID zugeordnet.
protocol network.application_protocol, network.ip_protocol, app_protocol Wird je nach Logformat direkt dem Anwendungsprotokoll oder dem IP-Protokoll zugeordnet.
proxy_id security_result.rule_id Wird direkt der Regel-ID des Sicherheitsergebnisses zugeordnet.
query_string additional.fields Als zusätzliches Feld mit dem Schlüssel query_string hinzugefügt.
referrer network.http.referral_url Entspricht direkt der HTTP-Referrer-URL.
req_method network.http.method Wird direkt der HTTP-Methode zugeordnet.
req_status security_result.action, security_result.action_details, security_result.detection_fields Wenn blocked, wird security_result.action BLOCK zugeordnet. Wenn passed oder legal auf ALLOW festgelegt ist. Wenn alerted enthalten ist, wird QUARANTINE zugeordnet. Der Rohwert wird auch action_details zugeordnet und als Erkennungsfeld mit dem Schlüssel req_status hinzugefügt.
request target.url Wird direkt der Ziel-URL zugeordnet.
requestMethod network.http.method Wird direkt der HTTP-Methode zugeordnet.
resp security_result.detection_fields Als Erkennungsfeld mit dem Schlüssel resp hinzugefügt.
resp_code network.http.response_code Wird direkt dem HTTP-Antwortcode zugeordnet.
response security_result.summary Wird direkt der Zusammenfassung der Sicherheitsergebnisse zugeordnet.
response_code network.http.response_code Wird direkt dem HTTP-Antwortcode zugeordnet.
route_domain additional.fields Als zusätzliches Feld mit dem Schlüssel route_domain hinzugefügt.
rt metadata.event_timestamp Wird nach dem Parsen direkt dem Ereigniszeitstempel zugeordnet.
sev security_result.severity, security_result.severity_details Wird verwendet, um den Schweregrad des Sicherheitsergebnisses zu bestimmen. ERROR wird ERROR zugeordnet. Der Rohwert wird auch severity_details zugeordnet.
severity security_result.severity, security_result.severity_details Wird verwendet, um den Schweregrad des Sicherheitsergebnisses zu bestimmen. Informational entspricht LOW, Error oder warning entsprechen HIGH, critical entspricht CRITICAL, notice entspricht MEDIUM, information oder info entsprechen LOW. Der Rohwert wird auch severity_details zugeordnet.
sig_ids security_result.rule_id Wird direkt der Regel-ID des Sicherheitsergebnisses zugeordnet.
sig_names security_result.rule_name Wird direkt dem Namen der Sicherheitsergebnisregel zugeordnet.
snat_ip principal.nat_ip Wird direkt der primären NAT-IP-Adresse zugeordnet.
snat_port principal.nat_port Wird direkt dem NAT-Port des Hauptkontos zugeordnet.
src principal.ip, principal.asset.ip Wird direkt der primären IP-Adresse zugeordnet.
spt principal.port Wird direkt dem Hauptport zugeordnet.
sub_violates security_result.about.resource.attribute.labels Als Label mit dem Schlüssel Sub Violations zu den Attributen der Sicherheitsergebnisressource hinzugefügt.
sub_violations security_result.about.resource.attribute.labels Als Label mit dem Schlüssel Sub Violations zu den Attributen der Sicherheitsergebnisressource hinzugefügt.
summary security_result.summary Wird direkt der Zusammenfassung der Sicherheitsergebnisse zugeordnet.
support_id metadata.product_log_id Mit support_id - als Präfix und der Produktprotokoll-ID zugeordnet.
suid network.session_id Entspricht direkt der Netzwerk-Sitzungs-ID.
suser principal.user.userid Wird direkt der Hauptnutzer-ID zugeordnet.
timestamp metadata.event_timestamp Wird nach dem Parsen und Konvertieren in das richtige Format direkt dem Zeitstempel des Ereignisses zugeordnet.
unit_host principal.hostname, principal.asset.hostname Wird direkt dem primären Hostnamen zugeordnet.
uri principal.url Wird direkt der Haupt-URL zugeordnet.
user_id principal.user.userid Wird direkt der Hauptnutzer-ID zugeordnet.
user_name principal.user.user_display_name Entspricht direkt dem Anzeigenamen des Hauptnutzers.
username principal.user.userid Wird direkt der Hauptnutzer-ID zugeordnet.
useragent network.http.user_agent, network.http.parsed_user_agent Entspricht direkt dem HTTP-User-Agent. Wird ebenfalls analysiert und dem analysierten User-Agent zugeordnet.
virtualserver network.tls.client.server_name Entspricht direkt dem TLS-Client-Servernamen.
violate_details security_result.detection_fields, network.http.response_code Enthält XML-Daten. viol_name in request-violations wird extrahiert und als Erkennungsfelder mit dem Schlüssel Request Violation Name_index hinzugefügt. viol_name in response_violations wird extrahiert und als Erkennungsfelder mit dem Schlüssel Response Violation Name_index hinzugefügt. response_code in response_violations entspricht network.http.response_code.
violate_rate security_result.detection_fields Als Erkennungsfeld mit dem Schlüssel violate_rate hinzugefügt.
violation_rating security_result.about.resource.attribute.labels Als Label mit dem Schlüssel Violations Rating zu den Attributen der Sicherheitsergebnisressource hinzugefügt.
violations security_result.description Wird direkt der Beschreibung des Sicherheitsergebnisses zugeordnet. Bei Protokollen im Splunk-Format wird damit die Zusammenfassung ermittelt, sofern vorhanden.
virus_name security_result.threat_name Wird direkt dem Namen der Sicherheitsbedrohung zugeordnet.
vs_name network.tls.client.server_name Entspricht direkt dem TLS-Client-Servernamen.
websocket_direction network.direction Wenn clientToServer, wird INBOUND zugeordnet. Wenn ServerToclient, entspricht das OUTBOUND.
websocket_message_type security_result.detection_fields Als Erkennungsfeld mit dem Schlüssel WebsocketMessageType hinzugefügt.
x_fwd_hdr_val principal.ip, principal.asset.ip Wird direkt der primären IP-Adresse zugeordnet.

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