Esempi di attacchi ai protocolli di rete - Intranet...

25
Politecnico di Milano Dip. Elettronica e Informazione Milano, Italy Esempi di attacchi ai protocolli di rete Ing. Stefano Zanero - 22/03/2006

Transcript of Esempi di attacchi ai protocolli di rete - Intranet...

Page 1: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Politecnico di MilanoDip. Elettronica e Informazione

Milano, Italy

Esempi di attacchi ai protocolli di rete

Ing. Stefano Zanero - 22/03/2006

Page 2: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Alcuni dei possibili tipi di attacco (1)

AttacchiAttacchi DOSDOS (Denial of Service): Rendere indisponibili uno o più servizi erogati da un sistemaSniffingSniffing: lettura “abusiva” di tutti i pacchetti che transitano in rete mediante snifferSpoofingSpoofing: falsificazione dell’indirizzo IP del mittente al fine di fingersi “un altro”HijackingHijacking: persone non autorizzate prendono il controllo di un canale di comunicazione; la connessione viene utilizzata da una terza parte

Page 3: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Alcuni Attacchi di Denial of Service

“Killer packet”SYN floodSmurf e attacchi moltiplicativiDistributed DoS

Page 4: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Killer Packet: alcuni esempi

Ping of DeathUna ICMP echo request di dimensioni “patologiche”• ping -l 65527 (Windows)• ping -s 65527 (UNIX)

TeardropPacchetti frammentati con offset sovrappostiDurante il riassemblamento “alcuni sistemi operativi” si

riavviavano con il più classico dei BSOD

LandNel lontano '95 (nel senso di Windows 95) un pacchetto

con ip sorgente=ip destinazione e flag SYN mandava in loop lo stack TCP/IPNel vicino Windows XP SP2... anche !“This thing is like Dracula: it just won't stay dead”

Page 5: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Denial Of Service (DOS)

Denial of Service mediante flood:

Client legittimo

Serveraziendale

INTERNET

Comunicazione legittima

Attacker Flusso di false richieste dati

Flusso di false richieste dati

Comunicazione impossibile!

Comunicazione impossibile!

Page 6: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

SYN Flood

• L'aggressore genera un flusso di pacchetti con il flag SYN attivo e con indirizzi IP sorgente spoofati

• La coda delle connessioni half-open dello stack TCP/IP viene lentamente saturata, finchè la vittima rifiuta altre connessioni (anche legittime)

• Gli stack moderni sono resistenti a questo tipo di attacchi (e.g. uso dei SYN-cookies)

Page 7: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Variante: DDOS

Nel caso di un Distributed DOS:

Client legittimo

Yahoo!INTERNET

Comunicazione legittimaComunicazione legittima

Attacker

Comunicazione impossibile!Comunicazione impossibile!

Complici involontari

Comando di colpireComando di colpire

RichiesteRichiestefasullefasulle

Page 8: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Smurf: un attacco con moltiplicatore

2. Amplificatore = router che consente di pingare ilbroadcast della rete

3. tutti gli host della retemandano ICMP echo replyall'IP sorgente spoofato

1. ICMP echo requestcon sorgente spoofata all'indirizzo della vittimamandato all'amplificatore

2.1.1.1

1.1.1.1

3.1.1.1

1.1.1.2,3,4...

ICMP ping3.1.1.1 > 1.1.1.255

Page 9: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Tribe Flood Network: un tipico DDoS

3. tutti gli host della TFNmandano SYN, ICMP o qualsiasi altra diavoleria albersaglio

1. Un gran numero di host vienecompromesso e TFN vieneinstallato su di essi (“zombie”)

2.1.1.1

3.1.1.1

2. Gli zombie vengono attivaticon un pacchetto ICMP replycon contenuto il comando

Page 10: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Sniffing

Normalmente, una scheda di rete passa al sistema operativo solo il traffico destinato al singolo hostFare sniffing significa mettere la scheda di rete in modalità “promiscua”, facendo sì che capti tutto il traffico sul cavoParziale soluzione: usare uno switch al posto di un hub

Lo switch manda sul cavo solo il traffico destinato al singolo host

DSniff: www.monkey.org/~dugsong/dsniffARP spoofingMAC floodingSniffing selettivo

Page 11: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

ARP Spoofing

Il protocollo ARP (Address Resolution Protocol) si preoccupa di mappare i 32 bit di indirizzo IP (versione 4) in 48 bit di indirizzo ETHDue tipi principali di messaggi:

ARP request (richiesta di risoluzione indirizzo)ARP reply (risposta contenente un indirizzo eth)

Le risposte sono memorizzate nella ARP CACHE, in modo da limitare il traffico arp sulla reteLe ARP reply sono memorizzate in cache anche se non erano state sollecitate (incrementa prestazioni ma penalizza la sicurezza)Se l’attaccante invia una ARP reply (spoofata) verso un host, questo la memorizzera’ nella propria arp cache

Page 12: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Arpspoofing…

C:\>test

C:\>arp -d 15.1.1.1

C:\>ping -n 1 15.1.1.1

Pinging 15.1.1.1 with 32 bytes of data:

Reply from 15.1.1.1: bytes=32 time<10ms TTL=255

C:\>arp -a

Interface: 15.1.1.26 on Interface 2 Internet Address Physical Address Type 15.1.1.1 00-10-83-34-29-72 dynamic 15.1.1.25 00-04-4e-f2-d8-01 dynamicC:\>arp -a

Interface: 15.1.1.26 on Interface 2 Internet Address Physical Address Type 15.1.1.1 00-04-4e-f2-d8-01 dynamic 15.1.1.25 00-04-4e-f2-d8-01 dynamic

[root@sconvery-lnx dsniff-2.3]# ./arpspoof 15.1.1.10:4:43:f2:d8:1 ff:ff:ff:ff:ff:ff 0806 42: arp reply 15.1.1.1 is-at 0:4:4e:f2:d8:10:4:43:f2:d8:1 ff:ff:ff:ff:ff:ff 0806 42: arp reply 15.1.1.1 is-at 0:4:4e:f2:d8:10:4:43:f2:d8:1 ff:ff:ff:ff:ff:ff 0806 42: arp reply 15.1.1.1 is-at 0:4:4e:f2:d8:10:4:43:f2:d8:1 ff:ff:ff:ff:ff:ff 0806 42: arp reply 15.1.1.1 is-at 0:4:4e:f2:d8:1

Page 13: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

MAC Flooding…

[root@sconvery-lnx dsniff-2.3]# ./macof101.59.29.36 -> 60.171.137.91 TCP D=55934 S=322 Syn Seq=1210303300 Len=0 Win=512145.123.46.9 -> 57.11.96.103 TCP D=44686 S=42409 Syn Seq=1106243396 Len=0 Win=52109.40.136.24 -> 51.158.227.98 TCP D=59038 S=21289 Syn Seq=2039821840 Len=0 Win2126.121.183.80 -> 151.241.231.59 TCP D=7519 S=34044 Syn Seq=310542747 Len=0 Win2211.28.168.72 -> 91.247.223.23 TCP D=62807 S=53618 Syn Seq=2084851907 Len=0 Win2183.159.196.56 -> 133.10.138.87 TCP D=23929 S=51034 Syn Seq=1263121444 Len=0 Wi219.113.88.77 -> 16.189.146.61 TCP D=1478 S=56820 Syn Seq=609596358 Len=0 Win=512237.162.172.114 -> 51.32.8.36 TCP D=38433 S=31784 Syn Seq=410116516 Len=0 Win2 118.34.90.6 -> 61.169.58.50 TCP D=42232 S=31424 Syn Seq=1070019027 Len=0 Win=5246.205.246.13 -> 72.165.185.7 TCP D=56224 S=34492 Syn Seq=937536798 Len=0 Win=52105.109.246.116 -> 252.233.209.72 TCP D=23840 S=45783 Syn Seq=1072699351 Len=0 260.244.56.84 -> 142.93.179.59 TCP D=3453 S=4112 Syn Seq=1964543236 Len=0 Win=512151.126.212.86 -> 106.205.161.66 TCP D=12959 S=42911 Syn Seq=1028677526 Len=0 W29.121.248.84 -> 199.35.30.115 TCP D=33377 S=31735 Syn Seq=1395858847 Len=0 Win=2226.216.132.20 -> 189.89.89.110 TCP D=26975 S=57485 Syn Seq=1783586857 Len=0 Wi2124.54.134.104 -> 235.83.143.109 TCP D=23135 S=55908 Syn Seq=852982595 Len=0 Wi2 27.54.72.62 -> 207.73.65.108 TCP D=54512 S=25534 Syn Seq=1571701185 Len=0 Win=2246.109.199.72 -> 1.131.122.89 TCP D=61311 S=43891 Syn Seq=1443011876 Len=0 Win2 251.49.6.89 -> 18.168.34.97 TCP D=25959 S=956 Syn Seq=6153014 Len=0 Win=51251.105.154.55 -> 225.89.20.119 TCP D=33931 S=1893 Syn Seq=116924142 Len=0 Win=5282.2.236.125 -> 210.40.246.122 TCP D=43954 S=49355 Syn Seq=1263650806 Len=0 Win221.221.14.15 -> 9.240.58.59 TCP D=61408 S=26921 Syn Seq=464123137 Len=0 Win=51270.63.102.43 -> 69.88.108.26 TCP D=61968 S=53055 Syn Seq=682544782 Len=0 Win=512

Page 14: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Il riempimento della CAM table

Dsniff (macof) può generare 155,000 entry sulle tabelle dei MAC address dello switch in un minutoPer come sono fatte le tabelle dei MAC address su uno switch, tipicamente possono contenere 128k indirizzi MAC (prova sperimentale: si riempie in circa 70 secondi)Quando viene riempita, le cached ARP response non funzionano più e lo switch deve inoltrare il traffico su TUTTA la rete, come un hub!

10.1.1.22 -> (broadcast) ARP C Who is 10.1.1.1, 10.1.1.1 ?10.1.1.22 -> (broadcast) ARP C Who is 10.1.1.19, 10.1.1.19 ?15.1.1.26 -> 15.1.1.25 ICMP Echo request (ID: 256 Sequence number: 7424) OOPS15.1.1.25 -> 15.1.1.26 ICMP Echo reply (ID: 256 Sequence number: 7424) OOPS

Page 15: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Alternativamente...

STP: Spanning Tree Protocol (802.1d) protocollo di layer 2 progettato per evitare "loop" di pacchetti su percorsi ridondati per pacchetti floodatiSi costruisce uno spanning tree attraverso lo scambio di BPDU (bridge protocol data unit)I pacchetti vengono floodati o verso la root, o verso i figli nell'albero, ma non in entrambi i versiElezione di un “root switch” mediante pacchetti non autenticati: possiamo fingerci il nuovo root switch

Page 16: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

IP Spoofing

L'indirizzo IP sorgente è banale da cambiare...... pertanto modificare un pacchetto UDP non è difficile !Tuttavia, non vedremo mai le risposte ai nostri pacchetti: “blind spoofing”Per non essere blind

Usare un host compromesso sulla rete del server o del client, e sniffareUsare il source routing per far passare attraverso di noi

i pacchetti mentre tornano verso la sorgente spoofata

Funziona solo con protocolli per cui possiamo predire le risposte

Problema per il TCP !

Page 17: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

TCP: inizio sessione

Three-Way Handshake

Invio SYN seq=x

Invio SYN seq=y, ACK x+1

Invio ACK y+1

Page 18: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

TCP sequence guessing

Le connessioni TCP utilizzano un numero di sequenza per riordinare i pacchettiAd ogni nuova connessione viene utilizzato un numero di sequenza iniziale (semi-)casuale. Se l’attaccante riesce a predire il numero di sequenza, può generare dei pacchetti con mittente falsificato formalmente corretti (anche se, ovviamente, non riesce a vedere le risposte).Perché l’attacco vada a buon fine è necessario che il mittente (vero) non riceva i pacchetti di risposta (o non sia in grado di reagire, ad esempio con un RST)

Page 19: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

TCP Session Hijacking

Session Hijacking è l’inserimento in una sessione TCP attiva.Spiando una connessione attiva è possibile sostituirsi ad uno dei due interlocutori.

C spia la connessione tra A e B e registra i numeri di sequenza dei pacchettiC blocca B (ad es. via SYN Flood): l’utente in B vede

interrompersi la sua sessione interattivaC invia pacchetti con il corretto numero di sequenza,

con mittente B, in modo che A non si accorga di nulla

hunt o dsniff automatizzano il processo se sono su rete localeInjection: posso inserire pacchetti nel flusso, ma desincronizzo la sequenza e quindi devo poter controllare e risincronizzare tutto il traffico

Page 20: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

“Man in the middle”

Categoria molto ampia di attacchi: in generale “tutti gli attacchi in cui l'aggressore riesce a dirottare il traffico tra client e server legittimi”

TCP hijacking ne è un esempio

Può esserefisico (es. l'attaccante controlla un firewall) o logicoFull (l'attaccante vede entrambi i flussi) o half-duplex

(blind)

Ad esempio... se faccio arp spoofing sull'ARP del gateway ?

Page 21: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

DNS poisoning

Spesso è possibile interferire con i processi di risoluzione dei nomiSe intercetto una richiesta DNS posso rispondere con lo stesso ID spoofando un pacchetto UDP ritornato dal server, e il client mi crederàRicordiamo che un DNS che riceve una richiesta:

Se è autoritativo rispondeSe non è autoritativo risponde se ha in cache la coppia

<nome, indirizzo> per una precedente richiestaSe non ha cache, dipende dalla query

Ricorsiva: risponde risolvendo da solo l’host richiestoIterativa: fornisce l’indirizzo del DNS autoritativo

Come mettere una entry nella cache del DNS? Si effettua una richiesta al DNS vittimaSi spoofa la risposta del DNS autoritativoNella risposta forgiata dobbiamo inserire l'ID corretto

della transazione iniziata dal DNS vittima (brute force ?)

Page 22: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

DHCP poisoning

Come sopra:se intercetto una richiesta DHCP posso rispondere fingendomi un server, e il client mi crederàPosso dargli IP, DNS, default gateway...Se nessuno controlla non c'è, nel protocollo, una feature di difesa !!!

Page 23: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

ICMP redirect

ICMP redirect: avvisa un host che esiste una rotta più breve per la destinazione richiesta e che questa rotta passa per il gateway indicato

Forgiare un ICMP redirect spoofando la sorgente dello stesso come se fossimo il gateway originale e con destinazione della redirizione noi stessi

È necessario sniffare il pacchetto originario poichè nel REDIRECT ne devono essere inclusi 64 bit + header IP (non sempre necessario: a seconda dell’OS) 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: vedi /proc/sys/net/ipv4/<int>/accept_redirects

Le rotte aggiunte sono comunque temporanee.

Page 24: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

IRDP Poisoning

IRDP (ICMP Router Discovery Protocol): basato su ICMP, assegnazione automatica agli host di un gatewayPeriodicamente, ogni router manda in multicast degli advertisment per annunciare il suo indirizzo IPOgni advertisement ha lifetime e prioritàForgiamo "advertisment" con alta priorità e lungo lifetime

Windows 9x: accetta IRDPWindows NT: usa IRDP al bootWindows 2000: ignora IRDPLinux: ignora IRDP

Page 25: Esempi di attacchi ai protocolli di rete - Intranet DEIBhome.deib.polimi.it/serazzi/sicurezza/materiale/attacchirete0506.pdf · con ip sorgente=ip destinazione e flag SYN mandava

Route mangling

Se posso annunciare delle rotte ai router posso fare qualsiasi cosa

IGRP, RIP, OSPF: nessuna autenticazione o deboleEIGRP, BGP: forme di autenticazione possibili

Posso mandare una rotta annunciandomi con una metrica molto bassa e una netmask “grande”, cioè molto ristretta, per avere prioritàPosso anche sfruttare multipath o QoSDi solito però le rotte statiche hanno priorità su quelle dinamiche