TL;DR
- Cosa imparerai: Vettore d'attacco usato per bucare 600+ FortiGate, come verificare la tua appliance, hardening immediato in 7 step
- Tempo richiesto: 45-60 minuti per audit completo + hardening
- Difficoltà: Media (richiede accesso admin FortiGate e comprensione base CLI)
Il Problema
Se gestisci FortiGate in produzione, probabilmente hai già visto nei log tentativi di brute-force su `/remote/login` o scan massivi sulla porta 10443. Quello che NON hai visto è un attaccante che usa ChatGPT per automatizzare l'intera kill chain: dall'enumerazione delle CVE applicabili al download dei backup cifrati.
Un hacker russo con handle "yan_one" ha dimostrato che non serve più essere un ninja del kernel per compromettere centinaia di appliance enterprise. Bastano:
- Un abbonamento ChatGPT Plus ($20/mese)
- CVE pubbliche non patchate (FortiOS < 7.0.x ha avuto 14 critical CVE negli ultimi 18 mesi)
- Credenziali di default ancora attive su appliance dimenticate in VLAN di management
L'attaccante ha esfiltrato:
- Credenziali amministrative (hash PBKDF2 crackabili offline)
- Backup configuration cifrati con chiavi deboli
- Certificati VPN SSL per accesso persistente
- Lista completa di regole firewall (ricognizione per lateral movement)
Il problema non è "se" la tua appliance è esposta, ma quanto tempo ci metti a scoprirlo. L'attaccante ha pubblicato le credenziali su un forum underground 72 ore dopo l'accesso iniziale. Nel frattempo, i backup erano già in vendita per operazioni ransomware.
Prerequisiti
Prima di iniziare, assicurati di avere:
- Accesso admin al FortiGate via HTTPS o SSH
- Licenza FortiCare attiva per accedere alle patch
- Backup offline dell'ultima configurazione (non sul FortiGate stesso)
- Accesso ai log (FortiAnalyzer o syslog esterno)
- Finestra di manutenzione concordata (alcuni step richiedono reload)
Se non hai un sistema di monitoraggio proattivo centralizzato, questo è il momento di implementarlo. Un SIEM ti avrebbe allertato 48 ore prima che le credenziali finissero su Telegram.
Step-by-Step: Hardening FortiGate Post-Breach
Step 1: Verifica Versione e CVE Applicabili
Accedi via SSH al FortiGate:
```bash
get system status
```
Annota la `Version` esatta (es. `v7.0.8 build0342`). Confronta con la matrice CVE di Fortinet:
- CVE-2023-27997: Pre-auth RCE in SSL-VPN (FortiOS < 7.0.12)
- CVE-2022-40684: Auth bypass in admin interface (< 7.0.9)
- CVE-2024-21762: Out-of-bounds write (< 7.0.13)
Se sei sotto la 7.0.13, sei vulnerabile. L'AI dell'attaccante scansiona Shodan per questi banner e automatizza l'exploit.
Errore comune: "Ho la 7.0.8 ma ho disabilitato SSL-VPN, sono al sicuro". FALSO. CVE-2022-40684 bypassa l'autenticazione anche con SSL-VPN disabilitato.
Step 2: Audit Sessioni Amministrative Attive
Verifica chi è loggato ADESSO:
```bash
diagnose sys session filter dport 443
diagnose sys session list
```
Cerca connessioni da IP sospetti o sessioni aperte da giorni. L'attaccante mantiene sessioni persistenti usando cookie rubati.
Poi controlla gli ultimi login riusciti:
```bash
execute log filter category 0
execute log display | grep "admin login"
```
Se vedi login da IP esteri (Russia, Cina) o orari notturni, assume breach.
Step 3: Rotazione Immediata Password Admin
NON usare la GUI. Fallo via CLI per evitare che una sessione compromessa intercetti il cambio:
```bash
config system admin
edit "admin"
set password "Nuova_Pass_Complessa_32char!"
next
end
```
Se hai account multipli, rotali TUTTI. L'attaccante ha dimostrato di rubare hash da `/data/config/` e craccarli offline con hashcat.
Errore comune: Usare password derivate dal nome azienda o località. Usa un password manager enterprise come 1Password Business.
Step 4: Verifica Integrità Backup
L'attaccante ha esfiltrato backup cifrati con chiave debole. Controlla:
```bash
execute backup config management-station <IP_tuo_SFTP>
```
Se usi backup automatici verso FTP/SFTP, verifica che:
- Il server non sia esposto a Internet
- Le credenziali FTP siano diverse da quelle admin FortiGate
- I backup siano cifrati con passphrase forte (non la default)
Se hai dubbi, elimina i vecchi backup e ricrea con cifratura AES-256.
Step 5: Hardening Accesso Management
Disabilita accesso HTTPS da Internet:
```bash
config system interface
edit "wan1"
unset allowaccess https ssh
next
end
```
Abilita solo da VLAN interna o tramite VPN:
```bash
config system interface
edit "internal"
set allowaccess https ssh
next
end
```
Se DEVI esporre l'admin (spoiler: non devi), limita per IP sorgente:
```bash
config firewall address
edit "Admin_IP"
set subnet 203.0.113.50 255.255.255.255
next
end
config system admin
edit "admin"
set trusthost1 203.0.113.50 255.255.255.255
next
end
```
Best practice: Usa una VPN gestita (Wildix, Fortinet SSL-VPN con MFA) per accesso remoto. Mai esporre :443 direttamente.
Step 6: Patch Immediata o Mitigazione
Se puoi patchare in finestra di manutenzione:
```bash
execute restore image tftp <firmware_7.0.13.out> <IP_TFTP_server>
```
Se NON puoi (compliance, test richiesti), mitiga CVE-2023-27997:
```bash
config system global
set admin-https-ssl-versions tlsv1-2 tlsv1-3
set admin-ssh-v1 disable
end
config vpn ssl settings
set sslv3 disable
set tlsv1-0 disable
set tlsv1-1 disable
end
```
Questo NON chiude la CVE, ma riduce la superficie d'attacco.
Step 7: Abilita Log Dettagliati e SIEM
Invia i log a un SIEM esterno (non sul FortiGate):
```bash
config log syslogd setting
set status enable
set server "192.168.1.100"
set port 514
end
config log syslogd filter
set severity information
end
```
Se non hai un SIEM, usa FortiAnalyzer Cloud (a pagamento) o implementa un SOC/MDR gestito che correli eventi cross-appliance.
Verifica: Come Testare l'Hardening
Test 1: Scan Esterno con Nmap
Da una VM esterna (o usa Shodan):
```bash
nmap -p 443,10443,8443 -sV <IP_pubblico_FortiGate>
```
Se vedi `443/tcp open ssl/https` con banner FortiGate, SEI ANCORA ESPOSTO. L'hardening dello Step 5 non è applicato correttamente.
Test 2: Verifica Tentativi di Login Falliti
Simula brute-force (da IP whitelist) per vedere se i log catturano:
```bash
for i in {1..10}; do curl -k https://<IP_FortiGate>/login -d "username=admin&password=wrong$i"; done
```
Poi controlla:
```bash
execute log display | grep "failed login"
```
Se NON vedi i 10 tentativi, il logging non è configurato.
Test 3: Vulnerability Assessment con Tenable Nessus
Se hai licenza Nessus Professional, lancia un credentialed scan:
- Aggiungi le credenziali FortiGate (SSH)
- Scan policy: "Advanced Scan" con plugin Fortinet
- Verifica che NON emergano CVE critical note
Se non hai Nessus, usa il free tier di Qualys o richiedi un vulnerability assessment esterno.
Troubleshooting: Problemi Comuni
Q: Ho patchato alla 7.0.13 ma Nmap mostra ancora il vecchio banner
A: Il banner SSL non si aggiorna finché non riavvii il processo `httpsd`. Fai:
```bash
diagnose sys kill 11 <PID_httpsd>
```
Trova il PID con `diagnose sys process pidof httpsd`.
Q: Dopo l'hardening, il FortiClient VPN non si connette più
A: Hai disabilitato TLS 1.0/1.1 ma il client è obsoleto. Aggiorna FortiClient all'ultima versione (7.2.x) che supporta TLS 1.3.
Q: I log non arrivano al SIEM anche con config corretta
A: Verifica che la policy firewall permetta UDP 514 verso il SIEM:
```bash
config firewall policy
edit 100
set srcintf "internal"
set dstintf "wan1"
set srcaddr "FortiGate_IP"
set dstaddr "SIEM_IP"
set service "SYSLOG"
set action accept
next
end
```
Q: L'attaccante potrebbe aver lasciato backdoor nel firmware?
A: Improbabile ma possibile. Fai un firmware re-flash da immagine verificata (checksum SHA-256) e poi ripristina config da backup pre-breach.
Q: Come verifico se i miei backup sono già stati esfiltrati?
A: Controlla i log FTP/SFTP del server di backup per connessioni da IP sconosciuti. Se non hai log, assume breach e ricrea i backup con nuova passphrase.
Conclusione
Questo attacco dimostra che l'AI ha abbassato la skill bar per compromettere appliance enterprise. Un amateur con $20/mese di ChatGPT ha fatto il lavoro che 5 anni fa richiedeva un team APT.
I 7 step sopra ti proteggono dal 90% degli attacchi automatizzati, ma NON sono sufficienti contro un attaccante motivato. Servono:
- Patch management automatizzato (non "quando abbiamo tempo")
- MFA su TUTTI gli accessi admin (no eccezioni)
- Segmentazione di rete (FortiGate management in VLAN isolata)
- SIEM con correlation rules per rilevare pattern anomali
Se gestisci più di 5 appliance o non hai un team dedicato, considera di delegare sicurezza informatica e monitoraggio a un MSP specializzato. Il costo di un breach è sempre superiore al costo di una gestione proattiva.