L’antivirus è l’unico profilo di sicurezza in cui una configurazione sbagliata non produce un errore ma un silenzio: la policy resta verde, il traffico passa, e nessuno scansiona niente. Le impostazioni che generano quel silenzio stanno in due posti diversi — il feature set del profilo antivirus e il profilo di protocol options della policy — quindi vanno guardate in coppia.

Feature set e inspection mode devono coincidere

Un profilo antivirus nuovo nasce flow-based, ed è la scelta consigliata a meno che non ti servano funzioni esclusive del proxy. La regola dura è che il feature set del profilo deve corrispondere all’inspection mode della policy: un profilo flow-based va su una policy flow-based, punto. Se nella GUI non vedi nemmeno il selettore Feature set, non è un bug del profilo:

config system settings
    set gui-proxy-inspection enable
end

FortiOS porta due profili precaricati, default e wifi-default. L’antivirus richiede una sottoscrizione FortiGuard Antivirus, e c’è un dettaglio che manda fuori strada interi laboratori: per scaricare le definizioni aggiornate deve esistere almeno una policy con un security profile che ha l’antivirus abilitato. Se nessuno usa l’antivirus, le firme non si aggiornano, e quando finalmente accendi il profilo scansioni con un database vecchio.

Cosa cambia davvero fra flow e proxy

In flow mode il FortiGate non bufferizza: ispeziona pacchetto per pacchetto e trattiene solo l’ultimo finché la scansione non dà un verdetto, poi in caso di violazione manda un reset al destinatario. Tutti i moduli flow-based applicabili girano in un passaggio solo con pattern matching DFA, accelerato dai processori CP8 o CP9. In proxy mode il payload viene bufferizzato per intero, ispezionato e poi rilasciato oppure sostituito da un replacement message.

Le differenze operative che contano:

  • Protocolli. HTTP, FTP, IMAP, POP3, SMTP, NNTP e CIFS si ispezionano in entrambe le modalità. MAPI e SSH solo in proxy. Sul CIFS l’ispezione proxy ha due limiti dichiarati: non rileva infezioni dentro certi archivi e non rileva i file oversize.
  • Modalità di scansione. Dalla 6.4.0 in flow l’opzione scan mode non esiste più: il motore IPS sceglie da solo, in base al tipo di file, se usare un database di pre-filtraggio o il database completo delle firme. In proxy l’opzione resta e si imposta solo da CLI con set scan-mode default (stream-based attivo) oppure legacy (stream-based disattivato).
  • Funzioni solo proxy. Content Disarm and Reconstruction, che ripulisce file Office, OpenOffice, PDF, RTF e XLSB togliendo contenuti e media attivi e conservando il testo, e il client comforting. In flow mancano entrambi.
  • Il replacement message in flow. Compare al secondo tentativo, perché il motore IPS mette in cache l’URL. Il primo download viene bloccato ma l’utente vede un file troncato, non la pagina di blocco: prima di dichiarare che l’antivirus non funziona, riprova.

Un avvertimento sulla documentazione 7.6: sul FortiSandbox inline scanning le due pagine si contraddicono — la tabella di confronto fra le modalità lo dà come funzione solo proxy, mentre la pagina di configurazione del profilo associa l’inline al flow-based e il post-transfer al proxy. Su questo punto verifica sull’apparato che hai davanti invece di fidarti di una delle due.

Protocol options: il profilo che decide cosa viene guardato

A ogni policy si aggancia un solo profilo di protocol options, che però può essere riusato su molte policy. Definisce il port mapping per protocollo, le soglie sui file oversize e il comfort clients, e tre delle sue impostazioni sono responsabili della maggior parte dei file che passano senza scansione.

Port mapping. Ogni protocollo ha una porta TCP di default modificabile, ma vale solo per l’ispezione proxy-based: il flow ispeziona tutte le porte comunque, indipendentemente dal port mapping. Quindi un server FTP su una porta esotica sfugge alla policy proxy e non a quella flow.

Block oversized files and emails. La soglia predefinita è 10 MB, il minimo è 1 MB e il massimo dipende dal modello. Qualunque file sopra la soglia non viene processato dalle policy che applicano il profilo antivirus. In flow l’azione sugli oversize può essere pass (default) o block: con pass, quando i dati accodati al buffer di scansione superano l’oversize-limit del profilo di protocol options la sessione antivirus viene azzerata e il file bypassa la scansione. L’opzione Log oversized files non cambia questo comportamento, logga soltanto — ed è il modo giusto per misurare quanto spesso succede prima di toccare la soglia.

Comfort clients. Esiste solo con la scansione proxy ed evita che l’utente annulli un download lungo: il FortiGate fa colare un rivolo di dati mentre scansiona. Il prezzo è esplicito nella documentazione — stai mandando al client contenuto non ancora scansionato — quindi intervallo alto e quantità bassa. Vale su HTTP e FTP, e su HTTPS e FTPS se la policy fa ispezione SSL.

Restano il chunked bypass, che accelera le risposte HTTP dinamiche a costo di non trattenere il file intero nel proxy, e Allow fragmented messages: se un malware è spezzato fra più frammenti di un’email può non essere rilevato.

La regola pratica

Parti flow-based su tutte le policy e passa a proxy solo dove ti serve qualcosa che il flow non ha: CDR, client comforting, MAPI o SSH. Usare la stessa modalità dappertutto aiuta le prestazioni. Se il FortiGate entra in conserve mode con regolarità, abbassare la soglia oversize riduce la pressione sulla memoria: aumenta il rischio, ma il malware sta più spesso nei file piccoli.