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 Google Security Operations.
Per ulteriori informazioni, consulta Importazione dei dati in Google Security Operations.
Un'etichetta di importazione identifica il parser 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 F5 BIG-IP APM
- Accedi al portale dell'utilità di configurazione BIG-IP utilizzando le credenziali dell'amministratore.
- Seleziona Principale > Sistema > Log > Configurazione > Logging remoto.
Nella sezione Proprietà:
- Nel campo 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 Berkeley Software Distribution (BSD).
In base alle firme in APM, il raccoglitore elabora solo i log APM. Il raccoglitore di eventi F5 BIG-IP APM supporta anche i log multithreading dei dispositivi LTM 11.6-12.1.1.
Se utilizzi iRule, utilizza il formato consigliato. 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 F5 BIG-IP DNS
Per configurare F5 BIG-IP DNS, svolgi le seguenti attività:
- Crea un pool di server di logging remoti.
- Crea una destinazione di log remota ad alta velocità.
- Crea una destinazione di log remota ad alta velocità formattata.
- Crea un publisher.
- Crea un profilo di logging DNS personalizzato.
- Aggiungi un profilo di logging DNS al listener.
Crea un pool di server di logging remoti
- Nella scheda Principale, seleziona DNS > Distribuzione > 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, fornisci un nome univoco per il pool.
- Nella sezione Nuovi membri, aggiungi l'indirizzo IP per 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 di 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, quindi su Fine.
Crea una destinazione di 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 remoto ad alta velocità.
- 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 di 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 logging 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 seleziona la destinazione che punta 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 > Editori di log.
- Nella finestra Editor di log visualizzata, fai clic su Crea.
- Nel campo Nome, fornisci un nome univoco e identificabile per l'editore.
- Nell'elenco Log publisher, 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 che corrisponde ai tuoi server di log, ad esempio Syslog remoto, Splunk o ArcSight.
- Fai clic su Fine.
Crea un profilo di logging DNS personalizzato
- Nella scheda Principale, seleziona DNS > Distribuzione > Profili > Altro Registrazione DNS o Traffico locale > Profili > Altri > Registrazione DNS.
- Nella finestra Elenco profili di logging DNS visualizzata, fai clic su Crea.
- Nel campo Nome, fornisci un nome univoco per il profilo.
- Nell'elenco Log publisher, seleziona una destinazione a cui il sistema BIG-IP invia le voci di log DNS.
- Se vuoi che il sistema BIG-IP:
- Per registrare tutte le query DNS, assicurati che la casella di controllo abilitata sia selezionata nell'impostazione Registra query.
- 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 al listener
- Nella scheda Principale, seleziona DNS > Pubblicazione > Listener > Listener DNS.
- Nella sezione Servizio, seleziona il profilo DNS che hai configurato in precedenza dall'elenco Profilo DNS.
- Fai clic su Aggiorna.
Configura il forwarder Google Security Operations per l'importazione dei log F5 BIG-IP APM
- Vai a Impostazioni SIEM > Forwarder.
- Fai clic su Aggiungi nuovo inoltro.
- Nel campo Nome 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.
- Nel campo Nome del raccoglitore, digita un nome.
- Seleziona F5 BIGIP Access Policy Manager come Tipo di log.
- Seleziona Syslog come Tipo di raccoglitore.
- Configura i seguenti parametri di input obbligatori:
- Protocollo: specifica il protocollo.
- Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui si trova il raccoglitore e gli indirizzi dei dati syslog.
- Porta: specifica la porta di destinazione in cui risiede il raccoglitore e ascolta i dati syslog.
- Fai clic su Invia.
Per ulteriori informazioni sui forwarder di Google Security Operations, consulta Gestire le configurazioni dei forwarder tramite la UI di Google Security Operations.
Se riscontri problemi durante la creazione degli inoltri, contatta l'assistenza Google Security Operations.
Riferimento alla mappatura dei campi
Questo parser F5 BIG-IP APM estrae i campi dai messaggi syslog, classificandoli in base all'origine dell'applicazione (tmsh, tmm, apmd, httpd o altro). Quindi, mappa questi campi estratti con UDM, gestendo vari formati di log e arricchendo i dati con metadati come gravità, posizione e informazioni utente.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
applicazione | principal.application | Il valore viene estratto dal campo application dal filtro grok. |
bytes_in | network.received_bytes | Il valore viene estratto dal campo bytes_in dal filtro grok e convertito in un numero intero senza segno. |
bytes_out | network.sent_bytes | Il valore viene estratto dal campo bytes_out dal filtro grok e convertito in un numero intero senza segno. |
cmd_data | principal.process.command_line | Il valore viene estratto dal campo cmd_data dal filtro kv. |
destination_ip | target.ip | Il valore viene estratto dal campo destination_ip dal filtro grok. |
destination_port | target.port | Il valore viene estratto dal campo destination_port dal filtro grok e convertito in numero intero. |
cartella | principal.process.file.full_path | Il valore viene estratto dal campo folder dal filtro kv. |
geoCountry | principal.location.country_or_region | Il valore viene estratto dal campo geoCountry dal filtro grok. |
geoState | principal.location.state | Il valore viene estratto dal campo geoState dal filtro grok. |
inner_msg | security_result.description | Il valore viene estratto dal campo inner_msg dal filtro grok quando non è disponibile un'altra descrizione specifica. |
ip_protocol | network.ip_protocol | Il valore viene estratto dal campo ip_protocol dal filtro grok. |
principal_hostname | principal.hostname | Il valore viene estratto dal campo principal_hostname dal filtro grok. |
principal_ip | principal.ip | Il valore viene estratto dal campo principal_ip dal filtro grok. |
process_id | principal.process.pid | Il valore viene estratto dal campo process_id dal filtro grok. |
ruolo | user_role.name | Il valore viene estratto dal campo role 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 | Qui viene memorizzato il valore originale del messaggio syslog. Il valore viene derivato 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 estratto dal campo source_ip dal filtro grok. |
source_port | principal.port | Il valore viene estratto dal campo source_port dal filtro grok e convertito in numero intero. |
stato | security_result.summary | Il valore viene estratto dal campo status dal filtro kv. |
timestamp | metadata.event_timestamp, timestamp | Il valore viene estratto dal campo timestamp 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 estratto dal campo user filtrato da grok, dopo aver rimosso i prefissi "id\" o "ID\". Il valore viene derivato 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 Altrimenti: GENERIC_EVENT Codificato in modo permanente su "BIGIP_APM". Codificato su "F5". Se il campo result è "failed", il valore è impostato su "BLOCK". |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.