Raccogliere i log del proxy web Fortinet

Supportato in:

Questo documento spiega come importare i log del proxy web Fortinet in Google Security Operations utilizzando l'agente Bindplane.

Il proxy web Fortinet FortiGate genera log per sessioni proxy esplicite e trasparenti, acquisendo traffico HTTP/HTTPS, decisioni di filtraggio degli URL ed eventi di accesso web. I log utilizzano il formato coppia chiave-valore syslog e includono metadati di rete, azioni di sicurezza e informazioni sull'identità dell'utente.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Windows Server 2016 o versioni successive oppure host Linux con systemd
  • Connettività di rete tra l'agente Bindplane e l'appliance FortiGate
  • 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'appliance FortiGate con autorizzazioni di amministratore

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.
  4. 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:

    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:

    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 /opt/observiq-otel-collector/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/fortinet_webproxy:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: FORTINET_WEBPROXY
            raw_log_field: body
            ingestion_labels:
                env: production
    
    service:
        pipelines:
            logs/webproxy_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/fortinet_webproxy
    

Parametri di configurazione

Sostituisci i seguenti segnaposto:

  • Configurazione del ricevitore:

    • udplog: Il tipo di ricevitore in base al protocollo:
      • udplog per syslog UDP
      • tcplog per TCP syslog
    • 0.0.0.0: Indirizzo IP su cui ascoltare:
      • 0.0.0.0 per ascoltare su tutte le interfacce (consigliato)
      • Indirizzo IP specifico da ascoltare su un'interfaccia
    • 514: numero di porta su cui ascoltare (ad esempio, 514, 1514, 6514)
  • Configurazione dell'esportatore:

    • fortinet_webproxy: Nome descrittivo per l'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
    • <customer_id>: l'ID cliente del passaggio precedente
    • endpoint: URL endpoint regionale:
      • Stati Uniti: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Per un elenco completo, vedi Endpoint regionali.
    • FORTINET_WEBPROXY: Tipo di log esattamente come appare in Chronicle
    • ingestion_labels: Etichette facoltative in formato YAML (ad esempio, env: production)
  • Configurazione della pipeline:

    • webproxy_to_chronicle: Nome descrittivo della pipeline

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 Services:

      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 del proxy web Fortinet FortiGate

  1. Accedi all'interfaccia web di FortiGate.
  2. Vai a Log e report > Impostazioni log.
  3. Scorri verso il basso fino alla sezione Registrazione e archiviazione da remoto.
  4. Nella sezione Syslog, fai clic su Aggiungi.
  5. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome descrittivo (ad esempio, Chronicle-Bindplane).
    • Indirizzo IP/FQDN: inserisci l'indirizzo IP dell'host dell'agente Bindplane (ad esempio, 192.168.1.100).
    • Porta: inserisci 514 (deve corrispondere alla porta del ricevitore dell'agente Bindplane).
    • Protocollo: seleziona UDP.
    • Livello minimo: seleziona Informazioni o Notifica.
  6. Assicurati che la categoria di log Web Proxy sia abilitata. In alternativa, utilizza l'interfaccia a riga di comando per configurare il filtro syslog:

    config log syslogd setting
        set status enable
        set server <BINDPLANE_AGENT_IP>
        set port 514
    end
    config log syslogd filter
        set filter "logid(0300)"
        set filter-type include
    end
    
    • L'intervallo di ID log 0300 copre gli eventi proxy web. Regola il filtro in base all'ambiente.
    • Sostituisci <BINDPLANE_AGENT_IP> con l'indirizzo IP dell'host dell'agente Bindplane.
  7. Fai clic su Ok per salvare.

  8. Fai clic su Applica in alto a destra per applicare la configurazione.

  9. Verifica che i messaggi syslog vengano ricevuti controllando i log dell'agente Bindplane.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
group, profile, agent, subtype, catdesc, reqtype additional.fields Unite alle etichette create da ogni campo
action, has_network, has_principal, has_target metadata.event_type Impostato su USER_LOGIN se l'azione è auth-logon, altrimenti NETWORK_HTTP se has_network è true, altrimenti NETWORK_CONNECTION se has_principal e has_target sono true, altrimenti STATUS_UPDATE se has_principal è true, altrimenti GENERIC_EVENT
eventtype metadata.product_event_type Valore copiato direttamente
logid metadata.product_log_id Valore copiato direttamente
metadata.product_name Imposta su "FORTINET_WEBPROXY"
metadata.vendor_name Imposta su "FORTINET_WEBPROXY"
servizio network.application_protocol Valore copiato direttamente se il servizio è in HTTP, HTTPS
direction network.direction Imposta INBOUND se la direzione è in entrata, in entrata, risposta, altrimenti OUTBOUND se in uscita, in uscita
httpmethod network.http.method Valore copiato direttamente se httpmethod in GET, POST
referralurl network.http.referral_url Valore copiato direttamente
proto, subtype, service network.ip_protocol Imposta su UDP se proto=17, TCP se proto=6 o subtype=wad, IP6IN4 se proto=41, ICMP se service=PING o proto=1 o service corrisponde a ICMP
rcvdbyte network.received_bytes Convertito in numero intero senza segno
sentbyte network.sent_bytes Convertito in numero intero senza segno
sessionid network.session_id Valore copiato direttamente
devname principal.asset.hostname Valore copiato direttamente
srcip principal.asset.ip Valore copiato direttamente
devname principal.hostname Valore copiato direttamente
srcip principal.ip Valore copiato direttamente
srccountry principal.location.country_or_region Valore copiato direttamente se non è riservato e non è vuoto
srcport principal.port Convertito in numero intero
srcuuid principal.user.product_object_id Valore copiato direttamente
vd principal.user.user_display_name Valore copiato direttamente
utente principal.user.userid Valore copiato direttamente
filtername security_result.about.resource.attribute.labels Unito all'etichetta creata da filtername se non è vuoto e non è -
azione security_result.action Imposta su BLOCK se action=blocked, ALLOW se action in accept, passthrough
devid, policyid, srcintf, srcintfrole, ratemethod, cat security_result.detection_fields Unite alle etichette create da ogni campo
msg security_result.description Valore copiato direttamente
poluuid security_result.rule_id Valore copiato direttamente
policytype security_result.rule_type Valore copiato direttamente
livello security_result.severity Imposta su HIGH se level=warning, MEDIUM se level=notice
tipo security_result.summary Valore copiato direttamente
dstip target.asset.ip Valore copiato direttamente
filename target.file.full_path Valore copiato direttamente
filetype target.file.mime_type Valore copiato direttamente
filesize target.file.size Convertito in numero intero senza segno
nome host target.hostname Valore copiato direttamente
dstip target.ip Valore copiato direttamente
dstcountry target.location.country_or_region Valore copiato direttamente
dstport target.port Convertito in numero intero
dstintf, dstintfrole target.resource.attribute.labels Unite alle etichette create da ogni campo
dstuuid target.resource.product_object_id Valore copiato direttamente
url target.url Valore copiato direttamente

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