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-Weiterleiter erfassen.
Weitere Informationen finden Sie unter Datenaufnahme in Google Security Operations.
Mit einem Datenaufnahmelabel wird der Parser identifiziert, der Rohprotokolldaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Datenaufnahmelabel F5_BIGIP_APM
.
F5 BIG-IP APM konfigurieren
- Melden Sie sich mit Administratoranmeldedaten im Portal des BIG-IP-Konfigurationsdienstprogramms an.
- Wählen Sie Haupt > System > Protokolle > Konfiguration > Remote-Logging aus.
Führen Sie im Abschnitt Properties (Eigenschaften) die folgenden Schritte aus:
- Geben Sie im Feld Remote-IP die IP-Adresse des Google Security Operations-Weiterleitungsservers ein.
- Geben Sie im Feld Remote-Port eine hohe Portnummer ein.
Klicken Sie auf Hinzufügen.
Klicken Sie auf Aktualisieren.
Für APM-Protokolle wird nur das BSD-Syslog-Format (Berkeley Software Distribution) unterstützt.
Anhand der Signaturen in der APM verarbeitet der Collector nur APM-Logs. Der F5 BIG-IP APM-Ereignis-Collector unterstützt auch Multi-Threading-Protokolle von LTM 11.6 bis 12.1.1.
Wenn Sie iRule verwenden, verwenden Sie das empfohlene iRule-Format. 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 das F5 BIG-IP-DNS:
- Erstellen Sie einen Pool von Remote-Logging-Servern.
- Erstellen Sie ein Remote-Ziel für Hochgeschwindigkeitsprotokolle.
- Erstellen Sie ein formatiertes Remote-Ziel für Hochgeschwindigkeitsprotokolle.
- Erstellen Sie einen Publisher.
- Erstellen Sie ein benutzerdefiniertes DNS-Logging-Profil.
- Dem Listener ein DNS-Protokollierungsprofil hinzufügen
Pool mit Remote-Logging-Servern erstellen
- Wählen Sie auf dem Tab Haupt die Option DNS > Auslieferung > Load Balancing > Pools oder lokaler Traffic > Pools aus.
- Klicken Sie im angezeigten Fenster Poolliste auf Erstellen.
- Geben Sie im angezeigten Fenster Neuer Pool im Feld Name einen eindeutigen Namen für den Pool ein.
- Fügen Sie im Bereich 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-Weiterleitungsservers ein oder wählen Sie eine Knotenadresse aus der Knotenliste aus.
- Geben Sie im Feld Dienstport eine Dienstnummer ein oder wählen Sie einen Dienstnamen 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.
Remote-Ziel für Hochgeschwindigkeitsprotokolle erstellen
- Wählen Sie auf dem Tab Haupt die Option System > Protokolle > Konfiguration > Protokollziele aus.
- Klicken Sie im angezeigten Fenster Logziele auf Erstellen.
- Geben Sie im Feld Name einen eindeutigen und eindeutig identifizierbaren Namen für dieses Ziel ein.
- Wählen Sie in der Liste Typ die Option Remote-Hochgeschwindigkeitsprotokoll aus.
- Wählen Sie in der Liste Poolname den Pool der Remote-Logserver aus, an die das BIG-IP-System Protokollmeldungen senden soll.
- Wählen Sie in der Liste Protokoll das Protokoll aus, das von den Mitgliedern des Hochgeschwindigkeits-Logging-Pools verwendet wird.
- Klicken Sie auf Fertig.
Formatiertes Remote-Ziel für Hochgeschwindigkeitsprotokolle erstellen
- Wählen Sie auf dem Tab Haupt die Option System > Protokolle > Konfiguration > Protokollziele aus.
- Klicken Sie im angezeigten Fenster Logziele auf Erstellen.
- Geben Sie im Feld Name einen eindeutigen und eindeutig identifizierbaren Namen für dieses Ziel ein.
- Wählen Sie in der Liste Typ ein formatiertes Logging-Ziel als Remote-Syslog aus. Das BIG-IP-System ist jetzt so konfiguriert, dass ein formatierter Textstring an die Protokollserver gesendet wird.
- Wählen Sie in der Liste Typ ein Format für die Protokolle aus.
- Wählen Sie auf dem Tab Weiterleiten an die Liste High-Speed-Log-Ziel und dann das Ziel aus, das auf einen Pool von Remote-Syslog-Servern verweist, an die das BIG-IP-System Protokollnachrichten senden soll.
- Klicken Sie auf Fertig.
Publisher erstellen
- Wählen Sie auf dem Tab Haupt die Option System > Protokolle > Konfiguration > Protokollanbieter aus.
- Klicken Sie im Fenster Publisher erfassen auf Erstellen.
- Geben Sie im Feld Name einen eindeutigen und eindeutig identifizierbaren Namen für den Publisher ein.
- Wählen Sie in der Liste Log-Publisher das zuvor erstellte Ziel 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 Protokollservern entspricht, z. B. Remote syslog, Splunk oder ArcSight.
- Klicken Sie auf Fertig.
Benutzerdefiniertes DNS-Logging-Profil erstellen
- Wählen Sie auf dem Tab Haupt die Option DNS > Auslieferung > Profile > Sonstiges DNS-Protokollierung oder Lokaler Traffic > Profile > Sonstiges > DNS-Protokollierung aus.
- Klicken Sie im Fenster Liste der DNS-Protokollierungsprofile auf 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 das BIG-IP-System verwenden möchten:
- Wenn Sie alle DNS-Abfragen protokollieren möchten, muss bei der Einstellung Abfragen protokollieren das Kästchen „Aktiviert“ angeklickt sein.
- Wenn Sie alle DNS-Antworten protokollieren möchten, klicken Sie bei Antworten protokollieren auf das Kästchen „Aktiviert“.
- Wenn Sie die vom Client gesendete Abfrage-ID in den Protokollnachrichten einschließen möchten, aktivieren Sie die Einstellung Abfrage-ID einschließen.
- Klicken Sie auf Fertig.
Dem Listener ein DNS-Logging-Profil hinzufügen
- Wählen Sie auf dem Tab Haupt die Option DNS > Übermittlung > Listener > DNS-Listener aus.
- Wählen Sie im Bereich Dienst in der Liste DNS-Profil das zuvor konfigurierte DNS-Profil aus.
- Klicken Sie auf Aktualisieren.
Google Security Operations-Weiterleiter für die Aufnahme von F5 BIG-IP-APM-Protokollen konfigurieren
- Gehen Sie zu SIEM-Einstellungen > Weiterleitungen.
- Klicken Sie auf Neuen Weiterleiter hinzufügen.
- Geben Sie im Feld Name des Absenders einen eindeutigen Namen für den Absender ein.
- Klicken Sie auf Senden. Der Weiterleiter wird hinzugefügt und das Fenster Aufnehmerkonfiguration hinzufügen wird angezeigt.
- Geben Sie im Feld Name des Datensammlers einen Namen ein.
- Wählen Sie F5 BIGIP Access Policy Manager als Logtyp aus.
- Wählen Sie Syslog als Typ des Collectors aus.
- Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
- Protokoll: Geben Sie das Protokoll an.
- Adresse: Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, unter dem sich der Collector befindet, und die Adressen der Syslog-Daten.
- Port: Gibt den Zielport an, an dem sich der Collector befindet und auf Syslog-Daten wartet.
- Klicken Sie auf Senden.
Weitere Informationen zu den Google Security Operations-Weiterleitungen finden Sie unter Weiterleitungskonfigurationen ü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 für die 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 dem UDM zugeordnet. Dabei werden verschiedene Protokollformate verarbeitet und die Daten mit Metadaten wie Schweregrad, Standort und Nutzerinformationen angereichert.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
Anwendung | principal.application | Der Wert wird aus dem Feld application extrahiert, das vom Grok-Filter extrahiert wird. |
bytes_in | network.received_bytes | Der Wert wird aus dem Feld bytes_in übernommen, das vom Grok-Filter extrahiert wurde, und in eine vorzeichenlose Ganzzahl konvertiert. |
bytes_out | network.sent_bytes | Der Wert wird aus dem Feld bytes_out übernommen, das vom Grok-Filter extrahiert wurde, und in eine vorzeichenlose Ganzzahl konvertiert. |
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 extrahiert, das vom Grok-Filter extrahiert wird. |
destination_port | target.port | Der Wert wird aus dem Feld destination_port übernommen, das vom Grok-Filter extrahiert wurde, und in eine Ganzzahl umgewandelt. |
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 extrahiert, das vom Grok-Filter extrahiert wird. |
geoState | principal.location.state | Der Wert wird aus dem Feld geoState extrahiert, das vom Grok-Filter extrahiert wird. |
inner_msg | security_result.description | Der Wert wird aus dem Feld inner_msg übernommen, 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 extrahiert, das vom Grok-Filter extrahiert wird. |
principal_hostname | principal.hostname | Der Wert wird aus dem Feld principal_hostname extrahiert, das vom Grok-Filter extrahiert wird. |
principal_ip | principal.ip | Der Wert wird aus dem Feld principal_ip extrahiert, das vom Grok-Filter extrahiert wird. |
process_id | principal.process.pid | Der Wert wird aus dem Feld process_id extrahiert, das vom Grok-Filter extrahiert wird. |
Rolle | user_role.name | Der Wert wird aus dem Feld role extrahiert, das vom Grok-Filter extrahiert wird. Wenn das Feld role „admin“ enthält (Groß-/Kleinschreibung wird nicht berücksichtigt), wird der Wert auf „ADMINISTRATOR“ gesetzt. |
die Ausprägung | security_result.severity_details | Hier wird der ursprüngliche Wert aus der syslog-Nachricht gespeichert. Der Wert wird mithilfe der bedingten Logik aus dem Feld severity 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 extrahiert, das vom Grok-Filter extrahiert wird. |
source_port | principal.port | Der Wert wird aus dem Feld source_port übernommen, das vom Grok-Filter extrahiert wurde, und in eine Ganzzahl umgewandelt. |
Status | security_result.summary | Der Wert stammt aus dem Feld status , das vom kv-Filter extrahiert wird. |
timestamp | metadata.event_timestamp, timestamp | Der Wert wird aus dem Feld timestamp übernommen, das vom Grok-Filter extrahiert und in ein Zeitstempelobjekt geparst wird. Dieser Wert wird auch dem Feld timestamp im event -Objekt der obersten Ebene zugewiesen. |
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 der Anwesenheit 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, hartcodiert auf „BIGIP_APM“. Hartcodiert auf „F5“. Wenn das Feld result den Wert „failed“ enthält, wird der Wert auf „BLOCK“ gesetzt. |
Änderungen
2023-06-06
- Neu erstellter Parser.