Raccogliere i log APM di F5 BIG-IP

Supportato in:

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

  1. Accedi al portale dell'utilità di configurazione BIG-IP utilizzando le credenziali dell'amministratore.
  2. Seleziona Principale > Sistema > Log > Configurazione > Logging remoto.
  3. 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.
  4. Fai clic su Aggiungi.

  5. 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

  1. Nella scheda Principale, seleziona DNS > Distribuzione > Bilanciamento del carico > Pool o traffico locale > Pool.
  2. Nella finestra Elenco pool visualizzata, fai clic su Crea.
  3. Nella finestra Nuovo pool visualizzata, nel campo Nome, fornisci un nome univoco per il pool.
  4. Nella sezione Nuovi membri, aggiungi l'indirizzo IP per ogni server di logging remoto che vuoi includere nel pool:
    1. Nel campo Indirizzo, inserisci l'indirizzo IP del forwarder di Google Security Operations o seleziona un indirizzo del nodo dall'elenco dei nodi.
    2. 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.
  5. Fai clic su Aggiungi, quindi su Fine.

Crea una destinazione di log remota ad alta velocità

  1. Nella scheda Principale, seleziona Sistema > Log > Configurazione > Destinazioni log.
  2. Nella finestra Destinazioni log visualizzata, fai clic su Crea.
  3. Nel campo Nome, fornisci un nome univoco e identificabile per questa destinazione.
  4. Nell'elenco Tipo, seleziona Log remoto ad alta velocità.
  5. 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.
  6. Nell'elenco Protocollo, seleziona il protocollo utilizzato dai membri del pool di logging ad alta velocità.
  7. Fai clic su Fine.

Crea una destinazione di log remota ad alta velocità formattata

  1. Nella scheda Principale, seleziona Sistema > Log > Configurazione > Destinazioni log.
  2. Nella finestra Destinazioni log visualizzata, fai clic su Crea.
  3. Nel campo Nome, fornisci un nome univoco e identificabile per questa destinazione.
  4. 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.
  5. Nell'elenco Tipo, seleziona un formato per i log.
  6. 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.
  7. Fai clic su Fine.

Creare un editore

  1. Nella scheda Principale, seleziona Sistema > Log > Configurazione > Editori di log.
  2. Nella finestra Editor di log visualizzata, fai clic su Crea.
  3. Nel campo Nome, fornisci un nome univoco e identificabile per l'editore.
  4. Nell'elenco Log publisher, seleziona la destinazione creata in precedenza dall'elenco disponibile.
  5. Per spostare la destinazione nell'elenco selezionato, fai clic su << Sposta.
  6. Se utilizzi una destinazione formattata, seleziona la destinazione appena creata che corrisponde ai tuoi server di log, ad esempio Syslog remoto, Splunk o ArcSight.
  7. Fai clic su Fine.

Crea un profilo di logging DNS personalizzato

  1. Nella scheda Principale, seleziona DNS > Distribuzione > Profili > Altro Registrazione DNS o Traffico locale > Profili > Altri > Registrazione DNS.
  2. Nella finestra Elenco profili di logging DNS visualizzata, fai clic su Crea.
  3. Nel campo Nome, fornisci un nome univoco per il profilo.
  4. Nell'elenco Log publisher, seleziona una destinazione a cui il sistema BIG-IP invia le voci di log DNS.
  5. 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.
  6. Fai clic su Fine.

Aggiungi un profilo di logging DNS al listener

  1. Nella scheda Principale, seleziona DNS > Pubblicazione > Listener > Listener DNS.
  2. Nella sezione Servizio, seleziona il profilo DNS che hai configurato in precedenza dall'elenco Profilo DNS.
  3. Fai clic su Aggiorna.

Configura il forwarder Google Security Operations per l'importazione dei log F5 BIG-IP APM

  1. Vai a Impostazioni SIEM > Forwarder.
  2. Fai clic su Aggiungi nuovo inoltro.
  3. Nel campo Nome forwarder, inserisci un nome univoco per il forwarder.
  4. Fai clic su Invia. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del raccoglitore.
  5. Nel campo Nome del raccoglitore, digita un nome.
  6. Seleziona F5 BIGIP Access Policy Manager come Tipo di log.
  7. Seleziona Syslog come Tipo di raccoglitore.
  8. 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.
  9. 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.