MokaByte Numero 24  -  Novembre 98
 
Java ed i Firewall
di 
Ludmilla Wolf
Approfondiamo il discorso legato alla sicurezza iniziato il mese scorso


 
 
 


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.

 


 
 

MokaByte Web  1998 - www.mokabyte.it 
MokaByte ricerca nuovi collaboratori. 
Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it