F5 BIG-IP APM-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie F5 BIG-IP Access Policy Manager-Logs (APM) mit einem Google Security Operations-Forwarder erfassen können.
Weitere Informationen finden Sie unter Datenaufnahme in Google Security Operations.
Ein Erfassungslabel identifiziert den Parser, der Rohdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Aufnahme-Label F5_BIGIP_APM
.
F5 BIG-IP APM konfigurieren
- Melden Sie sich mit Administratoranmeldedaten im Portal des BIG-IP-Konfigurationsdienstprogramms an.
- Wählen Sie Main > System > Logs > Configuration > Remote logging aus.
Führen Sie im Abschnitt Eigenschaften folgende Schritte aus:
- Geben Sie im Feld Remote-IP die IP-Adresse des Google Security Operations-Forwarders ein.
- Geben Sie im Feld Remote-Port eine hohe Portnummer ein.
Klicken Sie auf Hinzufügen.
Klicken Sie auf Aktualisieren.
Für Logs von APM wird nur das BSD-Syslog-Format (Berkeley Software Distribution) unterstützt.
Anhand der Signaturen im APM verarbeitet der Collector nur APM-Logs. Der F5 BIG-IP APM-Ereignis-Collector unterstützt auch Multi-Threading-Logs von LTM-Geräten mit Version 11.6 bis 12.1.1.
Wenn Sie iRule verwenden, nutzen Sie das empfohlene Format von iRule. Google Security Operations unterstützt nur das folgende iRule-Format:
# log_header_requests ################################################################################### ################################################# # Purpose: logs header information to Local Traffic log # # # # Update-Log Date By Description # Created 02/07/2020 E01961 Initial implementation # # ################################################################################### ################################################ when HTTP_REQUEST { set LogString "Client [IP::client_addr]:[TCP::client_port] -> [HTTP::host] [HTTP::uri]" log local5. "=================" log local5. "$LogString (request)" foreach aHeader [HTTP::header names] { log local5. "$aHeader: [HTTP::header value $aHeader]" } # set UserID [URI::query "?[HTTP::payload]" "UserID"] # log local0. "User $UserID attempted login from [IP::client_addr] and referer: [HTTP::header "Referer"]" # log local0. "=============================================" } when HTTP_RESPONSE { log local5. "==================" log local5. "$LogString (response) - status: [HTTP::status]" foreach aHeader [HTTP::header names] { log local5. "$aHeader: [HTTP::header value $aHeader]" } # log local0. "============================================="
F5 BIG-IP DNS konfigurieren
So konfigurieren Sie F5 BIG-IP DNS:
- Pool mit Remote-Logging-Servern erstellen
- Remote-Ziel für High-Speed-Logs erstellen
- Formatiertes Remote-Ziel für High-Speed-Logs erstellen
- Publisher erstellen
- Benutzerdefiniertes DNS-Logging-Profil erstellen
- Fügen Sie dem Listener ein DNS-Logging-Profil hinzu.
Pool von Remote-Logging-Servern erstellen
- Wählen Sie auf dem Tab Main (Haupt) DNS > Delivery (Bereitstellung) > Load balancing (Lastenausgleich) > Pools or local traffic (Pools oder lokaler Traffic) > Pools aus.
- Klicken Sie im Fenster Pool list (Poolliste), das angezeigt wird, auf Create (Erstellen).
- Geben Sie im Fenster Neuer Pool, das angezeigt wird, im Feld Name einen eindeutigen Namen für den Pool ein.
- Fügen Sie im Abschnitt Neue Mitglieder die IP-Adresse für jeden Remote-Logging-Server hinzu, den Sie in den Pool aufnehmen möchten:
- Geben Sie im Feld Adresse die IP-Adresse des Google Security Operations-Forwarders ein oder wählen Sie eine Knotenadresse aus der Knotenliste aus.
- Geben Sie im Feld Serviceport eine Servicenummer ein oder wählen Sie einen Servicenamen aus der Liste aus. Prüfen Sie, ob Sie den richtigen Port für die Remote-Protokollierung konfiguriert haben.
- Klicken Sie auf Hinzufügen und dann auf Fertig.
Schnelles Remote-Logziel erstellen
- Wählen Sie auf dem Tab Main (Haupt) System > Logs > Configuration (Konfiguration) > Log destinations (Log-Ziele) aus.
- Klicken Sie im angezeigten Fenster Log-Ziele auf Erstellen.
- Geben Sie im Feld Name einen eindeutigen und identifizierbaren Namen für dieses Ziel an.
- Wählen Sie in der Liste Typ die Option Remote-High-Speed-Log aus.
- Wählen Sie in der Liste Poolname den Pool von Remote-Log-Servern aus, an den das BIG-IP-System Log-Meldungen senden soll.
- Wählen Sie in der Liste Protokoll das Protokoll aus, das von den Mitgliedern des Pools für die schnelle Protokollierung verwendet wird.
- Klicken Sie auf Fertig.
Formatiertes Remote-Ziel für High-Speed-Logs erstellen
- Wählen Sie auf dem Tab Main (Haupt) System > Logs > Configuration > Log Destinations (Log-Ziele) aus.
- Klicken Sie im angezeigten Fenster Log-Ziele auf Erstellen.
- Geben Sie im Feld Name einen eindeutigen und identifizierbaren Namen für dieses Ziel an.
- Wählen Sie in der Liste Typ ein formatiertes Protokollierungsziel als Remote-Syslog aus. Das BIG-IP-System ist jetzt so konfiguriert, dass es einen formatierten Textstring an die Protokollserver sendet.
- Wählen Sie in der Liste Typ ein Format für die Logs aus.
- Wählen Sie auf dem Tab Weiterleiten an die Liste Ziel für High-Speed-Logs aus und wählen Sie dann das Ziel aus, das auf einen Pool von Remote-Syslog-Servern verweist, an die das BIG-IP-System Logmeldungen senden soll.
- Klicken Sie auf Fertig.
Verlag oder Webpublisher erstellen
- Wählen Sie auf dem Tab Main (Haupt) System > Logs > Configuration (Konfiguration) > Log publishers (Log-Publisher) aus.
- Klicken Sie im Fenster Log publishers (Log-Publisher) auf Create (Erstellen).
- Geben Sie im Feld Name einen eindeutigen und leicht identifizierbaren Namen für den Verlag an.
- Wählen Sie in der Liste Log-Publisher das zuvor erstellte Ziel aus der verfügbaren Liste aus.
- Wenn Sie das Ziel in die ausgewählte Liste verschieben möchten, klicken Sie auf << Verschieben.
- Wenn Sie ein formatiertes Ziel verwenden, wählen Sie das neu erstellte Ziel aus, das Ihren Logservern entspricht, z. B. Remote-Syslog, Splunk oder ArcSight.
- Klicken Sie auf Fertig.
Benutzerdefiniertes DNS-Logging-Profil erstellen
- Wählen Sie auf dem Tab Main (Haupt) DNS > Delivery (Zustellung) > Profiles (Profile) > Other (Sonstiges) DNS Logging (DNS-Protokollierung) oder Local traffic (Lokaler Traffic) > Profiles (Profile) > Others (Andere) > DNS logging (DNS-Protokollierung) aus.
- Klicken Sie im Fenster DNS Logging profile list (Liste der DNS-Protokollierungsprofile) auf Create (Erstellen).
- Geben Sie im Feld Name einen eindeutigen Namen für das Profil ein.
- Wählen Sie in der Liste Log-Publisher ein Ziel aus, an das das BIG-IP-System DNS-Logeinträge sendet.
- Wenn Sie möchten, dass das BIG-IP-System:
- Wenn Sie alle DNS-Abfragen protokollieren möchten, muss in der Einstellung Log queries (Abfragen protokollieren) das Kästchen für „Aktiviert“ angeklickt sein.
- Wenn Sie alle DNS-Antworten protokollieren möchten, wählen Sie in der Einstellung Antworten protokollieren das aktivierte Kästchen aus.
- Wenn Sie die vom Client gesendete Abfrage-ID in die Logmeldungen aufnehmen möchten, wählen Sie in der Einstellung Abfrage-ID einfügen das aktivierte Kästchen aus.
- Klicken Sie auf Fertig.
Dem Listener ein DNS-Logging-Profil hinzufügen
- Wählen Sie auf dem Tab Main (Haupt) DNS > Delivery (Bereitstellung) > Listeners (Listener) > DNS listener (DNS-Listener) aus.
- Wählen Sie im Bereich Dienst in der Liste DNS-Profil das DNS-Profil aus, das Sie zuvor konfiguriert haben.
- Klicken Sie auf Aktualisieren.
Google Security Operations-Forwarder für die Aufnahme von F5 BIG-IP APM-Protokollen konfigurieren
- Rufen Sie die SIEM-Einstellungen > Weiterleitungen auf.
- Klicken Sie auf Neuen Weiterleitungsdienst hinzufügen.
- Geben Sie im Feld Name des Forwarders einen eindeutigen Namen für den Forwarder ein.
- Klicken Sie auf Senden. Der Forwarder wird hinzugefügt und das Fenster Collector-Konfiguration hinzufügen wird angezeigt.
- Geben Sie im Feld Name des Collectors einen Namen ein.
- Wählen Sie F5 BIGIP Access Policy Manager als Logtyp aus.
- Wählen Sie Syslog als Collector-Typ aus.
- Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
- Protokoll: Geben Sie das Protokoll an.
- Adresse: Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, auf dem sich der Collector befindet, und die Adressen für die Syslog-Daten.
- Port: Geben Sie den Zielport an, an dem sich der Collector befindet und an dem er auf Syslog-Daten wartet.
- Klicken Sie auf Senden.
Weitere Informationen zu den Google Security Operations-Forwardern finden Sie unter Forwarder-Konfigurationen über die Google Security Operations-Benutzeroberfläche verwalten.
Wenn beim Erstellen von Weiterleitungen Probleme auftreten, wenden Sie sich an den Google Security Operations-Support.
Referenz zur Feldzuordnung
Dieser F5 BIG-IP APM-Parser extrahiert Felder aus Syslog-Nachrichten und kategorisiert sie anhand der Anwendungsquelle (tmsh, tmm, apmd, httpd oder andere). Anschließend werden diese extrahierten Felder der UDM zugeordnet. Dabei werden verschiedene Logformate verarbeitet und die Daten werden mit Metadaten wie Schweregrad, Standort und Nutzerinformationen angereichert.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
Anwendung | principal.application | Der Wert wird aus dem Feld application übernommen, das vom Grok-Filter extrahiert wurde. |
bytes_in | network.received_bytes | Der Wert wird aus dem Feld bytes_in übernommen, das vom Grok-Filter extrahiert und in eine vorzeichenlose Ganzzahl konvertiert wird. |
bytes_out | network.sent_bytes | Der Wert wird aus dem Feld bytes_out übernommen, das vom Grok-Filter extrahiert und in eine vorzeichenlose Ganzzahl konvertiert wird. |
cmd_data | principal.process.command_line | Der Wert stammt aus dem Feld cmd_data , das vom kv-Filter extrahiert wird. |
destination_ip | target.ip | Der Wert wird aus dem Feld destination_ip übernommen, das vom Grok-Filter extrahiert wurde. |
destination_port | target.port | Der Wert wird aus dem Feld destination_port übernommen, das vom Grok-Filter extrahiert und in eine Ganzzahl konvertiert wurde. |
Ordner | principal.process.file.full_path | Der Wert stammt aus dem Feld folder , das vom kv-Filter extrahiert wird. |
geoCountry | principal.location.country_or_region | Der Wert wird aus dem Feld geoCountry übernommen, das vom Grok-Filter extrahiert wurde. |
geoState | principal.location.state | Der Wert wird aus dem Feld geoState übernommen, das vom Grok-Filter extrahiert wurde. |
inner_msg | security_result.description | Der Wert stammt aus dem Feld inner_msg , das vom Grok-Filter extrahiert wird, wenn keine andere spezifische Beschreibung verfügbar ist. |
ip_protocol | network.ip_protocol | Der Wert wird aus dem Feld ip_protocol übernommen, das vom Grok-Filter extrahiert wurde. |
principal_hostname | principal.hostname | Der Wert wird aus dem Feld principal_hostname übernommen, das vom Grok-Filter extrahiert wurde. |
principal_ip | principal.ip | Der Wert wird aus dem Feld principal_ip übernommen, das vom Grok-Filter extrahiert wurde. |
process_id | principal.process.pid | Der Wert wird aus dem Feld process_id übernommen, das vom Grok-Filter extrahiert wurde. |
Rolle | user_role.name | Der Wert wird aus dem Feld role übernommen, das vom Grok-Filter extrahiert wurde. Wenn das Feld role „admin“ (Groß-/Kleinschreibung wird nicht berücksichtigt) enthält, wird der Wert auf „ADMINISTRATOR“ festgelegt. |
die Ausprägung | security_result.severity_details | Hier wird der ursprüngliche Wert aus der Syslog-Nachricht gespeichert. Der Wert wird aus dem Feld severity mithilfe von bedingter Logik abgeleitet: CRITICAL -> CRITICAL ERR -> ERROR ALERT, EMERGENCY -> HIGH INFO, NOTICE -> INFORMATIONAL DEBUG -> LOW WARN -> MEDIUM |
source_ip | principal.ip | Der Wert wird aus dem Feld source_ip übernommen, das vom Grok-Filter extrahiert wurde. |
source_port | principal.port | Der Wert wird aus dem Feld source_port übernommen, das vom Grok-Filter extrahiert und in eine Ganzzahl konvertiert wurde. |
Status | security_result.summary | Der Wert stammt aus dem Feld status , das vom kv-Filter extrahiert wird. |
timestamp | metadata.event_timestamp, timestamp | Der Wert stammt aus dem Feld timestamp , das vom Grok-Filter extrahiert und in ein Zeitstempelobjekt geparst wird. Das Feld timestamp im event -Objekt der obersten Ebene erhält ebenfalls diesen Wert. |
Nutzer | principal.user.userid | Der Wert wird aus dem Feld user übernommen, das vom Grok-Filter extrahiert wurde, nachdem die Präfixe „id\“ oder „ID\“ entfernt wurden. Der Wert wird anhand des Vorhandenseins anderer Felder abgeleitet: Wenn user vorhanden ist: USER_UNCATEGORIZED Wenn source_ip und destination_ip vorhanden sind: NETWORK_CONNECTION Wenn principal_ip oder principal_hostname vorhanden sind: STATUS_UPDATE Andernfalls: GENERIC_EVENT Fester Wert: „BIGIP_APM“. Fest codiert auf „F5“. Wenn das Feld result „failed“ ist, wird der Wert auf „BLOCK“ gesetzt. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten