Kioskea
Seguici Kioskea / Facebook
Cerca

Spoofing di indirizzo IP

Marzo 2015

Spoofing di indirizzo IP


L'«IP spoofing » è 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 spoofing


La tecnica dello spoofing di 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.

trapassare un firewall usando lo spoofing IP



Un pacchetto spoofato 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 autenticazione e di approvazione fra i terminali di una rete, il che significa che per accettare il pacchetto, il destinatario deve innanzitutto dare ricevuta di ritorno presso il mittente, che a sua volta dovrà fare la stessa la cosa una volta ricevuta la ricevuta di ritorno.

Modifica del header TCP


Su internet, le informazioni circolano grazie al protocollo IP, che assicura l'incapsulamento 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
IdentificazioneBandieraSpostamento frammentato
Durata di vitaProtocollo 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 inviare una ricevuta di ritorno al terminale mittente, e aspettare che quest'ultimo confermi la buona ricezione della ricevuta di ritorno.

Relazione di fiduccia


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 modo sicuro, anche se utilizza il protocollo IP (che non ha nessun controllo integrato di consegna del datagramma) grazie ad un sistema di ricevute di ritorno (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 è :


0123456789101112131415
Porta sorgente
Numero d'ordine
Numero di ricevuta di ritorno
Spostamento
données
riservato URG ACK PSH RST SYN FIN
Somma di controllo
Opzioni
Dati
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
16171819202122232425262728293031
Porta destinazione
Numero d'ordine
Numero di ricevuto di ritorno
finestra
Pointer di 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 flag, in italiano bandiere) che permettono di sincronizzare il client ed 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 il cui flag 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 secondo tempo il terminale emittente (il server) riceve il segmento iniziale proveniente dal client, poi gli invia una ricevuta di ritorno, cioè un segmento il cui flag ACK è non nullo (ricevuta di ritorno) ed il flag 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 ricevuta di ritorno (ACK) che contiene il numero d'ordine iniziale del client, aumentato di 1.
  • Infine, il client trasmette al server una ricevuta di ritorno, cioè un segmento il cui flag ACK è non nullo, e il cui flag SYN è a zero (non si tratta più di un segmento di sincronizzazione). Il suo numero d'ordine è aumentato e il numero della ricevuta di ritorno rappresenta il numero di sequenza iniziale del server aumentato di 1.. Il terminale spoofato risponderà con un pacchetto TCP il cui flag RST (reset) è non nulla, cosa che metterà fine alla connessione.

Annichilire il terminale spoofato


Nel quadro di un attacco spoofing di indirizzo IP, l'attaccante 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).

Il terminale spoofato risponde al ACK con un RST


Inoltre, il terminale «spoofato» 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 spoofato rendendolo irraggiungibile durante tutta la durata dell'attacco.

Predire il numero della sequenza


Quando il terminale spoofato è invalido, il terminale bersaglio dell'attacco aspetta un pacchetto con la ricevuta di ritorno 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 header IP per indicare una via di ritorno specifica al pacchetto. Così, grazie allo sniffing, il pirata potrà anche leggere il contenuto dei pacchetti di ritorno...

Ricerca di numeri di sequenza


Inoltre, conoscendo l'ultimo numero di sequenza emesso, il pirata stabilisce delle statistiche riguardo il suo incremento e invia delle ricevute di ritorno fino ad ottenere l'esatto numero di sequenza.

Ulteriori informazioni


Per poter consultare questo documento offline, ne potete scaricare gratuitamente una versione in formato PDF:
Spoofing-di-indirizzo-ip.pdf

Vedi anche


IP address spoofing
IP address spoofing
Suplantación de dirección IP
Suplantación de dirección IP
Vortäuschung einer IP Adresse (Verschleierung / Spoofing)
Vortäuschung einer IP Adresse (Verschleierung / Spoofing)
Usurpation d'adresse IP (Mystification / Spoofing)
Usurpation d'adresse IP (Mystification / Spoofing)
Usurpação de endereço IP (Mystification/Spoofing)
Usurpação de endereço IP (Mystification/Spoofing)
Il documento intitolato « Spoofing di indirizzo IP » da Kioskea (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.