Proteggere la rete: tecnologie
Transcript
Proteggere la rete: tecnologie
Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Proteggere la rete: tecnologie Alessandro Reina <[email protected]> Aristide Fattori<[email protected]> A.A. 2011–2012 Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 1 / 43 Firewall Introduzione tecnologia per la protezione dagli attacchi di rete piú diffusa Internet firewall: sistema realizzato con lo scopo di proteggere la rete interna di un’organizzazione da Internet le configurazioni variano in funzione degli scopi per cui sono impiegati Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 2 / 43 Firewall Caratteristiche generali tutto il traffico che entra ed esce da una rete intranet deve passare attraverso il firewall solo il traffico autorizzato potrà entrare o uscire dalla rete il firewall deve essere il piú possibile immune da attacchi Tipologie packet filtering circuit-level gateway application-level gateway Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 3 / 43 Packet Filtering Nella sua versione piú semplice consente di abilitare/disabilitare il trasferimento di pacchetti (e quindi di dati) tra due reti basandosi su: IP del mittente IP del destinatario protocolli usati per trasferire i dati (FTP, HTTP, SMNP, . . . ) Vantaggi Svantaggi Semplice Difficoltà di configurazione Trasparente agli utenti Meccanismi di autenticazione Opera ad alta velocità Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 4 / 43 Circuit level gateway Proxy generici, in grado di operare con piú protocolli contemporaneamente opera a livello di trasporto controlla la validità delle connessioni (TCP) rispetto ad una tabella delle connessioni permesse prima di aprire una sessione regole descrivono la validità di una sessione (user, password, data, protocollo, porta sorgente/destinazione, etc.) è necessario che le applicazioni di riferimento siano scritte tenendo conto della sua presenza disponibili proxy per la maggior parte dei servizi di rete Vantaggi Svantaggi un unico programma è in grado di gestire piú protocolli Alessandro Reina generici ⇒ funzionalità non molto distanti da quelle di un packet filter avanzato Proteggere la rete: tecnologie A.A. 2011–2012 5 / 43 Application level gateway Svolge le funzioni di relay tra il traffico a livello applicazione; si interpone tra i client ed il server di un’applicazione: opera a livello applicazione intercetta e inoltra i messaggi client ↔ server inoltra le risposte dal server al mittente originario chiamato anche proxy server Vantaggi controlli piú sofisticati del packet filtering operazioni di logging piú granulari Alessandro Reina Svantaggi piú lento del packet filtering maggiore richiesta di risorse Proteggere la rete: tecnologie A.A. 2011–2012 6 / 43 Architetture classiche Bastion host sistema piú esposto agli attacchi informatici alcune pratiche consentono di rendere i bastion host meno vulnerabili utile come piattaforma per un application-level o circuit-level gateway Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 7 / 43 Architetture classiche Screened subnet firewall Componenti: 2 router per packet filtering 1+ bastion host obiettivo: creare una sottorete isolata dalla rete da proteggere Fisicamente, tale architettura può essere realizzata anche con un singolo host: 3 schede di rete regole di packet filtering diverse per ogni scheda ⇒ l’architettura collassa in un singolo host (firewall) Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 8 / 43 Screened subnet firewall Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 9 / 43 Architetture classiche Screened subnet firewall La DMZ è il vero elemento distintivo dell’architettura: disaccoppiamento fisico tra rete interna (con i servizi critici per l’azienda) e DMZ (con i servizi di rete pubblici) non consente ad un intrusore che riesca ad accedere ad un bastion host di: accedere direttamente alla rete interna (protetta da un ulteriore livello di screening router) intercettare il traffico della rete interna (potrebbe contenere informazioni sensibili) l’intrusore può intercettare traffico rete interna - bastion host e internet - rete interna Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 10 / 43 IDS: Intrusion Detection System Definizione insieme di componenti hardware e software dedicate a rilevare, automaticamente ed in tempo reale, il verificarsi di un’intrusione in un sistema o in una rete Componenti sensori di rete (o agenti) + analizzatore centrale (ognuno su un host dedicato) sensori di rete installati su determinate porzioni di rete, solitamente quelle con i sistemi piú critici dati inviati all’analizzatore, che verifica la presenza di traffico sospetto e attiva le procedure di allarme Strategie di base anomaly detection misuse detection Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 11 / 43 IDS: Intrusion Detection System Anomaly detection Login frequency by day and time Frequency of login at different locations Time since last login Password failures at login Execution frequency Execution denials Read, write, create, delete frequency Failure count for read, write, create and delete Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 12 / 43 IDS: Intrusion Detection System Misuse detection I caratteri distintivi di attacchi noti (signatures) vengono memorizzati in appositi database di attacchi alla ricezione di ogni pacchetto l’analizzatore confronta lo stesso o la sequenza a cui appartiene con le signature memorizzate nel proprio database quando trova delle coincidenze attiva una serie di allarmi può erroneamente riconoscere una sequenza di pacchetti innocua come maligna e quindi provvedere ad attivare un falso allarme (false positive) Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 13 / 43 Netfilter Framework (http://www.netfilter.org) Infrastruttura “fondamentale” nei kernel Linux versione 2.4.x e 2.6.x; permette: packet filtering, stateless (IPv4/IPv6) e stateful (IPv4) Source e Destination Network Address Translation (SNAT, DNAT, masquerading) packet mangling infrastruttura flessibile ed estendibile via moduli kernel e applicazioni user space Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 14 / 43 Netfilter Caratteristiche principali insieme di hook nel kernel che permettono a moduli di registrare callback nello stack di rete TCP/IP funzione di callback chiamata per ogni pacchetto che attraversa il corrispondente hook iptables è il tool in userspace usato per specificare le regole del firewall netfilter, iptables, connection tracking e NAT formano il framework Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 15 / 43 Netfilter Possibili utilizzi firewall packet filtering, sia stateless che stateful NAT in scenari SOHO e non solo proxy trasparenti alterare IP header per QoS, ToS, ECN, . . . ... Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 16 / 43 Tabelle e catene Quali sono? Attraversamento dei pacchetti tabelle principali: 1 2 3 filter (default): filtraggio dei pkt nat: modifica indirizzi IP e porte dei pkt mangle: modifica bit configurazione header pkt (TOS, etc.) catene di default: 1 2 3 4 5 INPUT (filter, mangle) OUTPUT (filter, mangle, nat) FORWARD (filter, mangle) PREROUTING (mangle, nat → target DNAT) POSTROUTING (mangle, nat → target SNAT) Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 17 / 43 Tabelle e catene A cosa servono? continued. . . ogni catena raggruppa un insieme di regole che vengono esaminate sequenzialmente, specificando cosa fare in caso di match ⇒ target da seguire (terminating o non-terminating) ogni catena built-in ha una policy di default: ACCEPT, DROP possibilità di estendere il framework, tramite: nuove funzionalità di match dei pacchetti (via regole) nuovi target (estensioni via moduli e catene user-defined) Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 18 / 43 Overview Netfilter Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 19 / 43 iptables Operazioni su regole e catene Manipolazione di intere catene creare una nuova catena user-defined cancellare una catena vuota e non referenziata cambiare la policy di default (built-in chain) elencare le regole flush delle regole -N -X -P -L -F Manipolazione di singole regole aggiungere una regola in coda inserire una regola in testa sostituire una regola (ad una certa posizione) cancellare una regola (ad una certa posizione) Alessandro Reina Proteggere la rete: tecnologie -A -I -R -D A.A. 2011–2012 20 / 43 iptables Esempi # iptables -N test-chain # iptables -X test-chain # iptables -P INPUT DROP # iptables -nL Chain INPUT (policy DROP) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination # iptables -F INPUT Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 21 / 43 iptables Regole ogni regola specifica un’insieme di condizioni che il pacchetto deve soddisfare affinchè avvenga il match a match avvenuto, il destino del pacchetto è deciso dal target specificato nella regola se nessuna regola fa match, viene applicata la policy di default Flag per creazione regole specificare source/destination “negazione” di una condizione specificare un protocollo (abilita anche estensioni) specificare interfaccia di input/output specificare porta sorgente/destinazione Alessandro Reina Proteggere la rete: tecnologie -s/-d ! -p -i/-o --sport/--dport A.A. 2011–2012 22 / 43 iptables Esempi regole Esempio: ICMP # iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes --- 127.0.0.1 ping statistics --1 packets transmitted, 0 packets received, 100% packet loss Esempio: TCP # iptables -A -j # iptables -A -p Alessandro Reina INPUT -i eth0 -s trusted-ip -p tcp --dport 22 ACCEPT FORWARD -i eth0 -s trusted-ip -d ip/mask \ tcp --dport 80 -j ACCEPT Proteggere la rete: tecnologie A.A. 2011–2012 \ 23 / 43 Estendere iptables Nuovi match: TCP $ sudo iptables -p tcp --help TCP v1.3.8 options: --tcp-flags [!] mask comp match when TCP flags & mask == comp (Flags: SYN ACK FIN RST URG PSH ALL NONE) [!] --syn match when only SYN flag set (equivalent to --tcp-flags SYN,RST,ACK SYN) --source-port [!] port[:port] --sport ... match source port(s) --destination-port [!] port[:port] --dport ... match destination port(s) --tcp-option [!] number match if TCP option set Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 24 / 43 Estendere iptables Nuovi match ICMP $ sudo iptables -p icmp --help ICMP v1.3.8 options: --icmp-type [!] typename match icmp type (or numeric type or type/code) Valid ICMP Types: any echo-reply (pong) destination-unreachable ... echo-request (ping) ... UDP $ sudo iptables -p udp --help UDP v1.3.8 options: n --source-port [!] port[:port] --sport ... match source port(s) --destination-port [!] port[:port] --dport ... match destination port(s) Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 25 / 43 Estendere iptables Connection tracking Altre estensioni sono “abilitate” con il flag -m state Stateful packet filtering l’estensione state interpreta l’analisi di connection-tracking effettuata dal modulo ip conntrack $ sudo iptables -m state --help state v1.3.8 options: [!] --state [INVALID|ESTABLISHED|NEW|RELATED|UNTRACKED][,...] State(s) to match NEW: TCP SYN ESTABLISHED: TCP SYN/ACK RELATED: pkt correlato (FTP) INVALID: pkt non identificato # iptables -A FORWARD -i eth0 -m state --state NEW,INVALID \ -j DROP Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 26 / 43 Estendere iptables User-defined chain Cosa fare una volta che c’è stato un match? ACCEPT e DROP (built-in) target che sono catene user-defined → permettono di “annidare” regole nuovi target # iptables -N test-icmp # iptables -A OUTPUT -p icmp -j test-icmp # iptables -A test-icmp -d www.debian.org -j ACCEPT # iptables -A test-icmp -d www.cnn.com -j DROP # ping -c 1 www.cnn.com PING cnn.com (64.236.24.20): 56 data bytes ping: sendto: Operation not permitted ping: wrote cnn.com 64 chars, ret=-1 Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 27 / 43 Estendere iptables Nuovi target LOG REJECT (--reject-with <type>) RETURN (built-in) QUEUE (built-in) oltre ai classici ACCEPT e DROP $ sudo iptables -A OUTPUT -d security.dico.unimi.it -p tcp --dport 80 \ -j REJECT --reject-with icmp-net-unreachable $ nc security.dico.unimi.it 80 idea.sec.dico.unimi.it [159.149.155.69] 80 (www) : \ Network is unreachable Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 28 / 43 Esempi Tabella filter # # # # iptables -N test iptables -A test -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A test -m state --state NEW -i ! ppp0 -j ACCEPT iptables -A test -i ppp0 -m limit -j LOG \ --log-prefix ’Bad packet’ # iptables -A test -j DROP # iptables -A INPUT -j test Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 29 / 43 Esempi Tabella nat - Source NAT SNAT target è utilizzato per Source Network Address Translation: target riscrive l’IP sorgente nell’header IP del pkt. Utilizzato quando diversi host devono condividere una connessione. Source NAT # iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source 1.2.3.4 Masquerading # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE Masquerading vs SNAT Sono uguali? Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 30 / 43 Esempi Tabella nat - Destination NAT DNAT target utilizzato per rendere disponibile un servizio di una rete interna con un IP pubblicamente accessibile. Destination NAT Cambia indirizzi di destinazione a 5.6.7.8: # iptables -t nat -A PREROUTING -i ppp0 -j DNAT --to 5.6.7.8 Redirigi il traffico web verso 5.6.7.8, porta 8080: # iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 \ -j DNAT --to 5.6.7.8:8080 Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 31 / 43 Bypass (quasi) tutti i Firewall SSH Il client ssh è un programma per effettuare il login su una macchina remota e per eseguire comandi sulla stessa. Environment LH: local host, macchina all’interno del restricted network RH: remote host, macchina all’esterno del restricted network (IP pubblico, server SSH) Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 32 / 43 Tunnel SSH Esempio LH: SSH non bloccato, ricezione/invio email solo dalla rete interna; porta 25 (SMTP) e 110 (POP) aperte solo dall’interno. Problema Se volessimo ricevere/inviare email da server esterni alla rete locale? Soluzione: tunnel work@LH:~$ ssh user@RH -L 10025:EXT_SMTP_IPSVR:25 \\ -L 10110:EXT_POP_IPSVR:110 Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 33 / 43 Tunnel SSH Esempio LH: SSH non bloccato, ricezione/invio email solo dalla rete interna; porta 25 (SMTP) e 110 (POP) aperte solo dall’interno. Problema Se volessimo ricevere/inviare email da server esterni alla rete locale? Soluzione: tunnel work@LH:~$ ssh user@RH -L 10025:EXT_SMTP_IPSVR:25 \\ -L 10110:EXT_POP_IPSVR:110 Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 33 / 43 Tunnel SSH Esempio LH: SSH non bloccato, porta 80 bloccata Problema Google down? No!!! Soluzione: tunnel work@LH:~$ ssh user@RH -L 8080:www.google.com:80 Mmm... Qualche dubbio? Ora che facciamo? Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 34 / 43 Tunnel SSH Esempio LH: SSH non bloccato, porta 80 bloccata Problema Google down? No!!! Soluzione: tunnel work@LH:~$ ssh user@RH -L 8080:www.google.com:80 Mmm... Qualche dubbio? Ora che facciamo? Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 34 / 43 Tunnel SSH Esempio LH: SSH non bloccato, porta 80 bloccata Problema Google down? No!!! Soluzione: tunnel work@LH:~$ ssh user@RH -L 8080:www.google.com:80 Mmm... Qualche dubbio? Ora che facciamo? Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 34 / 43 Proxy SSH Esempio LH: SSH non bloccato, porta 80 chiusa. Soluzione: SOCK circuit level gateway dynamic application-level port forwarding: ssh user@IP -D [bind_address:]port 1 socket in ascolto su port in locale oppure su bind address 2 quando si effettua una connessione su port la connessione viene inoltrata sul canale sicuro 3 SOCK viene utilizzato per determinare dove connettersi dalla macchina remota work@LH:~$ ssh user@RH -D 8080 Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 35 / 43 Esercizio Configurazione H computer della rete a cui fa capo il firewall; nella configurazione di test potrebbe essere un’altra macchina virtuale oppure una fisica. FW computer che svolge il ruolo di firewall; macchina (virtuale) Linux su cui dev’essere configurato Netfilter. Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 36 / 43 Esercizio 0x00 Configurare la macchina FW in modo da consentire connessioni SSH solamente se provenienti da H. In particolare, si richiede di utilizzare l’infrastruttura di connection tracking di Netfilter in modo da: accettare tutti i pacchetti negli stati ESTABLISHED o RELATED; consentire il transito ai soli SYN relativi a connessioni SSH dall’host H. Verificare che le connessioni SSH provenienti da host diversi da H siano rifiutate come previsto. Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 37 / 43 Esercizio 0x01 Negli ultimi mesi si sono registrati diversi tentativi di brute-forcing su porta SSH. Gli attaccanti solitamente utilizzano script automatici per effettuare un elevato numero di tentativi di login, provando diverse combinazioni di nome utente e password. quale delle estensioni discusse a lezione potrebbe essere utile per ostacolare questo tipo di attacco? implementare in Netfilter la soluzione ideata. Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 38 / 43 Esercizio 0x02 L’obiettivo dell’esercizio è scrivere una sorta di “replayer” di traffico TCP. <IP host FW>:1234 H FW <IP host H>:5678 Utilizzando le funzionalità di SNAT/DNAT di Netfilter, configurare l’host FW in modo che tutte le connessioni provenienti da H e dirette verso la porta TCP 1234 siano redirette sull’host H stesso, porta 5678. Utilizzare netcat per verificare la correttezza della soluzione proposta. Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 39 / 43 Riferimenti http://www.netfilter.org iptables(8) Networking Concepts HOWTO Packet Filtering HOWTO NAT HOWTO Alessandro Reina Proteggere la rete: tecnologie A.A. 2011–2012 40 / 43