Nell'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) è un componente hardware e/o software di difesa perimetrale di una rete, originariamente passivo, che può anche svolgere funzioni di collegamento tra due o più segmenti di rete, o tra una rete e un computer locale, fornendo dunque una protezione in termini di sicurezza informatica della rete stessa e proteggendo il computer da malware o altri pericoli di internet.

Storia Il termine "firewall" in origine si riferiva a un muro destinato a confinare un incendio all'interno di un edificio. Gli usi successivi si riferiscono a strutture analoghe, come la lamiera che separa il vano motore di un veicolo o di un aereo dall'abitacolo. Il termine fu applicato alla fine degli anni Ottanta alla tecnologia di rete che emerse quando internet era abbastanza nuovo in termini di uso e connettività globali. I predecessori dei firewall per la sicurezza della rete erano i router utilizzati alla fine degli anni Ottanta. Poiché le reti erano già segregate, i router potevano applicare il filtraggio ai pacchetti che le attraversavano.

Evoluzione 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. 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. Per cercare di contrastare le intrusioni, alla fine degli anni 1980 vennero introdotti i primi firewall.

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

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

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.

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. Il problema portò allo sviluppo degli application firewall (anche detti proxy firewall o application gateway), una nuova generazione di firewall in grado di offrire protezione fino al livello applicativo (livello 7) del modello OSI. Tra i firewall di questo tipo DEC SEAL e FWTK furono tra i primi ad essere sviluppati nella prima metà degli anni 1990. Tuttavia questo tipo di firewall poteva supportare un solo protocollo applicativo e influiva negativamente sul traffico di rete.

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.

Descrizione Di norma, la rete viene divisa in due sottoreti: una, detta esterna, è tipicamente una WAN (Wide Area Network) che può comprendere Internet, mentre l'altra interna, detta LAN (Local Area Network), comprende una sezione più o meno grande di un insieme di computer host locali; in alcuni casi può essere utile 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).

Caratteristiche

In generale può essere un software oppure un dispositivo hardware oppure una composizione di hardware e software: in particolare si definisce appliance nel caso in cui sia realizzato come un dispositivo hardware provvisto di software integrato in grado di svolgere le funzioni di firewall. Si tratta dunque di un componente per la sicurezza informatica avente lo scopo di controllare gli accessi alle risorse di un sistema filtrando tutto il traffico che tale sistema scambia con l'esterno: il sistema, che si suppone sicuro e attendibile, protetto dal firewall, può essere un singolo computer o una rete di computer (detta rete interna o rete locale o rete privata) mentre l'ambiente esterno con cui interagisce è tipicamente una rete che si suppone sconosciuta, insicura e non attendibile (detta rete esterna o rete pubblica). In particolare un firewall filtra il traffico sulla base di un insieme di regole, solitamente dette policy (in italiano si potrebbe rendere con criteri o politiche), che vengono applicate secondo due possibili criteri generali: criterio default-deny: viene permesso solo ciò che viene dichiarato esplicitamente e il resto viene vietato; criterio default-allow: viene vietato solo ciò che è esplicitamente proibito e il resto viene permesso. I firewall utilizzano normalmente il criterio default-deny poiché garantisce una maggiore sicurezza e una maggiore precisione nella definizione delle regole rispetto al criterio default-allow, anche se quest'ultimo consente una configurazione più semplice. 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. Di solito i firewall non prevedono il blocco del pacchetto e il rinvio dello stesso al mittente per evitare uno spreco di banda.

I firewall si dividono in host-based e network-based a seconda della natura del sistema che proteggono. Un host-based firewall, chiamato anche personal firewall o firewall software, è un'applicazione software che controlla il traffico uscente ed entrante di un singolo computer. In particolare blocca le applicazioni installate sulla macchina a cui non è concessa la connessione con l'esterno. Un network-based firewall, detto anche network firewall o firewall hardware, è 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).

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. Dato che vengono impiegate per separare una rete interna da una rete esterna, sono dotate di due schede di rete e presentano un sistema operativo minimale composto solo da software indispensabile per l'esecuzione del firewall. Per questo motivo i firewall hardware sono più sicuri e allo stesso tempo più difficili da configurare rispetto ai firewall software.

Filtraggio dei pacchetti/contenuti 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 dedicati al filtraggio in base a URL, appartenenti alla categoria dei proxy. 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.

Altre funzionalità associate (NAT e Intrusion prevention system) 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).

Vantaggi e svantaggi