Salta al contenuto
Note per Studenti Introduzione alla sicurezza delle reti

Introduzione alla sicurezza delle reti

In questa pagina 6

Minacce, attacchi e obiettivi

Definizione (minaccia e attacco). Una minaccia (threat) in una rete di comunicazione è qualsiasi evento o sequenza di azioni che possa portare alla violazione di uno o più obiettivi di sicurezza. La realizzazione di una minaccia si chiama attacco.

Esempio. Un hacker che si introduce in un computer, la divulgazione di e-mail in transito, un'entità malevola che modifica dati (per esempio finanziari): sono tre attacchi.

Gli obiettivi dipendono dall'applicazione. In una banca si vuole proteggere dalle modifiche fraudolente delle transazioni e dalla divulgazione dei PIN; per un governo, dalla divulgazione di informazioni sensibili; per un ISP, limitare l'accesso al personale autorizzato, proteggere la privacy degli abbonati e garantire l'unicità e la qualità del servizio.

Definizione (obiettivi di sicurezza). Sono le caratteristiche desiderabili di comunicazioni e reti:

obiettivo significato
Riservatezza (confidentiality) l'informazione è disponibile solo al destinatario previsto (detta anche anonimato)
Integrità (integrity) l'informazione è ricevuta esattamente come è stata spedita; se cambia, deve essere possibile scoprirlo, e quindi identificare chi ha creato il dato
Disponibilità (availability) il servizio è sempre disponibile e operativo anche se qualcuno cerca di disturbare la rete
Responsabilità (accountability) è sempre possibile identificare il responsabile di ogni azione (per esempio dell'invio di un'informazione sul canale)
Privacy l'informazione è usata ma non rivelata a nessuno, tranne alle entità autorizzate (detta anche accesso controllato)

Esempio. Un sito di home banking deve garantire riservatezza (nessuno legge il saldo), integrità (nessuno cambia l'importo di un bonifico), disponibilità (il sito risponde anche sotto attacco) e responsabilità (si sa quale utente ha ordinato il bonifico).

Le minacce

Gli attacchi mettono in pericolo gli obiettivi. Le minacce principali:

minaccia scopo
Intercettazione (eavesdropping) venire a conoscenza di informazioni riservate
Analisi del traffico (traffic analysis) conoscere origine, destinazione, lunghezza e frequenza delle comunicazioni (non il contenuto)
Falsificazione (forgery) costruire un messaggio falso, fingendo che l'abbia mandato qualcun altro
Mascheramento (masquerade) dichiararsi un altro in un singolo messaggio
Ripudio (repudiation) negare di aver spedito o ricevuto un messaggio
Profilazione (profiling) raccogliere informazioni su un singolo utente
Fingerprinting identificare l'utente associato a un messaggio
Disturbo (jamming) causare interferenza a una comunicazione

Servizi e meccanismi

I servizi proteggono le comunicazioni e i protocolli di rete dagli attacchi, perseguendo gli obiettivi di sicurezza.

servizio scopo
Segretezza (secrecy) rendere il messaggio incomprensibile a chi intercetta
Protezione dell'integrità scoprire se un messaggio è stato intercettato o modificato
Autenticazione del messaggio scoprire i messaggi falsificati
Autenticazione dell'entità proteggere dai mascheramenti
Non ripudio impedire il ripudio da parte di sorgente o destinazione
Anonimizzazione impedire l'associazione messaggio-utente
Gestione delle chiavi servizi ausiliari alla crittografia
Controllo degli accessi proteggere dalla negazione del servizio

I meccanismi sono i modi per realizzare i servizi:

meccanismo descrizione
Cifratura (encryption) il messaggio viene trasformato e solo il destinatario previsto può invertire la trasformazione
Firma digitale una stringa che solo la sorgente legittima può creare è aggiunta al messaggio; chiunque può verificarla
Rilevamento delle intrusioni individuare le caratteristiche di un comportamento malevolo (la signature) o anomalie in un comportamento legittimo
Codici di autenticazione del messaggio (MAC) una stringa che solo il trasmettitore o il ricevitore legittimi possono creare è aggiunta al messaggio
Randomizzazione eventi permutati a caso per spezzare le dipendenze
Accordo sulla chiave (key agreement) gli agenti cooperano per produrre una chiave distribuita

La cifratura è in Funzioni hash e crittografia simmetricaLa crittografia trasforma un messaggio in chiaro (plaintext) in un testo cifrato (ciphertext) con una chiave: C = E_ke(P), P = D_kd(C); può dare riservatezza, integrità e autenticazione. Attacchi: solo testo cifrato, testo in chiaro noto, testo in chiaro scelto, forza bruta. Funzione hash: mappa dati di qualsiasi lunghezza in un digest di lunghezza fissa; one-way (dato h è difficile trovare m con hash(m) = h) e resistente alle collisioni; famiglie MD (MD5 rotto per le collisioni nel 2004) e SHA (SHA-0 e SHA-1 rotti, SHA-2 il più usato, SHA-3); costruzione di Merkle-Damgård; usi: integrità e password. Crittografia simmetrica: stessa chiave segreta per cifrare e decifrare; Cesare (E_n(x) = x + n mod 26), Vigenère, Enigma; DES (blocchi da 64 bit, chiave da 56) e AES (blocchi da 128 bit, chiavi da 128, 192, 256); modi ECB (insicuro), CBC, CFB, OFB, CTR. Scambio della chiave con Diffie-Hellman: K = g^(xy) mod p. MAC e HMAC: autenticazione con chiave condivisa.Funzioni hash e crittografia simmetrica → e Crittografia asimmetrica, RSA e TLSCrittografia asimmetrica (a chiave pubblica): chiave di cifratura pubblica v_B, chiave di decifratura privata s_B, matematicamente legate; C = E_vB(P), P = D_sB(C); dà riservatezza. I certificati digitali, emessi da una Certificate Authority e firmati con la sua chiave privata, legano un'identità a una chiave pubblica. Firma digitale: hash del messaggio cifrato con la chiave privata; garantisce autenticità, integrità e non ripudio. RSA: si scelgono due primi grandi p e q, N = pq, phi(N) = (p-1)(q-1), e coprimo con phi(N), d = e^(-1) mod phi(N); chiave pubblica (N, e), segreta (N, d); cifratura c = m^e mod N, decifratura m = c^d mod N con m < N (teorema di Eulero); sicura finché la fattorizzazione è difficile (N di almeno 2048 bit); il padding casuale (PKCS#1 v1.5: 00 02 [casuale] 00 [m]) difende da malleabilità e determinismo. La firma RSA è s = m^d mod N, verificata con s^e mod N. TLS (su TCP) autentica gli estremi con il certificato, cifra i dati con una chiave di sessione simmetrica e garantisce l'integrità con i MAC; da TLS 1.0 a 1.3 la chiave si ricava con Diffie-Hellman e l'handshake si accorcia. DTLS è la versione per UDP.Crittografia asimmetrica, RSA e TLS →; il controllo degli accessi è in parte realizzato dal FirewallUn firewall è un componente (hardware, software o entrambi) che blocca il traffico non autorizzato da una rete verso un'altra: filtra i dati, reindirizza il traffico, protegge dagli attacchi. Requisiti: tutto il traffico tra due zone di fiducia deve passare dal firewall, passa solo il traffico autorizzato, il firewall stesso deve essere immune alle intrusioni. L'amministratore configura le politiche (controllo di utente, di servizio, di direzione); un pacchetto può essere accettato, negato o rifiutato (negato più messaggio ICMP alla sorgente). Il firewall decide con le informazioni di intestazione dei livelli 2-4 (indirizzi, protocollo, porte, flag SYN/ACK/FIN). Packet filter: senza stato, filtra in ingresso e in uscita con regole su indirizzi, protocollo, porte, flag (esempi SMTP, Telnet, X11 e correzioni con porte sorgente e flag ACK). Stateful firewall: tiene traccia delle connessioni (NEW, ESTABLISHED, RELATED, INVALID), limita connessioni al secondo, timeout. Firewall applicativo/proxy: ispeziona il livello applicazione, apre una connessione separata verso la destinazione; sicuro ma lento. Linux: netfilter con 5 hook IPv4 e 5 verdetti, iptables (tabelle e catene), connection tracking nf_conntrack.Firewall →.

In quale livello si mette la sicurezza

Definizione (protocollo di sicurezza di livello N). Un meccanismo (o una combinazione di meccanismi) che offre uno o più servizi di sicurezza per proteggere l'informazione contenuta nelle PDU di livello N e dei livelli superiori, ma non di quelli sotto (Modello ISO-OSI e pila TCP-IPUna comunicazione tra due calcolatori è un problema troppo vario (segnali, errori, accesso al mezzo, instradamento, controllo di flusso, rappresentazione dei dati) per un solo protocollo, quindi si divide in strati (layer). Il modello ISO/OSI ha 7 livelli (fisico, collegamento, rete, trasporto, sessione, presentazione, applicazione); la pila TCP/IP riunisce gli ultimi tre in un solo livello applicazione, quindi ne ha 5. Ogni livello offre un servizio a quello sopra e parla solo con il livello pari dell'altro nodo tramite PDU; scendendo si aggiunge un'intestazione (PCI): incapsulamento. Indirizzi: MAC (collegamento, locale), IP (rete, globale).Modello ISO-OSI e pila TCP-IP →).

Esempio (livello applicazione). Si protegge solo il dato applicativo: la cifratura end-to-end (come in WhatsApp) e l'autenticazione a livello applicazione (HTTPS). Esempio (livello 3). Tutti i dispositivi di livello 4 e 3 (tipicamente i router) devono realizzare il protocollo di sicurezza: instradamento anonimo, instradamento sicuro, IPsec (VPNUna VPN (Virtual Private Network) è una rete privata costruita sopra una rete pubblica (Internet): i nodi comunicano in sicurezza come se fossero in una rete privata, ottenendo autenticazione, riservatezza e integrità senza trovarsi fisicamente nella rete. Architettura: un host designato, il server VPN, ammesso dal firewall; chi sta fuori deve passare dal server e autenticarsi. Un pacchetto IP protetto (cifrato) viene incapsulato come carico di un altro pacchetto IP (IP tunneling). Due modi: IPsec (livello rete, nel kernel; protocolli AH ed ESP, modo tunnel o trasporto, Security Association unidirezionale identificata da SPI) e tunnel SSL/TLS (fuori dal kernel, in un'applicazione su TCP o UDP, il più popolare). Il client e il server VPN stabiliscono il tunnel, vi inoltrano i pacchetti IP destinati all'altro lato e, in ricezione, li rilasciano nella rete privata, usando un'interfaccia virtuale TUN (livello 3) o TAP (livello 2). Autenticazione reciproca: il client autentica il server con un certificato, il server il client con una chiave condivisa (per esempio la password). Una VPN nasconde anche l'indirizzo IP reale e permette di aggirare le restrizioni geografiche.VPN →).

I tipi di attacco

  • Attacchi fisici: si attacca a mano il sistema bersaglio. Sostituzione o clonazione di un nodo, danneggiamento fisico, creazione di misure sbagliate (per esempio l'accendino davanti a un sensore di temperatura), ostacolo a una misura (un foglio di carta davanti a una telecamera di sicurezza).
  • Attacchi software: producono comportamenti alterati (per esempio cambiano il modo in cui un attuatore interagisce con il mondo fisico). Virus e worm; trojan; code injection (comandare all'attuatore azioni pericolose); e-mail di phishing; nodi configurati con combinazioni di nome utente e password scelte dall'attaccante.
  • Attacchi di rete: avvengono sul canale di comunicazione. Gli esempi sono nelle sezioni seguenti.

Sniffing e spoofing

Molti attacchi di rete usano due concetti semplici per accedere al traffico Internet o manipolarlo.

Definizione (sniffing e spoofing). Lo sniffing è l'intercettazione del traffico per accedere a intestazioni e dati e leggerli; non è necessariamente un'azione fraudolenta, può servire per la diagnostica (un sniffer l'abbiamo usato in laboratorio: Wireshark, Katharà - emulare una reteKatharà è un emulatore di rete: ogni dispositivo (host, router, server) è un container Docker, e i container sono collegati da "domini di collisione" virtuali (reti locali). Un laboratorio è una cartella con lab.conf (topologia), un file <dispositivo>.startup per ogni macchina (comandi eseguiti all'avvio) e, se serve, una cartella per dispositivo con i file da copiare nel suo filesystem. Si avvia con lstart, si ferma con lclean; le macchine si configurano con ifconfig, si provano con ping e si osservano con tcpdump (file .pcap da aprire con Wireshark).Katharà - emulare una rete →). Lo spoofing è la manipolazione di (una parte del) traffico, di solito un'azione non legittima.

Sniffing e spoofing servono a lanciare i due tipi di attacco più diffusi: Denial-of-Service (DoS) e Man-In-The-Middle (MITM).

Denial-of-Service (DoS)

Nel DoS lo scopo dell'attaccante è solo interrompere il servizio, cioè colpire la disponibilità. Esempi: saturare un canale cablato, disturbare (jam) un canale wireless. È il più semplice dei due, ma può causare danni enormi all'attività di un ISP, di un servizio web, di una banca, perfino di un governo (server di WhatsApp, Google o di una banca fermi per attacchi informatici).

Esempio: l'attacco Smurf (ICMP). ICMP (Protocollo ICMPIPv4 non ha meccanismi per segnalare o correggere gli errori né per interrogare host e router: li fornisce l'ICMP (Internet Control Message Protocol), un protocollo di rete i cui messaggi viaggiano dentro datagrammi IP con campo Protocol $=1$. I messaggi sono di errore (destination unreachable, tipo 3; time exceeded, tipo 11; redirect, tipo 5; parameter problem, tipo 12), sempre inviati alla sorgente originale e con l'intestazione IP più i primi 8 byte del datagramma che ha causato l'errore, oppure di interrogazione (echo request 8 e reply 0, timestamp 13-14). ICMP segnala ma non corregge. Con l'echo si fanno ping (RTT) e scoperta dell'MTU (bit D, codice 4, payload massimo $1500-20-8=1472$ byte); con time exceeded e port unreachable si fa traceroute ($n+1$ messaggi con TTL crescente). Attacchi: smurf e redirect.Protocollo ICMP →) può essere usato per un attacco di negazione del servizio, sfruttando i pacchetti inviati all'indirizzo di broadcast di una rete.

  1. L'attaccante manda un echo request ICMP all'indirizzo di broadcast della rete (l'indirizzo con tutti i bit dell'host a 11, che raggiunge tutti gli host della rete, Livello di rete e indirizzamento IPIl livello di rete (network layer) porta i datagrammi da host a host attraverso i router: incapsula (framing), sceglie il percorso (routing) e sposta il pacchetto da un ingresso a un'uscita del router (forwarding); in Internet lascia ai livelli superiori controllo d'errore, di flusso e di congestione. Un indirizzo IPv4 è di 32 bit, diviso in prefisso (rete, $n$ bit) e suffisso (host, $32-n$ bit). L'indirizzamento a classi (A, B, C, D, E) è obsoleto; oggi si usa quello senza classi (CIDR): data una notazione $a.b.c.d/n$ si ricavano $N=2^{32-n}$ indirizzi, indirizzo di rete (suffisso tutto 0) e di broadcast (suffisso tutto 1), oppure con la netmask: rete $=$ indirizzo AND maschera, broadcast $=$ indirizzo OR (NOT maschera).Livello di rete e indirizzamento IP →).
  2. Nel pacchetto l'indirizzo IP di origine è quello della vittima (e non il proprio): è spoofing.
  3. Tutti gli host della rete mandano un echo reply all'indirizzo falsificato, cioè alla vittima.
  4. La vittima è sommersa dalle risposte ICMP: prestazioni degradate o guasto completo per il traffico eccessivo.

Esempio numerico. Un ping ha 56 byte di dati: con intestazione ICMP (8 byte) e IP (20 byte, senza opzioni) il pacchetto è lungo 56+8+20=8456+8+20=84 byte, cioè 84⋅8=67284\cdot8=672 bit. L'echo reply ha le stesse dimensioni (rimanda indietro gli stessi dati). Se la rete ha 200 host, un solo pacchetto di 84 byte dell'attaccante produce 200 risposte, cioè 200⋅84=16 800200\cdot84=16\,800 byte verso la vittima: il fattore di amplificazione è traffico che arriva alla vittimatraffico mandato dall’attaccante=200⋅8484=200\dfrac{\text{traffico che arriva alla vittima}}{\text{traffico mandato dall'attaccante}}=\dfrac{200\cdot84}{84}=200, quindi l'attacco amplifica di ×200\times200 il traffico. Conseguenza sulla banda: se l'attaccante invia 11 Mbit/s di echo request, alla vittima arrivano 200⋅1=200200\cdot1=200 Mbit/s di risposte, più di un collegamento Fast Ethernet da 100100 Mbit/s (e l'attaccante ha speso solo 11 Mbit/s, e non si vede, perché l'origine è falsificata). Oggi lo Smurf è raramente usato, perché le infrastrutture di rete sono state migliorate (i router di solito non inoltrano i broadcast diretti).

Man-In-The-Middle (MITM)

Il MITM aumenta il danno del DoS cambiando l'informazione dentro il pacchetto intercettato: può danneggiare riservatezza, integrità, responsabilità e privacy. Esempio tipico: l'avvelenamento delle cache (cache poisoning): le tabelle ARP (da IP a MAC, Protocollo ARPUn host ha tre «nomi»: nome DNS, indirizzo IP (rete) e indirizzo MAC (collegamento). Per spedire un datagramma IP in un frame serve il MAC del prossimo nodo, che si ottiene da quel nodo con ARP: richiesta in broadcast (MAC destinazione FF:FF:FF:FF:FF:FF, contiene IP e MAC del mittente e l'IP cercato) e risposta unicast con il MAC richiesto, memorizzata nella cache ARP. ARP risolve sempre il prossimo salto (host di destinazione o router), non la destinazione finale. Un broadcast non esce dalla sottorete: il proxy ARP del router risponde con il proprio MAC.Protocollo ARP →) e le cache DNS (da nome a IP, Livello applicazione - DNSIl DNS (Domain Name System) traduce i nomi (www.amazon.com) negli indirizzi IP, perché le persone preferiscono i nomi e i protocolli TCP/IP usano gli indirizzi. È un database distribuito e gerarchico: albero rovesciato con radice, domini di primo livello e sottodomini (al più 128 livelli); le informazioni sono su tanti server (13 server radice) e i nuovi domini si registrano presso un registrar accreditato ICANN. Ogni ISP ha un DNS locale, il cui indirizzo l'host riceve con DHCP: l'host (resolver) gli manda la richiesta, di solito su UDP, e il DNS locale interroga radice, dominio di primo livello e server dell'organizzazione. Ogni server che impara un'associazione la tiene in cache, marcando la risposta non autoritativa, e la scarta dopo il TTL. Record (nome, tipo, valore, classe, TTL). Con il NAT il DNS deve restituire l'indirizzo pubblico. Quattro attacchi: macchina compromessa, risposta falsa all'host, avvelenamento della cache del DNS locale, server DNS malevolo.Livello applicazione - DNS →).

Esempio 1: ICMP redirect. I router aggiornano continuamente le loro informazioni di instradamento, gli host no: non partecipano ai protocolli di instradamento.

  1. L'host H vuole mandare un pacchetto a T, e la sua tabella dice di inoltrarlo al router R1.
  2. R1 ha informazioni aggiornate: ora deve inoltrare a R2 per raggiungere T.
  3. R2 e H sono nella stessa rete, quindi H potrebbe mandare direttamente a R2.
  4. R1 deve avvisare H di aggiornare la tabella con un messaggio ICMP redirect.

L'attacco: si può fare spoofing dei messaggi ICMP redirect e deviare i pacchetti della vittima verso un router malevolo che ne modifica i dati. Il gateway legittimo manda il redirect alla vittima; l'attaccante lo falsifica cambiando l'indirizzo del gateway in quello di un router malevolo; ora la vittima usa il falso gateway per raggiungere una certa destinazione.

Esempio 2: avvelenamento della cache ARP in una sessione Telnet. Tre macchine sulla stessa rete: A (10.9.0.5), B (10.9.0.6) e l'attaccante M (10.9.0.105). A e B hanno una sessione TCP Telnet; M vuole far passare i pacchetti da sé per modificarli, e il suo scopo è cambiare ogni carattere s in Z.

  • Avvelena la cache ARP di A, in modo che l'IP di B corrisponda al MAC di M.
  • Avvelena la cache ARP di B, in modo che l'IP di A corrisponda al MAC di M.

M ottiene lo scopo falsificando le risposte ARP tra A e B (le richieste ARP sono sempre in broadcast, Protocollo ARPUn host ha tre «nomi»: nome DNS, indirizzo IP (rete) e indirizzo MAC (collegamento). Per spedire un datagramma IP in un frame serve il MAC del prossimo nodo, che si ottiene da quel nodo con ARP: richiesta in broadcast (MAC destinazione FF:FF:FF:FF:FF:FF, contiene IP e MAC del mittente e l'IP cercato) e risposta unicast con il MAC richiesto, memorizzata nella cache ARP. ARP risolve sempre il prossimo salto (host di destinazione o router), non la destinazione finale. Un broadcast non esce dalla sottorete: il proxy ARP del router risponde con il proprio MAC.Protocollo ARP →). Se l'attacco riesce, quello che A scrive (per esempio s) arriva a B come Z. Considerazioni:

L'esperimento si ripete in laboratorio nella nota Attacco man-in-the-middleLaboratorio 7 (LAB7). Telnet trasmette utente e password in chiaro: chi può leggere il traffico le ruba. Con un hub (scenario 1) basta un tcpdump sull'attaccante, perché l'hub ripete ogni frame su tutte le porte. Con uno switch (scenario 2) l'attaccante non vede nulla: serve un attacco man-in-the-middle con avvelenamento della cache ARP (ARP spoofing): l'attaccante invia di continuo risposte ARP false, dicendo al client che l'IP del router corrisponde al proprio MAC e al router che l'IP del client corrisponde al proprio MAC; poi inoltra i pacchetti e legge tutto. Wireshark, con Follow TCP stream, ricostruisce la sessione telnet e le credenziali.Attacco man-in-the-middle →.

Altri attacchi notevoli

Esempio numerico (ping of death). L'intero pacchetto IP non può superare 65 53565\,535 byte: il campo lunghezza totale ha 16 bit, quindi il valore massimo è 216−1=65 5352^{16}-1=65\,535 (Datagramma IP e frammentazioneIPv4 è un servizio senza connessione, non affidabile, best effort: i pacchetti (datagrammi) possono essere persi, corrotti, riordinati o ritardati. L'intestazione ha 20-60 byte (HLen conta parole da 4 byte, da 5 a 15); il campo Total Length (16 bit) dà la lunghezza totale fino a 65 535 byte; TTL limita i salti, Protocol identifica il protocollo trasportato (1 ICMP, 6 TCP, 17 UDP), il checksum copre solo l'intestazione. Se un datagramma è più grande dell'MTU del collegamento viene frammentato: solo il payload si divide, ogni frammento ha un'intestazione propria; l'Offset (13 bit) è in unità di 8 byte, MF=1 in tutti i frammenti tranne l'ultimo, e il riassemblaggio avviene solo a destinazione.Datagramma IP e frammentazione →, Sistemi di numerazione posizionaliNotazione posizionale in base b; conversioni tra base 10, 2, 8 e 16 per interi (divisioni successive) e per parti frazionarie (moltiplicazioni successive); numeri periodici in binario.Sistemi di numerazione posizionali →). Tolte l'intestazione IP (20 byte) e quella ICMP (8 byte) restano al massimo 65 535−20−8=65 50765\,535-20-8=65\,507 byte di dati. Se l'attaccante manda un ping con 65 51065\,510 byte di dati, il carico IP (ICMP + dati) è 65 510+8=65 51865\,510+8=65\,518 byte e il pacchetto intero 65 518+20=65 53865\,518+20=65\,538, cioè 3 byte oltre il massimo (il carico IP massimo sarebbe 65 535−20=65 51565\,535-20=65\,515). In rete viaggia spezzato in frammenti da 14801480 byte di carico ciascuno (MTU 15001500 meno 2020 di intestazione IP, Datagramma IP e frammentazioneIPv4 è un servizio senza connessione, non affidabile, best effort: i pacchetti (datagrammi) possono essere persi, corrotti, riordinati o ritardati. L'intestazione ha 20-60 byte (HLen conta parole da 4 byte, da 5 a 15); il campo Total Length (16 bit) dà la lunghezza totale fino a 65 535 byte; TTL limita i salti, Protocol identifica il protocollo trasportato (1 ICMP, 6 TCP, 17 UDP), il checksum copre solo l'intestazione. Se un datagramma è più grande dell'MTU del collegamento viene frammentato: solo il payload si divide, ogni frammento ha un'intestazione propria; l'Offset (13 bit) è in unità di 8 byte, MF=1 in tutti i frammenti tranne l'ultimo, e il riassemblaggio avviene solo a destinazione.Datagramma IP e frammentazione →; 14801480 è multiplo di 88 perché lo spostamento dei frammenti si misura in unità da 88 byte): ⌈65 518/1480⌉=⌈44,3⌉=45\lceil65\,518/1480\rceil=\lceil44{,}3\rceil=45 frammenti, i primi 4444 da 14801480 byte (44⋅1480=65 12044\cdot1480=65\,120) e l'ultimo da 65 518−65 120=39865\,518-65\,120=398 byte. Un riassemblaggio che non controlla la lunghezza totale copia 65 51865\,518 byte in un buffer pensato per 65 51565\,515: trabocca.

Esempio numerico (DDoS). L'attacco a GitHub del 2018 raggiunse 1,351{,}35 Tbit/s: dato che 11 byte =8=8 bit e 11 T =1012=10^{12}, sono 1,35⋅1012/8=1,6875⋅10111{,}35\cdot10^{12}/8=1{,}6875\cdot10^{11} byte/s =168,75=168{,}75 GB/s di traffico. Con una botnet in cui ogni dispositivo manda 11 Mbit/s (10610^6 bit/s) servono 1,35⋅1012/106=1,35⋅1061{,}35\cdot10^{12}/10^6=1{,}35\cdot10^6, cioè 1,351{,}35 milioni di dispositivi (il numero di dispositivi è il rapporto tra il traffico totale e quello di uno solo). L'infrastruttura di GitHub ebbe interruzioni intermittenti e rallentamenti.

Errori comuni

  • Confondere minaccia (evento possibile) e attacco (minaccia realizzata).
  • Dire che lo sniffing è sempre illegale: è anche uno strumento diagnostico (Wireshark).
  • Pensare che il MITM serva solo a leggere: serve soprattutto a modificare.
  • Dimenticare che nello Smurf l'indirizzo di origine è quello della vittima, e che le risposte vanno a lei, non all'attaccante.
  • Scordare, nell'esempio ARP, che M deve spegnere ICMP redirect e inoltro IP, e ricalcolare i checksum.
  • Credere che un protocollo di sicurezza di livello N protegga anche i livelli sotto di N.

Versione ripasso

Lezioni in cui compare

Teoria collegata