Raccogliere i log APM di F5 BIG-IP

Supportato in:

Questo documento spiega come importare i log F5 BIG-IP APM in Google Security Operations utilizzando Bindplane.

F5 BIG-IP Access Policy Manager (APM) fornisce un accesso sicuro e unificato ad applicazioni, API e dati. Fornisce controllo dell'accesso basato sul contesto e consapevole dell'identità con funzionalità SSO, autenticazione a più fattori e VPN SSL per le reti aziendali. L'analizzatore sintattico estrae i campi dai log formattati syslog di F5 BIG-IP APM. Utilizza grok e/o kv per analizzare il messaggio di log e quindi mappa questi valori al modello UDM (Unified Data Model). Imposta anche i valori predefiniti dei metadati per l'origine e il tipo di evento.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Windows Server 2016 o versioni successive oppure host Linux con systemd
  • Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
  • Accesso privilegiato all'interfaccia di gestione di F5 BIG-IP

Recuperare il file di autenticazione importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.

Recuperare l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

Installazione di Windows

  1. Apri Prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo il comando:

    sc query observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come IN ESECUZIONE.

Installazione di Linux

  1. Apri un terminale con privilegi di root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo il comando:

    sudo systemctl status observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come attivo (in esecuzione).

Risorse aggiuntive per l'installazione

Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la Guida all'installazione dell'agente Bindplane.

Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps

Individua il file di configurazione

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifica il file di configurazione

  • Sostituisci l'intero contenuto di config.yaml con la seguente configurazione:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            customer_id: 'YOUR_CUSTOMER_ID'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: 'F5_BIGIP_APM'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

Parametri di configurazione

  • Sostituisci i seguenti segnaposto:

    • Configurazione del ricevitore:

      • udplog: utilizza udplog per syslog UDP o tcplog per syslog TCP
      • 0.0.0.0: indirizzo IP su cui ascoltare (0.0.0.0 per ascoltare su tutte le interfacce)
      • 514: Numero di porta su cui ascoltare (porta syslog standard)
    • Configurazione dell'esportatore:

      • creds_file_path: percorso completo del file di autenticazione importazione:
        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • YOUR_CUSTOMER_ID: l'ID cliente della sezione Recupera ID cliente
      • endpoint: URL endpoint regionale:
        • Stati Uniti: malachiteingestion-pa.googleapis.com
        • Europa: europe-malachiteingestion-pa.googleapis.com
        • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
        • Per l'elenco completo, vedi Endpoint regionali.
      • log_type: Tipo di log esattamente come appare in Chronicle (F5_BIGIP_APM)

Salvare il file di configurazione

  • Dopo la modifica, salva il file:
    • Linux: premi Ctrl+O, poi Enter e infine Ctrl+X.
    • Windows: fai clic su File > Salva.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
    1. Verifica che il servizio sia in esecuzione:

        sudo systemctl status observiq-otel-collector
      
    2. Controlla i log per individuare eventuali errori:

        sudo journalctl -u observiq-otel-collector -f
      
  • Per riavviare l'agente Bindplane in Windows, scegli una delle seguenti opzioni:

    • Prompt dei comandi o PowerShell come amministratore:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console dei servizi:

      1. Premi Win+R, digita services.msc e premi Invio.
      2. Individua observIQ OpenTelemetry Collector.
      3. Fai clic con il tasto destro del mouse e seleziona Riavvia.

      4. Verifica che il servizio sia in esecuzione:

        sc query observiq-otel-collector
        
      5. Controlla i log per individuare eventuali errori:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configura l'inoltro di syslog F5 BIG-IP APM

  1. Accedi all'interfaccia web (TMUI/Configuration Utility) di F5 BIG-IP.
  2. Vai a Sistema > Log > Configurazione > Registrazione remota.
  3. Nella sezione Logging remoto, fornisci i seguenti dettagli di configurazione:
    • IP remoto: inserisci l'indirizzo IP dell'host dell'agente Bindplane.
    • Porta remota: inserisci 514.
  4. Fai clic su Aggiungi.
  5. Fai clic su Aggiorna per salvare la configurazione.
  6. Per configurare la registrazione ad alta velocità (HSL) per i log APM dettagliati tramite la CLI:

    1. Accedi tramite SSH al sistema F5 BIG-IP.
    2. Esegui questi comandi:

      tmsh create ltm pool syslog_pool members add { BINDPLANE_IP:514 }
      tmsh create sys log-config destination remote-high-speed-log secops_hsl pool-name syslog_pool protocol udp
      tmsh create sys log-config destination remote-syslog secops_syslog remote-high-speed-log secops_hsl
      tmsh create sys log-config publisher secops_publisher destinations add { secops_syslog }
      tmsh save sys config
      
      • Sostituisci BINDPLANE_IP con l'indirizzo IP dell'host dell'agente Bindplane.
  7. Assegna l'editore al profilo di accesso APM:

    1. Vai ad Accesso > Profili / Norme > Profili di accesso.
    2. Seleziona il profilo di accesso di destinazione.
    3. Nella scheda Impostazioni log, seleziona l'editore creato.
    4. Fai clic su Aggiorna.
  8. Verifica che i messaggi syslog vengano inviati controllando i log dell'agente Bindplane.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
applicazione principal.application Il valore viene estratto dal campo dell'applicazione 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 filtrato da 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 della cartella estratto 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 del 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 filtrato da 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 del ruolo dal filtro Grok. Se il campo del ruolo 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 gravità 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 di stato estratto 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 evento di primo livello riceve questo valore.
utente principal.user.userid Il valore viene estratto dal campo utente filtrato da grok, dopo aver rimosso i prefissi "id" o "ID". Il valore viene derivato in base alla presenza di altri campi: , Se l'utente esiste: 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 del risultato è "failed", il valore è impostato su "BLOCK".

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.