Attacchi locale - remoto (3)
Transcript
Attacchi locale - remoto (3)
Alberto Orgnahi <[email protected]> Marco Valleri <[email protected]> Man in the middle attacks Cosa sono Come sfruttarli Come ottenerli Come prevenirli Blackhats italia 2002 1 Copyright Questo insieme di trasparenze è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relative alle trasparenze (ivi inclusi, ma non limitatamente a, ogni immagine, fotografia, animazione, video e testo) sono di proprietà degli autori indicati. Le trasparenze possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione per scopi istituzionali, non a fine di lucro. Ogni altra utilizzazione o riproduzione (ivi incluse, ma non limitatamente a, le riproduzioni a mezzo stampa, su supporti magnetici o su reti di calcolatori) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell’autore. L’informazione contenuta in queste trasparenze è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, ecc. L’informazione contenuta in queste trasparenze è soggetta a cambiamenti senza preavviso. Gli autori non si assumono alcuna responsabilità per il contenuto di queste trasparenze (ivi incluse, ma non limitatamente a, la correttezza, completezza, applicabilità ed aggiornamento dell’informazione). In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste trasparenze. In ogni caso questa nota di copyright non deve mai essere rimossa e deve essere riportata anche in utilizzi parziali. Blackhats italia 2002 2 Table of contents A seconda dello scenario in cui ci si trova ad operare l'attacco man in the middle assume forme diverse: RETE LOCALE: - ARP poisoning - DNS spoofing - STP mangling DA RETE LOCALE A REMOTO (attraverso un gateway): - DNS spoofing - DHCP spoofing - ARP poisoning - ICMP redirection - IRDP spoofing - route mangling REMOTO: - DNS poisoning - traffic tunneling Blackhats italia 2002 - route mangling 3 Introduzione Blackhats italia 2002 4 Definizione m-i-t-m La tipologia di attacco che va sotto il nome di manin-the-middle consiste nel dirottare il traffico generato durante la comunicazione tra due host verso un terzo host (attaccante) il quale fingera’ di essere l’end-point legittimo della comunicazione. Connessione: B A Logica Reale M Blackhats italia 2002 5 Ruolo dell’attaccante Essendo l’attaccante fisicamente in mezzo alla comunicazione delle due (o piu’) vittime, ricevera’ pacchetti da e verso le stesse. Si dovra’ preoccupare di inoltrare i pacchetti che riceve verso la corretta destinazione in modo tale che risulti trasparente ai due end-point della comunicazione. Blackhats italia 2002 6 Tipologie di attacco (1) Half & Full duplex attack A seconda della capacita' di riuscire a monitorare solo uno o entrambi i versi della connessione l'attacco verra' chiamato mitm half duplex o mitm full duplex B A HALF-DUPLEX M B A FULL-DUPLEX M Blackhats italia 2002 7 Tipologie di attacco (2) Transparent attack Questo attacco nasconde attaccante alle due vittime. perfettamente l’host 192.168.1.1 192.168.1.5 A B src: 192.168.1.1 192.168.1.90 M src: 192.168.1.1 Blackhats italia 2002 8 Tipologie di attacco (3) Proxy attack L’attaccante funge da proxy per la connessione 192.168.1.1 192.168.1.5 A B src: 192.168.1.1 192.168.1.90 M src: 192.168.1.90 Blackhats italia 2002 9 Come sfruttare il MITM Blackhats italia 2002 10 Vantaggi (1) Sniffing E’ la cosa piu’ ovvia che si puo’ fare. Una volta guadagnato il “middle” i pacchetti transitano attraverso la macchina dell’attaccante. Compromette tutti i protocolli in “plain text” Permette di carpire le password di numerosi protocolli molto diffusi (telnet, ftp, http, ecc) Blackhats italia 2002 11 Vantaggi (2) Hijacking Semplice da portare a termine Non e’ di tipo blind (si conoscono perfettamente i numeri di sequenza della connessione) Estrema facilita’ nell’oscurare un lato della comunicazione e inserirsi al suo posto Blackhats italia 2002 12 Vantaggi (3) Injecting Possibilita’ di aggiungere pacchetti alla connessione (solo full-duplex) Modifica dei numeri di sequenza di una connessione TCP per mantenerla sincronizzata Ancora piu’ semplice nella soluzione “proxy attack” Blackhats italia 2002 13 Vantaggi (4) Filtering Possibilita’ di modificare il payload dei pacchetti (ricalcolando il checksum dove necessario) Creare filtri pattern matching on the fly Modifica anche della lunghezza del payload ma solo in regime FULL-DUPLEX Blackhats italia 2002 14 Esempi di attacchi Blackhats italia 2002 15 Esempi di attacchi (1) Command injection Utile nel caso di sessioni telnet con autenticazione non riproducibile (RSA token,…) Inserimento comandi verso il server Simulare risposte verso il client Blackhats italia 2002 16 Esempi di attacchi (2) Malicious code injection Inserimento malicious code in pagine web, mail ecc (javascript, trojans, virus, ecc) Modifica on the fly di file binari in fase di download (virus, backdoor, ecc) Blackhats italia 2002 17 Esempi di attacchi (3) Key exchanging Modifica delle chiavi pubbliche scambiate all’inizio della connessione. (es SSH1) start Server KEY(rsa) S-KEY M Ekey[S-Key] Eskey(M) MITM S-KEY Client KEY(rsa) Ekey[S-Key] S-KEY D(E(M)) D(E(M)) Blackhats italia 2002 18 Esempi di attacchi (4) Parameters and banner substitution E' possibile sostituire i parametri che il server e il client si scambiano per modificare il comportamento di entrambi. Esempio: e’ possibile far si che una connessione che richiede SSH2 sia stabilita in SSH1. – Risposte possibili del server: SSH-1.99 -- il server supporta ssh1 e ssh2 SSH-1.51 -- il server supporta SOLO ssh1 – Creazione di un filtro che cambia 1.99 con 1.51 Possibilita’ di aggirare known_hosts Blackhats italia 2002 19 Esempi di attacchi (5) IPSEC Failure Bloccare il keymaterial scambiato sulla porta 500 UDP Gli end point credono che l’altro non sia in grado di usare IPSEC Se il client e’ configurato in fall-back c’e’ buona probabilita’ che l’utente non si accorga di comunicare in clear-text Blackhats italia 2002 20 Tecniche di attacco IN LOCALE Blackhats italia 2002 21 Attacchi Locali (1) ARP poison - introduzione (1) Stack TCP/IP su ethernet Dati Livello Applicazione TCP Livello Trasporto IP Livello Network eth eth IP TCP Dati FCS Livello Data-Link FCS Frame trasmesso Blackhats italia 2002 22 Attacchi Locali (1) ARP poison - introduzione (2) Il protocollo ARP (Address Resolution Protocol) si preoccupa di mappare i 32 bit di indirizzo IP (versione 4) in 48 bit di indirizzo ETH Due tipi principali di messaggi: – ARP request (richiesta di risoluzione indirizzo) – ARP reply (risposta contenente un indirizzo eth) Blackhats italia 2002 23 Attacchi Locali (1) ARP poison - introduzione (3) Le risposte sono memorizzate nella ARP CACHE, in modo da limitare il traffico arp sulla rete Problemi : – Il protocollo e’ stateless – Le ARP reply sono memorizzate in cache anche se non erano state sollecitate (incrementa prestazioni ma penalizza la sicurezza) Blackhats italia 2002 24 Attacchi Locali (1) ARP poison - attacco (1) Sfrutta il comportamento stateless del protocollo Se l’attaccante invia una ARP reply (spoofata) verso un host, questo la memorizzera’ nella propria arp cache Blackhats italia 2002 25 Attacchi Locali (1) ARP poison - attacco (2) Vittima A 192.168.0.1 01:01:01:01:01:01 Vittima B ARP cache: ARP cache: 192.168.0.1 192.168.0.2 01:01:01:01:01:01 03:03:03:03:03:03 03:03:03:03:03:03 02:02:02:02:02:02 192.168.0.2 02:02:02:02:02:02 Attaccante 192.168.0.3 192.168.0.2 is at 03:03:03:03:03:03 03:03:03:03:03:03 Blackhats italia 2002 192.168.0.1 is at 03:03:03:03:03:03 26 Attacchi Locali (1) ARP poison - attacco (3) Le entries della cache sono provviste di timeout, quindi l’attaccante deve periodicamente “rinfrescarla” Una entry non e’ aggiornata se non era gia’ presente nella cache – Aggirabile tramite un ICMP spoofato Versione modificata dell’attacco contro linux e solaris Blackhats italia 2002 27 Attacchi Locali (1) ARP poison - attacco (4) Utile per sniffare su reti connesse tramite switch Lo switch opera a livello 2 ed e’ ignaro dei cambiamenti delle associazioni nelle arp cache degli host vittime Blackhats italia 2002 28 Attacchi Locali (1) ARP poison - tools Ettercap – – – – – (http://ettercap.sf.net) Poisoning Sniffing Hijacking Filtering SSH sniffing (transparent attack) Dsniff (http://www.monkey.org/~dugsong/dsniff) – – – Poisoning Sniffing SSH sniffing (proxy attack) Blackhats italia 2002 29 Attacchi Locali (1) ARP poison - tracce lasciate Le ARP cache delle vittime contengono il mac address dell’attaccante Se lo switch non e’ provvisto di portsecurity o se si e’ su HUB, l’attaccante puo’ spoofare il suo mac address. Blackhats italia 2002 30 Attacchi Locali (1) ARP poison - contromisure NO - Port security sullo switch SI - passive monitoring (arpwatch) SI - active monitoring (ettercap) SI - IDS (rilevano ma non evitano) SI - ARP entries statiche (evitano) SI - Secure-ARP (in development) Blackhats italia 2002 31 Attacchi Locali (2) DNS spoofing - introduzione (1) Il Domain Name System si occupa di trasformare i nomi simbolici degli host in indirizzi IP utilizzabili dal kernel HOST www.kernel.org DNS 204.152.189.113 Blackhats italia 2002 32 Attacchi Locali (2) DNS spoofing - introduzione (2) Il protocollo in realta’ e’ molto piu’ complesso, ma ci limiteremo alla trattazione delle funzionalita’ che ci servono per l’attacco. L’unico campo del pacchetto UDP (porta 53) che ci interessa e’ l’ID Blackhats italia 2002 33 Attacchi Locali (2) DNS spoofing - attacco (1) Intercettare le richieste e memorizzare il campo ID Forgiare una falsa risposta con il giusto ID Spedire al client che ha effettuato la richiesta. Intercettare eventuali reverse query (PTR) Blackhats italia 2002 34 Attacchi Locali (2) DNS spoofing - attacco (2) MITM HOST serverX.localdomain.it DNS 10.1.1.1 10.1.1.50 Blackhats italia 2002 35 Attacchi Locali (2) DNS spoofing - attacco (3) In questo caso l’attaccante puo’ fungere da proxy per il server e rispondere in modo corretto a tutti i servizi che il client si aspetta di trovare sul server. Port forwarding con iptables Blackhats italia 2002 36 Attacchi Locali (2) DNS spoofing - tools Ettercap (http://ettercap.sf.net) – Phantom plugin Dsniff (http://www.monkey.org/~dugsong/dsniff) – Dnsspoof Zodiac (http://www.packetfactory.com/Projects/zodiac) Blackhats italia 2002 37 Attacchi Locali (2) DNS spoofing - tracce lasciate Usando un risolutore di indirizzi diverso, ci si puo’ accorgere della differenza di risposte L’IP dell’attaccante e’ presente all’interno delle risposte DNS Blackhats italia 2002 38 Attacchi Locali (2) DNS spoofing - contromisure SI - individuare risposte multiple (IDS) SI - usare lmhost o host file per risoluzioni statiche SI - DNSSEC (risoluzione criptata) Blackhats italia 2002 39 Attacchi Locali (3) STP mangling - introduzione (1) Il protocollo di spanning tree (802.1d) e' un protocollo di layer 2 appositamente progettato per evitare "loop" di pacchetti dove siano presenti percorsi ridondati Pacchetti con MAC sorgente non presente nelle tabelle dello switch, sono forwardati su tutte le porte. Questo potrebbe portare a loop di forwarding Blackhats italia 2002 40 Attacchi Locali (3) STP mangling - introduzione (2) Per evitare loop nella topologia della rete, gli switch si costruiscono un albero di copertura (spanning tree) attraverso lo scambio di BPDU (bridge protocol data unit) Elezione di un “root switch” Per ogni switch si designano le porte attraverso le quali si raggiunge la root e quelle verso i suoi discendenti dell’albero (designated port) Blackhats italia 2002 41 Attacchi Locali (3) STP mangling - introduzione (3) Ogni pacchetto contiene una priorita’ che sara’ utilizzata per l’elezione della root. La priorita’ e’ rappresentata da un numero formato da 2 byte + il mac address dello switch (minore e’ questo numero maggiore e’ la priorita’) Le BPDU sono continuamente scambiate per rilevare cambiamenti nella rete Blackhats italia 2002 42 Attacchi Locali (3) STP mangling - attacco Non e’ un vero e proprio m-i-t-m attack. Permette solo di ricevere traffico “unmanaged” Si forgiano BPDU con priorita’ molto alta (fingendoci per la nuova root) Gli switch ricostruiranno l’albero per adattarsi alla nostra presenza Cercare di saturare le tabelle dello switch Blackhats italia 2002 43 Attacchi Locali (3) STP mangling - tools Ettercap (http://ettercap.sf.net) – Lamia plugin Blackhats italia 2002 44 Attacchi Locali (3) STP mangling - tracce lasciate Il Mac address dell’attaccante presente nello stato dello switch Blackhats italia 2002 e’ 45 Attacchi Locali (3) STP mangling - contromisure SI - Disabilitare STP sulle VLAN prive di loop (sconsgiliato da CISCO) SI - Root Guard (se l'apparato lo supporta) impedisce che determinate porte diventino "root port“, oppure disabilitare l’STP su queste porte. SI - Settare le porte connesse a workstations come "portfast", e attivare BPDU Guard su queste porte (se l'apparato lo supporta). NO - Il portfast da solo NON e' sufficiente. Blackhats italia 2002 46 Tecniche di attacco DA LOCALE A REMOTO Blackhats italia 2002 47 Attacchi locale - remoto (1) ARP poisoning - introduzione Per raggiungere una destinazione all’esterno della LAN un host deve conoscere l’IP del gateway. L’host manda una ARP request per l’IP del gateway Blackhats italia 2002 48 Attacchi locale - remoto (1) ARP poisoning - attacco Simile all’attacco locale. Il gateway e’ un host locale, quindi puo’ essere poisonato come qualsiasi altro host In presenza di “proxy arp” gli host remoti sono considerati locali Blackhats italia 2002 49 Attacchi locale - remoto (1) ARP poisoning - contromisure SI - entry statica del gateway su tutti gli host Blackhats italia 2002 50 Attacchi locale - remoto (2) DNS spoofing - introduzione Le richieste saranno per host non locali, verso DNS non locali. Tecnica identica a quella per gli host locali. Abilitare il flag “autoritative” evitare richieste iterative. Blackhats italia 2002 per 51 Attacchi locale - remoto (2) DNS spoofing - contromisure SI - individuare risposte multiple (IDS) SI - usare lmhost o host file per risoluzioni statiche SI - DNSSEC (risoluzione criptata) Blackhats italia 2002 52 Attacchi locale - remoto (3) DHCP spoofing - introduzione Il servizio DHCP e' utilizzato per l'assegnazione dinamica di una serie di parametri per la connettivita' di rete: – Indirizzo IP – DNS – Default route Blackhats italia 2002 53 Attacchi locale - remoto (3) DHCP spoofing - attacco (1) Intercattando una richiesta (broadcast) dhcp e' possibile rispondere prima del vero server. In questo modo possiamo modificare i parametri di : – Default gateway – DNS Blackhats italia 2002 54 Attacchi locale - remoto (3) DHCP spoofing - attacco (2) Default gateway: assegnando l'indirizzo IP dell'attaccante come default gateway, tutto il traffico verso l'esterno della lan passera' da esso DNS: assegnando l'indirizzo IP dell'attaccante come DNS, tutte le richieste di risoluzione dei nomi verranno fatte a lui e sara' quindi in grado di portare un attacco simile a quello visto in precedenza (DNS spoofing) Blackhats italia 2002 55 Attacchi locale - remoto (3) DHCP spoofing - tools Non e' necessario un tool apposito ma bastera' configurare la macchina attaccante come DHCP server, installando ad esempio dhcpd. Blackhats italia 2002 56 Attacchi locale - remoto (3) DHCP spoofing - tracce lasciate L‘indirizzo IP dell'attaccante configurazioni del client. Blackhats italia 2002 nelle 57 Attacchi locale - remoto (3) DHCP spoofing - contromisure La migliore contromisura e' l'attenzione dell'utente che si vedra' porbabilmente arrivare piu' di una risposta dhcp e potra' controllare "manualmente" alla ricerca di strane o inaspettate configurazioni assegnate Blackhats italia 2002 58 Attacchi locale - remoto (4) ICMP redirect - introduzione (1) Esaminiamo solo il comando REDIRECT del protocollo ICMP Il comando redirect serve ad avvisare un host che esiste una rotta piu’ breve per la destinazione richiesa e questa rotta passa per il gateway indicato nel pacchetto ICMP Blackhats italia 2002 59 Attacchi locale - remoto (4) ICMP redirect - introduzione (2) R R T 3 G1 2 G2 ICMP redirect to G2 LAN H Blackhats italia 2002 60 Attacchi locale - remoto (4) ICMP redirect - attacco (1) Forgiare un ICMP redirect spoofando la sorgente dello stesso come se fossimo il gateway originale e con destinazione della redirizione l’host attaccante. E’ necessario sniffare il pacchetto originario poiche’ nel REDIRECT ne devono essere inclusi 64 bit + header IP (non sempre necessario: a seconda dell’OS) Blackhats italia 2002 61 Attacchi locale - remoto (4) ICMP redirect - attacco (2) I pacchetti di tipo REDIRECT vengono presi in considerazione dagli host a seconda del loro sistema operativo: – Windows 9x accetta i REDIRECT di default e aggiunge una entry (di tipo host) nelle sue tabelle di routing. – Linux accetta di default i REDIRECT in alcune distribuzioni (vedere in proposito /proc/sys/net/ipv4/<nome interfaccia>/accept_redirects) Le rotte aggiunte sono comunque temporanee. Blackhats italia 2002 62 Attacchi locale - remoto (4) ICMP redirect - tools IRPAS icmp_redirect di Phenoelit (http://www.phenoelit.de/irpas/) icmp_redir di Yuri Volobuev Blackhats italia 2002 63 Attacchi locale - remoto (4) ICMP redirect - tracce lasciate L’indirizzo IP dell’attaccante presente nelle rotte dell'host e’ – e' possibile spoofarlo e far comunque arrivare a lui i pacchetti rispondendo alle ARP request per l'indirizzo Blackhats italia 2002 64 Attacchi locale - remoto (4) ICMP redirect - contromisure SI - Disabilitare i REDIRECT – ma cosi' facendo ci potebbero essere dei cali di prestazioni nella rete (i pacchetti fanno piu’ HOP). NO - Linux permette di attivare l'opzione "secure redirect", che non risulta una protezione efficace Blackhats italia 2002 65 Attacchi locale - remoto (5) IRDP spoofing - introduzione (1) IRDP (ICMP Router Discovery Protocol) e' un protocollo basato su ICMP, utilizzato per l'assegnazione automatica agli host di un gateway(router). Ci sono due tipi di messaggi previsti dal protocollo: – "Router Advertisements" – "Router Solicitations" Periodicamente, ogni router manda in multicast degli advertisment per annunciare il suo indirizzo IP Blackhats italia 2002 66 Attacchi locale - remoto (5) IRDP spoofing - introduzione (2) Ogni advertisment contiene un "livello di preferenza“ e un campo “lifetime”. Nel caso un host riceva piu' advertisment da diverse sorgenti, si dovrebbe scegliere quello con il livello piu' elevato Il "lifetime" sta ad indicare il tempo per cui l'host deve conservare quella rotta. Blackhats italia 2002 67 Attacchi locale - remoto (5) IRDP spoofing - attacco Forgiare degli "advertisment" annunciandoci come router e settando i campi "livello di preferenza" e "lifetime" al massimo valore consentito – – – – Windows 9x Windows NT Windows 2000 Linux accetta IRDP usa IRDP al boot ignora IRDP ignora IRDP Si puo' rendere l'attacco piu' efficace orgiando degli ICMP Host Unreachable impersonando l'attuale router di default. Blackhats italia 2002 68 Attacchi locale - remoto (5) IRDP spoofing - tools IRPAS di Phenoelit (http://www.phenoelit.de/irpas/) Blackhats italia 2002 69 Attacchi locale - remoto (5) IRDP spoofing - tracce lasciate L’indirizzo IP dell’attaccanete presente nelle rotte dell'host e’ – e' possibile spoofarlo e far comunque arrivare a noi i pacchetti rispondendo alle ARP request per l'indirizzo spoofato. Blackhats italia 2002 70 Attacchi locale - remoto (5) IRDP spoofing - contromisure SI - Disabilitare IRDP sugli hosts se il sitema operativo lo permette. Blackhats italia 2002 71 Attacchi locale - remoto (6) ROUTE mangling - introduzione (1) Nel caso in cui un router ha piu' rotte possibili per una stessa destinazione, sceglie quella col "peso" maggiore. Il peso viene determinato in base a vari fattori come le metriche proposte dai vari protocolli di routing, e il tipo di protocollo stesso che ha proposto la rotta. Piu' il protocollo e' "fidato", maggiore sara' il peso delle rotte che propone. Le rotte statiche hanno generalmente un "grosso" peso. Blackhats italia 2002 72 Attacchi locale - remoto (6) ROUTE mangling - introduzione (2) La prima cosa che viene controllata nella scelta di una rotta e' (in generale) la netmask. Questo perche' piu' la netmask e' grande (cioe’ restrittiva) e piu' vuol dire che quella rotta e' specifica per l'host che vogliamo raggiungere e non per una piu' generica subnet. Blackhats italia 2002 73 Attacchi locale - remoto (6) ROUTE mangling - attacco (1) INTERNET GW AT H Forgiare dei pacchetti per GW annunciandoci come router con un ottima metrica per un determinato host (o classe o subnet). Specificare una netmask grande per “battere” rotte di peso maggiore. Blackhats italia 2002 74 Attacchi locale - remoto (6) ROUTE mangling - attacco (2) Quando H mandera' dei pacchetti per l'host per cui l’ATTACKER si e’ annunciato come rotta preferenziale, questi arriveranno a GW. GW sara' convinto che il modo piu' veloce per raggiungere quell'host e' attraverso ATTACKER GW mandera' ad H degli ICMP redirect dicendogli di usare ATTACKER come gateway per i pacchetti successivi. Blackhats italia 2002 75 Attacchi locale - remoto (6) ROUTE mangling - attacco (3) Il problema a questo punto e' trovare un modo per far arrivare i pacchetti al legittimo destinatario. GW, infatti, e’ convinto di poter raggiungere l’host attraverso l’attacker. Tunnel AT2 D INTERNET GW AT H Blackhats italia 2002 76 Attacchi locale - remoto (6) ROUTE mangling - attacco (4) Possibilita’ di usare multipath routing o QoS Blackhats italia 2002 77 Attacchi locale - remoto (6) ROUTE mangling - tools IRPAS di Phenoelit (http://www.phenoelit.de/irpas/) Nemesis (http://www.packetfactory.net/Projects/nemesis/) Blackhats italia 2002 78 Attacchi locale - remoto (6) ROUTE mangling - tracce lasciate L’indirizzo IP dell’attaccante nelle tabelle del router che sono comunque temporanee – E’ possibile spoofarlo come nei casi precedenti. Blackhats italia 2002 79 Attacchi locale - remoto (6) ROUTE mangling - contromisure SI - Disabilitare i protocolli di routing dinamico che sono inutili in uno scenario di questo tipo SI Mettere delle ACL esplicite sull'interfaccia interna del router che blocchino gli "update" indesiderati. SI - Abilitare l'autenticazione MD5 nei protocolli che la supportano Blackhats italia 2002 80 Tecniche di attacco IN REMOTO Blackhats italia 2002 81 Attacchi in remoto (1) DNS poisoning - introduzione (1) Quando il DNS riceve una richiesta ci possono essere 3 possibilita': 1. Il DNS e' "autoritativo" per il dominio a cui il nome richiesto appartiene. (risposta autoritativa) 2. Il DNS non e' "autoritativo" per il dominio richiesto ma ha nella cache la coppia <nome simbolico, indirizzo IP> in seguito ad una precedente richiesta. (risposta non autoritativa) Blackhats italia 2002 82 Attacchi in remoto (1) DNS poisoning - introduzione (2) 3. Il DNS non e' "autoritativo" per il dominio e non ha in cache l'indirizzo IP della macchina richiesta. La query e' di tipo ricorsivo. (risponde risolvendo da solo l’host richiesto) La query e' di tipo iterativo. (risponde fornendo l’indirizzo del DNS autoritativo per il dominio di primo livello dell’host da risolvere) Blackhats italia 2002 83 Attacchi in remoto (1) DNS poisoning - attacco (1) ATTACCO DEL PRIMO TIPO L’attacco ha come fine quello di mettere nella cache del DNS una coppia <indirizzo IP, nome simbolico> Si effettua una richiesta al DNS vittima Si spoofa la risposta che dovrebbe arrivare dal DNS autoritativo (i pacchetti sono UDP) Nella risposta forgiata dobbiamo inserire l'ID corretto della transazione iniziata dal DNS vittima (brute force, semi-blind guessing) Blackhats italia 2002 84 Attacchi in remoto (1) DNS poisoning - attacco (2) ATTACCO DEL SECONDO TIPO Sfrutta la “feature” del dynamic update di alcuni DNS Inviando richieste di tipo “update” e’ possibile aggiungere o eliminare alcune entries per cui il DNS e’ autoritativo ATTACCO DEL TERZO TIPO abusare del sistema di assegnazione dei domini (ad esempio richiedendo un spostamento di dominio a Network Solutions Inc.) Blackhats italia 2002 85 Attacchi in remoto (1) DNS poisoning - tools ADMIdPack Zodiac (http://www.packetfactory.com/Projects/zodiac) per il dynamic update: Net::DNS::Update Blackhats italia 2002 86 Attacchi in remoto (1) DNS poisoning - tracce lasciate Come nel caso del DNS spoofing, gli host manderanno tutti i pacchetti della connessione verso l'indirizzo IP della macchina attaccante. Il DNS conservera' traccia di tale IP per tutto il tempo di latenza dell'entry nella cache. Blackhats italia 2002 87 Attacchi in remoto (1) DNS poisoning - contromisure NO - restringere il dynamic update a range di IP (possono essere spoofati) SI - Usare DNS con generazione casuale dei transaction ID (Bind v9) SI - DNSSec (implementato in Bind v9) permette la firma digitale dei dati. Ovviamente anche il resolver deve supportare questa estensione. SI - Evitare di rendere pubblico il DNS che si utilizza "in casa" per la risoluzione di nomi non appartenenti alla propria zona. SI - Eliminare il dynamic update o rendere pubblico un semplice forwarder che inoltra le richieste ad un altro name server con questa feature, non raggiungibile dall'esterno. Blackhats italia 2002 88 Attacchi in remoto (2) Traffic Tunneling - introduzione (1) Nel seguito della spiegazione faremo riferimento ai router CiscoIOS e al metodo di incapsulamento IP su GRE Un tunnel e' instaurato tra due "end point" detti tunnel broker. Su ognuno dei due endpoint, il tunnel e' associato ad un interfaccia virtuale con un suo indirizzo (ad esempio Tunnel0), che deve essere legata ad un interfaccia reale (ad esempio Serial0). Ogni volta che il router deve inoltrare un pacchetto IP che ha come “next hop” un indirizzo che cade nella subnet dell'IP address dell'interfaccia di tunnel, il pacchetto viene incapsulato e spedito all’altro endpoint Blackhats italia 2002 89 Attacchi in remoto (2) Traffic Tunneling - introduzione (2) 192.168.0.* 192.168.0.1 Router 1 LAN 1 192.168.2.1 195.103.31.193 INTERNET 192.168.2.2 LAN 2 192.168.1.* 195.103.31.194 Router 2 192.168.1.1 Blackhats italia 2002 90 Attacchi in remoto (2) Traffic Tunneling - attacco Server Router 1 Tunnel GRE INTERNET Client Fake host Attacker Gateway Blackhats italia 2002 91 Attacchi in remoto (2) Traffic Tunneling - tools Ettercap (http://ettercap.sf.net) – Zaratan plugin TunnelX (http://www.phrack.com) Blackhats italia 2002 92 Attacchi in remoto (2) Traffic Tunneling - tracce lasciate La traccia piu' evidente e’ senza dubbio la riconfigurazione del router (!!!). Blackhats italia 2002 93 Attacchi in remoto (2) Traffic Tunneling - contromisure SI - Password forti sul router per l'accesso a qualsiasi livello. SI - Disabilitare o proteggere con community forti l'accesso in scrittura via snmp. Blackhats italia 2002 94 Attacchi in remoto (3) ROUTE mangling - introduzione (1) Dal punto di vista del routing internet e’ divisa in Autonomous System (AS) connessi tra loro attraverso le backbone Si adottano differenti politiche all’interno dell’AS e all’esterno Gli AS sono identificati dal loro Border Gateway quando i pacchetti viaggiano sulla backbone Blackhats italia 2002 95 Attacchi in remoto (3) ROUTE mangling - introduzione (2) Distance Vector – Ogni router mantiene una tabella contenente la migliore distanza conosciuta per ogni destinazione e quale canale utilizzare per raggiungerla. – Queste tabelle sono aggiornate scambiando le informazioni coi vicini. – Scarsa velocita' di convergenza – problema del "conteggio all'infinito" (in parte ovviabile con lo split-horizon). Blackhats italia 2002 96 Attacchi in remoto (3) ROUTE mangling - introduzione (3) Link State – I router scambiano solo informazioni sui vicini e non sulle varie destinazioni – Ogni router conosce l'intera topologia di rete o almeno ne ha una sua visione. – Controlli per evitare loop, basati sull'utilizzo di campi come "numero di sequenza" e "eta'". Blackhats italia 2002 97 Attacchi in remoto (3) ROUTE mangling - introduzione (4) IGRP (Interior Gateway Routing Protocol) – Non supporta alcun tipo di autenticazione. – Supporta diverse metriche: delay, bandwidth, reliability, load e hop count. – Non supporta le netmask. No host route. – Protocollo di tipo distance vector, i pacchetti possono contenere anche solo la rotta che vogliamo "aggiungere" o "modificare". – Necessita’ di mantenere le rotte “vive”. Blackhats italia 2002 98 Attacchi in remoto (3) ROUTE mangling - introduzione (5) EIGRP (Extended Interior Gateway Routing Protocol) – Tipo Distance-Vector ma con delle neighbor relationships – Manda soltanto i cambiamenti di topologia nei suoi updates. – Supporta le netmasks. – Implementa il sequencing – permette l'utilizzo di una autenticazione crittografica delle rotte (MD5). Blackhats italia 2002 99 Attacchi in remoto (3) ROUTE mangling - introduzione (6) RIP (Routing Information Protocol) over UDP – L'unica metrica supportata e' l'hop count. – Non e' adatto a reti di grandi dimensioni – Non supporta la distinzione degli AS. – La v1 non permette di specificare la netmask delle rotte (netmask fissata dalla classe). – La v2 supporta l'autenticazione con password in chiaro (16 caratteri max) o le signature MD5 (solo per Cisco) Blackhats italia 2002 100 Attacchi in remoto (3) ROUTE mangling - introduzione (7) OSPF (Opens Shortest Path First) – E' un protocollo di tipo link state. – Puo' essere usato come IGP o anche come EGP. – Supporta le subnet netmasks. – nessuna autenticazione o autenticazioni in cleartext (alcune implementazioni con MD5). Blackhats italia 2002 101 Attacchi in remoto (3) ROUTE mangling - introduzione (8) BGP4 (Border Gateway Protocol) over TCP – protocollo usato principalmente per il routing fra gli AS – protocollo di tipo distance vector, ma permette l'enumerazione di tutti gli AS che un pacchetto deve attraversare per raggiungere ogni destinazione – Non usa le metriche per le rotte, ma una serie di attributi per discriminarle. – Supporta le netmasks. – BGP non ha un suo metodo di sequencing, ma si appoggia a quello del TCP. Blackhats italia 2002 102 Attacchi in remoto (3) ROUTE mangling - attacco (1) L’attacco mira a dirottare il traffico tra le vittime A e B Raccogliere informazioni dall’ attaccante verso A e verso B: – traceroute – portscanning – protoscanning Blackhats italia 2002 103 Attacchi in remoto (3) ROUTE mangling - attacco (2) Scenario 1 a (IGRP all’interno dello stesso AS) A B L’attaccante si annuncia come GW Blackhats italia 2002 104 Attacchi in remoto (3) ROUTE mangling - attacco (3) Scenario 1 b (IGRP - all’interno dello stesso AS) A B Blackhats italia 2002 105 Attacchi in remoto (3) ROUTE mangling - attacco (4) Scenario 2 a (il traffico non passa dall’AS) AS 1 AS 2 BGP BG 1 BG 2 BG 3 AS 3 Blackhats italia 2002 RIP 106 Attacchi in remoto (3) ROUTE mangling - attacco (5) Scenario 2 b (il traffico non passa dall’AS) AS 1 BG 4 AS 2 BG 5 BG 1 BG 2 BG 3 AS 3 Blackhats italia 2002 107 Attacchi in remoto (3) ROUTE mangling - tools IRPAS di Phenoelit (http://www.phenoelit.de/irpas/) Nemesis (http://www.packetfactory.net/Projects/nemesis/) Blackhats italia 2002 108 Attacchi in remoto (3) ROUTE mangling - tracce lasciate Non ci sono tracce evidenti dell’attacco Blackhats italia 2002 109 Attacchi in remoto (3) ROUTE mangling - contromisure SI - La contromisura piu' efficace e' senza dubbio abilitare un’autenticazione forte nei protocolli che la supportano Blackhats italia 2002 110 Conclusioni La sicurezza di una nostra comunicazione e’ affidata – ad una corretta configurazione del client (per evitare ad esempio ICMP Redirect, ARP Poisoning etc.) – all'infrastruttura del nostro interlocutore (es. DNS dynamic update), – alla robustezza di apparati di "terzi", su cui non possiamo avere nessun tipo di controllo e di garanzia (es. Tunnelling e Route Mangling). Il modo migliore per proteggere i nostri dati che viaggiano in rete e'quindi l'utilizzo corretto di suite crittografiche sicure – – – – sia dal lato client sia dal lato server per la protezione a livello rete (es. IPSec) a livello trasporto (es. SSLv3) a livello applicativo (es. PGP). Blackhats italia 2002 111 – Marco Valleri – Alberto Ornaghi <[email protected]> <[email protected]> http://www.blackhats.it/papers/Paper-mitm.pdf Contacts: [email protected] http://www.blackhats.it Blackhats italia 2002 112