Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoBaldassare Nobile Modificato 11 anni fa
1
TCP/IP: cosa rischio se lo uso?
2
Importanza Obiettivo di oggi: Capire come funzionano alcuni protocolli di rete Vedremo Come lavorano i protocolli Come un attaccante può abusarne Come difendersi Non vedremo Contenuti marketing Come prepararsi per superare un esame
3
4-Applicazione 3-Trasporto 2-Rete 1-Interfaccia 1-Fisico Il modello OSI 7-Applicazione 6-Presentazione 5-Sessione 4-Trasporto 3-Rete 2-Data Link Http, ftp, telnet, ping,dns,dhcp TCP, UDP, IPSec IP, ICMP, IGMP ARP, RARP Il mondo reale Quattro livelli sono sufficientemente rappresentativi
4
Convenzioni usate nella presentazione A e B rappresentano host sulla rete I diagrammi con il formato dei protocolli hanno il seguente formato: elemento 08162431 elemento
5
Protocolli del livello Interfaccia
6
ARP Indirizzi MAC sono di 48 bit. Indirizzi IP sono di 32 bit. Come codificare MAC in IP? ARP aiuta perché risolve IP in MAC Conversazione semplice a due-frame Domanda broadcast; risposta unicast Risposte salvate in cache per ridurre il numero di broadcast Cache implementa dei timeout perchè gli indirizzi possono cambiare (default 20 minuti) Address Resolution Protocol RFC 826
7
Formato di un messaggio ARP hardware typeprotocol type HA lengthPA lengthoperation sender MAC address (bytes 0-3) sender MAC address (bytes 4-5) sender IP address (bytes 0-1) sender IP address (bytes 2-3) target MAC address (bytes 0-1) target MAC address (bytes 2-5) target IP address (bytes 0-3) 08162431 operation: 1 = Richiesta ARP 2 = Risposta ARP
8
Operazione ARP 1.1.1.1 1.1.1.2 A B Chi ha IP 1.1.1.2? 00:11:22:33:44:55:66-1.1.1.2
9
Conversazione ARP Normal: B salva le informazioni ARP di A, pronte per la risposta Tutte le altre macchine sulla rete hanno info ARP di A 00:80:c8:f8:4a:51 ff:ff:ff:ff:ff:ff: arp who-has 192.168.99.254 tell 192.168.99.35 00:80:c8:f8:5c:73 00:80:c8:f8:4a:51: arp reply 192.168.99.254 is-at 00:80:c8:f8:5c:73 Gratuitous: reply inviato prima della richiesta Spesso indirizzato ad un router di upstream arp reply 192.168.99.35 is-at 0:80:c8:f8:4a:51 (0:80:c8:f8:4a:51) Unsolicited: broadcast dellhost che ha un dato IP; normalmente allavvio Ottimo per trovare IP duplicati
10
Problemi di sicurezza di ARP ARP spoofing Le risposte ARP sono onorate e salvate (sia normal sia gratuitous) È possibile avvelenare (poison) una cache ARP con informazione false (spoofed) per forzare la ridirezione I proxy ARP (router) lo fanno legittimamente ARP flooding (trasformare uno switch in un hub) Riempire la memoria di uno switch con mappe false Lo switch invierà tutto il traffico a tutte le porte non potendo più determinare dovè lhost destinatario
11
Attacco M an I n T he M iddle ARP 1.1.1.1 1.1.1.2 A B Chi ha IP 1.1.1.2? 1.1.1.2 è a 00:11:22:33:44:55:66 1.1.1.2 è a 99:88:77:66:55:44 1.1.1.1 è a 99:88:77:66:55:44
12
Difesa ARP Nessuna difesa precostruita nel protocollo Arpwatch: tool di controllo Deve essere fatto il mirror di tutto il traffico su una porta dello switch Uso di alcune funzioni degli switch Consentono solo un indirizzo MAC per porta Non è più possibile usare hub Confronta richieste e risposte con altre informazioni delle mappe 802.1x
13
Protocolli del livello rete
14
IP IP è un protocollo di rete molto scadente! Inaffidabile: consegna non garantita Invia messaggi ICMP alla sorgente se la consegna fallisce Non connesso: non viene mantenuto lo stato della connessione I datagram sono ruotati in modo indipendente uno dallaltro e non in ordine Al meglio: i pacchetti non sono eliminati in modo capriccioso Ha un solo lavoro: ruotare i datagram Si affida al livello di trasporto per le migliorie Gli host devono implementare ricerca e correzione di errore Internet Protocol RFC 791
15
Formato IP versiondatagram length Identification (ID)flagsfragment offset header checksum source IP address destination IP address options, se presenti (lunghezza variabile) 08162431 header length type of service time to livenext protocol (riempimento)
16
Formato IP Version: 4 TOS: differenzia i codici dei servizi (non cè garanzia che siano rispettati) Datagram length, ID, flags e fragment offset: servono per la frammentazione (esaminati in seguito) TTL: numero massimo di salti (router) attraversabili (decrementato dai router); di solito 32 next protocol: TCP: 6 UDP: 17 ICMP, 1 IPsec AH, 51 IPsec ESP, 50 header checksum: (16-bit) serve solo per controllare che il pacchetto non si sia danneggiato durante il trasporto options: restrizioni, record route, record timestamp, source-routing
17
Routing IP Due tipi di nodi di rete Host Non passano i datagram tra le diverse interfacce Router Passano i datagram tra le diverse interfacce Gli host possono diventare router installando e configurando software appropriato (es: RRAS)
18
Operazioni del routing IP 1.1.1.11.1.1.21.1.1.31.1.1.41.1.1.5 1.1.1.254 Rete 1.1.1.0/24 AB Datagram per 1.1.1.5 È per il mio IP? Datagram per 9.8.7.6 È per il mio IP? Guarda nelle tabelle di routing Decide come ruotare Decrementa il TTL
19
Algoritmo di routing di base Estrarre lindirizzo di destinazione D dal datagram Calcolare il prefisso di rete N IF N corrisponde ad una delle reti connesse direttamente Consegnare il messaggio al destinatario D sulla rete corretta ELSE IF la tabella di routing contiene una route specifica per D Spedire il datagram al successivo hop specificato nella tabella ELSE IF la tabella di routing contiene una route per N Spedire il datagram al successivo hop specificato nella tabella ELSE IF la tabella di routing contiene una default route Spedire il datagram al router specificato in tabella come default router ELSE dichiarare un errore di routing
20
Problemi di sicurezza di IP La maggior parte dovuti a spoofing di indirizzi Indirizzi non firmati e non criptati negli headers Sono indentificatori inaffidabili Spoofing utile per: Redirezione di connessioni (MITM) Source routing Attacchi denial-of-service (flooding) Attacchi che non necessitano di vedere la risposta (blind spoofing)
21
Checksum IP non è sicurezza Attaccante: Intercetta i datagram Falsifica (spoofing) lindirizzo Calcola il nuovo checksum É da intendersi solo per la determinazione di eventuali errori A calcola checksum e lo aggiunge allheader B calcola checksum e lo confronta con quello ricevuto Se non coincidono, B elimina il pacchetto (silente)
22
Source routing Chi spedisce il pacchetto può definire il percorso che lo stesso deve compiere attraverso la rete Il normale routing prevede che i router decidano il percorso il base allIP destinazione. Con source routing la sorgente" decide parte o tutto il percorso Strict source routing: percorso completamente definto dalla sorgente. Non usato in pratica Loose source record route (LSRR): la sorgente indica solo alcuni dei punti intermedi Source routing è usato per i seguenti scopi: Mappatura della rete: usato da tracert per trovare tutti i router di un percorsotra due punti della rete Troubleshooting: cercare di capire da un punto esterno (T) perchè i due end-node A e B non si parlano Performance: per forzare luso di un link alternativo e decongestionare i router principali Hacking: per esempio per raggiungere, da Internet, una macchina con indirizzo privato (es. 10.1.1.1) passando per una macchina che ha un indirizzo pubblico e uno privato della stessa rete
23
Source routing 10.0.0.254131.107.0.254 10.0.0.1 SA: DA: 10.0.0.1 SR: via 131.107.0.254 A B
24
Frammentazione IP Alcuni payload possono superare la dimensione della frame fisica (MTU) In questo caso IP frammenta i dati A destinazione IP ricompone i frammenti Operazione trasparente al livello trasporto Ogni frammento è un datagram separato Sono possibili route diverse per i frammenti Lordine di consegna non è garantito I frammenti possono essere persi In questo caso tutti i frammenti devono essere ritrasmessi (è IP, non TCP)
25
Formato IP Frammentazione versiondatagram length Identification (ID)flagsfragment offset header checksum source IP address destination IP address options, if any (lunghezza variabile) 08162431 ID: unico per ogni datagram; copiato in ogni frammento flag1: un bit per more fragments; nullo per lultimo frammento flag2: un bit per dont fragment; se 1, IP scarta il datagram e crea errore ICMP offset: dallinizio del datagram originale (multipli di 8-byte) length: solo di questo frammento header length type of service time to livenext protocol (riempimento)
26
Esempio di frammentazione Pacchetto originale 1 bit troppo lungo per essere inviato Deve essere frammentato IP header (20 bytes) TCP/UPD hdr (20 bytes) payload (1473 bytes)
27
Esempio di frammentazione IP header (20 bytes) next hdr (20 bytes) payload (1473 bytes) IP header (20 bytes) next hdr (20 bytes) payload (1472 bytes) IP header (20 bytes) payload (1 byte) Non cè header TCP o UDP nei frammenti successivi al 1°! Molti firewall consentono il passaggio dei pacchetti frammentati… problemi di sicurezza!
28
Difese IP Possibile bloccare quasi ogni attacco al confine Si devono applicare cinque regole Bloccare traffico in ingresso se SA è interno Bloccare traffico in uscita se SA non è interno Bloccare tutto in/out dove SA o DA sono in range definito in RFC1918 (IP privati) o APIPA Bloccare tutti i datagram con campo source-routed Bloccare tutti i datagram frammentati
29
ICMP Servizio di consegna di messaggi di IP Riporta errori Chiede e risponde a domande Incapsulato in IP I messaggi potrebbero dover essere ruotati Considerato parte del livello network I messaggi di errore contengono sempre i primi 64 bit del datagram che provoca lerrore Aiuta a determinare quale protocollo causa lerrore Internet Control Message Protocol RFC 792
30
Formato ICMP typechecksum content (Lunghezza variabile; dipende da tipo e codice) 08162431 type: tipo di messaggio code: tipo di sotto messaggio code
31
Messaggi ICMP TypeCodeDescriptionCodeDescriptionQueryError 00echo reply 3 destination unreachable 0network unreachable8source host isolated (obsolete) 1host unreachable9destination network administratively prohibited 2protocol unreachable10destination host administratively prohibited 3port unreachable11network unreachable for DiffServ 4fragmentation needed butdont- fragment bit is set 12host unreachable for DiffServ 5source route failed13communication administratively prohibited by filtering 6destination network unknown14host precedence violation 7destination host unknown15precedence cutoff in effect 40source quench 5 redirect 0for network2for DiffServ and network 1for host3for DiffServ and host 80echo request 90router advertisement 100router solicitation 11 time exceeded 0TTL = 0 during transit1TTL = 0 during reassembly 12 parameter problem 0IP header bad (catchall error)1required option missing 130timestamp request 140timestamp reply 150information request (obsolete) 160information reply (obsolete) 170address mask request 180address mask reply
32
ICMP echo typechecksum optional data (lunghezza variabile) 08162431 type: 8 = request 0 = reply code: 0 identifier, sequence number: per far corrispondere risposte e richieste data: ritornati allo speditore code identifiersequence number
33
ICMP Attacchi di riconoscimento Port unreachable = porta chiusa Host unreachable = host non esiste
34
ICMP Attacchi di ridirezione Avviso agli host dellesistenza di route migliori Difficile da implementare Può provenire solo dal default gateway dellhost attaccato Deve essere parte di una connessione esistente Non usabile per modifiche non richieste alla tabella di routing La re-direzione generalmente non è usata Meglio bloccare questi pacchetti Utile solo se ci sono più gateway per Internet
35
ICMP Attacchi DoS Attacchi Ping Indirizzi sorgenti forgiati appositamente possono creare scompiglio quando arrivano i reply Attacchi Unreachable Si possono usare messaggi forgiati per provocare il reset delle connessioni esistenti Tutto quello che serve per generare questi messaggi è netstat
36
DDoS a costellazione Variante di smurf Wake up! Ping! Reply! X
37
Scan con ICMP Le risposte ICMP, conformi alle specifiche, a certe query aiutano gli attaccanti ad apprendere comè fatta la rete Fare riferimento ai lavori di Ofir Arkin http://www.sys-security.com/html/projects/icmp.html http://www.sys-security.com/html/projects/X.html
38
Difense di ICMP Limitare i tipi e i codici ICMP ammessi sulla rete Evitare quelli poco usati e con alternative migliori Re-direzione Messaggi solicitations e advertise dei router Timestamp Non consentire ai messaggi unreachable di uscire dai border router Lassenza di reply costituirà un problema (non per voi)
39
Protocolli del livello di trasporto
40
UDP Orientato ai datagram TCP è orientato agli stream (connessioni) Nessuna affidabilità nel trasporto Non cè garanzia di consegna Alcune applicazioni lavorano meglio se il controllo di errore è a livello applicativo User Datagram Protocol RFC 768
41
UDP format source port data (lunghezza variabile) 08162431 checksum: calcolato sullintero pacchetto UDP packet (intestazione+dati) destination port lengthchecksum
42
UDP Responsabilità delle applicazioni Gestire ricerca e correzione di errore Capire la dimensione della sottostante MTU per evitare frammentazione dei pacchetti Correggere in caso di arrivo fuori ordine Tracciare lo stato della comunicazione tra pari
43
Problemi di sicurezza di UDP Lo streaming di media e il VoIP spesso usano porte dinamiche La mancanza di connessione rende difficile determinare i flussi
44
Attacco port loopback pingpong A B Spoof! da A :19/udp (chargen) a B :7/udp (echo)
45
Difese di UDP Usare proxy applicativi per incrementare la sicurezza Non esporre applicazioni non necessarie echo daytime chargen
46
TCP Orientato alla connessione, affidabile, servizio full-duplex di trasporto di stream Molte decisioni sono prese dal protocollo, non dalle applicazioni Dimensione dei segmenti = quantità di dati per pacchetto Conferma di ricezione dei pacchetti Ri-trasmissione di pacchetti non confermati Riordinamento dei pacchetti arrivati fuori ordine Controllo del flusso Transmission Control Protocol RFC 793
47
FormatoTCP source port 08162431 seq/ack numbers: traccia lo stato della sessione; indica a quale byte siamo flags: urgent | acknowledge | push | reset | synchronize | finish window size: controllo di flusso checksum: calcolato sullintero pacchetto TCP (intestazione e dati) destination port sequence number acknowledgement number header length reserved flags window size checksum urgent pointer options (if any) (variable length) data (variable length)
48
Creazione di una connessione TCP three-way handshake A invia un pacchetto a B con: SYN impostato Porta di destinazione ISN (initial sequence number) di A AB B invia un pacchetto ad A con: SYN impostato ISN (initial sequence number) di B ACK con SYN di A + 1 A invia un pacchetto a B con: ACK con SYN di B +1
49
Chiusura di una connessione TCP four-way close A invia un pacchetto a B con: FIN impostato Sequence number successivo di A AB B invia un pacchetto ad A con: ACK con SYN di A +1 B invia un pacchetto ad A con: FIN impostato Sequence number successivo di B A invia un pacchetto a B con: ACK con SYN di B +1
50
Reset della connessione TCP B invia un pacchetto ad A con: RST impostato Sequence number successivo di B ACK con SYN di A +1 Immediato go away Nessun Ack AB
51
Problemi di sicurezza di TCP SYN flooding Consuma memoria con molte connessioni half-open (in Windows ~6KB per connessione, mantenuti per 4 minuti) Cambiare voce di registry tcpsynattackprotect Session hijacking Pacchetti source-routed Sniffing Numero di sequenza predicibile
52
Predizione del sequence number SYN ISN A AB E SYN ISN B ACK A SYN ISN E source= A SYN ISN B ACK E Cosa? RST Messaggi arbitrari ACK B (predetto!) source= A
53
Difese del TCP Migliore generazione dei sequence number Random Crittografia Modifiche allimplementazione Non allocare risorse fino alla completa apertura Regole di router per bloccare pacchetti spooffati Attacchi TCP si basano quasi sempre su spoofing
54
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.