Che cos'è l'ispezione con stato?
L'ispezione con stato è una tecnica utilizzata nei firewall di rete per proteggere una rete da accessi non autorizzati. Conosciuto anche come filtro dinamico, il metodo è in grado di ispezionare un intero pacchetto di dati prima che entri nella rete. In questo modo, ogni pacchetto che entra in qualsiasi interfaccia sul firewall viene verificato completamente per la validità rispetto ai tipi di connessioni che possono passare attraverso l'altro lato. Il processo prende il nome perché non solo controlla i pacchetti di dati, ma monitora anche lo stato di una connessione che è stata stabilita e consentita attraverso il firewall.
L'idea per l'ispezione statale è stata inizialmente ideata dal software Check Point®, a metà degli anni '90. Prima del software del motore INSPECT ™ di Check Point® Firewall-1, i firewall monitoravano il livello dell'applicazione, nella parte superiore del modello OSI (Open Systems Interconnection). Questo tendeva a essere molto oneroso per il processore di un computer, quindi l'ispezione dei pacchetti ha spostato i livelli del modello OSI sul terzo livello, il livello di rete. L'ispezione anticipata dei pacchetti controllava solo le informazioni di intestazione, le informazioni di indirizzamento e di protocollo dei pacchetti e non aveva modo di distinguere lo stato del pacchetto, ad esempio se si trattava di una nuova richiesta di connessione.
In un firewall d'ispezione con stato, il metodo di filtraggio dei pacchetti rapido e intuitivo si fonde in qualche modo con le informazioni più dettagliate dell'applicazione. Ciò fornisce un certo contesto al pacchetto, fornendo in tal modo maggiori informazioni da cui basare le decisioni di sicurezza. Per memorizzare tutte queste informazioni, il firewall deve stabilire una tabella, che quindi definisce lo stato della connessione. I dettagli di ogni connessione, comprese le informazioni sull'indirizzo, le porte e i protocolli, nonché le informazioni di sequenziamento per i pacchetti, vengono quindi memorizzati nella tabella. L'unica volta in cui le risorse vengono messe a dura prova è durante l'entrata iniziale nella tabella degli stati; dopo di ciò, ogni altro pacchetto abbinato a quello stato non utilizza quasi alcuna risorsa di elaborazione.
Il processo di ispezione con stato inizia quando il primo pacchetto che richiede una connessione viene acquisito e ispezionato. Il pacchetto viene confrontato con le regole del firewall, dove viene confrontato con una serie di possibili parametri di autorizzazione che sono infinitamente personalizzabili al fine di supportare software, servizi e protocolli precedentemente sconosciuti o ancora da sviluppare. Il pacchetto acquisito inizializza l'handshake e il firewall invia una risposta all'utente richiedente che riconosce una connessione. Ora che la tabella è stata popolata con le informazioni sullo stato per la connessione, il pacchetto successivo dal client viene confrontato con lo stato della connessione. Questo continua fino a quando la connessione non scade o viene terminata e la tabella viene cancellata dalle informazioni sullo stato per quella connessione.
Ciò comporta uno dei problemi affrontati dal firewall di controllo stateful dell'attacco denial of service. Con questo tipo di attacco, la sicurezza non viene compromessa in quanto il firewall viene bombardato da numerosi pacchetti iniziali che richiedono una connessione, costringendo la tabella di stato a riempirsi di richieste. Una volta piena, la tabella di stato non può più accettare alcuna richiesta e quindi tutte le altre richieste di connessione vengono bloccate. Un altro metodo di attacco contro un firewall stateful sfrutta le regole del firewall per bloccare il traffico in entrata, ma consente qualsiasi traffico in uscita. Un utente malintenzionato può ingannare un host sul lato sicuro del firewall per chiedere connessioni dall'esterno, aprendo efficacemente tutti i servizi sull'host da utilizzare per l'utente malintenzionato.