Usurpazione d'indirizzo IP (Mystification / Spoofing)

L'usurpazione d'indirizzo IP

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.

Attacco da usurpazione

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.

Franchissement d\'un firewall par la technique du spoofing

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.

Modifica del titolo TCP

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
Identificazione
Bandiera Spostamento fragmentato
Durata di vita Protocollo Somma del controllo intestazione
Indirizzo IP sorgente
Indirizzo IP destinazione
Dati

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.

I link di approvazione

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 è :

URG ACK PSH RST SYN FIN
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
Numero d'ordine
Numero dell'accusa di ricezione
Spostamento
dati
riserva
Finestra
Somma di controllo
CRONOMETRO d'emergenza
Opzioni Riempimento
Dati

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:

  • In un primo tempo, il terminale emittente (il client) trasmette un segmento la cui bandiera SYN è a 1 (per segnalare che si tratta di un segmento di sincronizzazione), con un numero d'ordine N, che viene chiamato numero d'ordine iniziale del client.
  • In un sencondo tempo il terminale emittente (il server) riceve il segmento iniziale proveniente dal client, poi gli invia un accusa di ricezione, cioè un segmento la cui bandiera ACK è non nulla (accusa di ricezione) e la bandiera SYN è a 1 (dato che si tratta ancora di una sincronizzazione). Questo segmento contiene un numero di sequenza uguale al numero d'ordine iniziale del client. Il campo più importante di questo segmento è il campo accusa di ricezione (ACK) che contiene il numero d'ordine iniziale del client, aumentato di 1.
  • Infine, il client trasmette al server un'accusa di ricezione, cioè un segmento la cui bandiera ACK è non nulla, e la cui bandiera SYN è a zero (non si tratta più di un segmento di sincronizzazione). Il suo numero d'ordine è aumentato e il numero dell'accusa di ricezione rappresenta il numero di sequenza iniziale del server aumentato di 1.
. Il terminale SPOOFFATO risponderà con un pacchetto TCP la cui bandiera RST (reset) è non nulla, cosa che metterà fine alla connessione.

Annichilire il terminale SPOOFFATO

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).

La machine spoofée répond au ACK par un RST

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.

Predire il numero della sequenza

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…

Recherche des numéros de séquence

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.

Ulteriori informazioni

Ultime modificazione il venerdì 6 febbraio 2009 alle 16:52:03 da Jeff
Il documento intitolato « Usurpazione d'indirizzo IP (Mystification / Spoofing) » da Kioskea.net (it.kioskea.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.
SYN
Furto di sessione (hijacking)