Protocolli della rete Internet & Attacchi

Documenti analoghi
Protocolli della rete Internet & Attacchi

Configurazione delle interfacce di rete

ICMP. (Internet Control Message Protocol) Cosa è l ICMP? Messaggi di ICMP. Applicazioni di ICMP: ULP, Ping, Traceroute, Path MTU discovery

Protocolli ARP e RARP

ICMP OSI. Internet Protocol Suite. Telnet FTP SMTP SNMP TCP e UDP NFS. Application XDR. Presentation. Session RPC. Transport.

Il protocollo IP A.A. 2006/2007. Alessandro Botticelli

Il protocollo IP A.A. 2005/2006. Walter Cerroni. Internet Protocol (IP) - RFC 791

Il livello trasporto: Introduzione e protocollo UDP

Internet Protocol Versione 4: aspetti generali

Protocollo IP. Pacchetto e comandi

Il protocollo IP (Internet Protocol)

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

TCP/IP. Principali caratteristiche

Strato di rete (parte 2) Autoconfigurazione Protocollo DHCP

Reti di comunicazione

TCP/IP un introduzione

Transmission Control Protocol

4b. Esercizi sul livello di Rete Inoltro in IP

IL PROTOCOLLO ICMP. La famiglia dei protocolli TCP/IP. Applicazioni ,ftp,telnet,www. IEEE 802-Ethernet-X25-Aloha ecc. Collegamento fisico

(parte 2) DHCP e NAT

No. Time Source Destination Protocol Info DHCP DHCP Discover - Transaction ID 0xec763e04

4 - Il livello di trasporto

Tecnologie di Sviluppo per il Web

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

ICMP. Internet Control Message Protocol. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it

Il livello Rete in Internet

Il firewall Packet filtering statico in architetture avanzate

Introduzione alla rete Internet

Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete

Formato del Datagram IP. Utilizzo del Type of Service. Formato del Datagram IP (I word) Prof. Vincenzo Auletta. Version HLEN. Type of Service (TOS)

L architettura di TCP/IP

Un caso estremo per gli algoritmi di routing: Reti Mobili Ad Hoc (MANET)

Il protocollo IP A.A. 2005/2006. Walter Cerroni

MODELLI ISO/OSI e TCP/IP

Reti di Calcolatori in Tecnologia IP

Corso di Reti di Telecomunicazioni. Giovanni Schembra. Trasmissione trame su canale broadcast

Indirizzamento IP. Politecnico di Milano Facoltà di Ingegneria dell Informazione

Formato del datagramma IP

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Tappe evolutive della rete Internet

Internet Control Message Protocol ICMP. Struttura di un Messaggio ICMP. Segnalazione degli Errori

Introduzione alle reti ed al TCP/IP

Reti di Telecomunicazioni R. Bolla, L. Caviglione, F. Davoli. Internet Protocol (IP) L indirizzamento IP ICMP. ARP e RARP DHCP NAT 32.

Reti di Calcolatori - Laboratorio. Lezione 8. Gennaro Oliva

TCP/IP : Livello 3 di rete ARP (Address Resolution Protocol)

Internet e protocollo TCP/IP

Programmazione in Rete

Reti di calcolatori. Lezione del 17 giugno 2004

PROGRAMMAZIONE MODULARE Disciplina: SISTEMI E RETI Classe: QUINTA A INF SERALE Indirizzo: INFORMATICA

La nascita di Internet

Reti di Calcolatori 1

Le Reti Informatiche

IL LIVELLO RETE IN INTERNET Protocollo IP

Il modello TCP/IP. Sommario

Software per l individuazione dei malfunzionamenti di rete

I protocolli UDP e TCP

Lezione n.9 LPR- Informatica Applicata

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

RETI TELEMATICHE Lucidi delle Lezioni Capitolo II

Reti di Calcolatori IL LIVELLO RETE

Internet (- working). Le basi.

Reti di Calcolatori. IL LIVELLO RETE IN INTERNET Protocollo IP

Reti di Calcolatori ed Internet. Reti di Calcolatori ed Internet. Reti di Calcolatori. Reti di Calcolatori. Architettura dei Servizi di Rete

Sistemi Distribuiti. Informatica B. Informatica B

Strumenti per analisi di rete. Una panoramica sui principali strumenti per la verifica del comportamento della rete su una workstation

Elementi di Informatica e Programmazione


Reti di Calcolatori ed Internet

Telematica di Base. IL Livello di Trasporto TCP

Corrispondenza tra OSI e TCP/IP. Il TCP/IP è un protocollo a 4 livelli, ecco l analogia con OSI:

Installazione e Configurazione del servizio DHCP. Orazio Battaglia

IP Internet Protocol

Sommario Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo TCP/IP Configurazione statica e dinamica del TCP/IP

Manuale Utente Impostazione router Tele-assistenza

Lo strato di applicazione in Internet

La sicurezza delle reti

La tecnologia Ethernet

SUBNETTING E SUPERNETTING

Standard: OSi vs TCP/IP. Il livello di trasporto. TCP e UDP. TCP: Transmission Control Protocol. TCP: funzionalità

INDIRIZZI IP SUBNETTING

Il livello trasporto Protocolli TCP e UDP

L architettura di rete TCP/IP. 1

Protocolli di Comunicazione

Internet Protocol Versione 4: instradamento e routing. Aspetti di forwarding e routing del protocollo IPv4

TCP/IP: elemento unificante

IPv4 Internet Protocol Versione 4

Introduzione allo sniffing

ACCESS CONTROL LIST. ACCESS CONTROL LIST standard

Strumenti di sicurezza delle reti:

Reti e Protocolli rassegna (II)

Reti. insieme di computer (host) interconnessi. Token evita conflitti di trasmissione Rete più o meno affidabile

Sommario ... vi Sommario

Fondamenti di Internet e Reti. Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier

Livello Applicazione. Davide Quaglia. Motivazione

Caratteristica Reti basate su datagrammi Reti basate su circuito virtuale

Protocollo TCP/IP & Indirizzamento IP

Strumenti per analisi di rete. Una panoramica sui principali strumenti per la verifica del comportamento della rete su una workstation

Collegamento dati per accesso ad Internet. Informatica Generale (CdL in E&C), A.A Informatica Generale (CdL in E&C), A.A.

MODELLO TCP/IP LIVELLO 4 Trasporto. Il protocollo per il controllo della trasmissione. La gestione degli errori di trasmissione

Il protocollo TCP. Obiettivo. Procedura

Transcript:

Pattern Recognition and Applications Lab Protocolli della rete Internet & Attacchi Ing. Davide Ariu Dipartimento di Ingegneria Elettrica ed Elettronica Università di Cagliari, Italia Contenuti della lezione Networking Protocolli Internet: lo stack TCP/IP Link Layer & Indirizzamento Fisico. Livello Network: l Internet Protocol Livello di Trasporto: i protocolli TCP e UDP DHCP DNS Attacchi: Network Sniffng & Scanning Spoofing Attacchi ai livelli Link, Network, e Trasporto. SMURF Attack Denial of Service Attacchi ai livelli Link, Network, e Trasporto

Comunicazione fra Host: problemi fondamentali Le moderne applicazioni software sono spesso costruite per funzionare all interno di una architettura client-server. Gli esempi sono innumerevoli: Applicazioni cloud Browser internet Posta Elettronica Applicazioni Mobili Nella realizzazione della comunicazione fra i due terminali (Host), i problemi da risolvere sono i seguenti: Definire le modalità di accesso ad un canale trasmissivo Definire le modalità di consegna del dato fra i due terminali Definire le modalità di consegna del dato fra le applicazioni che prendono parte alla comunicazione (siano effettivamente un client e un server o 2 peers) Nel caso di scambio di contenuti testuali, definire una comune codifica dell informazione (e.g. ASCII, UNICODE, ISO-8859-X, MS-Windows-125X, etc.) La pila ISO/OSI Negli anni 70 venne prodotto un modello astratto utile a definire come il problema della comunicazione fra Host debba essere rappresentato: la pila ISO/OSI Scopo principale del modello è quello di scomporre il problema della comunicazione in sotto-problemi isolati nei vari livelli della pila Layer Protocol Data Unit Esempi Applicazione Presentazione Sessione Data HTTP, HTTPS, FTP, SMTP, SSH, TELNET, RPC, PAP Trasporto Segment TCP, UDP, Network Packet IPv4, IPv6, IPSEC, ICMP Data Link Frame IEEE 802.2, PPP Fisico Bit DSL, Ethernet Phy, IEEE 802.11

Lo stack TCP/IP - 1 E una implementazione concreta del modello ISO/OSI E organizzato su 4 livelli, su cui vanno a mapparsi i 7 livelli del modello ISO/OSI ISO/OSI Layer Protocol Data Unit Esempi Applicazione Presentazione Sessione Applicazione Data HTTP, HTTPS, FTP, SMTP, SSH, TELNET, RPC, PAP Trasporto Trasporto Segment TCP, UDP, Network Internet Packet IPv4 Data Link Fisico Link Frame IEEE 802.X Lo stack TCP/IP - 2 Link layer (detto anche Data-link Layer o Network Interface Layer): Ha l obiettivo di far diventare il canale fisico (e.g. un cavo di rame) un canale logico, ovvero un mezzo su cui i dispositivi possono affacciarsi per scambiare le informazioni Include la gestione dell HW e dell interfaccia da parte del SO Livello di rete (Network): Responsabile della gestione del traffico e della consegna dei dati Livello di Trasporto: Consente di stabilire un flusso di dati fra due host, consentendone la consegna all applicazione corretta Livello dell Applicazione: Consente di gestire le specificità di ogni applicazione (e.g. codifica dei dati) Consente di gestire le sessioni Applicazione Trasporto Network (Internet) Link

Lo stack TCP/IP 3 (incapsulamento) HTTP CLIENT HTTP protocol HTTP SERVER Applicazione Incapsulamento Deincapsulamento TCP IP TCP protocol IP protocol TCP IP Trasporto Network Ethernet driver Ethernet protocol Ethernet Ethernet driver Link Lo stack TCP/IP - 4 (incapsulamento) In trasmissione, il dato generato dall applicazione attraversa lo stack dall alto verso il basso Ciascuno dei livelli dello stack aggiunge al dato di partenza delle informazioni (header) necessarie al funzionamento del livello stesso Mail Applicazione Trasporto Internet Link In ricezione, il dato ricevuto dall Host destinazione attraversa lo stack dal basso verso l alto Il dato viene progressivamente spogliato delle informazioni aggiunte da ciascuno dei livelli dello stack, fino ad essere recapitato all applicazione destinataria del dato stesso Mail Applicazione Trasporto Internet Link

Indirizzamento: logico vs. fisico Lo stack TCP/IP prevede due differenti livelli di indirizzamento: Indirizzamento Fisico Link Layer Indirizzamento Logico Internet Layer Link-layer Address: Utilizzato per indirizzare il traffico all interno di una stessa rete MAC Address, 48 bit (hard-coded) Internet-layer Address: Utilizzato per indirizzare il traffico fra reti distinte (non per forza geograficamente lontane) IP Adddress, 32 bit (IPv4), configurato (in maniera statica o dinamica) sul sistema operativo del dispositivo IPv6 (128 bit), offre uno spazio di indirizzamento di dimensioni >> rispetto a IPv4 e dunque una potenziale associazione uno-a-uno fra indirizzo IP e dispositivo Link Layer Indirizzamento Hardware dest (48-bits) src (48-bits) type (16-bits) data (46-1500B) CRC (32-bits) 48-bit vengono utilizzati per l indirizzamento: I primi 24 bit identificano il produttore I secondi 24 identificano il dispositivo 0800 IP Datagram 0806 ARP request/reply 8035 RARP request/reply MTU (Maximum Transmission Unit): 1500 bytes

Link Layer - Strumenti Wireshark (W/U) Cattura del traffico di rete ipconfig / ifconfig (W/U) Mostra configurazione interfaccia Mostra MAC address dell interfaccia Consente di modificare il MAC Address dell interfaccia 6 coppie da 8 bit ciascuna sudo ifconfig en0 ether 01:23:45:67:89:ab iwconfig (Unix only) Configura un interfaccia wireless Perché è necessario l indirizzamento logico? Il Link layer fornisce un meccanismo di indirizzamento dei dispositivi (MAC Address), che identifica ciascun dispositivo in maniera univoca Questo indirizzo mi è sufficiente per recapitare il traffico da una macchina sorgente ad una macchina destinazione da una parte all altra del pianeta? Se mi limitassi a guardare all univocità dell indirizzo potrei pensare di si ma sarebbe un meccanismo molto poco flessibile: Ogni host dovrebbe comunicare a tutta la rete ogni spostamento (anche piccolo, es. casa-lavoro) per poter essere sempre raggiungibile Bisognerebbe informare tutta la rete ogni qual volta un dispositivo viene sostituito da un altro (es. un vecchio server viene sostituito da uno nuovo) Per ottenere la giusta flessibilità è necessario un meccanismo di indirizzamento logico che sia separato dall indirizzamento fisico

Livello di rete (Network o Internet) Il livello 3 offre le funzionalità di indirizzamento logico dei dispositivi connessi alla rete Consente di slegare il ruolo * che uno o più Host ricoprono all interno della rete dal suo indirizzo fisico * solitamente a ruoli logici differenti vengono assegnati IP appartenenti a range diversi Nello stack TCP/IP il protocollo che opera a livello 3 è il protocollo IP (Internet Protocol) E il protocollo su cui poggia l intera rete INTERNET Definito nella RFC 791 (IPv4) Coadiuvato dai protocolli ARP, RARP, ICMP Il protocollo IP: È un protocollo connectionless Unreliable best-effort datagram: Consegna (delivery), integrità, ordinamento, non-duplication NON SONO GARANTITE Soggetto a dropping, tampering, replaying, spoofing Internet Protocol (v4) - Header 4-bit version 4-bit Header len. 8-bit TTL 8-bit Type of Service 16-bit identification 8-bit protocol 32-bit source IP address 16-bit total length (in bytes) 3-bit flags 13-bit fragment offset 16-bit Header Checksum 20 bytes 32-bit destination IP address options (if any) data (if any)

Internet Protocol (v4) Riepilogo Header - 1 Version (4 bits) Valore corrente = 4 (IPv4) Header Length (4 bits) Numero di words da 32 bit nell header, incluse le opzioni Type (8 bits) Priority (3 bits), QoS (4 bits), Unused (1 bit) Total Length (16 bits) Lunghezza totale, header + dati Identification (16 bits) +1 incrementer Flags (3 bits) & Offsets (13 bits) Utilizzati per gestire la frammentazione dei dati Internet Protocol (v4) Riepilogo Header - 2 Time To Live (8 bits) Indica il numero massimo di host che un pacchetto può attraversare prima di giungere a destinazione Protocol (8 bits) Specifica il tipo di protocollo incapsulato nel datagram (TCP, UDP) Header checksum (16 bits) Calcolato su tutto l Header IP Addresses (32 + 32 bits) Specificano sorgente e destinazione

Internet Protocol (v4) IP address 4-bit version 4-bit Header len. 8-bit TTL 8-bit Type of Service 16-bit identification 8-bit protocol 3-bit flags 32-bit source IP address 16-bit total length (in bytes) 13-bit fragment offset 16-bit Header Checksum 20 bytes 32-bit destination IP address I 32-bit di indirizzo sono divisi in 4 byte: E.g. 151.56.79.237 (notazione decimale puntata) Indirizzi Pubblici vs. Privati Pubblici - Raggiungibili tramite rete Internet (univoci) Privati Raggiungibili solo all interno di una rete privata Range Indirizzi Privati Da Class A range 10.0.0.0 10.255.255.255 Class B range 172.16.0.0 172.31.255.255 Class C range 192.168.0.0 192.168.255.255 A Internet Protocol (v4) Protocol Version 4-bit version 4-bit Header len. 8-bit TTL 8-bit Type of Service 16-bit identification 8-bit protocol 3-bit flags 32-bit source IP address 16-bit total length (in bytes) 13-bit fragment offset 16-bit Header Checksum 20 bytes 32-bit destination IP address Versione Protocollo IP Contiene il valore 4

Internet Protocol (v4) Time To Live 4-bit version 4-bit Header len. 8-bit TTL 8-bit Type of Service 16-bit identification 8-bit protocol 3-bit flags 32-bit source IP address 16-bit total length (in bytes) 13-bit fragment offset 16-bit Header Checksum 20 bytes 32-bit destination IP address Limita il tempo di vita dei pacchetti, stabilendo quale è il numero massimo di hop (router) che un pacchetto può attraversare: Viene solitamente inizializzato (dal mittente) ai valori 32 o 64 Viene decrementato di 1 ad ogni hop attraversato Il pacchetto viene scartato quando il TTL raggiunge il valore 0 Internet Protocol (v4) Protocol 4-bit version 4-bit Header len. 8-bit TTL 8-bit Type of Service 16-bit identification 8-bit protocol 3-bit flags 32-bit source IP address 16-bit total length (in bytes) 13-bit fragment offset 16-bit Header Checksum 20 bytes 32-bit destination IP address Specifica quale è il protocollo che ha generato il pacchetto IP E.g. TCP (0x06), UDP (0x11),, ICMP (0x01) Lista completa numeri di protocollo: http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml

Internet Protocol (v4) - Fragmentation 4-bit version 4-bit Header len. 8-bit TTL 8-bit Type of Service 16-bit identification 8-bit protocol 3-bit flags 32-bit source IP address 16-bit total length (in bytes) 13-bit fragment offset 16-bit Header Checksum 20 bytes 32-bit destination IP address Le reti Ethernet hanno una MTU (Maximum Transfer Unit) di 1500B Se un pacchetto IP eccede questa dimensione deve essere frammentato I 3 bit di flag consentono di segnalare: Se il pacchetto può essere frammentato o meno Se esistono ulteriori frammenti oltre al corrente L offset (espresso in byte) consente di ri-assemblare il pacchetto a destinazione IP Fragmentation Un esempio Esempio 4000 byte datagram (3980 byte dati) MTU = 1500 byte Length = 4000 Fragflag = 0 Offset = 0 Length = 1500 Fragflag = 1 Offset = 0 Length = 1500 Fragflag = 1 Offset = 185 1480 byte dati Length = 1040 Fragflag = 0 Offset = 370 Header Data Header Data Offset = 2960/8 Header Data Data

IP Fragmentation Attacks Evasion Sfrutta il meccanismo dell IP fragmentation per suddividere un pacchetto di attacco in 2 o più pacchetti consecutivi Il datagram originario viene smontato in una sequenza di pacchetti consecutivi Ciascuno di questi pacchetti contiene Una parte dell attacco Dei dati random I singoli pacchetti di per se non sono pericolosi né vengono riconosciuti come tali dai dispositivi di filtraggio (e.g. firewall o network intrusion detection system) che non effettuano la ricostruzione del pacchetto IP I dispositivi che operano in full-proxy mode non sono suscettibili a questo tipo di attacco A t Attack t a c k A t t a c k IP Fragmentation Attacks Overlapping fragments Length = 4000 Fragflag = 0 Offset = 0 Length = 1500 Fragflag = 1 Offset = 0 Length = 1500 Fragflag = 1 Offset = 185 Length = 1040 Fragflag = 0 Offset = 370

IP Fragmentation Attacks Overlapping fragments Length = 4000 Fragflag = 0 Offset = 0 Length = 1500 Fragflag = 1 Offset = 0 Length = 1500 Fragflag = 1 Offset = 100 Length = 1040 Fragflag = 0 Offset = 200 Header Attack Data Random Data Header Attack Data Random Data Header Attack Data Random Data Attack Internet Protocol (v4) - Indirizzamento L indirizzo IP (32 bit, rappresentati in notazione decimale puntata) contiene in realtà 2 differenti informazioni: Indirizzo della rete, individuato dai primi N bit Indirizzo dell Host, individuato dai restanti 32-N bit, che individuano una specifica macchina all interno della rete La subnet mask consente di individuare gli N bit che costituiscono l indirizzo di rete Anche la subnet-mask viene espressa usando la notazione decimale puntata Es. 11111111 11111111 10000000 00000000 = 255.255.128.0 In alternativa si può usare la notazione /N (/17 nell esempio) I bit che indirizzano la rete e l host devono essere sempre contigui E.g. 11111111 11111111 10101010 00000000 = 255.255.170.0 Non rappresenta una subnet valida

Internet Protocol (v4) - Indirizzamento Esempio IP: 192.168.1.100 Subnet Mask: 255.255.255.0 (/24) Indirizzo Rete: 192.168.1.0 Indirizzo Host:.100 Indirizzo Broadcast: 192.168.1.255 Network Host 192 168 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 255 255 1 100 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 255 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 Internet Protocol (v4) - Indirizzamento Non tutti gli indirizzi IP sono raggiungibili su Internet Solo gli indirizzi Pubblici sono raggiungibili su Internet (in gergo, vengono talvolta definiti come indirizzi routabili ) Gli indirizzi che non sono raggiungibili su Internet vengono detti privati Gli indirizzi IP possono assumere valori da 0.0.0.0 a 255.255.255.255 Class Bit iniziali 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 Bit rete Bit Host Indirizzo Iniziale Indirizzo finale A 0 8 24 0.0.0.0 127.255.255.255 B 10 16 16 128.0.0.0 191.255.255.255 C 110 24 8 192.0.0.0 223.255.255.255 D (multicast) 1110 Non definito Non definito 224.0.0.0 239.255.255.255 E (riservata) 1111 Non definito Non definito 240.0.0.0 255.255.255.255

Iniziamo a unire i pezzi Come realizzo una comunicazione fra macchine connesse all interno di una rete locale? Ho due macchine (Host A e Host B), collegate fra loro tramite uno Switch Ethernet (rete locale). Le due macchine devono poter comunicare. La scheda di rete di ciascuna delle due macchine avrà il suo MAC Address a 48 bit Ciascuna macchina conosce ovviamente il proprio MAC Address ma non conosce quello dell altra macchina Ciascuna macchina ha un suo indirizzo IP Host A 192.168.1.1 Host B 192.168.1.2 Gli Switch sono dispositivi Layer 2 che non sono in grado di gestire l informazione sull indirizzo IP Per poter realizzare la comunicazione: L IP datagram deve venire incapsulato in un frame Ethernet Devo disporre di un meccanismo che mi consenta di gestire la corrispondenza fra indirizzi IP e MAC address. IP Header IP Data Frame Header Frame Data Il protocollo ARP (Address Resolution Protocol) Il protocollo ARP (0x0806) viene utilizzato per ottenere il MAC address a partire dall indirizzo IP L Host A (IP 192.168.1.1) vuole comunicare con l Host B (IP 192.168.1.2) A effettua una richiesta ARP (Ethernet broadcast) di questo tipo: arp who-has 192.168.1.2 tell 192.168.1.1 Gli indirizzi IP possono essere sostituiti dagli hostname Il sistema operativo mantiene una cache contenente dei MAC address noti (può essere visualizzata/modificata con il comando arp) Digitare sul terminale arp -a Il protocollo RARP (0x0835) è il protocollo antagonista al protocollo ARP (ottiene l indirizzo IP dal MAC address)

Quindi Se Host A vuole trasmettere dei dati a Host B, conoscendone ovviamente l indirizzo IP (e nell ipotesi che tutte le cache ARP siano vuote): Host A invia in broadcast una richiesta per 192.168.1.2 (Host B) Broadcast a livello Link, perché non conosco il MAC address di Host B Who has 192.168.1.2 tell 192.168.1.1 MAC-A viene inserito nella ARP cache di Host-B Host-B invia una risposta ARP a Host-A The MAC address of 192.168.1.2 is ab:cd:ef:12:34:56 MAC-B viene inserito nella ARP cache di Host-A A invia un IP datagram a Host-B Usando il MAC Address appena ottenuto E l IP 192.168.1.1 Invio di un pacchetto IP

Invio di un pacchetto IP Invio di un pacchetto IP

Invio di un pacchetto IP Invio di un pacchetto IP

Precisazione su Invio di un pacchetto IP Quanto visto finora circa l invio di dati da una macchina A ad una macchina B vale soltanto nel caso di macchine che si trovano sulla stessa rete L indirizzo di rete deve essere il medesimo per le due macchine Se le macchine si trovano sulla stessa rete, la consegna del traffico da una macchina all altra avviene di fatto solamente utilizzando le informazioni di livello 2 (MAC Address) Le informazioni di livello 3 (indirizzo IP) vengono principalmente utilizzate dall utente (o dagli applicativi) che non possono conoscere direttamente i MAC Address delle macchine Il protocollo ARP si occupa di tradurre le informazioni sull indirizzo IP in informazioni sul MAC Address Se le macchine si trovano su reti differenti ho bisogno di un dispositivo Layer 3 (Router o Switch Layer 3) Invio di un pacchetto IP Esempio 1 Host A IP Address: 192.167.1.16 Subnet Mask: 255.255.255.0 Gateway: 192.167.1.1 Host B IP Address: 192.167.1.77 Subnet Mask: 255.255.255.0 Host A e Host B si trovano sulla stessa rete? Host A può raggiungere Host B tramite direct delivery? Host A ottiene l indirizzo di rete di Host B e lo confronta con il proprio Fa l AND della propria Subnet Mask con l IP di Host B Sia Host A che Host B si trovano sulla rete 192.167.1.0, quindi possono raggiungersi tramite direct delivery

Invio di un pacchetto IP Esempio 2 Host A IP Address: 212.167.1.16 Subnet Mask: 255.252.0.0 Host B IP Address: 212.164.128.61 Subnet Mask: 255.252.0.0 Host A e Host B si trovano sulla stessa rete? Host A può raggiungere Host B tramite direct delivery? Host A ottiene l indirizzo di rete di Host B e lo confronta con il proprio Fa l AND della propria Subnet Mask con l IP di Host B Sia Host A che Host B si trovano sulla rete 212.164.0.0, quindi possono raggiungersi tramite direct delivery Dispositivi di Rete Lo SWITCH opera a livello 2 dello stack ISO OSI Prende le decisioni utilizzando il MAC Address Si basa su una MAC address table nella quale ad ogni porta dello switch è associata una lista di tutti i MAC Address raggiungibili attraverso quella porta In condizioni normali il traffico viene inoltrato solamente sulla porta su cui è attestato il MAC Address di destinazione Porta 1 Porta 2 Porta 3 aa:aa:aa:bb:bb:bb 11:22:33:44:55:66 11:aa:22:bb:33:cc cc:cc:cc:dd:dd:dd 44:dd:55:ee:66:aa 77:bb:88:cc:99:00 Il ROUTER opera a livello 3 dello stack ISO OSI Prende le decisioni utilizzando l Indirizzo IP Si occupa di instradare il traffico fra reti differenti Con il comando traceroute è possibile vedere quali router vengono attraversati nel percorso tra 2 host

Attacchi contro gli Switch MAC Address Flooding C è un limite al numero di MAC Address che possono essere memorizzati nella MAC Address di uno switch Su uno Switch di medie caratteristiche questo numero è nell ordine dei 5-6000 MAC Address Una volta raggiunto questo limite, lo Switch non potendo memorizzare ulteriori MAC address inizia a inviare tutto il traffico su tutte le porte per garantire che comunque l Host destinatario della comunicazione sia raggiunto dal traffico Di fatto, il comportamento dello Switch degenera e lo Switch si comporta come i vecchi Hub (che erano dei semplici ripetitori di segnale senza alcuna intelligenza) Posso indurre questo comportamento facendo pervenire allo Switch traffico da MAC address spoofati Contromisure Disattivo la modalità di learning sulle porte una volta che la rete è a regime Spengo le porte non utilizzate https://www.youtube.com/watch?v=jxnrxb9yn9k Spoofing To spoof Imitare Vanno sotto il nome di spoofing tutti quegli attacchi in cui l attaccante fornisce un identità diversa da quella reale, impersonando di fatto un altro utente (o dispositivo) IP Address spoofing Può essere utilizzato per avere accesso ad un sistema MAC Address Spoofing Man in the middle attacks DNS Spoofing Consente di dirottare il traffico Spoofing Biometrie Può essere utilizzato per avere accesso ad un sistema

MAC Address Spoofing/ARP Poisoning Man in the middle

ICMP Internet Control Message Protocol E il protocollo utilizzato per scambiare messaggi di controllo/ errore in relazione alla consegna dei datagram IP I messaggi ICMP vengono incapsulati all interno dei datagram IP I messaggi ICMP possono essere di 3 tipi: Richieste (Requests) Risposte (Replies) Messaggi di Errore Messaggi ICMP Vengono trasmessi all interno di datagram IP IP Datagram IP Header ICMP Message 8-bit type 8-bit code 16-bit checksum (contents depend on type and code)

Messaggi ICMP type code Description Query Error 0 0 Echo reply (ping reply) * 3 Destination unreachable * 0 Network unreachable * 1 Host unreachable * 3 Port unreachable * 8 0 Echo request * La lista completa dei messaggi ICMP è disponibile: http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml Capitolo 6 del libro TCP/IP Illustrated Vol. 1 W. Richard Stevens Messaggi Destination Unreachable Sono i messaggi che il gateway (il router) invia in risposta ad una echo requests qualora la destinazione del ping non sia raggiungibile Sono messaggi di tipo 3 (codici 0-15) Alcuni esempi: 0 Network Unreachable 1 Host Unreachable 2 Protocol Unreachable 3 Port Unreachable 4 Fragmentation needed but don t fragment bit set 6 Destination network unknown... La lista completa dei messaggi ICMP è disponibile: http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml Capitolo 6 del libro TCP/IP Illustrated Vol. 1 W. Richard Stevens

Spoofing dei messaggi Destination Unreachable Questo tipo di attacco consente di tagliare fuori dalla rete il/gli host vittima dell attacco Sono di conseguenza degli attacchi Denial of Service Se l Host A riceve un messaggio Destination Unreachable mentre sta inviando dei dati all Host B taglia immediatamente la connessione All applicazione viene restituito un messaggio di errore L attacco può essere portato saturando la rete di messaggi Destination Unreachable relativamente all Host B (vittima), così che nessuna macchina possa iniziare una connessione verso l Host B. Attacchi ICMP Echo Il protocollo ICMP può evidentemente essere utilizzato per acquisire informazioni sulla rete: I datagram ICMP echo vengono inviati a tutti gli host sulla rete L Attaccante può collezionare le risposte degli host determinando in questo modo quali sono attivi e quali no Questa attività è una attività di raccolta delle informazioni ( information gathering ) che è funzionale alla preparazione dell attacco, dato che consente di individuare tutti i possibili obiettivi all interno della rete Una volta che ho determinato quali sono tutte le macchine attive, posso passare ad una fase di studio delle singole macchine, per determinarne caratteristiche e vulnerabilità

Traceroute Traceroute è un utility che consente di determinare il percorso verso una certa destinazione (sia esso un singolo Host o un intera rete) sollecitando l invio da parte dei router di messaggi ICMP Time Exceeded Traceroute: Invia una serie di datagram IP verso la destinazione Sui datagram viene impostato un basso valore del TTL Si parte dal valore 1, che viene progressivamente incrementato Ogni qual volta il pacchetto viene scartato dal router (Hop) intermedio, la sorgente riceve indietro un messaggio ICMP time exceeded E uno strumento utile per il mapping della rete Utile per acquisire informazioni sulla rete, sia in preparazione di un attacco che con finalità di amministrazione SMURF Attack Basato sullo spoofing dell indirizzo IP della vittima: L attaccante effettua il ping verso l indirizzo di broadcast della rete, utilizzando come indirizzo sorgente del ping l indirizzo IP della macchina vittima Dal momento che il ping è diretto verso l indirizzo di broadcast della rete, tutte le macchine presenti e attive sulla rete risponderanno al ping con delle echo replies Le echo replies saranno indirizzate verso l indirizzo IP della macchina vittima, che l attaccante ha inserito come sorgente del ping La macchina vittima riceverà una ingente mole di traffico, tanto più grande quanto maggiore è la dimensione della rete sulla quale ho effettuato il ping L attacco produce come conseguenze un Denial of Service, dato che è finalizzato a saturare la banda e le risorse HW della macchina vittima. E.g. Rete: 192.168.1.0/24 IP Vittima: 192.168.1.1 L attaccante invia delle echo requests verso 192.168.1.255 utilizzando come indirizzo sorgente 192.168.1.1 Le echo requests vengono generate manualmente i pacchetti con l indirizzo IP spoofato

Denial of Service Ricadono in questa categoria tutti gli attacchi il cui scopo è: Interrompere un servizio Impedire l accesso ad una risorsa E.g. accesso ad un server web, utilizzo di una rete L attacco viene portato sovraccaricando l obiettivo di un attacco in modo da consumarne tutte le risorse: Banda E.g. Flooding Attacks Memoria & CPU E.g. SYN Flooding Attack DDOS Distributed Denial of Service L attacco viene portato utilizzando molte macchine contemporaneamente DDos - Distributed Denial of Service

2 Gennaio 2016 BBC DDos DDOS Conseguenze

Reconneissance Attacks Non costituiscono degli attacchi veri e propri (nel senso che non producono direttamente danni) Consentono però di acquisire informazioni sulla vittima (una macchina, una rete, un organizzazione) che sarà poi vittima dell attacco E dunque un attività di studio della vittima propedeutica alla realizzazione dell attacco vero e proprio. Consente di acquisire le informazioni necessarie alla costruzione dell attacco Si sfruttano di solito sorgenti di informazioni aperte (OSINT Open Source Intelligence) Internet queries DNS queries Ping sweeps Port sweeps Lo stesso tipo di attività viene svolta quando, con finalità preventive, si effettua una verifica delle vulnerabilità del sistema Protocolli di Trasporto: TCP & UDP I protocolli di livello trasporto si occupano di recapitare i dati alle applicazioni Ad ogni applicazione è associata una porta I due protocolli di trasporto utlizzati nello stack TCP/IP sono TCP e UDP TCP Connection Oriented Affidabile Applicazioni in cui quali è importante l AFFIDABILITA nella consegna dei dati (es. SMTP, POP, HTTP) UDP Connectionless Best effort Applicazioni in cui è fondamentale l EFFICIENZA nella consegna dei dati (es. DNS, Skype, Streaming)

Port Addressing Port Number Range Da 0 a 1023 Da 1023 a 49151 Da 49152 a 65535 Port Group Well Known (Contact) Ports Registered Ports Private and/or Dynamic Ports La coppiaporta-indirizzo IP prende il nome di Socket Port Addressing La coppia Porta-Indirizzo IP prende il nome di Socket Una connessione TCP fra due Host A e B è completamente identificata dalla Socket Pair, ovvero dalla quadrupla: Socket Pair Indirizzo IP Host A Indirizzo IP Host B Porta Host A Porta Host B Con il comando netstat è possibile visualizzare un elenco delle connessioni attive netstat a p tcp netstat a grep ESTABLISHED

TCP - Header 16-bit source port number 16-bit dest. port number 32-bit sequence number 32-bit acknowledgement number 4-bit header lenght reserved (6 bits) Flags (6 bits) URG, ACK, PSH, PST, SYN, FIN 16-bit window size 16-bit TCP checksum 16-bit urgent pointer options (if any) data (if any) L Header TCP è di 20 byte totali UDP - Header 16-bit source port number 16-bit UDP Lenght 16-bit dest. port number 16-bit UDP Checksum data (if any) L Header TCP è di 8 byte totali

TCP Segmentation & Reassembly E possibile che un applicazione debba inviare/ricevere grossi volumi di dati (MB/GB) Non sarebbe pratico inviare tutti questi dati attraverso un unico invio Necessità di ritrasmettere tutto in caso di errore Occupazione del canale per lungo periodo Necessità di avere in ricezione buffer di dimensioni elevate Il protocollo TCP si occupa di dividere i dati da inviare segmenti che verranno inviati separatamente e ri-assemblati a destinazione. TCP Segmentation & Reassembly I segmenti vengono inviati separatamente sul canale Il protocollo di trasporto TCP si occupa di: Riordinarli utilizzando il sequence number Garantire l affidabilità della comunicazione attraverso il meccanismo di acknowledgment Gestire l invio dei dati tenendo conto delle capacità della rete e delle macchine coinvolte nella comunicazione

TCP Connection Establishment Three-way Handshake TCP Connection Termination

TCP - Problemi Abbiamo visto che il primo passo verso la realizzazione di una connessione TCP è l invio da parte dell Host che inizia la connessione di un pacchetto con TCP SYN flag impostato a 1 In seguito a questo sono necessari altri due passaggi (SYN + ACK da parte del ricevente e ulteriore acknowledgment da parte dell Host che ha iniziato la connessione) Tuttavia, già al termine del primo passaggio, l Host ricevente ha creato un processo per gestire la richiesta, allocando a questo le necessarie risorse (memoria + CPU) Posso dunque esaurire le risorse del server semplicemente inviando in breve tempo numerose richieste di avvio di una connessione TCP (TCP SYN Flooding) Attacco tipico contro un webserver Il server può difendersi chiudendo arbitrariamente le connessioni che non si finalizzano entro un determinato intervallo di tempo Può determinare difficoltà di collegamento qualora la rete fosse congestionata TCP - Problemi Normalmente, una connessione TCP si chiude con i due endpoints che si scambiano un flag FIN Al quale fa comunque seguito un ACK E però possibile che un endpoint decida di chiudere arbitrariamente inviando un pacchetto in cui mette a 1 il bit RST (es. il processo va in crash) Unilaterale Effetto immediato (no acknowledgment) Possibile solo se il peer conosce l esatto sequence number

TCP - Problemi 16-bit source port number 16-bit dest. port number 32-bit sequence number 32-bit acknowledgement number 4-bit header lenght reserved (6 bits) FLAGS (RST) 16-bit window size 16-bit TCP checksum 16-bit urgent pointer options (if any) data (if any) TCP Injection Normalmente, una connessione TCP si chiude con i due endpoints che si scambiano un flag FIN Al quale fa comunque seguito un ACK E però possibile che un endpoint decida di chiudere arbitrariamente inviando un pacchetto in cui mette a 1 il bit RST (es. il processo va in crash) Unilaterale Effetto immediato (no acknowledgment) Possibile solo se il peer conosce l esatto sequence number Se si conoscono numeri di porta e sequence number è possibile interrompere abritrariamente una sessione TCP.. Ma non solo

TCP Disruption l attaccante TCPs Rate Management Unless theres loss, TCP doubles data in flight every round-trip. All TCPs expected to obey (fairness). Mechanism: for each arriving ack for new data, increase allowed data by 1 maximum-sized packet E.g., suppose maximum-sized packet = 100 bytes Time 83

Protocol Cheating How can the destination (receiver) get data to come to them faster than normally allowed? ACK-Splitting: each ack, even though partial, increases allowed data by one maximum-sized packet Time How do we defend against this? Change rule to require full ack for all data sent in a packet 84 Protocol Cheating How can the destination (receiver) still get data to come to them faster than normally allowed? Opportunistic acking: acknowledge data not yet seen! Time How do we defend against this? 85

Keeping Receivers Honest Approach #1: if you receive an ack for data you havent sent, kill the connection Works only if receiver acks too far ahead Approach #2: follow the round trip time (RTT) and if ack arrives too quickly, kill the connection Flaky: RTT can vary a lot, so you might kill innocent connections Approach #3: make the receiver prove they received the data Note: a protocol change Add a nonce (random marker) & require receiver to include it in ack. Kill connections w/ incorrect nonces o (nonce could be function computed over payload, so sender doesnt explicitly transmit, only implicitly) 86 UDP - Problemi UDP è basato sul protocollo IP Sulle reti IP I pacchetti: Possono venire scartati Possono Arrivave corrotti (il checksum si applica solo agli header) Possono venire trasmessi non in sequenza ordinata Possono essere soggetti a duplicazione UDP non risolve questi problemi poichè I datagram: Potrebbero non arrivare Potrebbero arrivare corrotti (il checksum UDP è opzionale) Possono arrivare non in sequenza ordinata Possono essere soggetti a duplicazione

24 25

Dynamic Host Configuration Protocol new client DHCP server offer message includes IP address, DNS server, gateway router, and how long client can have these (lease time) 92 Dynamic Host Configuration Protocol new client Threats? DHCP server offer message includes IP address, DNS server, gateway router, and how long client can have these (lease time) 93

Dynamic Host Configuration Protocol new client Attacker on same subnet can hear new hosts DHCP request DHCP server offer message includes IP address, DNS server, gateway router, and how long client can have these (lease time) 94 Dynamic Host Configuration Protocol new client DHCP server offer message includes IP address, DNS server, gateway router, and how long client can have these (lease time) Attacker can race the actual server; if they win, replace DNS server and/or gateway router 95

DHCP Threats Substitute a fake DNS server Redirect any of a hosts lookups to a machine of attackers choice Substitute a fake gateway Intercept all of a hosts off-subnet traffic o (even if not preceded by a DNS lookup) Relay contents back and forth between host and remote server o Modify however attacker chooses An invisible Man In The Middle (MITM) Victim host has no way of knowing its happening o(cant necessarily alarm on peculiarity of receiving multiple DHCP replies, since that can happen benignly) How can we fix this? Hard 96 Domain Name System Quando dobbiamo accedere ad una macchina il più delle volte digitiamo il nome della macchina Es. www.tiscali.it Per noi è sicuramente più semplice ricordare una stringa piuttosto che l indirizzo IP 213.205.32.10 Ma per funzionare, le macchine hanno bisogno dell indirizzo IP Il Domain Name System è un servizio (porta 53, TCP-UDP) attraverso il quale è possibile risolvere un hostname in un indirizzo IP

Domain Name System Principi di Design Slide credit: Ing. Guido Mureddu amazon.com 54.239.26.128 google.co.uk 193.206.135.49 apple.de 17.172.224.31 Response codes Code Response 0 Set of IP addresses 1 Format error 2 Server failure 3 Name error 4 Not implemented 5 Refused DNS Server NXDomain AUTH apple.de Successful domain resolution Distributed Hierarchical Domain Name System

Domain Name System I record in un server DNS possono essere di diverso tipo: A IPv4 Address Record (32-bit) AAAA IPv6 Address Record (128 bit) CNAME Canonical Name (Alias) MX Mail Exchange Record NS Name Server Le utility dig e nslookup consentono di interrogare i server DNS Esercizio: utilizzando nslookup e dig si determino i nomi di server web, mail e dns del dominio unica.it. Domain Name System In realtà la macchina: Va a vedere se esiste una entry in /etc/hosts (esiste un file host.txt anche in Windows) Successivamente va a vedere nella propria cache DNS Windows: ipconfig /displaydns /flushdns Linux: $ sudo /etc/init.d/nscd restart Altrimenti contatta il server DNS del provider I server DNS dei provider di fatto mantengono una cache di ricerche fatte in precedenza

Domain Name System Content Delivery Networks Slide credit: Ing. Guido Mureddu Geographic distribution of CDN server nodes google.com 82.85.147.35 82.85.147.38 82.85.147.20 82.85.147.46 82.85.147.48 82.85.147.37 82.85.147.31 82.85.147.26 82.85.147.42 82.85.147.49 DNS Server CDNs are designed to find an optimal node for each request. Possible criteria: Geographic Network topology and structure Service status (ping, current load) d18hpzm1x350m8.cloudfront.net dcky6u1m8u6el.cloudfront.net et-16-23.bas1-2-prd.ir2.yahoo.com so-2-0-0.pat2.ams.yahoo.com r19---sn-p5qlsnlk.c.googlesyndication.com r12---sn-ab5l6nee.c.googlesyndication.com Botnets / 1 Fast Flux Networks Slide credit: Ing. Guido Mureddu kinure-desrt.su T = ~ 120s (IP fluxing) 24.214.18.167 94.176.115.215 46.98.100.46 159.224.33.8 176.107.89.71 31.128.88.148 91.245.73.138. DNS Control Server Malicious CDN Network of unreliable, compromised hosts Node selection and content delivery is hardly optimal Constantly evolving and mutating

Botnets / 2 DGA-based Slide credit: Ing. Guido Mureddu Domain Generation Algorithm Infected host... mswvqdcbjrrh.xyz inoommbkbrnb.xyz nslkjmtmultc.xyz nslkjmtmultc.xyz otpxxonvrdck.xyz nslkjmtmultc.xyz ipsckkviveop.xyz wfdehxuvkbcy.xyz kcgkiiqrrsos.xyz otpxxonvrdck.xyz nyerbuebmxhy.xyz...... NXDomain NXDomain 185.19.244.42 NXDomain... T = ~ 24h DNS Control Server Domain fluxing Conficker botnet: DGA activity subgraph Extra Slides

Protocolli di Rete Comandi Utili ipconfig/ifconfig Mostra/Consente di modificare configurazione e MAC address dell interfaccia ping Consente di verificare se un host è attivo e raggiungibile Si potrebbe non ricevere risposta al ping nei seguenti casi: L host è spento o c è un qualche problema sulla route verso l host I pacchetti ICMP vengono bloccati da un firewall (ICMP è il protocollo di rete utilizzato dal ping) L host è configurato in modo da non rispondere al ping arp Consente di visualizzare e/o manipolare i contenuti della ARP Table nslookup Consente di interrogare i name server netstat Consente di vedere l elenco delle connessioni di rete attive E possibile filtrare per protocollo, indirizzo, etc. traceroute/tracert Consente di visualizzare il percorso effettuato dal traffico fra due host