Il Firewall è tra
gli strumenti più adatti e facili da utilizzare per difendersi dagli attacchi
nella rete!
Con
il termine FIREWALL si tende ad identificare in modo generico tutta una serie di
funzioni e di apparecchiature che servono a proteggere un determinato dominio o
rete privata, da una LAN privata ad Internet nel suo complesso. Di Firewall ne
esistono varie versioni e si può implementare con diverse configurazioni, però
la realizzazione finale dovrà tener conto di due esigenze spesso opposte quali
costi e prestazioni. La soluzione più efficace (se propriamente implementata)
risulta quella dedicata, che include hardware e software appositamente prodotto,
con costi che aumentano sensibilmente. Esiste poi un altro approccio che è
quello di adattare pacchetti già esistenti, alle esigenze specifiche del caso.
Andiamo ora a vedere come questa protezione si applica al caso del Web. Il
Web crea una connessione tra la porta della rete sul computer client Web e la
porta della rete sul server Web. Il Firewall controlla e gestisce la connessione
tra le due porte. Nella figura 2 viene illustrato un firewall, situato fra la
porta P1 della rete del client Web, sulla rete privata interna, e la porta P2
della rete del server Web su Internet.
Il
firewall separa e protegge la rete privata, definendo e rafforzando i metodi
strutturati per il traffico di rete in modo che passino attraverso il firewall.
I computer all'esterno del firewall devono attenersi a questa struttura,
definita dal firewall, per ottenere l'accesso alle risorse, agli host, alla rete
ed alle informazioni sulla rete interna. Il firewall limita l'accesso alla rete
interna a una serie di computer, ai singoli e ai servizi di sistemi che sono
stati autorizzati. Il traffico di rete è "legale" o autorizzato,
quindi può passare attraverso il firewall, a patto che si attenga alla
struttura definita dal firewall. Al traffico casuale non strutturato non è
permesso passare. La figura 2 mostra un accesso verso l'esterno, e questo
rappresenta il traffico di tipo più comune che gli amministratori di firewall
devono supportare. Nella figura 3 invece viene illustrato il traffico interno
del Web. In questo caso un amministratore del firewall dovrebbe offrire un
servizio Web dall'interno del firewall.
Il traffico interno è più difficile da gestire in modo sicuro, dato che il
firewall deve permettere ai client remoti, che possono essere inaffidabili, di
penetrare nel firewall per accedere ai documenti Web. Esistono diverse
tecnologie che possono essere utilizzate dai firewall per strutturare l'accesso
agli host sulla rete interna: router, gateway di circuito, proxy e gateway di
applicazione.
Accesso
al Web mediante un router che filtra i pacchetti
Funzionamento
I Firewall packet filter sono dei router posti sul
gateway che filtrano i pacchetti in ingresso e in uscita. In genere viene posto
tra due o più segmenti di rete, segmenti classificati in interni, se
appartengono alla rete o esterni se collegano ad Internet. Il filtraggio viene
fatto confrontando i dati contenuti nella header del pacchetto con quelli
imposti dal gestore della Firewall sulle tabelle di routing. In base al responso
del confronto il pacchetto potrà attraversare il Firewall o meno. Operando al
livello di trasporto (quarto livello OSI), il packet filter è in grado di
compiere una selezione dei pacchetti in transito in base all'indirizzo della
sorgente, della destinazione e dei campi di controllo presenti nei pacchetti,
scartando quelli che non rispettano le regole imposte. Il vantaggio di questo
metodo consiste nel fatto che, analizzando soltanto gli header di terzo e quarto
livello, non si hanno significative perdite di prestazioni della rete.
I principali controlli che si possono fare con il sistema packet filter sono:
•
Controllo sull'indirizzo del mittente e del destinatario.
• Controllo sulla porta del server richiesta per il collegamento.
• Controllo sul tipo di servizio richiesto (telnet, ftp,...).
• Verificare se si tratta della prima connessione.
Le regole di filtraggio sono memorizzate in uno specifico ordine. Ogni regola è
applicata al pacchetto nell'ordine in cui è memorizzata. Se una regola blocca
la trasmissione o la ricezione del pacchetto, il pacchetto è rifiutato.
Vantaggi
• Economico.
• Può essere realizzato sia con struttura hardware che software.
• E' un meccanismo trasparente che non ostacola il normale utilizzo della
rete.
Svantaggi
• I controlli che si eseguono sono a livello TCP/IP
e non a livello dati, quindi non sono consentiti monitoraggi molto raffinati. Un
esempio di impostazione del packet filter potrebbe essere di impostare le
tabelle di instradamento in modo tale da ignorare tutto il traffico in uscita e
in entrata che non richieda la porta 80, oppure potrebbe consentire l'accesso
solo ai pacchetti provenienti da una particolare rete. Come si vede questo non
è un sistema molto flessibile e neppure sicuro, data la relativa facilità con
cui si possono manipolare i dati della header dei pacchetti.
• Non è sempre facile impostare, testare e gestire le regole di filtro di una
tabella di instradamento ed errori in queste fasi potrebbero essere fatali per
la sicurezza del sistema.
• Una volta che un host esterno ha superato la Firewall, esso ha accesso
diretto ad ogni host della rete interna. Una volta entrati è quindi facile per
gli aggressori sfruttare eventuali buchi nei sistemi di sicurezza dei singoli
servizi forniti dagli host interni. E' necessario uno sforzo maggiore per
mantenere la rete sicura e una particolare attenzione va posta sugli host che
prestano servizi all'esterno.
• L'amministratore del firewall non dovrebbe specificare tanto le porte quanto
i servizi del sistema che hanno diritto di accesso.
• Sono difficili da configurare e da gestire.
• Peggiorano le prestazioni dei dispositivi in cui sono implementati.
Accesso
al Web mediante un gateway di circuito
Funzionamento
Questo tipo di Firewall eseguono dei controlli a
livello di sistema operativo, quindi a livello superiore di quello dei packet
filter.
I Firewall gateway di circuito sono composti da due software: uno sulle singole
macchine della rete interna detto libreria socks, uno che risiede sulla macchina
del gateway detto programma di relay.
La libreria socks è un pacchetto software ampiamente disponibile che permette
appunto di utilizzare un gateway di circuito da parte del browser del client,
gestendo le tre chiamate al TCP/IP del client: connect(), socket() e bind().
Quando un client della rete interna esegue una chiamata per un server esterno,
il browser web del client reindirizza la chiamata, tramite la libreria socks,
che agisce come un proxy (descritto successivamente), al programma di relay sul
gateway. Questo reindirizzamento avviene in modo del tutto trasparente per
l'utente. Il programma di relay farà in modo che solo i pacchetti autorizzati
passino attraverso il Firewall, copiandoli dalla porta interna a cui li aveva
indirizzati il browser (libreria socks) alla porta esterna dedicata ai server
esterni.
Procedimento analogo si esegue per i messaggi in ingresso.
In questo modo la connessione non avviene più direttamente con l'host remoto,
ma avviene tramite il programma di relay.
Vantaggi
• I controlli vengono fatti ad un livello di
sistema operativo.
• La libreria socks può essere collegata a diverse applicazioni (telnet,
ftp,ecc..).
• Il meccanismo di sicurezza è ben nascosto all'utente.
Svantaggi
• Forma e contenuto di questa libreria variano da
sistema operativo a sistema operativo di conseguenza possono nascere problemi di
portabilità. Potrebbe essere difficile trovare una versione socks compatibile
con tutti i sistemi operativi.
• Occorre che ogni browser della rete interna venga ricompilato con la
libreria socks.
• Nel caso di reti di grandi dimensioni questa operazione può risultare molto
complessa e costosa. Alcuni browser sono però venduti già con il supporto
socks, quindi non è necessaria la ricompilazione.
Accesso
al Web mediante un gateway di applicazione
Funzionamento
I Firewall che consentono l'accesso alla rete
mediante gateway di applicazione, detti anche proxy, sono sistemi che risiedono
sul computer del gateway.
Il funzionamento del gateway di applicazione (proxy) è simile a quello del
software di relay, il proxy infatti esegue tutte le operazioni che esegue il
software di relay ed altre ancora , esso infatti esso infatti incorpora parte
del linguaggio e del protocollo dell'applicazione. Questo significa due cose: la
prima è che il gateway di applicazione esegue controlli sull'accesso a livello
più alto , ovvero a livello di applicazione, la seconda è che ogni servizio
specifico (telnet, ftp, http,ecc..) necessita di un proprio gateway di
applicazione. Con questo sistema si possono eseguire filtraggi selettivi in base
al tipo di richiesta, cosa che un relay dei gateway di circuito non era in grado
di fare in quanto non in grado di interpretare i diversi protocolli .Un gateway
di applicazione può ad esempio richiedere l'autenticazione dell'utente quando
cerca di importare o esportare dati. Per ogni nuova connessione di rete viene
creato un nuovo proxy,in quanto ognuno di essi è in grado di controllare solo
un singolo flusso di traffico tra due specifici hosts. Se ad esempio viene
eseguita una richiesta di connessione FTP, il Firewall creerà un nuovo proxy
FTP anche se ne esiste già un altro.
Vediamo adesso il funzionamento di questo sistema.
Quando si esegue una connessione ad un server esterno, il browser reindirizza la
richiesta in modo trasparente al proxy sul Firewall. Questo reindirizza mento
avviene mediante un'impostazione del file di configurazione del browser o
mediante una variabile di ambiente sul computer del client. A questo punto il
gateway di applicazione esegue i controlli per cui è strato configurato e, in
base ai risultati ottenuti, trasmette o meno i pacchetti dalla porta P1 interna
del client alla porta P2 esterna del server sul Firewall.
In questo modo il gateway di applicazione agisce come un server nei confronti
del browser e come un client nei confronti del server WEB.
I gateway di applicazione possono proteggere i sistemi all'interno della
Firewall filtrando in modo selettivo i caratteri, progettati in modo pericoloso
per una determinata applicazione, mentre copiano i dati da una porta all'altra.
Un gateway di applicazione potrebbe usare la propria abilità per comprendere il
protocollo di applicazione e filtrare i motivi di carattere o le sequenze di
comandi che non sono normali per quella applicazione e filtrare i caratteri come
";" che potrebbero danneggiare uno script della shell che contiene
system( ).
Vantaggi
• Consente un filtraggio molto selettivo
• Non si ha più una connessione diretta tra host interni ed esterni, ma solo
attraverso il software del proxy che è stato scritto per fornire un elevato
livello di sicurezza e poi accuratamente testato per trovare eventuali buchi.
• Riduce il carico di lavoro per rendere sicura i computer interni, in quanto
con questo sistema la rete diventa praticamente invisibile dall'esterno,
ottenendo così ottimi livelli di protezione.
• Permette di eseguire servizi di auditing (controllo delle connessioni), in
quanto è in grado di eseguire analisi accurate del traffico in ingresso e il
uscita. Le stesse operazioni richiederebbero complesse analisi di tutte le reti
esterne accessibile , se eseguite su sistemi packet filter .
• In genere è una struttura facilmente configurabile e gestibile.
Quest'ultima fase in genere è infatti gestita da software del client.
Svantaggi
• Ogni applicazione richiede uno specifico proxy
• Il software del gateway di applicazione può essere molto complesso, può
quindi accadere che contenga errori non rilevati che potrebbero mettere a
repentaglio il funzionamento del Firewall.