Dopo aver spiegato cosa, effettivamente, un firewall sia ed esserci dedicati in specifico al funzionamento del firewall packet filtering e del proxy firewall, oggi osserveremo piรน da vicino lo stateful firewall.
Se, quindi, un packet filtering, sistema abbastanza primitivo, filtra i pacchetti di dati utilizzando l’ACL (ovvero, la lista di controllo degli accessi), lo stateful firewall tiene sotto controllo dove i pacchetti vanno, ovvero il loro stato di transizione, finchรฉ ogni specifica connessione viene chiusa.
Per spiegare il packet filtering avevamo usato l’esempio delle bodyguards che decidono chi far entrare o meno in uno specifico locale; nel caso dello stateful firewall invece abbiamo a che fare con una sorta di vicino di casa impiccione che controlla tutte le macchine che si fermano a casa nostra, le persone, le conversazioni fatte il che risulta alquanto fastidioso ma puรฒ, paradossalmente, rivelarsi utile se qualche malintenzionato si avvicina a casa nostra. Allo stesso modo, lo stateful firewall controlla tutte le conversazioni tra i computer connessi utilizzando unaย state tableย (tabella di stato) che ne schematizza i risultati. Questa azione, perรฒ, implica la presenza di molte variabili. Per esempio, se il nostro sistema (A) vuole comunicare con un altro (B) attraverso una connessione TCP (Transfer Control Protocol), ovvero un protocollo affidabileย per trasferire i pacchetti, A invierร a B un pacchetto dove il valore predefinito della SYN flag sarร impostato su 1. Questo valore specifica il volere di A d’aprire una connessione di tipo TCP con B. Quando B risponderร che รจ pronto a partecipare alla suddetta risponderร restituendo un pacchetto completo di SYN e ACK (acknowledge, riconoscimento) flags con il valore sempre impostato su 1 (semplificando B dice ad A: “Ok, ho riconosciuto il pacchetto SYN che mi hai mandato, sincronizziamoci). Ma questa non รจ l’unica informazione che nel frattempo A e B si scambiano: prenderanno, infatti, accordi relativi a sequenze numeriche, quanti dati inviare alla volta, quanti errori potenziali di trasmissione potranno essere identificati (valori CRC), etc. Inoltre, vi sono oltre al TCP altri protocolli di cui lo stateful firewall deve occuparsi. Qui sotto vediamo un’immagine tratta dal libro di Shon Harris CISSP del TCP header (intestazione del pacchetto TCP) a cui abbiamo appena accennato e che ci aiuta a comprendere quante informazioni vengono contemporaneamente processate. ย
Mantenere, quindi, lo stato della connessione significa creare una sorta di tabella relativa ai vari valori dell’intestazione del protocollo (protocol header) man mano che i pacchetti si scambiano. Logicamente, tutti i valori non devono essere solo corretti ma devono anche essere processati nella giusta sequenza. Per esempio, il cosiddetto attacco XMAS il quale “accende tutte le flag (bandiere)” impostando tutti i valori dei pacchetti su 1 mira ad un tipo di firewall che non sia in grado di controllare o comprendere cosa stia succedendo e lasci passare indisturbati i dati infetti. Uno stateful firewall, invece, mantenendo sotto controllo e registrando tutti i valori dell’header si renderร conto della “fregatura” e bloccherร o riavvierร il sistema poichรฉย non sarร in grado di processare dei pacchetti TCP che dimostrano d’avere tutti il valore impostato su 1 essendo, questo, contro le regole del protocollo.
Cosรฌ, il momento in cui una connessione viene stabilita tra due sistemi, il firewall controlla tutti i layers del pacchetto (l’intestazione, il suo carico e la sua articolazione). Tutte le informazioni necessarie relative a tale specifica connessione vengono conservate nella state table (sorgente e destinazione degli indirizzi IP e delle porte, il tipo di protocollo, le header flags, sequenze numeriche, marcatura oraria, etc.). Dopo l’ispezione iniziale dei pacchetti il firewall si limita al controllo della rete e delle porzioni di trasporto dell’intestazione: i valori di ogni header vengono comparati all’interno della state table e quest’ultima viene aggiornata per rendere conto del processo della comunicazione.
Non tutti i protocolli, perรฒ, funzionano come il TCP. Ad esempio, nel caso del FTP (protocollo di trasferimento file) inizializza lo scambio di dati in maniera diversa, ovvero aprendo non solo una ma due sessioni per la stessa comunicazione: ciรฒ significa che, sebbene si possano rintracciare le due connessioni normalmente, le regole di connessione risultano differenti. Quindi, in tal caso, per configurare uno stateful firewall รจ necessario comprendere le particolaritร di alcuni specifici protocolli altrimenti questi non sarร in grado di ispezionare e controllare propriamente i dati.
Infine, lo stateful firewall ha un’altra particolaritร : puรฒ tracciare anche connessioni che utilizzano protocolloย come l’UDP (user datagram protocol) e l’ICMP (controlย internet message protocol). Essendo l’UDP un protocollo senza collegamento non vi รจ un sistema, come invece accade nel caso del TCP, che avverta ilย mittente nel caso i pacchetti di dati non possano essere processati abbastanza velocemente: รจ qui che l’ICMP emerge facendo le veci dei valori nell’header presenti nella normale connessione TCP. Questo, perรฒ, significa che lo stateful firewall dovrร essere in grado di tracciare e permettere ai pacchetti ICMP associati alla specifica connessione UDP di passare. Nel caso il firewall fallisca a comprendere tutto ciรฒ il sistema potrebbe essere talmente sopraffatto dalla quantitร di dati ricevuta da “crashare”.
Lo stateful firewall non รจ completamente immune dagli attacchi, ne abbiamo fatto un esempio ad inizio di questo post citando l’attacco XMAS ma vi sono anche parecchi attacchi di tipo DoS (qui la spiegazione di cosa sia) che vengono lanciati contro questi firewall;ย ma non solo, assistiamo anche ad attacchi il cui scopo รจ riempire le state tables di informazioni errate cosรฌ da forzare il sistema a riavviarsi o congelarsi e, questo, significa che tutte i dati delle connessioni recenti verranno perse completamente portandolo, cosรฌ, a negare il passaggio persino a pacchetti dati del tutto legittimi.
ELENCO DELLE CARATTERISTICHE PIร IMPORTANTI DELLO STATEFUL FIREWALL
- Utilizzo e mantenimento di una state table che tracci ogni comunicazione e le relative sessioni.
- Alto livello di sicurezza e non presenta una perdita delle prestazioni come, invece, avviene nel caso dei Proxy Firewall.
- Modulare e trasparente per gli utenti.
- Fornisce dati per rintracciare protocolli senza collegamento come UDP e ICMP.
- Archivia ed aggiorna lo stato ed il contesto dei dati entro il pacchetto.
Lascia un commento