Raccogliere i log APM di F5 BIG-IP
Questo documento descrive come raccogliere i log di F5 BIG-IP Access Policy Manager (APM) utilizzando un forwarder di Google Security Operations.
Per ulteriori informazioni, consulta Importazione dei dati in Google Security Operations.
Un'etichetta di importazione identifica l'analizzatore sintattico che normalizza i dati dei log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser con l'etichetta di importazione F5_BIGIP_APM
.
Configura APM BIG-IP F5
- Accedi al portale dell'utilità di configurazione BIG-IP utilizzando le credenziali di amministratore.
- Seleziona Principale > Sistema > Log > Configurazione > Logging remoto.
Nella sezione Proprietà:
- Nel campo Indirizzo IP remoto, inserisci l'indirizzo IP del forwarder di Google Security Operations.
- Nel campo Porta remota, inserisci un numero di porta elevato.
Fai clic su Aggiungi.
Fai clic su Aggiorna.
Per i log di APM, è supportato solo il formato syslog di Berkeley Software Distribution (BSD).
In base alle firme nell'APM, il raccoglitore elabora solo i log APM. Il raccoglitore di eventi APM F5 BIG-IP supporta anche i log di multithreading dal dispositivo LTM 11.6 al 12.1.1.
Se utilizzi iRule, utilizza il formato consigliato di iRule. Google Security Operations supporta solo il seguente formato iRule:
# 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. "============================================="
Configura il DNS di F5 BIG-IP
Per configurare il DNS di F5 BIG-IP:
- Crea un pool di server di logging remoti.
- Crea una destinazione dei log ad alta velocità remota.
- Crea una destinazione dei log remota ad alta velocità formattata.
- Crea un publisher.
- Crea un profilo di logging DNS personalizzato.
- Aggiungi un profilo di registrazione DNS all'ascoltatore.
Crea un pool di server di logging remoti
- Nella scheda Principale, seleziona DNS > Pubblicazione > Bilanciamento del carico > Pool o traffico locale > Pool.
- Nella finestra Elenco pool visualizzata, fai clic su Crea.
- Nella finestra Nuovo pool visualizzata, nel campo Nome, specifica un nome univoco per il pool.
- Nella sezione Nuovi membri, aggiungi l'indirizzo IP di ogni
server di logging remoto che vuoi includere nel pool:
- Nel campo Indirizzo, inserisci l'indirizzo IP del forwarder di Google Security Operations o seleziona un indirizzo del nodo dall'elenco dei nodi.
- Nel campo Porta del servizio, digita un numero di servizio o seleziona un nome di servizio dall'elenco. Assicurati di aver configurato la porta di logging remoto corretta.
- Fai clic su Aggiungi e poi su Fine.
Creare una destinazione dei log remota ad alta velocità
- Nella scheda Principale, seleziona Sistema > Log > Configurazione > Destinazioni log.
- Nella finestra Destinazioni log visualizzata, fai clic su Crea.
- Nel campo Nome, fornisci un nome univoco e identificabile per questa destinazione.
- Nell'elenco Tipo, seleziona Log ad alta velocità remoto.
- Nell'elenco Nome pool, seleziona il pool di server di log remoti a cui vuoi che il sistema BIG-IP invii i messaggi di log.
- Nell'elenco Protocollo, seleziona il protocollo utilizzato dai membri del pool di logging ad alta velocità.
- Fai clic su Fine.
Crea una destinazione dei log remota ad alta velocità formattata
- Nella scheda Principale, seleziona Sistema > Log > Configurazione > Destinazioni log.
- Nella finestra Destinazioni log visualizzata, fai clic su Crea.
- Nel campo Nome, fornisci un nome univoco e identificabile per questa destinazione.
- Nell'elenco Tipo, seleziona una destinazione di registrazione formattata come Syslog remoto. Il sistema BIG-IP è ora configurato per inviare una stringa di testo formattata ai server di log.
- Nell'elenco Tipo, seleziona un formato per i log.
- Nella scheda Inoltra a, seleziona l'elenco Destinazione log ad alta velocità e poi la destinazione che rimanda a un pool di server syslog remoti a cui vuoi che il sistema BIG-IP invii i messaggi di log.
- Fai clic su Fine.
Creare un editore
- Nella scheda Principale, seleziona Sistema > Log > Configurazione > Publisher di log.
- Nella finestra Pubblici di log visualizzata, fai clic su Crea.
- Nel campo Nome, fornisci un nome univoco e identificabile per l'editore.
- Nell'elenco Publisher di log, seleziona la destinazione creata in precedenza dall'elenco disponibile.
- Per spostare la destinazione nell'elenco selezionato, fai clic su << Sposta.
- Se utilizzi una destinazione formattata, seleziona la destinazione appena creata corrispondente ai tuoi server di log, ad esempio Remote syslog, Splunk o ArcSight.
- Fai clic su Fine.
Creare un profilo di registrazione DNS personalizzato
- Nella scheda Principale, seleziona DNS > Pubblicazione > Profili > Altro Log DNS o Traffico locale > Profili > Altri > Log DNS.
- Nella finestra Elenco dei profili di log DNS visualizzata, fai clic su Crea.
- Nel campo Nome, fornisci un nome univoco per il profilo.
- Nell'elenco Publisher di log, seleziona una destinazione a cui il sistema BIG-IP invia le voci di log DNS.
- Se vuoi il sistema BIG-IP:
- Per registrare tutte le query DNS, assicurati che la casella di controllo Log queries (Registra query) sia selezionata.
- Per registrare tutte le risposte DNS, seleziona la casella di controllo attivata nell'impostazione Registra risposte.
- Per includere l'ID query inviato dal client nei messaggi di log, seleziona la casella di controllo abilitata nell'impostazione Includi ID query.
- Fai clic su Fine.
Aggiungi un profilo di logging DNS all'ascoltatore
- Nella scheda Principale, seleziona DNS > Pubblicazione > Listener > Listener DNS.
- Nella sezione Servizio, seleziona il profilo DNS dall'elenco Profilo DNS che hai configurato in precedenza.
- Fai clic su Aggiorna.
Configura il forwarder di Google Security Operations per importare i log APM di F5 BIG-IP
- Vai a Impostazioni SIEM > Inoltratori.
- Fai clic su Aggiungi nuovo mittente.
- Nel campo Nome del forwarder, inserisci un nome univoco per il forwarder.
- Fai clic su Invia. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del raccoglitore.
- Digita un nome nel campo Nome del raccoglitore.
- Seleziona F5 BIG-IP Access Policy Manager come Tipo di log.
- Seleziona Syslog come Tipo di collettore.
- Configura i seguenti parametri di input obbligatori:
- Protocollo: specifica il protocollo.
- Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui risiede il collector e gli indirizzi dei dati syslog.
- Porta: specifica la porta di destinazione in cui risiede il raccoglitore e che ascolta i dati syslog.
- Fai clic su Invia.
Per ulteriori informazioni sui forwarder di Google Security Operations, consulta Gestire le configurazioni dei forwarder tramite l'interfaccia utente di Google Security Operations.
Se riscontri problemi durante la creazione dei reindirizzamenti, contatta l'assistenza di Google Security Operations.
Riferimento alla mappatura dei campi
Questo parser APM F5 BIG-IP estrae i campi dai messaggi syslog, categorizzandoli in base all'origine dell'applicazione (tmsh, tmm, apmd, httpd o altro). Quindi mappa questi campi estratti all'UDM, gestisce vari formati di log e arricchisce i dati con metadati come gravità, posizione e informazioni sull'utente.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
applicazione | principal.application | Il valore viene preso dal campo application estratto dal filtro Grok. |
bytes_in | network.received_bytes | Il valore viene preso dal campo bytes_in estratto dal filtro Grok e convertito in numero intero non firmato. |
bytes_out | network.sent_bytes | Il valore viene preso dal campo bytes_out estratto dal filtro Grok e convertito in numero intero non firmato. |
cmd_data | principal.process.command_line | Il valore viene preso dal campo cmd_data estratto dal filtro kv. |
destination_ip | target.ip | Il valore viene preso dal campo destination_ip estratto dal filtro Grok. |
destination_port | target.port | Il valore viene preso dal campo destination_port estratto dal filtro Grok e convertito in numero intero. |
cartella | principal.process.file.full_path | Il valore viene preso dal campo folder estratto dal filtro kv. |
geoCountry | principal.location.country_or_region | Il valore viene preso dal campo geoCountry estratto dal filtro Grok. |
geoState | principal.location.state | Il valore viene preso dal campo geoState estratto dal filtro Grok. |
inner_msg | security_result.description | Il valore viene preso dal campo inner_msg estratto dal filtro Grok quando non è disponibile un'altra descrizione specifica. |
ip_protocol | network.ip_protocol | Il valore viene preso dal campo ip_protocol estratto dal filtro Grok. |
principal_hostname | principal.hostname | Il valore viene preso dal campo principal_hostname estratto dal filtro Grok. |
principal_ip | principal.ip | Il valore viene preso dal campo principal_ip estratto dal filtro Grok. |
process_id | principal.process.pid | Il valore viene preso dal campo process_id estratto dal filtro Grok. |
ruolo | user_role.name | Il valore viene preso dal campo role estratto dal filtro Grok. Se il campo role contiene "admin" (senza distinzione tra maiuscole e minuscole), il valore viene impostato su "ADMINISTRATOR". |
gravità | security_result.severity_details | Il valore originale del messaggio syslog viene memorizzato qui. Il valore viene ricavato dal campo severity utilizzando la logica condizionale: CRITICAL -> CRITICAL ERR -> ERROR ALERT, EMERGENCY -> HIGH INFO, NOTICE -> INFORMATIONAL DEBUG -> LOW WARN -> MEDIUM |
source_ip | principal.ip | Il valore viene preso dal campo source_ip estratto dal filtro Grok. |
source_port | principal.port | Il valore viene preso dal campo source_port estratto dal filtro Grok e convertito in numero intero. |
stato | security_result.summary | Il valore viene preso dal campo status estratto dal filtro kv. |
timestamp | metadata.event_timestamp, timestamp | Il valore viene preso dal campo timestamp estratto dal filtro Grok e analizzato in un oggetto timestamp. Anche il campo timestamp nell'oggetto event di primo livello riceve questo valore. |
utente | principal.user.userid | Il valore viene preso dal campo user estratto dal filtro Grok, dopo aver rimosso i prefissi "id\" o "ID\". Il valore viene dedotto in base alla presenza di altri campi: Se esiste user : USER_UNCATEGORIZED Se esistono source_ip e destination_ip : NETWORK_CONNECTION Se esistono principal_ip o principal_hostname : STATUS_UPDATE In caso contrario: GENERIC_EVENT hardcoded in "BIGIP_APM". Hardcoded su "F5". Se il campo result è "failed", il valore viene impostato su "BLOCK". |
Modifiche
2023-06-06
- Parser appena creato.