| PrecedenteSYN | Usurpazione d'indirizzo IP (Mystification / Spoofing) | SeguenteFurto di sessione (hijacking) |
L'« usurpazione d'indirizzo IP » (detto anche mistificazione o in inglese spoofing IP) è una tecnica che consiste nel sostituire l'indirizzo IP del mittente di un pacchetto IP con l'indirizzo IP di un altro terminale.
Questa tecnica permette così ad un pirata di inviare dei pacchetti in anonimo. Non si tratta però di un cambiamento di indirizzo IP, ma di un travestimento dell'indirizzo IP a livello dei pacchetti emessi.
Alcuni tendono ad assimilare l'utilizzazione di un proxy (che permette di mascherare in un certo modo l'indirizzo IP) con lo spoofing IP. Tuttavia, il proxy non fa che trasmettere i pacchetti. Ma anche se l'indirizzo è apparentemente mascherato, un pirata può facilmente essere trovato grazie ai log del proxy.
La tecnica dell'usurpazione d'indirizzo IP può permettere ad un pirata di farsi passare dei pacchetti su una rete senza questi siano intercettati dal sistema di filtraggio dei pacchetti )firewall).
In effetti, un sistema firewall funziona soprattutto in base a regole di filtraggio che indicano gli indirizzi IP autorizzati a comunicare con i terminali interni alla rete.
Un pacchetto SPOOFFATO con l'indirizzo IP di un terminale interno sembrerà provenire dalla rete interna e sarà trasferito al terminale bersagli dell'attacco, mentre un pacchetto contenente un indirizzo IP esterno sarebbe automaticamente rifiutato dal firewall.
Ciò nonostante, il protocollo TCP (protocollo che assicura principalmente il trasporto sicuro dei dati su internet) riposa su link di autentificazione e di approvazione fra i terminali di una rete, il che significa che per accettare il pacchetto, il destinatario deve innanzitutto accusare la ricezione presso il mittente, che a sua volta dovrà fare la stessa la cosa una volta ricevuta l'accusa di ricezione.
Su internet, le informazioni circolano grazie al protocollo IP, che assicura l'incapsulazione dei dati in strutture chiamate pacchetti ( o più esattamente datagrammi IP). Di seguito la struttura di un datagramma :
| Versione | Lunghezza del titolo | Tipo di servizio | Lunghezza totale | |
| Bandiera | Spostamento fragmentato | |||
| Durata di vita | Protocollo | Somma del controllo intestazione | ||
Usurpare un indirizzo IP significa modificare il campo sorgente per simulare un datagramma proveniente da un altro indirizzo IP. Tuttavia, su internet, i pacchetti sono generalmente trasportati dal protocollo TCP, che assicura una trasmissione detta « affidabile ».
Prima di accettare un pacchetto, un terminale deve innanzitutto accusare ricezione dello stesso al terminale mittente, e aspettare che quest'ultimo confermi la buona ricezione dell'accusato.
Il protocollo TCP è uno dei principali protocolli del livello trasporto del modello TCP/IP. Permette, a livello delle applicazioni, di gestire i dati provenienti (o destinati) dal livello inferiore del modello (cioè il protocollo IP).
Il protocollo TCP permette di assicurare il trasferimento dei dati in maniera sicura, anche se utilizza il protocollo IP (che non ha nessun controllo integrato di consegna del datagramma) grazie ad un sistema di accusati di ricezione (ACK) che permette al client e al server di assicurare la buona ricezione reciproca dei dati.
I datagrammi IP incapsulano dei pacchetti TCP (detti segmenti) la cui struttura è :
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Porta Sorgente | Porta Destinazione | ||||||||||||||||||||||||||||||
dati |
URG | ACK | PSH | RST | SYN | FIN | |||||||||||||||||||||||||
| Opzioni | Riempimento | ||||||||||||||||||||||||||||||
Al momento dell'emissione di un segmento, viene associato un numero d'ordine (detto anche numero di sequenza), e uno scambio di segmenti contenenti dei campi particolari (detti bandiere, in inglese flags) che permettono di sincronizzare il client e il server.
Questo dialogo (detto stretta di mano in tre tempi), permette di iniziare la comunicazione, svolgendosi in tre tempi, come indicato dal suo nome:
Nel quadro di un attacco da usurpazione d'indirizzo IP, l'aggressore non ha nessun ritorno di informazioni dato che le risposte del terminale bersaglio dell'attacco vanno verso un altro terminale di rete (si parla allora di attacco alla cieca, in inglese blind attack).
Inoltre, il terminale « SPOOFFATO » priva l'hacker di qualsiasi tentativo di connessione, dato che questo invia sistematicamente una bandiera RST al terminale bersaglio dell'attacco. Il lavoro del pirata consiste quindi nell'invalidare il terminale SPOOFFATO rendendolo irraggiungibile durante tutta la durata dell'attacco.
Quando il terminale SPOOFFATO è invalido, il terminale bersaglio dell'attacco aspetta un pacchetto con l'accusa di ricezione e l'esatto numero di sequenza. Tutto il lavoro del pirata consiste allora nell'« indovinare » il numero di sequenza da rinviare al server per stabilire una relazione di fiducia.
Per questo, i pirati usano generalmente il source routing, cioè utilizzano il campo opzione del titolo IP per indicare una via di ritorno specifica al pacchetto. Così, grazie allo sniffing, il pirata potrà anche leggere il contenuto delle trame di ritorno…
Inoltre, conoscendo l'ultimo numero di sequenza emesso, il pirata stabilisce delle statistiche riguardo il suo incremento e invia delle accuse di ricezione fino ad ottenere l'esatto numero di sequenza.