Firewall

Da Wikipedia, l'enciclopedia libera.
Nota disambigua.svg Disambiguazione – Se stai cercando altri significati, vedi Firewall (disambigua).
Schema semplificato di una rete con firewall collegata a una rete esterna

In informatica, nell'ambito delle reti di computer, un firewall (termine inglese dal significato originario di parete refrattaria, muro tagliafuoco, muro ignifugo; in italiano anche parafuoco o parafiamma)[1] è un componente di difesa perimetrale di una rete informatica, originariamente passivo[2], che può anche svolgere funzioni di collegamento tra due o più tronconi di rete, garantendo dunque una protezione in termini di sicurezza informatica della rete stessa.[3][4]

Di norma, la rete viene divisa in due sottoreti: una, detta esterna, comprende interamente Internet mentre l'altra interna, detta LAN (Local Area Network), comprende una sezione più o meno grande di un insieme di computer host locali.[5] In alcuni casi è possibile che nasca l'esigenza di creare una terza sottorete detta DMZ (o zona demilitarizzata) adatta a contenere quei sistemi che devono essere isolati dalla rete interna, ma che devono comunque essere protetti dal firewall ed essere raggiungibili dall'esterno (server pubblici).[6]

Definizione e funzionalità[modifica | modifica wikitesto]

Un firewall è un componente per la sicurezza informatica con lo scopo di controllare gli accessi alle risorse di un sistema[3][7][8][9][10][11] filtrando tutto il traffico che tale sistema scambia con l'esterno.[1][8][10][12][13][14] Il sistema, che si suppone sicuro[8] e attendibile[7][15][16], protetto dal firewall può essere un singolo computer o una rete di computer (detta rete interna[1][13] o rete locale[1] o rete privata[4][9][12]) mentre l'ambiente esterno con cui interagisce è tipicamente una rete che si suppone sconosciuta[1], insicura[8] e non attendibile[7][15][16] (detta rete esterna[1][13] o rete pubblica[4]).

Un firewall filtra il traffico sulla base di un insieme di regole che definiscono una policy di sicurezza.[1][2][4][7][9][10][13] Esistono due politiche per l'applicazione delle regole:

  • policy default-deny: viene permesso solo ciò che viene dichiarato esplicitamente, il resto viene vietato;
  • policy default-allow: viene vietato solo ciò che viene dichiarato esplicitamente, il resto viene permesso.[1][15]

Tutti i firewall utilizzano la politica default-deny[7][13][16] poiché garantisce una maggiore sicurezza[15] e una maggiore accuratezza nella definizione delle regole[1] rispetto alla politica default-allow, anche se quest'ultima consente una configurazione più semplice.[15]

L'analisi dei pacchetti che costituiscono il traffico, secondo i criteri di sicurezza formalizzati dalle regole, si traduce in una delle seguenti azioni:

  • allow: il firewall lascia passare il pacchetto;
  • deny: il firewall blocca il pacchetto e lo rimanda al mittente;
  • drop: il firewall blocca il pacchetto e lo scarta senza inviare alcuna segnalazione al mittente.[1][13]

Di solito i firewall non prevedono il blocco del pacchetto e il rinvio dello stesso al mittente per evitare uno spreco di banda.[13]

Un firewall può essere un software oppure un dispositivo hardware[1][7][10][12][13][14][17] oppure una composizione di hardware e software.[3][9] Si definisce appliance nel caso in cui sia realizzato come un dispositivo hardware provvisto di software integrato in grado di svolgere le funzione di firewall.[1][8]

I firewall si dividono in host-based e network-based a seconda della natura del sistema che proteggono. Un host-based firewall[13][17], chiamato anche personal firewall[1][8][14][17] o firewall software[2][8][9][12][14], è un'applicazione software che controlla il traffico uscente ed entrante di un singolo computer.[9][13][14] In particolare blocca le applicazioni installate sulla macchina a cui non è concessa la connessione con l'esterno.[1][8] Un network-based firewall, detto anche network firewall[17] o firewall hardware[8][9][12], è un componente hardware stand-alone che viene posto sul confine di una rete in modo da filtrare tutto il traffico che questa scambia con l'esterno (per questo viene anche detto firewall perimetrale[14]).[13] I firewall hardware sono macchine che vengono progettate per la particolare funzione che devono svolgere e possono essere realizzate con hardware e software dedicati o con un server opportunamente configurato per eseguire solamente un firewall.[2][8] Dato che vengono impiegate per separare una rete interna da una rete esterna, sono dotate di due schede di rete[1][14] e presentano un sistema operativo minimale composto solo da software indispensabile per l'esecuzione del firewall.[8][14] Per questo motivo i firewall hardware sono più sicuri e allo stesso tempo più difficili da configurare rispetto ai firewall software.[8]

Evoluzione[modifica | modifica wikitesto]

Con l'introduzione delle reti LAN nella seconda metà degli anni 1970 e l'aumentare della connettività tra queste, favorita dalla diffusione dei primi router a partire dai primi anni 1980, cominciarono a emergere i primi problemi di sicurezza riguardanti gli accessi non autorizzati ad una rete.[7][18] Una delle prime soluzioni adottate consisteva nell'impostare all'interno dei router le liste di controllo degli accessi (ACL) che consentivano di stabilire quali pacchetti accettare e quali scartare sulla base dell'indirizzo IP. Questo approccio diventò sempre meno utilizzabile quanto più aumentavano gli host connessi alla rete Internet.[7][16][19] Per cercare di contrastare le intrusioni, alla fine degli anni 1980 vennero introdotti i primi firewall.[18]

La prima generazione fu quella dei packet filter firewall o stateless firewall, il cui primo esemplare venne sviluppato nel 1988 dalla Digital Equipment Corporation.[11][18] Il loro funzionamento consisteva nel filtrare il traffico secondo un insieme di regole basate su alcune informazioni presenti nell'header dei pacchetti.[1][7][18] Questi semplici filtri, usati spesso all'interno dei router e degli switch, potevano essere aggirati utilizzando l'IP spoofing[7][9][19] e non riuscivano a rilevare le vulnerabilità nei livelli del modello OSI superiori al terzo.[18]

La seconda generazione di firewall introdusse, rispetto alla prima, la possibilità di salvare e monitorare lo stato di una connessione.[18] Il primo stateful firewall (chiamato anche circuit-level gateway) venne sviluppato tra il 1989 e il 1990[11] dagli AT&T Bell Laboratories.[18] Un firewall di questo tipo consentiva la formulazione di regole in grado di bloccare pacchetti fasulli, cioè non appartenenti ad alcuna connessione attiva,[7][13][11][19] ma non garantiva la protezione da attacchi che sfruttavano vulnerabilità nei livelli superiori del modello OSI.[1][15][18] Inoltre erano sensibili anche ad attacchi di tipo DoS che puntavano a riempire la tabella dello stato delle connessioni.[11]

Firewall di tipo stateful vennero integrati all'interno di piattaforme UTM (Unified Threat Management) che inizialmente, oltre al firewall, prevedevano anche un antivirus e un sistema per la prevenzione delle intrusioni (IPS). Altre funzioni che vennero aggiunte in seguito a questo tipo di soluzioni per la sicurezza sono VPN, reporting, load balancing e il filtraggio del contenuto. All'interno di questo insieme di strumenti, il firewall costituiva il primo elemento di difesa del sistema. Uno dei problemi più importanti delle soluzioni UTM erano le prestazioni.[16][18]

La crescita di Internet portò alla diffusione degli attacchi inseriti all'interno del traffico web ai quali i stateful firewall non erano in grado di far fronte. Infatti i firewall della seconda generazione, come quelli della prima, non avevano la capacità di individuare le minacce all'interno del traffico in quanto riuscivano a classificarlo semplicemente sulla base della porta e del protocollo.[18] Il problema portò allo sviluppo degli application firewall[13][18] (anche detti proxy firewall[1][7][15][16] o application gateway[9]), una nuova generazione di firewall in grado di offrire protezione fino al livello applicativo (livello 7) del modello OSI.[7][18] Tra i firewall di questo tipo DEC SEAL e FWTK furono tra i primi ad essere sviluppati nella prima metà degli anni 1990.[11] Tuttavia questo tipo di firewall poteva supportare un solo protocollo applicativo e influiva negativamente sul traffico di rete.[1][9][16][19]

Nella seconda metà degli anni 2000 vennero realizzati i primi next-generation firewall i quali riunivano vecchie e nuove tecnologie di sicurezza in un'unica soluzione, evitando il degrado delle prestazioni e migliorandone la configurazione e la gestione.[11]

Tipologie[modifica | modifica wikitesto]

Di seguito viene proposta una descrizione dei tipi di firewall già nominati nella sezione precedente.

Packet filter firewall o stateless firewall[modifica | modifica wikitesto]

Un packet filter firewall o stateless firewall analizza ogni pacchetto che lo attraversa singolarmente, senza tenere conto dei pacchetti che lo hanno preceduto. In tale analisi vengono considerate solo alcune informazioni contenute nell'header del pacchetto, in particolare quelle appartenenti ai primi tre livelli del modello OSI più alcune del quarto.[1][7][18] Le informazioni in questione sono l'indirizzo IP della sorgente, l'indirizzo IP della destinazione, la porta della sorgente, la porta della destinazione e il protocollo di trasporto. Su questi parametri vengono costruite le regole che formalizzano la policy del firewall e che stabiliscono quali pacchetti lasciar passare e quali bloccare.[1][7][11][15][18][19] Questo tipo di filtraggio è semplice e leggero ma non garantisce un'elevata sicurezza.[19] Infatti risulta vulnerabile ad attacchi di tipo IP spoofing in quanto non riesce a distinguere se un pacchetto appartenga o no ad una connessione attiva.[15][18] Quindi, a causa della mancanza di stato, il firewall lascia passare anche i pacchetti il cui indirizzo IP sorgente originale, non consentito dalla policy del firewall, viene volutamente modificato con un indirizzo consentito.[7][9][19] Inoltre il filtraggio, basato solo sulle informazioni dei primi livelli del modello OSI, non permette al firewall di rilevare gli attacchi basati su vulnerabilità dei livelli superiori.[18] Pochi packet filter firewall supportano delle funzionalità di logging e di reporting di base.[19]

Stateful firewall o circuit-level gateway[modifica | modifica wikitesto]

Uno stateful firewall o circuit-level gateway svolge lo stesso tipo di filtraggio dei packet filter firewall e in più tiene traccia delle connessioni e del loro stato.[13][15][16][18][19] Questa funzionalità, detta stateful inspection[1][12], viene implementata utilizzando una tabella dello stato interna al firewall[7][16][18] nella quale ogni connessione TCP e UDP viene rappresentata da due coppie formate da indirizzo IP e porta, una per ciascun endpoint della comunicazione. Per tenere traccia dello stato di una connessione TCP vengono memorizzati il sequence number, l'acknowledgement number e i flag che ne indicano l'inizio (SYN), la parte centrale (ACK) e la fine (FIN).[17] Quindi uno stateful firewall bloccherà tutti i pacchetti che non appartengono ad una connessione attiva, a meno che non ne creino una nuova,[7][11][19] o che non rispettino l'ordine normale dei flag nella comunicazione.[17] La possibilità di filtrare i pacchetti sulla base dello stato delle connessioni previene gli attacchi di tipo IP spoofing ma comporta una maggiore difficoltà nella formulazione delle regole.[19] Inoltre gli stateful firewall non rilevano gli attacchi nei livelli OSI superiori al quarto[1][15][18] e sono sensibili agli attacchi DoS che ne saturano la tabella dello stato.[11] In generale, rispetto ai packet filter firewall, offrono una maggiore sicurezza, un logging migliore[19] e un controllo migliore sui protocolli applicativi che scelgono casualmente la porta di comunicazione (come FTP)[1] ma sono più pesanti dal punto di vista delle performance.[13]

Application firewall o proxy firewall o application gateway[modifica | modifica wikitesto]

Un application firewall o proxy firewall o application gateway opera fino al livello 7 del modello OSI filtrando tutto il traffico di una singola applicazione[7][13] sulla base della conoscenza del suo protocollo.[1] Questo tipo di firewall analizza i pacchetti nella sua interezza considerando anche il loro contenuto (payload)[16] ed è quindi in grado di distinguere il traffico di un'applicazione indipendentemente dalla porta di comunicazione che questa utilizza.[18] Un'altra caratteristica che lo distingue da un packet filter firewall e da uno stateful firewall è la capacità di spezzare la connessione tra un host della rete che protegge e un host della rete esterna.[19] Infatti nelle comunicazioni svolge il ruolo di intermediario[1][7][12][15] ed è quindi l'unico punto della rete che comunica con l'esterno, nascondendo così gli altri host che vi appartengono.[3][16] Questo tipo di firewall è in grado di rilevare i tentativi di intrusione attraverso lo sfruttamento di un protocollo[7][11][18] e di realizzare le funzionalità di logging e reporting in modo migliore rispetto ai firewall precedentemente descritti.[19] Sebbene aumenti il livello della sicurezza, un application firewall è specifico per ogni applicazione[15][19] e costituisce un collo di bottiglia per le performance della rete.[1][9][16][19]

Next-generation firewall[modifica | modifica wikitesto]

Un next-generation firewall è una piattaforma che riunisce in un unico pacchetto diverse tecnologie per la sicurezza.[18] Fra queste ci sono le tecnologie di filtraggio dei firewall presentati in precedenza ovvero il filtraggio stateless, la stateful inspection, l'analisi dei pacchetti a livello applicativo (deep-packet introspection)[11] e altre funzionalità aggiuntive come il NAT e il supporto alle VPN.[16] Alcune delle altre caratteristiche tipiche di un next-generation firewall sono: il rilevamento e la prevenzione delle intrusioni (sistemi IDS e IPS)[11], la definizione di policy specifiche per ogni applicazione[16], l'integrazione dell'identità dell'utente[11], l'acquisizione di dati di supporto per la sicurezza da fonti esterne[16], la qualità di servizio.[18] L'obiettivo di questa tecnologia di firewall è la semplificazione di configurazione e gestione di un insieme eterogeneo di strumenti di sicurezza e allo stesso tempo il miglioramento del loro impatto sulle performance dell'intero sistema.[18]

Altre funzionalità associate[modifica | modifica wikitesto]

Una funzione spesso associata al firewall è quella di NAT (traduzione degli indirizzi di rete), che può contribuire a rendere inaccessibili i calcolatori sulla rete interna mascherandone gli indirizzi IP.

Molti firewall possono registrare tutte le operazioni fatte (logging), effettuare registrazioni più o meno selettive (ad esempio, registrare solo i pacchetti che violano una certa regola, non registrare più di N pacchetti al secondo), e tenere statistiche di quali regole sono state più violate.

La registrazione integrale dell'attività di un firewall può facilmente assumere dimensioni ingestibili, per cui spesso si usa il logging solo temporaneamente per diagnosticare problemi, o comunque in modo selettivo (logging dei soli pacchetti rifiutati o solo di alcune regole). Tuttavia, l'analisi dei log di un firewall (o anche dei contatori delle varie regole) può permettere di individuare in tempo reale tentativi di intrusione.

Talvolta ad un firewall è associata anche la funzione rilevamento delle intrusioni (IDS), un sistema basato su euristiche che analizza il traffico e tenta di riconoscere possibili attacchi alla sicurezza della rete, e può anche scatenare reazioni automatiche da parte del firewall (Intrusion prevention system).

Personal Firewall e Firewall Software[modifica | modifica wikitesto]

Exquisite-kfind.png Lo stesso argomento in dettaglio: Personal firewall.

Oltre al firewall a protezione perimetrale ne esiste un secondo tipo, definito "Personal Firewall", che si installa direttamente sui sistemi da proteggere (per questo motivo è chiamato anche Firewall Software). In tal caso, un buon firewall effettua anche un controllo di tutti i programmi che tentano di accedere ad Internet presenti sul computer nel quale è installato, consentendo all'utente di impostare delle regole che possano concedere o negare l'accesso ad Internet da parte dei programmi stessi, questo per prevenire la possibilità che un programma malevolo possa connettere il computer all'esterno pregiudicandone la sicurezza.

Il principio di funzionamento differisce rispetto a quello del firewall perimetrale in quanto, in quest'ultimo, le regole che definiscono i flussi di traffico permessi vengono impostate in base all'indirizzo IP sorgente, quello di destinazione e la porta attraverso la quale viene erogato il servizio, mentre nel personal firewall all'utente è sufficiente esprimere il consenso affinché una determinata applicazione possa interagire con il mondo esterno attraverso il protocollo IP.

Da sottolineare che l'aggiornamento di un firewall è importante ma non è così vitale come invece lo è l'aggiornamento di un antivirus, in quanto le operazioni che il firewall deve compiere sono sostanzialmente sempre le stesse. È invece importante creare delle regole che siano corrette per decidere quali programmi devono poter accedere alla rete esterna e quali invece non devono.

Vantaggi e svantaggi[modifica | modifica wikitesto]

Rispetto ad un firewall perimetrale, il personal firewall è eseguito sullo stesso sistema operativo che dovrebbe proteggere, ed è quindi soggetto al rischio di venir disabilitato da un malware che prenda il controllo del calcolatore con diritti sufficienti. Inoltre, la sua configurazione è spesso lasciata a utenti finali poco esperti.

A suo favore, il personal firewall ha accesso ad un dato che un firewall perimetrale non può conoscere, ovvero può sapere quale applicazione ha generato un pacchetto o è in ascolto su una determinata porta, e può basare le sue decisioni anche su questo, ad esempio bloccando una connessione SMTP generata da un virus e facendo passare quella generata da un'altra applicazione.

Filtraggio dei contenuti[modifica | modifica wikitesto]

Una funzione che alcuni firewall prevedono è la possibilità di filtrare ciò che arriva da Internet sulla base di diversi tipi di criteri non relativi alla sicurezza informatica, ma volti a limitare gli utilizzi della rete sulla base di decisioni politiche, in particolare vietando la connessione su determinate porte o, per quanto riguarda il web, a determinate categorie di siti:

  • contenuti non adatti ai minori (ad esempio in una rete domestica con postazioni libere non protette individualmente);
  • contenuti ritenuti non pertinenti con l'attività lavorativa (in una rete aziendale);
  • contenuti esclusi in base alle informazioni veicolate, su base politica, religiosa o per limitare la diffusione della conoscenza (in questi casi il firewall è uno strumento di censura).

Alcune nazioni arrivano a filtrare tutto il traffico internet proveniente dal proprio territorio nazionale nel tentativo di controllare il flusso di informazioni.

Spesso l'attivazione di questa funzionalità è demandata a software e/o hardware aggiuntivi appartenenti alla categoria dell'URL filtering. Ai firewall viene però richiesto di impedire che gli utenti aggirino tali limitazioni. Le applicazioni di "controllo della navigazione", in ambito aziendale ovvero per scopi professionali, supportate dai firewall, hanno periodici aggiornamenti per quanto concerne le black list standard (per genere) da utilizzare come base di partenza per la configurazione.

Limiti[modifica | modifica wikitesto]

Il firewall è solo uno dei componenti di una strategia di sicurezza informatica, e non può in generale essere considerato sufficiente:

  • la sua configurazione è un compromesso tra usabilità della rete, sicurezza e risorse disponibili per la manutenzione della configurazione stessa (le esigenze di una rete cambiano rapidamente);
  • una quota rilevante delle minacce alla sicurezza informatica proviene dalla rete interna (portatili, virus, connessioni abusive alla rete, dipendenti, accessi VPN, reti wireless non adeguatamente protette).

Vulnerabilità[modifica | modifica wikitesto]

Una delle vulnerabilità più conosciute di un firewall di fascia media è l'HTTP tunneling, che consente di bypassare le restrizioni Internet utilizzando comunicazioni HTTP solitamente concesse dai firewall. Altra tipica vulnerabilità è la dll injection, ovvero una tecnica utilizzata da molti trojan, che sovrascrive il codice maligno all'interno di librerie di sistema utilizzate da programmi considerati sicuri. L'informazione riesce ad uscire dal computer in quanto il firewall, che di solito controlla i processi e non le librerie, crede che l'invio ad Internet lo stia eseguendo un programma da lui ritenuto sicuro, ma che di fatto utilizza la libreria contaminata. Alcuni firewall hanno anche il controllo sulla variazione delle librerie in memoria ma è difficile capire quando le variazioni sono state fatte da virus.

Implementazioni[modifica | modifica wikitesto]

  • Appliance
    • Cisco PIX\ASA
    • Check Point FireWall 1
    • Cyberoam Identity-based Unified Threat Management.
    • gateProtect appliance non Open Source basato su linux
    • Juniper Netscreen
    • Modulo firewall di livello aziendale per gli switch HP ProCurve
    • Palo Alto Networks Next Generation Firewall
    • Stonesoft Stonegate
    • vantronix progetto basato su OpenBSD
    • WatchGuard XTM, XCS, NGFW

Note[modifica | modifica wikitesto]

  1. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa Firewall, su http://it.ccm.net. URL consultato il 20 giugno 2016.
  2. ^ a b c d Web Service Internet Solutions S.r.l. - www.webservicesrl.com, Il funzionamento del Firewall per la protezione di server e strutture IT - OpenHousing, su www.openhousing.com. URL consultato il 29 giugno 2016.
  3. ^ a b c d (EN) Bradley Mitchell, Fire Wall - Network Firewalls, about.com. URL consultato il 20 maggio 2012.
  4. ^ a b c d (EN) Olaf Kirch e Terry Dawson, 9.2. What Is a Firewall?, in Linux Network Administrators Guide. URL consultato il 20 maggio 2012.
  5. ^ Massimo Andreetta, Sicurezza: il firewall, aspitalia.com, 1° ottobre 2002. URL consultato il 29 giugno 2016.
  6. ^ Michael D. Bauer, Server Linux sicuri, Milano, Tecniche Nuove, 2003, p. 28, ISBN 9788883780752.
  7. ^ a b c d e f g h i j k l m n o p q r s t u (EN) Margaret Rouse, What is firewall? - Definition from WhatIs.com, searchsecurity.techtarget.com. URL consultato il 03 luglio 2016.
  8. ^ a b c d e f g h i j k l (EN) What is a Firewall?, whatismyipaddress.com. URL consultato il 03 luglio 2016.
  9. ^ a b c d e f g h i j k l (EN) What is Firewall Network Security? Webopedia Definition, su www.webopedia.com. URL consultato il 03 luglio 2016.
  10. ^ a b c d (EN) Firewall Information - Computer Firewalls - FirewallInformation.com, su www.firewallinformation.com. URL consultato il 03 luglio 2016.
  11. ^ a b c d e f g h i j k l m n (EN) Liviu Arsene, The Evolution of Firewalls: Past, Present & Future - InformationWeek, informationweek.com. URL consultato il 03 luglio 2016.
  12. ^ a b c d e f g (EN) Jeff Tyson, How Firewalls Work, computer.howstuffworks.com, 24 ottobre 2000. URL consultato il 03 luglio 2016.
  13. ^ a b c d e f g h i j k l m n o p (EN) How Firewalls Work : TechWeb : Boston University, su www.bu.edu. URL consultato il 03 luglio 2016.
  14. ^ a b c d e f g h Cosa è un firewall? Una introduzione alle tipologie di firewall e al loro utilizzo, hostingtalk.it, 11 agosto 2009. URL consultato il 03 luglio 2016.
  15. ^ a b c d e f g h i j k l m (EN) Dell SecureWorks, What is Firewall Security?, su www.secureworks.com, 7 dicembre 2011. URL consultato il 03 luglio 2016.
  16. ^ a b c d e f g h i j k l m n o Che cos'è un firewall?, su Palo Alto Networks. URL consultato il 03 luglio 2016.
  17. ^ a b c d e f (EN) Tony Northrup, Firewalls, su technet.microsoft.com. URL consultato il 03 luglio 2016.
  18. ^ a b c d e f g h i j k l m n o p q r s t u v w x Judy Thompson-Melanson, Learn About Firewall Evolution from Packet Filter to Next Generation (PDF), Juniper Networks, 2015, ISBN 9781941441008.
  19. ^ a b c d e f g h i j k l m n o p (EN) Del Smith CCNA, Understand the evolution of firewalls - TechRepublic, su TechRepublic, 13 agosto 2002. URL consultato il 05 luglio 2016.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Controllo di autorità GND: (DE4386332-2