Pattern Recognition and Applications Lab Firewalls Ing. Davide Ariu Dipartimento di Ingegneria Elettrica ed Elettronica Università di Cagliari, Italia Outline Cosa è un Firewall Funzionalità di un Firewall Stack ISO/OSI e Firewall layers Funzionalità di un Firewall Network Firewall Packet Filter Proxy NAT/PAT VPN & IPSEC
Cosa è un firewall Definizione: un dispositivo (o un gruppo di dispositivi) che implementa un insieme di regole il cui scopo è quello di garantire il controllo del traffico fra reti differenti In italiano, la parola Firewall può essere tradotta letteralmente con l espressione Porta Tagliafuoco In realtà.. Cosa è un firewall? Impedisce a chi attacca di avvicinarsi alle difese Unico punto di ingresso e uscita
Cosa è un firewall? Funzionalità di un Firewall Il Firewall analizza il traffico in transito, stabilendo se sia ammissibile o meno e bloccando quello non ammissibile Per ammissibile si intende conforme ad una policy di sicurezza che l organizzazione deve aver definito La policy viene decisa a livello di organizzazione e poi implementata sul firewall dall amministratore di rete Esempio di policy E consentito il traffico HTTP per tutte le macchine connesse alla rete Non è ammesso l accesso ai seguenti domini Il traffico IMAP/POP/SMTP è consentito per le sole macchine collegate alla sotto-rete 172.16.20/24
Funzionalità di un Firewall Il Firewall garantisce il controllo (e quindi il filtraggio) del solo traffico che lo attraversa Il traffico che viaggia internamente ai segmenti di rete ad esso connessi NON viene ispezionato Traffico NON filtrato dal Firewall Traffico filtrato dal Firewall Funzionalità di un Firewall Per la precisione, il Firewall assume un ruolo di intermediazione che consente di : Gestire e controllare il traffico di rete Proteggere le risorse che si trovano dietro il firewall Questo consente anche di avere dei file di Log all interno dei quali sono registrati gli eventi Utile ad esempio per finalità forensi Alcune tipologie di Firewall consentono anche di implementare dei meccanismi di Autenticazione Anche in questo caso si aumenta la protezione delle risorse, consentendo l accesso ai soli utenti autenticati E ovviamente possibile tenere i file di Log degli accessi
Stack TCP & Firewall Layers Un Firewall può lavorare a diversi livelli dello stack TCP/IP Applicazione Trasporto Network (Internet) Se ho necessità di autenticare gli utenti devo lavorare a livello di Applicazione Se voglio consentire l accesso soltanto a determinate porte (e.g. 80, 25), devo lavorare a livello di Trasporto Se voglio consentire accesso soltanto a/da alcuni indirizzi IP, devo lavorare a livello Internet Link Tassonomia dei Firewall
Network Firewalls Firewall Appliances
Alcune caratteristiche (McAfee NGF 3207) Maximum Throughput 120 Gbps FW Maximum Number of Sessions (no inspection) 40,000,000 Inspected concurrent connections 14,000,000 Maximum Number of VPN Tunnels 200,000 Stateless Packet Filter Una delle forme di firewall più semplici e utilizzate è quella del packet filter. E una funzionalità che spesso può essere integrata nel router Per sua natura lavora quindi livello di Network o Trasporto. Il classico esempio è un router con delle ACL. Il filtraggio può essere fatto su base: Ip sorgente Ip destinazione Protocollo (come icmp tcp udp e altri) Specifiche informazioni sul protocollo IP (e.g. ICMP echo, reply, messaggi di errore). Alcuni possono lavorare a livello di trasporto includendo anche le porte tcp o udp (esempio telnet tcp 23, smtp tcp 25, http tcp 80, ecc ).
Stateless Packet Filter Stateless Packet Filter
Stateless Packet Filter - Precisazioni Quindi Quando riceve un pacchetto il firewall scorre la ACL alla ricerca di una regola adatta per quel pacchetto Per una questione di efficienza è importante che le regole più specifiche si trovino in cima alla ACL access-list In deny udp any host 192.168.1.101 Verificare inoltre che una regola non renda di fatto inutili le succe access-list In deny udp any host 192.168.1.101 access-list In allow udp any host 192.168.1.101 eq 53 Se ricevo un pacchetto UDP viene attivata la prima regola e questa risulta essere inutile. Le devo invertire Stateless Packet Filter Vantaggi: Molto veloce Flessibilità nella definizione delle policy rules Svantaggi: Non può bloccare attacchi a livello applicativo (es. Comandi ftp malevoli, trojan, virus). Nessuna autenticazione dell utente. Capacità di logging limitate. Vulnerabile a certe debolezze del protocollo TCP/IP (es. Ip spoofing, Syn flood, DOS). Può essere complesso da configurare.
Precisazione sullo stato delle porte open La porta è aperta e accetta connessioni TCP e pacchetti UDP closed La porta è accessibile ma non cè nessuna applicazione in ascolto filtered Non si può stabilire se la porta è aperta perché il filtraggio impedisce che venga raggiunta open filtered Una porta che non risponde unfiltered OR closed filtered Soltanto per particolari tipi di scansione Stateful Packet Filter Lavora anch esso ai livelli Network e Trasporto dello stack TCP/IP Tiene traccia delle connessioni a livello di Trasporto A differenza di un stateless packet filter analizza I pacchetti all interno del contesto della connessione
Stateful Packet Filter Un esempio 1. HostA inizia una connessione con B 2. HostB risponde alla richiesta di A 3. Host A finalizza la connessione. Host A è pronto a inviare dati 4. Host A invia i dati a Host B 5. Host B risponde ad A Stateful Packet Filter Un esempio Con uno steteful packet filter posso ad esempio fare in modo che soltanto A possa iniziare una connessione TCP verso B Come?
Stateful Packet Filter Vantaggi: Consapevolezza del traffico al livello 4 Maggiore sicurezza Svantaggi: Non può bloccare attacchi di tipo applicativo (es. Comandi ftp malevoli, trojan, virus). Nessuna autenticazione dell utente. Tenere traccia delle connessioni è computazionalmente costoso (CPU & Memoria) Evasione dei Packet Filter Il firewall può essere evaso sfruttando il meccanismo di fragmentation del protocollo IP E possibile giocare con i valori del campo offset Esistono diverse varianti dell attacco (http://www.ouah.org/ fragma.html) Un esempio è il Tiny Fragment Attack http://tools.ietf.org/html/rfc3128
Evasione dei Packet Filter Application Layer Firewall (Proxy) Combina le funzionalità dei Packet Layer Firewalls con la possibilità di analizzare ciò che accade a livello applicativo Richiede lautenticazione dellutente prima dellapertura di qualsiasia sessione Può essere utilizzato per diversi servizi: Email Web FTP DNS Telnet
Application Layer Firewall (Proxy) Application Layer Firewall (Proxy) Meccanismi di Autenticazione Username e Password Autenticazione basata su token HW/SW Utilizzo di biometrie L autenticazione limita la possibilità di attacchi tipo spoofing Può essere implementata in modo flessibile Meccanismi di autenticazione diversi a seconda degli utenti e dei loro privilegi 2 tipi di Proxy: Connection oriented Cut-through
Connection Oriented PRoxy 1. Il client stabilisce una connessione con il proxy 2. Il proxy autentica il client 3. Il proxy verifica le autorizzazioni per il client 4. Il proxy apre una seconda connessione verso la risorsa (server) richiesta dal client 5. Il proxy fa da intermediario gestendo 2 connessioni Una tra il client e il proxy Una tra il proxy e il server Application Layer Firewall (Proxy) Vantaggi Avanzate capacità di Logging Elevata capacità di filtering Posso per esempio limitare l accesso ad alcune pagine su un server web Svantaggi Notevole overhead per il firewall Lentezza Il firewall (e talvolta anche il client) devono essere creati ad hoc per la specifica applicazione
Cut-through Proxy 1. Il client stabilisce una connessione con il proxy 2. Il proxy autentica il client 3. Il proxy verifica le autorizzazioni per il client 4. Il proxy apre una seconda connessione verso la risorsa (server) e la congiunge alla connessione con il client Il proxy fa da intermediario tra i due terminali della comunicazione (client e server) gestendo una sola connessione Cut-through Proxy Vantaggi Maggiore throughput rispetto ai Connection Proxy Possibilità di gestire un maggior numero di applicazioni Svantaggi Inferiori capacità di logging (rispetto ai Connection Proxy) Possibilità di effetturare filtering soltanto a livello 3 e 4 Necessità di software ad hoc sul client
NAT Network Address Translation Il NAT fu creato in risposta a 2 problemi: Limitare lutilizzo di Indirizzi IP (principale) Nascondere lo schema di indirizzamento interno Aumento la sicurezza della rete interna dal momento che non è direttamente raggiungibile via internet Furono pertanto definiti con lrfc 1918 dei range di indirizzi privati (non routabili su internet): Indirizzo IP iniziale Indirizzo IP finale Subnet Mask 10.0.0.0 10.255.255.255 /8 172.16.0.0 172.31.255.255 /12 192.168.0.0 192.168.255.255 /16 NAT Network Address Translation Per poter accedere alla rete Internet una macchina deve poter essere raggiungibile tramite un indirizzo IP pubblico E le macchine che si trovano su reti private? Es. I pc di una rete domestica hanno IP privato. Ma ovviamente tutti possono accedere ad Internet Il NAT è un servizio che consente di mappare uno o più IP privati su uno o più indirizzi pubblici Esistono 3 tipi di NAT: NAT Dinamico NAT Statico NAT Overload (chiamato anche PAT Port Address Translation)
NAT Network Address Translation NAT Dinamico Gli indirizzi IP privati vengono mappati su un pool di Indirizzi pubblici Le corrispondenze vengono instaurate secondo una politica first-come, first served Possono accedere (contemporaneamente) a Internet tante macchine quanti sono gli indirizzi IP pubblici a disposizione NAT Statico Realizza una corrispondenza uno a uno fra indirizzi IP privati e pubblici Frequentemente utilizzato nel caso di web servers http://www.cisco.com/warp/public/556/nat.swf PAT Port Address Translation La coppia Indirizzo IP privato Porta Sorgente viene mappata su una coppia Indirizzo IP pubblico (quello del router) Nuova Porta Sorgente Esempio: In trasmissione: il router riceve un pacchetto da 192.168.10.169:52647 lo fa uscire su internet con 201.165.132.1:49213 In ricezione: il router riceve un pacchetto con IP e porta di destinazione 201.165.132.1:49213 li sostituisce con 192.168.10.169:52647 inoltra il pacchetto sull Interfaccia di rete interna
PAT Port Address Translation Vantaggi Limita lutilizzo di IP pubblici Nasconde lo schema di indirizzamento interno Semplifica la migrazione da un ISP allaltro Non ho necessità di cambiare lo schema di indirizzamento interno Svantaggi Ritardo nella trasmissione dei pacchetti (trascurabile) Il troubleshooting diventa più difficoltoso DMZ Demilitarized Zone La DMZ è una zona cuscinetto che viene introdotta tra la rete interna (TRUSTED) e la rete Internet (UNTRUSTED)
DMZ Demilitarized Zone La DMZ: Consente di proteggere la rete privata attraverso un doppio firewall (solitamente si parla di firewall interno e esterno o anche di firewall di frontend e back-end). La rete privata può iniziare delle connessioni sia verso la DMZ che verso internet ma non accetta alcun tipo di connessione in ingresso. Consente di proteggere anche i servizi pubblici (Web, Mail, etc.) attraverso il firewall esterno (front-end). Le macchine allinterno della DMZ accettano connessioni provenienti sia dalla rete privata che dalla rete Internet Fisicamente, può essere realizzata utilizzando un unico dispositivo che connette le tre zone (un router). Virtual Private Network (VPN) Una VPN è una rete virtuale attraverso la quale è possibile mettere in comunicazione in modo sicuro delle macchine fisicamente distanti senza avere bisogno di una collegamento dedicato Il traffico scambiato fra i vari rami della VPN viaggia attraverso la rete Internet (dunque attraverso un canale insicuro) E il meccanismo di funzionamento della VPN a garantire la sicurezza (confidenzialità, integrità e autenticità) della comunicazione
Remote Access VPN Site-to-Site VPN
VPN - Benefici Economia Possibilità di realizzare delle grosse reti senza necessità di strutture dedicate Sicurezza Autenticazione e Crittografia garantiscono la sicurezza dei dati che viaggiano sulla rete Scalabilità Laggiunta di nuovi rami alla VPN non richiede lacquisto di infrastrutture particolarmente costose IPSEC Framework IPSec è un framework (una suite di algoritmi) pensato per la realizzazione delle VPN 2 componenti fondamental: Authentication Header (AH) Garantisce Autenticazione e Integrità (usato quando la confidenzialità non è richiesta o permessa) Encapsulating Security Payload (ESP) Garantisce Confidenzialità, Autenticazione e Integrità Sono previsti diversi protocolli per ciascuna delle funzionalità richieste (es. DES, 3DES e AES per la crittografia) 2 possibili modalità di funzionamento: Tunnel Mode: protegge un intero pacchetto IP Transport Mode: si interpone fra il protocollo IP e quello di trasporto