Indietro

ⓘ IP spoofing




                                     

ⓘ IP spoofing

IP spoofing è la denominazione con la quale si indica, in una rete di computer, una tecnica di attacco informatico che utilizza un pacchetto IP nel quale viene falsificato lindirizzo IP del mittente.

Nell header di un pacchetto IP si trova uno specifico campo, il Source Address, il cui valore indica lindirizzo IP del mittente: modificando questo campo si può far credere che un pacchetto IP sia stato trasmesso da una macchina host diversa.

                                     

1. IP spoofing e sicurezza informatica

Questa tecnica può essere utilizzata per superare alcune tecniche difensive contro le intrusioni, in primis quelle basate sullautenticazione dellindirizzo IP. Infatti, è normale che in intranet aziendali lautenticazione ad alcuni servizi avvenga sulla base dellindirizzo IP, senza lutilizzo di altri sistemi come username e password. Questo tipo di attacco ha tanto più successo quanto più i rapporti di "fiducia" tra due o più macchine sono forti.

Una delle difese che si possono attuare contro questo tipo di attacco è lutilizzo di packet filtering, impostando opportune regole sulla base delle quali viene deciso quali pacchetti dallesterno possono essere trasmessi allinterno della rete aziendale e viceversa. Nello specifico caso, per evitare un attacco basato sullo spoofing basta impostare una serie di regole che vieti il passaggio dallesterno verso linterno della rete aziendale di pacchetti IP che abbiano come indirizzo IP sorgente quello di una macchina interna. Ovviamente si possono impostare anche delle regole in modo tale da evitare attacchi di spoofing dallinterno verso lesterno.

LIP spoofing risulta essere una tecnica utile per ottenere lanonimato di un singolo pacchetto, ma è difficile sfruttarla per attacchi che prevedano lo spoofing di unintera sessione/comunicazione in quanto chi invia il pacchetto attaccante non sarà, generalmente, in grado di proseguire in modo coerente la comunicazione, dato che le risposte saranno inviate dal ricevente vittima allindirizzo IP indicato nel pacchetto "spoofato". In passato era possibile realizzare un attacco di spoofing attivando le opzioni di Source Routing, obbligando la vittima a instradare le risposte verso lattaccante; attualmente è quasi impossibile trovare su Internet un router che rispetti le opzioni di Source routing: quasi tutti scartano i pacchetti che le contengono.

Si tratta di una tecnica utilizzata principalmente durante attacchi di tipo DoS e principalmente nella loro variante distribuita o DDoS, per evitare di rendere facilmente identificabile lattaccante o gli attaccanti.

                                     

2. IP spoofing, perché funziona

Ai fini del routing dei pacchetti IP ha importanza solo lindirizzo di destinazione: è per questo motivo che in condizioni normali è possibile spedire pacchetti IP che sembrano provenire da un qualunque IP. Inoltre spesso vi è mancanza di un controllo a livello superiore che autentichi la sorgente dei pacchetti IP. Una soluzione può essere utilizzare IPsec.

                                     

3. IP spoofing e trasmissione dati satellitare

Un suo utilizzo legittimo in voga fino a qualche tempo fa era nel campo delle trasmissioni dati via satellite che hanno latenze molto elevate e bassi tassi di errore. La latenza elevata superava i tempi concessi per l Acknowledge TCP e quindi imponeva la ritrasmissione del pacchetto. Per questa ragione al client venivano inviati pacchetti di acknowledge "falsi" di avvenuta ricezione approfittando del basso tasso di errore assicurato dai collegamenti satellitari. Oggi al posto dello spoofing si preferisce lo sliding window.

                                     

4. Servizi vulnerabili all IP Spoofing

Alcuni servizi che sono vulnerabili sono:

  • X Window System
  • RPC Remote Procedure Call
  • Qualsiasi servizio che utilizza lautenticazione IP
  • I servizi della R suite.
                                     

5. Tipi di attacco

Gli attacchi di IP Spoofing possono essere divisi in tre categorie:

  • IP Spoofing non cieco: è attuabile in una rete LAN; quando chi attacca cerca di farsi passare per un host che è nella sua stessa sottorete.
  • IP Spoofing cieco: quando lattaccante cerca di farsi passare per un host di una qualsiasi sottorete.
  • Attacchi DoS: lattaccante cerca di bloccare un host per impedire a questultimo di svolgere la normale attività oppure per prenderne il controllo.

Successivamente vengono descritti diversi scenari, sempre utilizzando il TCP Transmission Control Protocol come protocollo di livello trasmissione. Si può utilizzare l IP Spoofing anche con il protocollo UDP User Datagram Protocol ma essendo senza autenticazione viene poco utilizzato per effettuare accessi autenticati al sistema.

                                     

5.1. Tipi di attacco Cambiare lindirizzo IP sorgente

Per effettuare qualsiasi attacco di IP Spoofing occorre riuscire a modificare l header del pacchetto IP. Uno strumento per fare questa operazione sono le Raw Socket. Questo tipo di socket permette di creare a piacimento il pacchetto header compreso, ovviamente occorre creare manualmente l header completo del pacchetto. Diversi linguaggi implementano le raw socket e risulta più facile operare lattacco in ambiente Unix.

                                     

5.2. Tipi di attacco IP Spoofing non cieco

Lattaccante sta cercando di farsi passare per un host che fa parte della sua sottorete; quindi, impostando la scheda di rete in modo promiscuo, egli riesce a leggere tutti i pacchetti indirizzati all host che intende impersonare e può così scoprire i Sequence number e Acknowledgement number della connessione in corso e cercare di inserirvisi.

Si possono effettuare alcuni tipi di attacco, tra cui la chiusura di una connessione e lintromissione in una connessione Hijacking.

Per chiudere una connessione iniziata dalla vittima occorre "sniffare" almeno un pacchetto della comunicazione quello di ritorno dal server da interrompere in modo tale da capire il sequence number e calcolarne il valore successivo. Si possono utilizzare i flag di reset RST o fine dati FIN. Con il flag di reset l ack è disabilitato quindi basta calcolare il sequence number a partire dall ack del pacchetto sniffato. Per il flag di fine dati occorre calcolare anche l ack corretto. Perché lattacco vada a buon fine il pacchetto "spoofato" deve essere inviato prima della risposta del client se questo succede il sequence number viene modificato.

Per intromettersi in una comunicazione TCP occorre desincronizzare il client, che consiste nel cambiare sequence number e ack della conversazione con il server.

Dato il client A, un server B e un attaccante C connesso alla stessa rete di A, un possibile metodo per desincronizzare da parte di C è:

  • C invia un pacchetto spoofato da inviare a B con sequence number e ack calcolati dal pacchetto ricevuto da B
  • B riceve il pacchetto da AC e risponde ad A
  • A riceve il pacchetto da BA e modifica i parametri di sequence e ack allinsaputa di B
  • In questa situazione C può inviare i pacchetti spoofati a B mentre A non può inviare a B ma riceve i messaggi da B
  • Ora C può inviare pacchetti spoofati a B senza che A veda le risposte di B inoltre A non può inviare pacchetti a B in quella connessione
  • Adesso B è desincronizzato rispetto ad A quindi scarta i pacchetti inviati da A
  • C ascolta la conversazione tra A e B e intercetta un pacchetto B → A
  • Per bloccare anche i pacchetti B → A, C manda un pacchetto spoofato ad A come se fosse il server B
  • Adesso il sequence number di A non corrisponde più all ack ricevuto da B quindi B scarterà tutti i pacchetti inviati da A, che non sa del pacchetto spoofato inviato da C

Altri metodi di desincronizzazione si possono effettuare intromettendosi nella comunicazione di hand-shake iniziale, resettando la connessione originale e forzando il server ad aprire una nuova connessione con lo stesso client ma con sequence number diverso.

Un problema derivante questo tipo di attacco è l ACK storm: quando client e server sono desincronizzati tra loro ad ogni tentativo di inviare pacchetti la parte opposta lo scarta e rimanda il lultimo pacchetto inviato, la parte opposta riceve il pacchetto, lo scarta perché è desincronizzato e rimanda il suo ultimo pacchetto inviato, così comincia il loop che prosegue fino a che un pacchetto di ack viene perso oppure si raggiunge il timeout e la connessione viene resettata. Durante questa fase può venire utilizzata una significativa quantità di banda, che ha dato spunto ad attacchi DOS specifici.



                                     

5.3. Tipi di attacco IP Spoofing cieco

In questo tipo di attacco lattaccante non si trova nella stessa rete della vittima quindi anche se può inviare pacchetti spoofati si può tentare di instaurare connessioni con il server apparendo la vittima, tutti i pacchetti di risposta saranno inviati alla vittima e lattaccante non può intercettarli facilmente. Inoltre non conoscendo le risposte dal server non si possono calcolare i sequence number e quindi proseguire il dialogo. Per aggirare questo problema si può tentare di predire il sequence number del server TCP sequence prediction attack.

Un sequence number può essere generato in diversi modi:

  • Generando un numero casuale per ogni connessione
  • Aumentando di una costante il sequence number a ogni intervallo di tempo prefissato
  • Utilizzando la regola dei 64k, che consiste nellaumentare ad ogni secondo di un certa costante il sequence number rispetto a quello utilizzato per la connessione precedente e aggiungere un altro numero costante se si cambia la connessione

Se limplementazione del TCP utilizza il primo risulta facile per lattaccante predire il sequence number. Ad esempio può provare a creare qualche connessione di prova con il suo indirizzo IP per capire quale regola adotta il server e a che numero di sequenza è arrivato. Nel caso della seconda tecnica occorrono diverse prove per capire il comportamento del server, mentre se il sequence number è generato casualmente non si riesce a proseguire in questo tipo di attacco.

Una volta che lattaccante riesce a predire il numero di sequenza può instaurare una connessione TCP con il server facendosi passare per la vittima. Da notare il fatto che lattaccante non può comunque vedere se il server risponde ai pacchetti questo non è un grosso problema perché lo scopo dellattaccante può essere dinviare comandi al server e quindi non è interessato da ulteriori risposte.

Da ricordare il fatto che la vittima riceve tutti i pacchetti di risposta dal server quindi occorre mettere offline la vittima prima di iniziare questo attacco.



                                     

5.4. Tipi di attacco Attacchi Dos

La tecnica dell IP Spoofing viene anche utilizzata per attacchi di tipo denial of service, il cui scopo è atterrare la macchina della vittima. Il mascheramento dellIP compare negli attacchi Smurf si cerca di esaurire la banda della vittima e anche nellattacco SYN flood si cerca di esaurire le risorse della vittima.