














Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Descrizione tipologie di firewall
Tipologia: Sintesi del corso
1 / 22
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!















Come spesso accade nell’ambito della ricerca e sviluppo, la terza generazione di architetture firewall fu sperimentata e sviluppata indipendentemente da diverse persone negli Stati Uniti tra la fine degli anni ‘80 e i primi anni ‘90. Pubblicazioni di Gene Spafford della Purdue University, Bill Cheswick degli AT&T Bell Laboratories e Marcus Ranum con la descrizione dei firewall a livello di applicazione comparirono per la prima volta nel corso degli anni 1990 e 1991. Il lavoro di Marcus Ranum ricevette la massima attenzione nel 1991 e prese la forma di un bastion host, ovvero un host che viene posizionato in prima linea a difesa di una rete privata di calcolatori, che esegue servizi di proxy. Il lavoro di Ranum portò rapidamente allo sviluppo del primo prodotto commerciale: lo Screening External Access Link (SEAL) della Digital Equipment Corporation. Intorno al 1991, Bill Cheswick e Steve Bellovin iniziarono la ricerca sul filtraggio dinamico dei pacchetti e contribuirono a sviluppare un prodotto interno presso i Laboratori Bell basato su questa architettura; tuttavia questo prodotto non fu mai distribuito. Nel 1992 Bob Braden e Annette DeSchon dell’Information Sciences Institute presso l’Università della California del Sud cominciarono in maniera indipendente a fare ricerca sui firewall con filtraggio dinamico dei pacchetti per un sistema che chiamarono "Visas". Nel 1994 la compagnia Check Point Software Technologies rilasciò il primo prodotto commerciale basato su questa architettura di quarta generazione chiamato FireWall-1.
Prima di passare a un’analisi più approfondita delle diverse architetture di firewalling è opportuno introdurre il concetto di perimetro di sicurezza e descrivere come le reti perimetrali possono essere utilizzate per focalizzare una soluzione di sicurezza in determinati punti all'interno di una rete. I concetti presentati di seguito sono importanti per la pianificazione della rete in modo da inserire correttamente il firewall al suo interno.
Quando si definisce una politica di sicurezza di rete, è necessario definire le procedure per salvaguardare la rete, i suoi contenuti e gli utenti contro perdite e danni. Da questa prospettiva, una politica di sicurezza di rete ha un ruolo fondamentale nel far rispettare la politica globale di sicurezza definita da un'organizzazione. Una politica di sicurezza di rete si concentra sul controllo del traffico e dell'utilizzo di rete. Essa individua le risorse e le minacce di una rete, definisce l'utilizzo e le responsabilità della rete, e descrive i piani d'azione necessari quando la politica di sicurezza viene violata. Quando si sviluppa una politica di sicurezza di rete, si desidera che sia applicata strategicamente ai confini di difesa all'interno della rete. Questi confini strategici sono chiamati reti perimetrali.
Per definire un insieme di reti perimetrali, è necessario individuare le reti di computer che si vogliono proteggere e definire i meccanismi di sicurezza della rete che le proteggono. Per avere un perimetro di sicurezza di rete efficace, il firewall deve fornire le funzionalità di gateway^1 per tutte le comunicazioni tra le reti di fiducia e le reti non affidabili e sconosciute. Ogni rete può contenere reti perimetrali multiple al suo interno. Quando si descrive il modo in cui le reti perimetrali sono posizionate l'una rispetto all'altra, si possono individuare tre tipi di perimetro: il perimetro più esterno, i perimetri interni e il perimetro più interno.
Si possono definire vari punti di difesa per proteggere le risorse di rete. Attraverso la stratificazione delle reti perimetrali è possibile fornire più controlli di sicurezza del traffico di rete per facilitare la protezione contro le manomissioni che hanno origine
(^1) Un gateway è un dispositivo di rete che opera al livello di rete e ai livelli superiori del modello ISO/OSI. Il suo scopo principale è quello di veicolare i pacchetti di rete all'esterno di una rete locale (LAN).
Le reti trusted sono le reti all’interno del perimetro di sicurezza della rete, ovvero le reti che si vogliono proteggere. Spesso è qualcuno all’interno dell’organizzazione a gestire i computer che compongono queste reti e l’organizzazione controlla le misure di sicurezza relative ad esse. Quando si imposta il firewall, si identifica esplicitamente il tipo di reti che sono collegate ad esso attraverso le schede di rete. Dopo la configurazione iniziale, le reti affidabili includono il firewall e tutte le reti dietro di questo. Un’eccezione a questa regola generale è l'inclusione di reti private virtuali (VPN). Le VPN sono reti affidabili che trasmettono i dati attraverso un'infrastruttura di rete non sicura. Possiamo considerare i pacchetti di rete che hanno origine in una VPN come pacchetti che provengono dall'interno della rete perimetrale interna. Questa origine è una conseguenza logica del modo in cui le VPN vengono create. Per le comunicazioni che hanno origine in una VPN, devono esistere dei meccanismi di sicurezza attraverso i quali il firewall sia in grado di autenticare l'origine, l'integrità dei dati, e altri principi di sicurezza che devono essere applicati sulle proprie reti trusted.
Le reti untrusted sono le reti che sono al di fuori del perimetro di sicurezza definito. Queste reti sono inaffidabili perché sono al di fuori del proprio controllo: non si ha alcun controllo sulla gestione o sulle politiche di sicurezza di queste reti. Sono le reti private e condivise da cui si sta tentando di proteggere la propria rete. Tuttavia si ha bisogno o si vuole comunicare con queste reti, anche se sono inattendibili. Quando si imposta il server firewall, si identificano esplicitamente le reti non sicure da cui il firewall può accettare le richieste. Le reti non sicure sono al di fuori del perimetro di sicurezza ed esterne al firewall.
Le reti unknown sono quelle reti che non sono né affidabili né inaffidabili. Sono incognite per il firewall perché non si può dire in modo esplicito se queste reti sono sicure o meno. Le reti sconosciute sono al di fuori del perimetro di sicurezza. La tabella 2.1 riassume le relazioni tra le denominazioni delle reti e le reti comuni:
Tabella 2. Rete Tipo di rete Descrizione Innermost Perimeter Network
Trusted Protegge le risorse più interne da altre reti perimetrali Internal Perimeter Network
Trusted e dietro il firewall
Una rete perimetrale che si trova dietro il firewall Outermost Perimeter Network
Trusted ma con alta probabilità di essere attaccata
La rete perimetrale tra il router e il firewall. L’area della rete che è esposta a reti esterne e che può essere attaccata a causa della sua accessibilità Known External Network
Untrusted Reti a cui è richiesto l’accesso da utenti trusted Unknown External Network
Unknown Non si è consapevoli della loro esistenza
Di seguito si descrive l'evoluzione delle tecnologie firewall che sono state utilizzate per garantire la sicurezza delle reti in passato. In particolare si definiscono i firewall packet filter, i firewall a livello di circuito, i firewall a livello di applicazione e i firewall con filtraggio dinamico dei pacchetti – quattro architetture di firewalling comuni – e si esaminano i vantaggi e gli svantaggi di queste quattro architetture.
Come abbiamo visto, un firewall è un gateway di rete che applica un insieme di regole di sicurezza alle comunicazioni tra dispositivi di rete, in modo da bloccare gli accessi
I firewall possono eseguire il filtraggio a diversi livelli dello stack protocollare di rete. Possiamo distinguere fra tre categorie principali di firewall: packet filtering , circuit gateways e application gateways. Ognuna di queste è caratterizzata da un diverso livello dello stack protocol rispetto al quale esegue il controllo, dal livello più basso al più alto, ma spesso queste categorie, come vedremo, tendono a confondersi. Ad esempio un packet filter firewall esegue controlli a livello IP, ma può anche controllare alcune informazioni TCP. Generalmente viene utilizzata contemporaneamente più di una di queste categorie di firewall. C’è anche un quarto tipo di firewall, il dynamic packet filter. Un firewall di questo tipo è una combinazione di un packet filter e un circuit-level gateway, e spesso include anche aspetti semantici di livello applicativo.
Un firewall packet filter è una tecnologia firewall di prima generazione, che si basa su un semplice filtraggio dei pacchetti a livello di rete. Ogni pacchetto IP viene esaminato per vedere se corrisponde a una di un insieme di regole che definiscono quali flussi di dati sono ammessi e quali non lo sono. Queste regole stabiliscono se la comunicazione è consentita in base alle informazioni contenute dagli header di livello Network e Transport e alla direzione verso cui è diretto il pacchetto (dalla rete interna a quella esterna o viceversa). I filtri di pacchetto – spesso indicati come access control list (ACL) – in genere consentono di manipolare (cioè, consentire o impedire) la trasmissione di dati in base ai seguenti controlli:
l’interfaccia fisica di rete su cui il pacchetto arriva l’indirizzo da cui i dati (apparentemente) provengono (indirizzo IP di origine) l’indirizzo verso cui i dati stanno andando (indirizzo IP di destinazione) il protocollo di livello trasporto (TCP, UDP) la porta di origine a livello trasporto la porta di destinazione a livello trasporto
Questo tipo di filtraggio dei pacchetti non controlla se un pacchetto fa parte di un flusso di traffico esistente – ad esempio non memorizza nessuna informazione sullo “stato” delle connessioni – e per questo motivo i packet filter vengono anche chiamati stateless firewall.
I filtri di pacchetti in genere non comprendono i protocolli di livello applicazione usati nei pacchetti di comunicazione. Invece lavorano mediante l'applicazione di un set di regole che sono configurate sul firewall. Questo set di regole contiene un’azione associata che verrà applicata a tutti i pacchetti che soddisfano i criteri visti. L'azione intrapresa può assumere uno dei due valori "deny" o "permit" in riferimento a un pacchetto. Il firewall mantiene due liste corrispondenti a questi due valori, la deny list e la permit list. Un pacchetto che deve essere indirizzato verso la corretta destinazione deve prima passare un controllo di entrambe le liste. Cioè non deve essere espressamente negato e deve essere espressamente autorizzato. Alcuni filtri di pacchetti che vengono incorporati nell'hardware del router implementano una politica diversa. In questi tipi di filtri di pacchetti, il pacchetto deve essere espressamente negato oppure è autorizzato. Per definire le regole di filtraggio, è necessario considerare la posizione di sicurezza occupata dall’hardware di routing. I packet filters tipicamente implementano insiemi di comandi che consentono la verifica dei numeri di porta di sorgente e destinazione sui protocolli di livello trasporto TCP e UDP. Questo controllo determina se esiste una regola applicabile di autorizzazione o negazione per quella specifica combinazione porta/protocollo. A causa del fatto che il livello del protocollo ICMP non utilizza un numero di porta particolare per il suo protocollo di comunicazione, è difficile per i filtri di pacchetti applicare qualsiasi politica di sicurezza a questa forma di traffico di rete. Al fine di applicare una politica di sicurezza efficace per ICMP, il filtro di pacchetti deve mantenere tabelle di stato per assicurare che un messaggio di risposta ICMP è stato recentemente richiesto da un host interno. Questa capacità di tenere traccia dello stato delle comunicazioni è una delle principali differenze tra i filtri di pacchetti stateless , e i filtri di pacchetti dinamici. Dato che i filtri di pacchetti vengono implementati a livello network, in genere non
Sono generalmente più veloci di altre tecnologie firewall perché svolgono un minor numero di valutazioni. Inoltre, essi possono essere facilmente implementati come soluzioni hardware. Una semplice regola può contribuire a proteggere l'intera rete, vietando le connessioni tra sorgenti Internet specifiche e i computer interni. Non richiedono che i computer client siano configurati in modo specifico, ma provvedono a svolgere da soli tutto il lavoro. Insieme al network address translation, è possibile utilizzare i firewall packet filter per proteggere gli indirizzi IP interni dagli utenti esterni.
I firewall basati su tecnologie di filtraggio dei pacchetti hanno i seguenti svantaggi.
Non comprendono i protocolli a livello di applicazione. Non possono limitare l'accesso neanche per i servizi più elementari, come i comandi PUT o GET in FTP. Per questo motivo sono meno sicuri dei firewall a livello di applicazione e a livello di circuito. Sono stateless, nel senso che non mantengono le informazioni su una sessione di comunicazione o informazioni che derivano dalle applicazioni, e sono quindi soggetti ad attacchi di spoofing. Hanno capacità molto limitate di manipolare le informazioni all'interno di un pacchetto. Non offrono funzionalità a valore aggiunto, come il caching degli oggetti HTTP, l’URL filtering e l'autenticazione perché non comprendono i protocolli che vengono usati e non sono in grado di distinguere l’uno dall'altro. Non possono porre limitazioni sulle informazioni che vengono trasmesse da computer interni ai servizi sul server firewall. I packet filter pongono restrizioni solo sulle informazioni che possono passare attraverso di essi. Così gli intrusi possono accedere ai servizi sul server firewall. Hanno pochi o nessun meccanismo di generazione di eventi di controllo e di allarme. A causa della complessità di supportare molteplici servizi di rete non banali, può essere difficile testare le regole "accept" e "deny".
Un firewall a livello di circuito è una tecnologia firewall di seconda generazione, che controlla che un pacchetto sia o una richiesta di connessione o un pacchetto dati appartenente ad una connessione esistente, o a un circuito virtuale, tra due livelli di trasporto corrispondenti. Per convalidare una sessione, un firewall a livello di circuito esamina ogni fase della connessione per verificare che questa segua un handshake legittimo per il protocollo di livello trasporto utilizzato (l’unico protocollo di trasporto ampiamente usato che utilizza un handshake è TCP). Inoltre, i pacchetti dati non vengono trasmessi fino a che l’handshake non è stato completato. Il firewall mantiene una tabella delle connessioni valide (che include lo stato completo della sessione e le informazioni sul sequenziamento) e consente ai pacchetti di rete che contengono i dati di passare attraverso di esso quando le informazioni contenute nel pacchetto corrispondono a una voce presente nella tabella delle connessioni virtuali. Questo è il motivo per cui questi firewall vengono indicati come firewall stateful packet inspection. Una volta che la connessione è terminata, per evitare che la tabella delle connessioni non abbia più spazio a disposizione, la voce corrispondente nella tabella viene rimossa e il circuito virtuale tra i due livelli di trasporto corrispondenti viene chiuso. La figura seguente illustra il processo di valutazione del pacchetto utilizzato da un firewall a livello di circuito.
Questa architettura analizza solo il set di comandi per i protocolli di livello trasporto basati sulla connessione, generalmente solo TCP. Una volta che la connessione è stata impostata, il firewall a livello di circuito memorizza in genere le seguenti informazioni relative alla connessione:
Un identificatore di sessione univoco per la connessione, che viene utilizzato per scopi di monitoraggio Lo stato della connessione: handshake , established , o closing
legittime. I firewall a livello di circuito possono eseguire ulteriori controlli per garantire che un pacchetto non sia stato falsificato e che i dati contenuti nell’header del protocollo di trasporto siano conformi alla definizione di tale protocollo, e ciò consente al firewall di individuare forme limitate di modifiche al pacchetto dati. Questi firewall spesso reindirizzano i pacchetti in modo che il traffico in uscita sembri aver origine dal firewall, piuttosto che da un host interno. Come detto in precedenza, questo processo di reindirizzamento dei pacchetti viene chiamato network address translation, e dal momento che i firewall a livello di circuito mantengono informazioni su ogni sessione, possono eseguire correttamente la mappatura tra le risposte esterne e l'host interno corretto. Per riassumere, i firewall a livello di circuito hanno i seguenti vantaggi.
Sono generalmente più veloci dei firewall a livello di applicazione perché compiono un numero minore di valutazioni. Possono aiutare a proteggere l'intera rete, vietando le connessioni tra sorgenti Internet specifiche e i computer interni. Insieme al network address translation, è possibile utilizzare un firewall a livello di circuito per proteggere gli indirizzi IP interni dagli utenti esterni.
I firewall a livello di circuito hanno però i seguenti svantaggi.
Non possono limitare l'accesso a protocolli diversi da TCP. Non possono eseguire controlli di sicurezza rigorosi su un protocollo di livello superiore in caso di necessità. Hanno limitata capacità di generazione di eventi di audit, ma in genere possono legare un pacchetto dati a un protocollo di livello applicativo costruendo forme limitate di stato della sessione. Non offrono funzionalità a valore aggiunto, come il caching degli oggetti HTTP, l’URL filtering e l'autenticazione, perché non comprendono i protocolli utilizzati e non sono in grado di distinguere l'uno dall'altro. Può essere difficile testare le regole "accept" e "deny".
Un firewall a livello di applicazione è una tecnologia firewall di terza generazione che valuta la validità dei dati contenuti nei pacchetti a livello di applicazione, prima di permettere una connessione. Questo firewall esamina i dati in tutti i pacchetti a livello di applicazione e mantiene lo stato completo della connessione e le informazioni di sequenziamento. Inoltre, un firewall a livello applicativo è in grado di convalidare altri elementi di sicurezza che compaiono solo all'interno dei dati di livello applicazione, come le password degli utenti e le richieste di servizio. Il vantaggio chiave di questi firewall è che sono in grado di comprendere determinate applicazioni e protocolli (come FTP o DNS) e sono in grado di rilevare se un protocollo non desiderato sta utilizzando in maniera inosservata una porta non standard o se si sta abusando di un protocollo in maniera nociva.
Molti firewall a livello di applicazione includono applicazioni software specializzate e servizi proxy. I servizi proxy sono programmi speciali che gestiscono il traffico attraverso un firewall per un determinato servizio, ad esempio HTTP o FTP. I servizi proxy sono specifici per il protocollo che si propongono di trasmettere e possono fornire un maggiore controllo degli accessi, un controllo attento e dettagliato dei dati validi e generare record di audit per il traffico che trasferiscono.
Questa architettura analizza il set di comandi completo per un singolo protocollo nello spazio di applicazione. Inoltre, i servizi proxy possono analizzare i dati di un pacchetto per fornire ulteriori controlli di sicurezza, nonché per fornire servizi a valore aggiunto, come ad esempio l’URL filtering e l’autenticazione degli utenti. Ogni proxy di applicazione richiede due componenti che sono tipicamente implementati come un singolo eseguibile: un proxy server e un proxy client. Un server proxy funge da server finale per tutte le richieste di connessione originate su una rete affidabile da un client reale. Cioè, tutte le comunicazioni tra gli utenti interni e Internet passano attraverso il proxy server anziché permettere agli utenti di comunicare
I servizi proxy sono implementati in cima allo stack di rete dell'host firewall e operano solo nello spazio di applicazione del sistema operativo. Di conseguenza, ogni pacchetto deve passare attraverso i protocolli di basso livello nel kernel prima di essere passato verso l’alto nello stack allo spazio di applicazione per un esame accurato degli header e dei dati dei pacchetti eseguito dai proxy. Quindi, il pacchetto deve tornare indietro fino al kernel, e poi di nuovo verso il basso sullo stack per la distribuzione. Poiché ogni pacchetto in una sessione è soggetto a questo processo, i servizi proxy sono notoriamente lenti. Come i firewall a livello di circuito, i firewall a livello di applicazione possono eseguire ulteriori controlli per garantire che un pacchetto non sia stato falsificato e spesso eseguono il network address translation. Per riassumere, i servizi proxy hanno diversi vantaggi chiave.
Comprendono e fanno osservare i protocolli di alto livello, come HTTP e FTP. Conservano le informazioni sulle comunicazioni che passano attraverso il server firewall. Essi forniscono informazioni parziali sullo stato derivate dalla comunicazione, informazioni complete sullo stato derivate dalle applicazioni, e informazioni parziali di sessione. Possono essere usati per negare l'accesso a certi servizi di rete, pur consentendo l'accesso ad altri. Sono in grado di elaborare e manipolare i dati contenuti nei pacchetti. Non consentono la comunicazione diretta tra i server esterni e i computer interni, in modo che i nomi dei computer interni non devono essere resi noti ai computer esterni. In altre parole, i servizi proxy proteggono gli indirizzi IP interni dal mondo esterno. Per garantire la trasparenza, i proxy forniscono agli utenti l’illusione di comunicare direttamente con i server esterni. Possono instradare i servizi interni, così come le richieste dall’esterno verso l’interno, altrove (per esempio, possono instradare i servizi verso un server HTTP su un altro computer).
Possono fornire funzionalità a valore aggiunto, come il caching degli oggetti HTTP, l’URL filtering e l'autenticazione degli utenti. Sono in grado di generare record di audit, permettendo agli amministratori di monitorare i tentativi di violare le politiche di sicurezza del firewall.
I servizi proxy hanno anche alcuni svantaggi.
Richiedono la sostituzione dello stack di rete nativo sul server firewall. Poiché i server proxy sono in ascolto sulla stessa porta dei server di rete, non è possibile gestire un server di rete sul server firewall. I servizi proxy introducono ritardi nelle prestazioni. I dati in ingresso devono essere elaborati due volte, dall’applicazione e dal suo proxy (per esempio, l’applicazione e-mail su Internet dialoga con il proxy e-mail agent, che a turno dialoga con un’applicazione e-mail della LAN). In generale, bisogna avere un nuovo proxy per ogni protocollo che si vuole che passi attraverso il firewall e quindi il numero di servizi di rete disponibili e la loro scalabilità sono limitati. Di solito c’è un ritardo di sei mesi o maggiore da quando l’applicazione è disponibile a quando il suo proxy è disponibile, il che significa che gli utenti devono aspettare che applicazioni mission-critical siano a loro disposizione. I firewall a livello di applicazione non sono in grado di fornire proxy per UDP, RPC ed altri servizi di famiglie di protocolli comuni. I servizi proxy spesso richiedono modifiche ai client o a procedure dei client, aggiungendo così un compito al processo di configurazione. I servizi proxy sono vulnerabili a bug del sistema operativo e a livello di applicazione. La maggior parte dei firewall packet filter non si basa molto su meccanismi di supporto del sistema operativo; tuttavia in genere si basano sui driver dei dispositivi, ecc. Molti dei firewall a livello di applicazione richiedono invece un ampio supporto da parte del sistema operativo per funzionare correttamente, come il supporto da NDIS, TCP/IP, WinSock, Win32 e la libreria C standard. Se un bug di sicurezza rilevante appare in una di queste librerie, può avere effetti indesiderati sulla sicurezza del server firewall.