INTRODUZIONE
5
Lo scopo di questo progetto e quello di realizzare un sistema firewall/IDS
in grado di garantire un’adeguata protezione, alle due reti LAN presenti dietro il
firewall.
La tesi realizzata in base a tale progetto, è divisa in quattro parti che
riguardano, la corretta configurazione ed implementazione di diversi firewall
open-source, l’installazione e la configurazione di un’IDS postro dietro al firewall
in grado di rilevare eventuali attacchi che sono riusciti a oltrepassarlo, il traffic-
shaping utilizzato per limitare la banda assegnata, in modo tale che il taffico, in
ingresso e in uscita dalle LAN, non vada a saturare la banda disponibile; e infine
dei test realizzati per provare l’effettiva sicurezza del sistema creato.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
6
CAPITOLO 1
PANORAMICA SUI PROBLEMI DI SICUREZZA
1.0 Introduzione ai firewall
Il mondo attuale delle reti e dei computer può presentare diverse minacce
per quanto riguarda la sicurezza. Un utente irresponsabile è in grado di provocare
ad un sistema non adeguatamente protetto danni enormi e l’interruzione dei servizi
offerti.
La sicurezza riguardante le reti informatiche sta necessariamente
assumendo un ruolo ed un’importanza predominante dovuta all’aumento
vertiginoso degli utenti che hanno a disposizione un collegamento ad internet.
Per proteggere una qualsiasi rete accessibile dall’esterno, un amministratore
di rete dovrà necessariamente pianificare adeguatamente la struttura da utilizzare e
adottare tutte le misure di sicurezza atte a garantire l’integrità dei dati presenti
sulle proprie macchine e l’accessibilità ai servizi offerti.
Molti di questi obiettivi possono essere raggiunti utilizzando un sistema di
firewalling che realizza due funzioni: una implementa una politica ben precisa nei
confronti delle diverse connessioni tra la propria rete e quella esterna, l'altra
memorizza tutte le informazioni di interesse attraverso i file di log.
Uno dei sistemi software più utilizzati per la realizzazione di un firewall, è
il programma IPTables, diffuso in ambiente GNU/Linux, che possiede, tra le tante
altre caratteristiche, anche un sistema di filtraggio dei pacchetti (packet filtring)
molto efficace.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
7
1.1 Il concetto di sicurezza
All’interno di un mondo quale quello della comunicazione digitale in
continua evoluzione e che presenta costi sempre più bassi di interconnessione, il
concetto di sicurezza sta assumendo un ruolo sempre più importante, ed è
diventato un requisito fondamentale per ogni software, sistema, rete semplice o
complessa. La sicurezza di rete sta assumendo giorno dopo giorno un ruolo
predominante all’interno di tali problematiche. Difatti, ogni comunicazione che
attraversa internet o in generale una qualsiasi rete geografica, può toccare diversi
nodi (host), dando quindi ad altri utenti l’opportunità di tracciare, intercettare,
modificare i dati in transito. Un’altra problematica fondamentale consiste
nell’evitare accessi non autorizzati alla propria rete da parte di malintenzionati in
grado di appropriarsi, modificare o eliminare dati sensibili.
Un ipotetico attaccante potrebbe compromettere la sicurezza di una rete
utilizzando diverse metodologie oramai note. Innanzitutto potrebbe, ad esempio,
prendere il controllo di un host sfruttando un bug di qualche servizio che gira su
tale macchina; successivamente, potrebbe esplorare il traffico della rete attraverso
la tecnica del packet sniffing (cercando cioè di intercettare il più alto numero
possibile di pacchetti che transitano attraverso il mezzo fisico) e successivamente
utilizzare le macchine compromesse per attacchi di tipo DoS o DDoS in modo tale
da occupare tutte le risorse messe a disposizione dai servizi della macchina vittima
affinchè questa non sia più in grado di rispondere alle richieste legittime.
Per difendere la propria rete da tali attacchi e da molti altri è necessaria la
conoscenza del protocollo che viene comunemente utilizzato per veicolare i
pacchetti su internet, il TCP/IP.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
8
1.2 Il protocollo TCP/IP
Una rete può essere idealmente definita come una maglia di collegamenti.
Ogni nodo di questa struttura è generalmente un elaboratore. I diversi host sono in
grado di comunicare attraverso dei pacchetti che rappresentano il mezzo con cui i
dati possono transitare attraverso la rete. In ogni pacchetto è specificato il mittente
e il destinatario dello stesso e la sua struttura dipende dalla rete fisica utilizzata.
I pacchetti vengono inviati e ricevuti in base a delle regole definite da un
protocollo di comunicazione. Principalmente esistono due tipologie di protocolli a
secondo se esso sia in grado di assicurare una connessione virtuale, mettendo a
disposizione ad esempio, strumenti quali conferma dell’invio di un messaggio,
ritrasmissione in caso di errore, controllo di flusso e ricomposizione dell’ordine
dei pacchetti o meno.
Il nome TCP/IP rappresenta un insieme di protocolli di comunicazione
basati su IP (Internet Protocol), un protocollo che si colloca all’interno del terzo
livello ISO/OSI, il Network Level.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
9
Il TCP (Trasmission Control Protocol), l’UDP (User Datagram Protocol) e
l’ICMP (Internet Control Message Protocol) sono tutti protocolli di livello
superiore che utilizzano l’IP incapsulando i propri messaggi all’interno dei
pacchetti di tale protocollo. A loro volta, altri protocolli quali l’SMTP, l’FTP,
l’HTTP utilizzeranno il TCP, l’UDP, l’ICMP, ponendosi quindi ad un livello
superiore rispetto a questi, per la precisione a livello applicazione (livello 7
ISO/OSI corrispondente al livello 4 della pila internet).
Il datagramma IP è costituito da un’intestazione (header del pacchetto) e
dai dati veri e propri nei quali possono anche essere incapsulate le informazioni di
protocolli di livello superiore.
Tipicamente nell’header vengono specificate diverse informazioni che ver-
ranno utilizzate da tutti i nodi della rete coinvolti nel transito del pacchetto, per
effetturare un corretto controllo di flusso, indirizzamento e controllo di integrità
dei dati, quali la lunghezza del datagramma, la versione del protocollo utilizzato, il
TTL (Time to Live), alcuni bit di checksum, gli indirizzi di sorgente e
destinazione. Tali indirizzi sono composti da una sequenza di 32 bit suddivisi
convenzionalmente in quattro gruppi da 8.
Mentre protocolli quali l’UDP e l’ICMP si basano su un servizio di
distribuzione dei pacchetti privo di connessione e non affidabile, il TCP fornisce
una serie di meccanismi in grado di garantire queste caratteristiche creando una
sorta di connessione virtuale point-to-point tra i due elaboratori coinvolti nella
comunicazione. Tutto ciò viene realizzato secondo un meccanismo chiamato
positive acknowledgemente with retrasmission e da un three-way handshake
iniziale. Inoltre, sia in TCP che in UDP, è rilevante il concetto di port, utilizzata
per distinguere le diverse connessioni tra due host. La comunicazione tra
l’implementazione del protocollo sul sistema operativo e l’applicativo che si serve
di tali procedure, avverrà proprio attraverso questo meccanismo.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
10
1.3 Il firewall
Un firewall è un sistema o un gruppo di sistemi che realizza una
metodologia di controllo degli accessi tra due o più reti.
Può essere schematizzato attraverso una coppia di meccanismi: uno che
realizza il blocco del traffico, l’altro che lo accetta. Alcuni firewall ripongono
maggiore enfasi sul primo aspetto, altri sul secondo.
La prerogativa fondamentale consiste nel decidere la politica di sicurezza
da adottare prima della realizzazione fisica della rete. È infatti di fondamentale
importanza che l’amministratore sappia con assoluta precisione quali e quanti
servizi offrire al mondo esterno attraverso la propria rete, quali privilegi concedere
agli utilizzatori dei terminali interni e come strutturare fisicamente la rete stessa.
Spesso un sistema di protezione quale un firewall risulta complesso da
configurare e richiede delle conoscenze avanzate che riguardano la struttura
intrinseca e il funzionamento della rete, la conoscenza dei protocolli, i meccanismi
di comunicazione tra le diverse tipologie di reti.
1.3.1 I vantaggi
Secondo un principio generale, un firewall viene realizzato sia per
concedere alle postazioni interne un numero limitato di operazioni (sarà
l’amministratore a dover valutare la fiducia che ripone nei proprio utenti), sia,
soprattutto, per proteggere la rete interna da connessioni non autorizzate
provenienti dal mondo esterno.
Un altro elemento di forza viene realizzato progettando una struttura di rete
che porti il firewall ad essere l’unico punto di contatto tra la rete locale privata e la
rete esterna. In tal modo sarà possibile mettere a disposizione un importante
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
11
meccanismo di logging degli accessi e del transito delle informazioni oltre a
permettere un effettivo controllo del traffico nelle due direzioni.
Un firewall mette inoltre a disposizione dell’amministratore di rete dei dati
molto importanti quali il traffico generato dalla rete stessa e insieme all’IDS,
l’elenco dei tentativi di intrusione.
1.3.2 I punti deboli
Un sistema illustrato in questi termini, presenta però alcuni punti deboli da
non sottovalutare: infatti, un firewall non è ovviamente in grado di proteggere da
attacchi che non transitano attraverso di esso. Per esempio, se venisse istaurato un
collegamento di tipo dial-up da un terminale presente nella rete interna verso
l’esterno, il firewall non sarà in grado di attuare le misure di sicurezza per le quali
è stato creato dato che la connessione generata dall’utente non trasiterà più
attraverso di esso e darà la possibilità ad un ipotetico intruso di utilizzarla per
prendere il controllo della rete interna.
Un sistema di firewalling, inoltre, non è in grado di proteggere la rete
interna da attacchi generati dalla rete stessa. Infatti il traffico rimarrà contenuto
all’interno senza mia oltrepassarlo e pertanto escludendolo
[1]
.
1.3.3 Tipologia di firewall
Un firewall in genere è composto da uno o più computer che si pongono tra
le reti private e quelle esterne (es. internet) con il preciso scopo di controllare ciò
che transita da una rete verso l’altra.
In particolare sono utilizzati per stabilire a quali servizi (www, ftp, mail,...)
presenti nella rete internet è possibile accedere dalla rete locale, e quali possono
essere resi disponibili alle reti esterne.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
12
La necessità di questi controlli è dovuta al fatto che i sistemi operativi
(Windows, Mac, Linux, ...), i protocolli utilizzati per lo scambio dei dati tra le reti
(TCP/IP), e i programmi, hanno una serie di limiti, errori di programmazione che
possono esporre la propria rete a diversi attacchi.
Questi attacchi possono permettere ad una persona con le giuste
informazioni e con particolari programmi (exploit) di individuare eventuali
vulnerabilità e di accedere e modificare una macchina. L’intruso potrebbe quindi
apportare delle modifiche che gli consentano di accedere in qualsiasi momento
senza essere scoperto (backdoor), oppure di sfruttarla per sottrarre informazioni
(progetti confidenziali, password, ...), per coinvolgerla in attacchi DoS (Denial of
Service), DDoS (Distribuited Denial of Service) ...
Le soluzioni adottate per proteggere le reti, viste anche le diversità dei
sistemi, sono varie. L'ICSA (www.icsalabs.com/), ente che certifica l’affidabilità di
un prodotto firewall, non è legato ad alcun produttore specifico di firewall ed
esegue i test acquisendo i prodotti direttamente dal mercato e provandoli
all’interno delle proprie strutture. Il protocollo di analisi è rigoroso e solo i
prodotti che risultano positivi a tutti i test divengono certificati e acquisiscono il
diritto di esporre il marchio “ICSA Labs Certified” nella documentazione tecnica,
nella scatola e in tutta la comunicazione commerciale. Tale ente, ha individuato tre
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
13
tipologie di firewall:
¾ packet filtering;
¾ application gateway;
¾ packet inspection.
1.3.3.1 Packet filtering
La soluzione più semplice di firewall è rappresentata da router, posti tra le
due reti, che filtrano i pacchetti. Lo scopo principale di questa soluzione è, infatti,
quello di intercettare i pacchetti e consentire il passaggio esclusivamente al
traffico autorizzato.
Il firewall in questo caso esamina le informazioni del pacchetto dei dati, ossia
rispettivamente gli indirizzi IP (di partenza e di destinazione) e i numeri di
entrambe le porte contenuti nell’header (testata del messaggio). La sua analisi non
va in ogni caso oltre l’header. I pacchetti vengono inoltrati o rifiutati in base alle
regole di filtro impostate dall’amministratore di rete. Il problema principale con la
tecnica del packet filtering è che si tratta di un sistema basato sugli indirizzi IP,
elementi che offrono labili garanzie di sicurezza.
Un host è in grado di aggirare questo tipo di firewall sostituendo il proprio
indirizzo IP di origine con uno autorizzato e accedere indisturbato alla rete privata.
Con la tecnica del packet filtering, la gestione di alcuni protocolli risulta piuttosto
critica perché obbliga all’apertura di un varco nel firewall che, se non
correttamente impostato, potrebbe mettere a repentaglio la sicurezza dell’intera
rete. Usare unicamente la tecnologia di filtro dei pacchetti, in linea di massima,
non garantisce un livello adeguato di sicurezza. Le soluzioni oggi presenti sul
mercato tendono, infatti, a fornire una combinazione di questa tecnica con altre,
come per esempio quella che si basa su di un server proxy.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
14
1.3.3.2 Application gateway
Un gateway di applicazione intercetta il traffico e autentica gli utenti a livello di
applicazioni TCP/IP. Un utente sulla rete privata accede al proxy che lo autentica,
dopodichè ha accesso al server remoto che si trova su internet. In maniera analoga,
tutte le comunicazioni provenienti da internet e dirette alla rete privata vengono
ricevute dal proxy, analizzate e successivamente, previa autorizzazione, inoltrate a
destinazione. Lavorando a questo livello, è necessario predisporre un server proxy
per ogni applicazione. Per evitare accessi indesiderati, il sistema di autenticazione
deve essere assolutamente sicuro.
1.3.3.3 Packet inspection
L’approccio di un firewall che si basa sulla tecnica della packet inspection è
rappresentato dall’analisi dei pacchetti piuttosto che dal solo filtraggio: in altri
termini vengono controllati anche i contenuti del pacchetto IP oltre agli indirizzi.
Questa tipologia di firewall, detta anche circuit-level gateway, offre il massimo
grado di affidabilità. A differenza dell’application gateway, questo tipo di
soluzione richiede, al momento dell’accesso da parte di un utente al server
internet, la modifica del software client. La nuova generazione di browser, per
esempio, ormai supporta automaticamente questo tipo di accesso
[2]
.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
15
1.4 Perché usare i firewall
Il termine firewall usato per descrivere un filtro di rete deriva dal nome con
cui vengono chiamate quelle barriere fisiche separatrici che impediscono al fuoco
di diffondersi da un’area all’altra, usate ad esempio dai vigili del fuoco. I filtri di
rete vengono chiamati firewall perché il loro compito è similare: impedire, entro
certi limiti, gli attacchi di malintenzionati che possono carpire o distruggere i dati
o provocare attacchi tipo di rifiuto del servizio (Denial of Service, DoS), oppure
cercare di sovraccaricare le risorse di elaborazione (riempire il disco, intasare la
connessione internet, ecc).
Occorre subito precisare che non è sufficiente avere un firewall, anche se
ben configurato, per risolvere tutti i problemi di sicurezza, e né si può pensare che
installare un firewall renda inutili i backup di sicurezza dei dati, che conviene
sempre programmare opportunamente, indipendentemente da quanto sia ristretta
la politica di sicurezza adottata, perché rappresentano l’unico modo di tutelarsi da
guasti o distruzione dell’hardware. Similmente avere un firewall non basta a
risolvere il problema dello spam, che sussiste tutte le volte che la rete consente la
ricezione delle e-mail, o quello dei virus, per cui si rende ancora necessario usare
del software anti-virus e tenerlo aggiornato per una migliore protezione. Il più alto
livello di sicurezza consiste nell’impedire qualsiasi tipo di traffico di rete,
bloccandolo completamente (o equivalentemente staccando la spina del cavo di
rete). Ovviamente questo non è praticabile perché sarebbe inutile avere una
connessione ad internet. Nel configurare un firewall si può partire con una regola
che blocca tutto e poi inserire man mano le regole che servono a far passare tutto e
solo il traffico che si desidera passi. Questo è un buon metodo per essere quanto
più possibili restrittivi.
Nonostante i suoi limiti, il firewall può essere una componente molto
importante per controllare l’utilizzo di una rete forzando una politica di sicurezza
prestabilita.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
16
Come caso limite, invece di un’intera rete, supponiamo di avere un unico
server di cui si è amministratori e responsabili e che naturalmente si vuole
proteggere dalle intrusioni. Supponiamo che su questo server siano stati
configurati opportunamente i servizi di rete, restringendo l’accesso quando
applicabile, usando quando più possibile protocolli sicuri (es. ssh al posto di telnet
e ftp) e che l’amministratore ci lavori e stia piuttosto attento a mantenere il
software aggiornato e a prendere tutte le altre misure di controllo del sistema.
Potreste pensare in tal caso di non aver bisogno di un firewall. Eppure potrebbe
essere lo stesso utile configurare un firewall (meglio ancora se hardware) a
protezione della macchina anche in questo caso in cui la macchina è gestita da un
esperto di sicurezza informatica, perché il firewall garantisce un ulteriore livello di
sicurezza del sistema, che i malintenzionati devono scavalcare. La sicurezza non è
mai troppa: sempre meglio avere più livelli di sicurezza che uno soltanto.
Viceversa per proteggere le macchine di una rete usate da utenti inesperti
di sicurezza informatica, un firewall può rivelarsi molto utile. Se si tratta di una
rete con molti utenti, e quindi molti computer che condividono una o più
connessioni ad internet a banda larga (ad es. una o più linee T1 o T3), sarà
sicuramente impossibile riuscire a gestire la sicurezza di ogni singolo calcolatore,
anche per il semplice fatto che avete troppi calcolatori da gestire. Alcuni
calcolatori potrebbero essere portatili di eventuali ospiti o di proprietà dei
dipendenti e quindi su questi non si ha alcun controllo. Utenti inesperti potrebbero
attivare programmi server sui loro calcolatori come server Web, FTP di posta
elettronica o altro che sono facilmente vulnerabili perchè non correttamente
configurati, oppure sono versioni che presentato bachi ben noti e facilmente
sfruttabili dai malintenzionati. Alcuni sistemi Windows per uso client di qualche
anno fa (95, 98) sono molto poco sicuri, in quanto non hanno meccanismi di
controllo di ciò che un utente può fare (i cosiddetti “permessi di utente”): sono
sostanzialmente sistemi monoutente in cui si lavora sempre con i permessi
dell’amministratore.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
17
Qui i virus e i worm possono fare grossi danni. Le nuove versioni (2000,
XP) sono più sicure, specie se usate come utente non privilegiato per tutto il
lavoro quotidiano e se solo voi o collaboratori di cui vi potete fidare conoscono le
password di amministratore. In ogni caso comunque chi ha l’accesso fisico alla
macchina potrebbe sostituire il sistema operativo.
In questa situazione descritta, senza un firewall che protegga l’intera rete
(un firewall posto di guardia ad ogni punto di accesso verso l’esterno), un
malintenzionato esterno potrebbe facilmente guadagnare l’accesso ad una delle
macchine interne ed usarla come base per penetrare su ancora altre macchine della
rete interna (per esempio sui server che gestiscono i servizi e le informazioni più
importanti e li mettono maggiormente a disposizione delle macchine interne
anziché di quelle esterne) o di altre reti esterne, usando, la rete attaccata, come
ponte per una azione criminale ai danni di terzi (si rischia di essere ingiustamente
accusati).
In questa situazione avere un firewall ben configurato e gestito rappresenta
di sicuro una necessità irrinunciabile volendo garantire un pur minimo livello di
sicurezza. Il firewall dovrebbe consentire solo a quei calcolatori gestiti da esperti
della sicurezza di fornire servizi di rete verso l’esterno. Nel contempo occorre
venire incontro alle esigenze degli utenti, cercando di bilanciare quanto meglio
possibile sicurezza e funzionalità della vostra rete. Ad esempio gli utenti
vorrebbero poter essere in grado di scaricare la posta elettronica da casa o
collegarsi al file server per poter lavorare. Si potrebbe anche scegliere di porre
dietro un firewall tutti i client e i server che devono fornire servizi solo per la
propria rete interna, mentre mettere a monte del firewall, ossia tra il firewall e la
connessione ad internet (nella cosiddetta area demilitarizzata, o DMZ
Delimitarized Zone), quei server che devono fornire servizi verso l’esterno
(opportunamente configurati e controllati). In questo modo si evita l’overhead del
packet filtering per questi server.
CAPITOLO 1 PANORAMICA SUI
PROBLEMI SI SICUREZZA
18
I campi di applicazione dei firewall sono i più svariati, dalle piccole alle
grosse reti, sia che si tratta di reti connesse ad internet oppure di reti solo private.
Ad esempio un firewall è utile anche per proteggere una piccola rete domestica
quando ci si collega ad internet, sia che il collegamento avvenga saltuariamente
tramite modem analogico e normale linea telefonica, sia se si ha una connessione a
banda larga e permanente, come DSL o tramite un modem per cavo. Naturalmente
una connessione, permanente, o usata per molte ore al giorno, è più soggetta ad
essere oggetto di eventuali attacchi di malintenzionati.