Raccogliere i log di Fortinet FortiDDoS
Questa guida spiega come importare i log di Fortinet FortiDDoS in Google Security Operations utilizzando l'agente Bindplane.
Fortinet FortiDDoS è un'appliance di mitigazione degli attacchi DDoS che protegge reti e applicazioni da attacchi distributed denial of service. FortiDDoS fornisce rilevamento degli attacchi in tempo reale, mitigazione automatica e report dettagliati per gli attacchi a livello di rete e applicazione.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps.
- Windows Server 2016 o versioni successive oppure host Linux con systemd.
- Connettività di rete tra l'agente Bindplane e l'appliance Fortinet FortiDDoS.
- 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 web di FortiDDoS con autorizzazione di lettura/scrittura per le impostazioni di log e report.
Recuperare il file di autenticazione dell'importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agente di raccolta.
- Fai clic su Scarica per scaricare il file di autenticazione dell'importazione.
Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.
Recuperare l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
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
- Apri Prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo il comando:
sc query observiq-otel-collectorIl servizio dovrebbe essere visualizzato come IN ESECUZIONE.
Installazione di Linux
- Apri un terminale con privilegi di root o sudo.
Esegui questo comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo il comando:
sudo systemctl status observiq-otel-collectorIl 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/fortiddos:
compression: gzip
creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
customer_id: 'your-customer-id-here'
endpoint: malachiteingestion-pa.googleapis.com
log_type: FORTINET_FORTIDDOS
raw_log_field: body
ingestion_labels:
env: production
service:
pipelines:
logs/fortiddos_to_chronicle:
receivers:
- udplog
exporters:
- chronicle/fortiddos
Parametri di configurazione
Sostituisci i seguenti segnaposto:
Configurazione del ricevitore:
listen_address: indirizzo IP e porta su cui ascoltare. Utilizza0.0.0.0:514per ascoltare su tutte le interfacce sulla porta 514.
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
- Linux:
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.
- Stati Uniti:
log_type: deve essereFORTINET_FORTIDDOS.ingestion_labels: etichette facoltative in formato YAML.
Salvare il file di configurazione
Dopo la modifica, salva il file:
- Linux: premi
Ctrl+O, poiEntere infineCtrl+X. - Windows: fai clic su File > Salva.
Riavvia l'agente Bindplane per applicare le modifiche
Linux
sudo systemctl restart observiq-otel-collectorVerifica che il servizio sia in esecuzione:
sudo systemctl status observiq-otel-collectorControlla i log per individuare eventuali errori:
sudo journalctl -u observiq-otel-collector -f
Windows
Scegli una delle seguenti opzioni:
Utilizzando il prompt dei comandi o PowerShell come amministratore:
net stop observiq-otel-collector && net start observiq-otel-collectorUtilizzo della console Services:
- Premi
Win+R, digitaservices.msce premi Invio. - Individua observIQ OpenTelemetry Collector.
Fai clic con il tasto destro del mouse e seleziona Riavvia.
Verifica che il servizio sia in esecuzione:
sc query observiq-otel-collectorControlla i log per individuare eventuali errori:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Premi
Configura il logging remoto del log eventi di FortiDDoS
FortiDDoS supporta due tipi di logging syslog remoto: log eventi per gli eventi di sistema e log attacchi per gli eventi di attacco DDoS. Configura entrambi per inviare log completi a Google SecOps.
- Accedi all'interfaccia web di FortiDDoS.
- Vai a Log e report > Configurazione log > Log eventi remoto.
- Fai clic su Aggiungi per creare una nuova configurazione del server di log remoto.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome descrittivo (ad esempio,
Chronicle-Event-Logs). - Indirizzo: inserisci l'indirizzo IP dell'host dell'agente Bindplane.
- Porta: inserisci
514. - Livello di log minimo: seleziona il livello di gravità minimo da inoltrare (ad esempio, Informazioni o Notifica).
- Struttura: seleziona una struttura syslog (ad esempio local0).
- Nome: inserisci un nome descrittivo (ad esempio,
- Fai clic su Salva per salvare la configurazione.
Configura il logging remoto dei log degli attacchi FortiDDoS
La registrazione remota dei log degli attacchi viene configurata per ogni profilo di protezione del servizio (SPP). Devi configurare l'inoltro dei log degli attacchi per ogni SPP che vuoi monitorare.
- Accedi all'interfaccia web di FortiDDoS.
- Vai a Log e report > Configurazione log > Log attacchi remoto.
- Fai clic su Aggiungi per creare una nuova configurazione del server di log remoto.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome descrittivo (ad esempio,
Chronicle-Attack-Logs). - SPP: seleziona il profilo di protezione del servizio da configurare.
- Indirizzo: inserisci l'indirizzo IP dell'host dell'agente Bindplane.
- Porta: inserisci
514. - Intervallo: seleziona l'intervallo del report (ad esempio 1 minuto o 5 minuti).
- Nome: inserisci un nome descrittivo (ad esempio,
- Fai clic su Salva per salvare la configurazione.
Ripeti i passaggi da 3 a 5 per ogni SPP che vuoi monitorare.
Verificare l'inoltro di Syslog
Dopo aver configurato il logging remoto, verifica che i log vengano inviati all'agente Bindplane:
Sull'host dell'agente Bindplane, monitora il traffico syslog in entrata:
Linux:
sudo tcpdump -i any -n port 514Windows:
Utilizza uno strumento di monitoraggio della rete o controlla i log dell'agente Bindplane.
Sull'appliance FortiDDoS, genera messaggi di log di test:
Test del log eventi:
- Apporta una modifica alla configurazione nell'interfaccia web di FortiDDoS per generare un log eventi.
Test del log degli attacchi:
- Attendi l'intervallo di generazione dei report configurato (1 o 5 minuti). FortiDDoS genera report a intervalli regolari e impiega altri 2 minuti per aggregare i report. Ad esempio, i log segnalati per il minuto 5 verranno visualizzati sul server syslog al minuto 7.
Verifica che i log vengano visualizzati nella console Google SecOps entro 5-10 minuti.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logic |
|---|---|---|
| aggiuntivo | aggiuntivo | Valore copiato direttamente |
| additional.fields.additional_label.key | Imposta su "type" | |
| tipo | additional.fields.additional_label.value.string_value | Valore copiato direttamente |
| additional.fields.src_label.key | Imposta su "device_id" | |
| devid | additional.fields.src_label.value.string_value | Valore copiato direttamente |
| log_id | security_result.detection_fields.log_id_label.value | Valore copiato direttamente |
| security_result.detection_fields.log_id_label.key | Impostato su "log_id" | |
| metadati | metadati | Valore copiato direttamente |
| desc_Data | metadata.description | Valore copiato direttamente |
| sip,dip,user | metadata.event_type | Impostato su "NETWORK_CONNECTION" se sip e dip non sono vuoti, altrimenti "USER_UNCATEGORIZED" se user non è vuoto, altrimenti "STATUS_UPDATE" se sip non è vuoto, altrimenti "GENERIC_EVENT" |
| rete | rete | Valore copiato direttamente |
| entità | entità | Valore copiato direttamente |
| sip | principal.asset.ip | Valore copiato direttamente |
| sip | principal.ip | Valore copiato direttamente |
| date,time,tz | principal.labels.date_label.value | Concatenato da data, ora, fuso orario con spazi |
| principal.labels.date_label.key | Impostato su "data" | |
| dir | principal.labels.direction_label.value | Valore copiato direttamente |
| principal.labels.direction_label.key | Impostato su "direction" | |
| dport | principal.port | Convertito in numero intero |
| utente | principal.user.userid | Valore copiato direttamente |
| security_result | security_result | Valore copiato direttamente |
| direction | security_result.detection_fields.direction_label.value | Valore copiato direttamente |
| security_result.detection_fields.direction_label.key | Impostato su "direction" | |
| dropcount | security_result.detection_fields.dropcount_label.value | Valore copiato direttamente |
| security_result.detection_fields.dropcount_label.key | Impostato su "dropcount" | |
| evecode | security_result.detection_fields.evecode_label.value | Valore copiato direttamente |
| security_result.detection_fields.evecode_label.key | Imposta su "evecode" | |
| evesubcode | security_result.detection_fields.evesubcode_label.value | Valore copiato direttamente |
| security_result.detection_fields.evesubcode_label.key | Impostato su "evesubcode" | |
| struttura | security_result.detection_fields.facility_label.value | Valore copiato direttamente |
| security_result.detection_fields.facility_label.key | Impostato su "struttura" | |
| livello | security_result.detection_fields.level_label.value | Valore copiato direttamente |
| security_result.detection_fields.level_label.key | Impostato su "livello" | |
| msg_id | security_result.detection_fields.msg_id_label.value | Valore copiato direttamente |
| security_result.detection_fields.msg_id_label.key | Imposta su "msg_id" | |
| spp_name | security_result.detection_fields.spp_name_label.value | Valore copiato direttamente |
| security_result.detection_fields.spp_name_label.key | Impostato su "spp_name" | |
| spp | security_result.detection_fields.spp_label.value | Valore copiato direttamente |
| security_result.detection_fields.spp_label.key | Impostato su "spp" | |
| sppoperatingmode | security_result.detection_fields.sppoperatingmode_label.value | Valore copiato direttamente |
| security_result.detection_fields.sppoperatingmode_label.key | Impostato su "sppoperatingmode" | |
| subnet_name | security_result.detection_fields.subnet_name_label.value | Valore copiato direttamente |
| security_result.detection_fields.subnet_name_label.key | Impostato su "subnet_name" | |
| subnetid | security_result.detection_fields.subnetid_label.value | Valore copiato direttamente |
| security_result.detection_fields.subnetid_label.key | Impostato su "subnetid" | |
| sottotipo | security_result.detection_fields.subtype_label.value | Valore copiato direttamente |
| security_result.detection_fields.subtype_label.key | Impostato su "subtype" | |
| target | target | Valore copiato direttamente |
| dip | target.asset.ip | Valore copiato direttamente |
| dip | target.ip | Valore copiato direttamente |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.