Cos'e'
un firewall? Firewall, che letteralmente significa 'parafiamme', è
un termine usato per descrivere una parte dell'automobile che separa
il motore dai passeggeri per proteggere i passeggeri nel caso in
cui il motore si incendi, fornendo nel contempo al guidatore la possibilità
di accedere ai controlli del motore.
Un firewall
Il termine firewall
in informatica e' usato per identificare un dispositivo che protegge
una rete privata da quella pubblica.
La necessita'
di firewalls oggigiorno e' indubbia e gestirli bene e' un must per qualsiasi
network administrator.
Non esiste una
soluzione comune per tutti, ogni rete ha le sue peculiarita' ed e'
molto importante, anche se purtroppo spesso sottovalutato, uno studio approfondito
di quello che sara' il design del firewall. Vediamo quali sono i vari moduli
che possono partecipare alla sua composizione: packet filtering, proxying,
dual-homed systems, DMZ, screened host.
Un primo livello
di filtro consiste nel fare del routing selettivo basandosi sui cosidetti
screening routers. Alcuni protocolli, come telnet e SMTP, si prestano
bene a questo tipo di selezione. Gli screening routers sono dei routers
che hanno in piu' la capacita' di permettere o bloccare il passaggio
dei pacchetti in base ad una lista di regole basandosi sulla sorgente,
destinazione, protocollo ed eventualmente anche sul numero di porta di
provenienza/destinazione.
Uno screening
router quindi, oltre a verificare se e' in grado di instradare il
pacchetto in esame, considera anche se e' lecito che lo faccia. Tra
i vantaggi dell'utilizzo di un router al posto di un host per il packet
filtering vi e' sicuramente l'economicita' e anche l'impossibilita'
di accedere a delle risorse sfruttando servizi come rlogin e telnet,
ma un router e' limitato nelle funzionalita'. Non e' in grado di
modificare i servizi e rimane legato a quelli standard. Il packet filtering
normale non puo'mantenere lo stato delle connessioni, cosa utilissima soprattutto
con l'UDP. Cio' e' invece possibile con il dynamic packet filtering, dove
le regole vengono modificate al volo. Ad esempio, nel caso di un pacchetto
UDP che esce, viene temporaneamente creata una regola che permetta al pacchetto
di risposta di passare.
Un altro svantaggio
del packet filtering puro e' che scrivere le regole su router non e' intuitivo,
va seguita una complessa sintassi.
Le performance
del router vengono dimezzate e se viene bypassato, la rete interna rimane
completamente scoperta.
Tutte queste
motivazioni rendono ovvio che l'esclusivo utilizzo di packet filtering
non e' sufficiente per una efficente protezione della rete interna.
Se il packet
filtering usa un meccanismo indipendente dal protocollo e dal servizio,
i proxies si basano invece su software specifici per determinati serviz
Con l'utilizzo
di un proxy, quando un utente interno richiede un servizio sulla rete pubblica,
si connette prima al gateway, che nel nostro caso e' il firewall, e poi
alla macchina destinataria. Non c'e' IP forwarding dall'interno verso l'esterno
e viceversa, in modo da proteggere la topologia interna e da attuare del
logging. Il tutto in modo trasparente per l'utente che non si accorge di
questa tappa intermedia. I proxies sono utili solo in sinergia con meccanismi
che non permettano un accesso diretto tra
la rete interna e quella esterna come packet filtering e dual-homed systems.
Un sistema dual-homed
e' un host con due interfacce di rete ed e' un unico punto di accesso tra
la rete interna e quella esterna. Il dual-homed host e' diverso da una
semplice workstation che fa da router tra due reti in quanto ha disabilitato
l'IP forwarding e puo' quindi offrire servizi solo attraverso proxy.
Se invece di
avere un dual-homed host, si hanno almento 3 interfacce, si crea una sottorete
dove mettere tutti quei servizi che interagiscono maggiormente con l'esterno,
come DNS, http, mail etc. Questa area intermedia che si puo' costruire
logicamente tra la rete interna e quella esterna viene chiamata DMZ (De-Militarized
Zone). Grazie alla DMZ si puo' discriminare meglio ed aumentare la sicurezza
della rete interna. Questo approccio di stratifica e la rete interna per
proteggerla meglio e' sfruttato appieno
dagli screen hosts che vengono situati su un perimeter network. Un router
esterno fa un primo filtraggio tra internet e il perimeter network dove
c'e' il bastion host che fa da firewall. Questa macchina viene 'rinforzata'
in quanto sara' quasi sicuramente
oggetto di attacchi (da qui il nome di bastion). Per renderla piu' sicura
si puo' per esempio renderla stealth, ovvero invisibile a livello IP, oppure
limitare i servizi di sistema operativo (hardening of the operating system).
Vi e' poi un
router che collega il perimeter network alla rete interna. Questo tipo
di architettura e' diventata piuttosto comune grazie al fatto che non solo
non esiste piu' un unico punto vulnerabile ma ci si difende ulteriormente
dagli attacchi.
Una tecnica
usata dagli hackers e' infiltrarsi spacciandosi per membri della rete interna.
Questo meccanismo, chiamato spoofing, non e' piu' possibile quando si hanno
piu' macchine tra l'esterno e l'interno e una regola che verifichi che
dalla macchina esterna non provengano pacchetti che hanno come sorgente
la rete interna.
La stratificazione
puo' essere usata anche all'interno della propria rete per separare aree
strategicamente importanti (finance, labs etc) dal resto della rete.
Vi sono poi
innumerevoli architetture che combinano i diversi moduli a seconda delle
esigenze e del portafoglio, ma chi ha bisogno di un livello alto di sicurezza
non puo' far a meno di usare l'encryption per proteggere le proprie comunicazioni.
Sull'architettura
prescelta grazie all'encryption si possono creare una reti logiche proprietarie,
le cosidette Virtual Private Networks (VPN).
Un host, che
deve spedire attraverso una rete insicura come internet, appoggiandosi
ai firewalls puo' comunicare, grazie all'encryption, con un altro host
come se fosse sopra una propria rete privata.
L'host invia
in chiaro i propri pacchetti che giungono al firewall che protegge la rete
interna alla quale appartiene l'host. Qui i pacchetti vengono codificati
dal firewall e inviati al corrispondente firewall che protegge la rete
dell'host destinario. Qui il firewall
decodifica i pacchetti e li invia in chiaro all'host.
Vi sono diverse
topologie di codifica e tra i piu' usati si ha SKIP, che si basa sullo
standard IPSec ma a chiave variabile.
IP Security
(IPSec) e' una commissione che fa capo allo IEFT ed ha la responsabilita'
di standardizzare le questioni legate alla sicurezza del livello IP, come
l'integrita' dei dati con l'autenticazione e l'encryption.
Gli standard
pubblicati sono, tra altri, il DES e 3-DES per l'encryption e MD5 e SHA
per l'autenticazione.
Lo standard
per l'encryption adottato da IPSec e' l'Encapsulating Security Payload
(ESP). Questo tipo di metodo puo' codificare l'intero pacchetto IP,
header incluso, e vi aggiunge il proprio header, possibilmente con indirizzi
destinazione/sorgente rimappati. Questo meccanismo e' noto anche
come tunnel mode (o IP tunnelling).
Al contrario
il transport mode lascia in chiaro l'header IP codificando solo i dati.
Se da una parte questo metodo e' piu' veloce, dall'altra ha un notevole
punto debole. Si presuppone che il destinatario sia sempre colui
che decodifichera' il pacchetto.
Nel caso dei
firewall, per esempio, il tunnel mode e' piu' flessibile in quanto la macchina
firewall e' di solito un gateway di encryption/decryption ma raramente
il destinatario finale del pacchetto.
Per ulteriori
informazioni sui tipi elementari di encryption fare riferimento all'articolo
pubblicato il mese precedente.
|