Firewall Stateful

Indice dei contenuti

    Il firewall stateful (o stateful inspection firewall) è la seconda generazione di firewall, introdotta a metà degli anni ‘90. A differenza del packet filter stateless, mantiene una tabella di stato (connection tracking table o state table) che registra le informazioni sulle sessioni TCP/UDP/ICMP attive. Ogni pacchetto viene valutato non solo in base alle sue intestazioni, ma anche in relazione al contesto della connessione a cui appartiene.

    La tabella di stato

    Per ogni connessione attiva, il firewall stateful registra una riga nella tabella di stato con almeno:

    CampoEsempio
    IP sorgente192.168.1.10
    IP destinazione93.184.216.34
    Porta sorgente54321
    Porta destinazione443
    ProtocolloTCP
    StatoESTABLISHED
    Timeout3600s

    Tracciamento del three-way handshake TCP

    Per le connessioni TCP, il firewall traccia il ciclo di vita completo:

    1. Il client invia SYN → il firewall crea una entry con stato SYN_SENT
    2. Il server risponde SYN-ACK → lo stato passa a SYN_RECEIVED
    3. Il client invia ACK → la connessione è ESTABLISHED
    4. Al FIN o RST la entry viene rimossa dopo un timeout

    Un pacchetto con flag ACK che non corrisponde a nessuna entry nella tabella di stato viene scartato — blocca attacchi di port scanning stealth (Xmas scan, FIN scan) e tentativi di session hijacking che il packet filter non riconoscerebbe.

    Vantaggi rispetto al packet filter

    Il firewall stateful risolve i limiti strutturali del packet filter. Non è necessario aprire range di porte per le risposte: il pacchetto di risposta viene accettato automaticamente perché corrisponde a una connessione uscente già tracciata. Il traffico asimmetrico (pacchetti senza handshake precedente) viene rifiutato. I protocolli con connessioni di controllo e dati separate (FTP, SIP) possono essere gestiti tramite ALG (Application Layer Gateway) che aggiornano dinamicamente la tabella di stato.

    Limiti

    Il firewall stateful opera ai livelli 3 e 4 del modello OSI: non analizza il contenuto del payload applicativo. Non distingue tra una richiesta HTTP legittima e una SQL injection che transita sulla stessa porta 80. Non ispeziona il traffico cifrato (HTTPS, SMTPS). Per queste capacità è necessario il firewall applicativo o il NGFW. La tabella di stato è anche un vettore di attacco: un DDoS SYN flood satura la tabella esaurendo la memoria del firewall (mitigato con SYN cookies).

    Ultimo aggiornamento: