F5 AFM-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie F5 Advanced Firewall Management-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser wandelt die Logs entweder aus SYSLOG- und CSV- oder CSV-Formaten in ein einheitliches Datenmodell (Unified Data Model, UDM) um. Zuerst wird versucht, die Log-Nachricht mit Grok-Mustern zu parsen, die für das SYSLOG-Format spezifisch sind. Wenn das nicht gelingt, wird sie als CSV-Datei verarbeitet und Felder werden extrahiert und der UDM-Struktur zugeordnet.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Google SecOps-Instanz
- Windows 2016 oder höher oder ein Linux-Host mit
systemd - Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
- Berechtigter Zugriff auf F5 BIG-IP und F5 Advanced Firewall Management
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie SIEM-Einstellungen > Collection Agents auf.
- 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
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
- Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.
Fenstereinbau
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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
Weitere Installationsoptionen finden Sie im Installationsleitfaden.
BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
- Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis/etc/bindplane-agent/oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor (z. B.
nano,vioder Notepad).
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yamlso:receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:5145" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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_AFM' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels- Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
- Ersetzen Sie
<customer_id>durch die tatsächliche Kundennummer. - Aktualisieren Sie
/path/to/ingestion-authentication-file.jsonauf 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-agentWenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Services verwenden oder den folgenden Befehl eingeben:
net stop BindPlaneAgent && net start BindPlaneAgent
F5 BIG-IP Advanced Firewall Manager aktivieren
- Melden Sie sich in der Verwaltungskonsole der BIG-IP-Appliance an.
- Gehen Sie zu System > Lizenz.
- Prüfen Sie, ob der Advanced Firewall Manager lizenziert und aktiviert ist.
- Um den Advanced Firewall Manager zu aktivieren, gehen Sie zu System > Ressource > Bereitstellung.
- Setzen Sie ein Häkchen in der Spalte „Bereitstellung“ und wählen Sie Nominal aus der Liste aus.
- Klicken Sie auf Senden.
Logging-Pool in F5 AFM konfigurieren
- Gehen Sie zu Lokaler Traffic > Pools.
- Klicken Sie auf Erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen für den Logging-Pool ein, z. B. logging_pool.
- Health Monitor (Zustandsmonitor): Wählen Sie in der Liste Available (Verfügbar) die Option TCP aus und klicken Sie auf <<.
- Wählen Sie auf dem Tab Ressource in der Liste Knotenname den zuvor erstellten Logging Pool (Protokollierungspool) aus.
- Geben Sie im Feld Adresse die IP-Adresse des Bindplane-Agents ein.
- Geben Sie im Feld Service Port (Serviceport)
5145oder einen anderen Port ein, den Sie im Bindplane-Agent definiert haben. - Klicken Sie auf Hinzufügen.
- Klicken Sie auf Beenden.
Ziel für formatierte Logs in F5 AFM konfigurieren
- Gehen Sie zu System> Protokolle> Konfiguration> Protokollziele.
- Klicken Sie auf Erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen für das Ziel des Logging-Formats ein, z. B.
Logging_Format_Destination. - Beschreibung: Geben Sie eine Beschreibung ein.
- Typ: Wählen Sie Remote-Syslog aus.
- Syslog Format (Syslog-Format): Wählen Sie Syslog aus.
- High-Speed Log Destination (Ziel für High-Speed-Logs): Wählen Sie das Ziel für High-Speed-Logs aus, z. B.
Logging_HSL_Destination.
- Name: Geben Sie einen Namen für das Ziel des Logging-Formats ein, z. B.
- Klicken Sie auf Fertig.
Log Publisher in F5 AFM konfigurieren
- Gehen Sie zu System> „Logs“ > „Konfiguration“ > „Log-Publisher“.
- Klicken Sie auf Erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen für den Verlag oder Webpublisher ein, z. B.
Log_Publisher. - Beschreibung: Geben Sie eine Beschreibung ein.
- Ziele: Wählen Sie den Namen des Protokollziels aus, den Sie im Schritt Logging-Pool in F5 AFM konfigurieren erstellt haben, und klicken Sie auf <<, um Elemente der Liste Ausgewählt hinzuzufügen.
- Name: Geben Sie einen Namen für den Verlag oder Webpublisher ein, z. B.
Logging-Profil in F5 AFM konfigurieren
- Rufen Sie Sicherheit > Ereignisprotokolle > Protokollierungsprofil auf.
- Klicken Sie auf Erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen für das Logprofil ein, z. B. Logging_Profile.
- Network Firewall: Klicken Sie das Kästchen Aktiviert an.
- Publisher: Wählen Sie den Log-Publisher aus, den Sie zuvor konfiguriert haben (z. B.
Log_Publisher). - Log Rule Matches (Regelübereinstimmungen protokollieren): Aktivieren Sie die Kästchen Accept (Annehmen), Drop (Verwerfen) und Reject (Ablehnen).
- IP-Fehler protokollieren: Klicken Sie das Kästchen Aktiviert an.
- TCP-Fehler protokollieren: Klicken Sie das Kästchen Aktiviert an.
- TCP-Ereignisse protokollieren: Klicken Sie das Kästchen Aktiviert an.
- Speicherformat: Wählen Sie Feldliste aus.
- Trennzeichen: Geben Sie
,(Komma) als Trennzeichen für Ereignisse ein. - Speicheroptionen: Wählen Sie in der Liste Verfügbare Elemente alle Optionen aus und klicken Sie auf <<.
- Wählen Sie auf dem Tab IP Intelligence den konfigurierten Log-Publisher aus (z. B.
Log_Publisher).
- Klicken Sie auf Fertig.
Zuordnung von Profilen zu virtuellen Servern in F5 AFM konfigurieren
- Gehen Sie zu Lokaler Traffic > Virtuelle Server.
- Wählen Sie den zu ändernden virtuellen Server aus.
- Rufen Sie den Tab „Sicherheit“ > „Richtlinien“ auf.
- Wählen Sie in der Liste Log Profile (Protokollprofil) die Option Enabled (Aktiviert) aus.
- Wählen Sie im Feld Profil die Option Logging_Profile aus und klicken Sie auf <<.
- Klicken Sie auf Aktualisieren.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| acl_policy_name | security_result.detection_fields.acl_policy_name | Wert von „column22“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column13“ |
| acl_policy_type | security_result.detection_fields.acl_policy_type | Wert von „column21“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column18“ |
| acl_rule_name | security_result.rule_name | Wert von „column23“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column11“ |
| acl_rule_uuid | security_result.rule_id | Wert des Felds „acl_rule_uuid“ aus dem Grok-Muster |
| Aktion | security_result.action | Wenn der Wert von „column25“ Drop, Reject oder Block ist, dann BLOCK. Wenn der Wert von „column25“ Accept, Accept decisively, Established oder Allow ist, dann ALLOW. |
| attackID | security_result.detection_fields.attackID | Wert von column12, wenn das Logformat CSV ohne src_ip ist |
| bigip_hostname | intermediary.hostname | Wert von „column2“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column3“ |
| bigip_ip | intermediary.ip | Wert von „column2“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column1“ |
| context_name | additional.fields.context_name.string_value | Wert von „column4“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column10“, wenn „src_ip“ vorhanden ist, andernfalls Wert von „column5“ |
| context_type | additional.fields.context_type.string_value | Wert von „column3“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column4“, wenn „src_ip“ vorhanden ist, andernfalls Wert von „column4“ |
| dest_fqdn | additional.fields.dest_fqdn.string_value | Wert von „column7“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column13“ |
| dest_geo | additional.fields.dest_geo.string_value | Wert von column14 |
| dest_ip | target.asset.ip, target.ip | Wert von „column8“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column6“, wenn „src_ip“ vorhanden ist, andernfalls Wert von „column6“ |
| dest_port | target.port | Wert von „column10“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column8“, wenn „src_ip“ vorhanden ist, andernfalls Wert von „column8“ |
| drop_reason | security_result.summary | Wert von „column26“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column19“ |
| eventId | additional.fields.eventId.string_value | Im Grok-Muster erfasster Wert |
| flow_id | additional.fields.flow_id.string_value | Wert von „column29“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column17“ |
| loglevel | security_result.severity | Wenn der Wert des Felds „loglevel“ aus dem Grok-Muster warning, debug oder notice ist, dann MEDIUM. Wenn der Wert info oder informational ist, dann INFORMATIONAL. Wenn der Wert err oder error ist, dann HIGH. Wenn der Wert alert, crit oder emer ist, dann CRITICAL. |
| packetsReceived | network.received_packets | Wert von column15, wenn das Logformat CSV ohne src_ip ist |
| verarbeiten | target.application | Wert des Prozessfelds aus dem Grok-Muster |
| protocol_number_src | network.ip_protocol | Wert von „column12“, wenn das Logformat SYSLOG ist. Andernfalls wird der Wert aus der Variablen „ip_protocol_out“ extrahiert. |
| route_domain | additional.fields.route_domain.string_value | Wert von „column13“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column9“ |
| source_fqdn | additional.fields.source_fqdn.string_value | Wert von „column5“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column7“ |
| src_geo | additional.fields.src_geo.string_value | Wert von column8 |
| src_ip | principal.asset.ip, principal.ip | Wert von „column6“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column9“, wenn das Logformat CSV ohne „src_ip“ ist, andernfalls Wert von „column5“ |
| src_port | principal.port | Wert von „column9“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column7“, wenn das Logformat CSV ohne „src_ip“ ist, andernfalls Wert von „column7“ |
| ts | metadata.event_timestamp | Wert des Felds „ts“ aus dem Grok-Muster |
| vlan | additional.fields.vlan.string_value | Wert von column11, wenn das Logformat SYSLOG ist, andernfalls Wert von column21 |
| metadata.event_type | Wenn src_ip und dest_ip vorhanden sind, dann NETWORK_CONNECTION, andernfalls, wenn nur src_ip vorhanden ist, dann STATUS_UPDATE, andernfalls GENERIC_EVENT | |
| metadata.log_type | F5_AFM | |
| metadata.product_name | Erweiterte Firewall-Verwaltung | |
| metadata.vendor_name | F5 |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten