Spoofing

Da Wikipedia, l'enciclopedia libera.

Lo spoofing è un tipo di attacco informatico dove viene impiegata in qualche maniera la falsificazione dell'identità (spoof). Lo spoofing può avvenire in qualunque livello della pila ISO/OSI e oltre: può riguardare anche la falsificazione delle informazioni applicative. Quando la falsificazione dell'identità non avviene in campo informatico si parla di social engineering.

Tipologie di spoofing[modifica | modifica sorgente]

Esistono diversi tipi di attacchi spoofing a diversi livelli della pila OSI, ma in ogni caso si tratta di far credere alla vittima che si è qualcosa di diverso: un hostname, un indirizzo ethernet o altro ancora.

Spoofing a livello 2[modifica | modifica sorgente]

Quando l'informazione falsificata è un indirizzo MAC si parla di MAC-spoofing. L'attacco consiste nell'immettere in rete un pacchetto che contiene un MAC address diverso da quello dell'attaccante ed uguale a quello della vittima, con lo scopo di effettuare un attacco. Un esempio di questa tecnica viene impiegata nel MAC flooding in cui un attaccante manda continuamente pacchetti in rete con un MAC che non è il suo. Questo attacco ha l'effetto di saturare il forwarding database dello switch causandone malfunzionamenti cioè forzando il successivo broadcast in tutta la rete. Un altro attacco di tipo MAC-Spoofing è il port stealing in cui l'uso da parte di un attaccante di un MAC Address di un host vittima è finalizzato al furto della porta dello switch dedicata all'host vittima. Un attacco che riguarda la sicurezza del layer 2 ma non direttamente il mac spoofing è l'ARP poisoning mentre un tool per prevenire e bloccare questo attacco è ArpON "ARP handler inspection". ArpON è un demone portabile che rende il protocollo ARP sicuro contro attacchi Man in The Middle (MITM) attraverso tecniche ARP Spoofing, ARP Cache Poisoning, ARP Poison Routing (APR). Blocca anche attacchi derivati quali Sniffing, Hijacking, Injection, Filtering come: DHCP Spoofing, DNS Spoofing, WEB Spoofing, Session Hijacking e SSL/TLS Hijacking & co attacks.

Spoofing a livello 3[modifica | modifica sorgente]

Quando l'informazione falsificata è un indirizzo IP si parla di IP spoofing. In generale è semplice falsificare un indirizzo in quanto il protocollo non implementa alcun sistema di sicurezza. In questo caso si assiste ad un routing asimmetrico visto che il pacchetto di risposta a quello falsificato verrà inviato al vero IP. Gli ISP possono attivare diversi sistemi di sicurezza per impedire l'IP spoofing. Il primo metodo consiste nell'impedire che da una interfaccia (di un router/firewall) vengano inviati pacchetti in cui l'IP sorgente non è quello che ci si aspetta. Il secondo metodo consiste nell'uso delle tabelle di routing. Se l'interfaccia di provenienza per un pacchetto non è la stessa che verrebbe scelta dal router per l'inoltro del pacchetto di risposta allora questo pacchetto viene scartato. Questo sistema si chiama uRPF[1].

Spoofing a livello 4[modifica | modifica sorgente]

Il livello 4 della pila ISO/OSI non è rilevante in fase di autenticazione, quindi non si parla di UDP/TCP spoofing, ma di un attacco di IP-spoofing portato verso uno di questi due protocolli.

Spoofing UDP[modifica | modifica sorgente]

È analogo al caso IP. Essendo UDP un protocollo connectionless la falsificazione di un datagram UDP consiste nell'immettere le informazioni desiderate e falsificare l'header.

Spoofing TCP[modifica | modifica sorgente]

Lo spoofing di una sessione TCP è decisamente più complesso del caso UDP. TCP è infatti un protocollo connection oriented che richiede che venga stabilita una sessione tramite il three way handshake. Se viene forgiato un pacchetto SYN con l'indirizzo IP falsificato e questo viene inviato ad un server, prima che sia possibile inviare i dati il server cercherà di portare a termine l'handshake rispondendo con un pacchetto SYN/ACK. Questo pacchetto riporterà l'indirizzo IP falsificato quindi non verrà inviato indietro all'attaccante che quindi non potrà rispondere con il terzo e ultimo pacchetto (il pacchetto ACK). Per portare a termine questo attacco è necessario inviare un pacchetto ACK al server che riporti nuovamente l'indirizzo IP falsificato, ma anche il sequence number che il server ha inserito nel pacchetto SYN/ACK. Per scegliere questo numero l'attaccante deve sapere come il server li sceglie. Siccome l'attaccante invia il primo e il terzo pacchetto senza vedere il secondo, questo attacco si chiama blind spoofing. Una trattazione approfondita sulla predizione dei numeri di sequenza viene fatta da lcamtuf in [2] e in [3].

Spoofing applicativo[modifica | modifica sorgente]

Con spoofing applicativo si intendono quelle tecniche di spoofing destinate a colpire i protocolli di livello applicativo (layer 7 della pila ISO/OSI) o le applicazioni stesse.

WEB Spoofing[modifica | modifica sorgente]

Quando lo spoofing coinvolge il web (server applicativo, host server o protocolli web) si parla di web spoofing. Nell'accezione più comune il web spoofing riguarda la falsificazione di un server web per far credere ad un utente di essere connesso ad un certo server mentre è connesso ad un server malevolo.

Descriviamo in primis la tecnica nel caso in chiaro (non TLS). La prima azione che deve effettuare un attaccante per redirigere un client verso un server falso (anche chiamato shadow server o server ombra) è di falsificare l'associazione tra l'indirizzo web e l'indirizzo IP. Questa operazione viene effettuata tramite un attacco di dns poisoning. A questo punto l'attaccante ha fatto credere al client che l'indirizzo del server vero è quello invece del server falso. L'attaccante ha costruito in precedenza un server falso che può

  • contenere una copia del server vero (ogni pagina è stata copiata in locale sul server ombra)
  • rigirare pagina per pagina le connessioni del client verso il server vero

In entrambi questi casi quello che ottiene l'attaccante è di fingersi il server vero, catturando credenziali di accesso, per esempio. La creazione dello shadow server è uguale a ciò che si fa nel phishing, ma in questo caso c'è stato un preventivo attacco diretto al client.

Nel caso TLS la cosa si complica notevolmente in quanto bisogna violare il sistema crittografico di TLS. Siccome gli algoritmi stessi sono difficilmente violabili, un attaccante opera un attacco a metà tra l'informatica e il social engineering. L'attacco si svolge in tutto e per tutto come il caso senza TLS, ma l'opzione scelta è quella di rigirare le connessioni verso il server vero. Quando il client riceve il certificato del server esso dovrebbe verificarne l'autenticità. L'attaccante quindi genera un certificato server falso, totalmente uguale al certificato vero, solamente che non è firmato dalla stessa CA. L'utente quindi riceve un certificato che a prima vista è valido e solo un'analisi approfondita rivela la sua falsità. L'attaccante potrebbe rendere ancora più ardua l'identificazione usando una CA falsa, ma uguale a quella vera (cioè con stessi nomi, identificativi, ecc.). Se l'utente non è sufficientemente a conoscenza della problematica può cliccare per accettare anche se la prova crittografica non è completa. A questo punto il server dell'attaccante fa una connessione verso il server vero agendo da proxy e intercettando le comunicazioni. Questo è un attacco di tipo man in the middle. Alcuni tool che offrono la possibilità di fare questo attacco sono dsniff[4] ed ettercap[5] mentre un tool per prevenire e bloccare questo attacco è ArpON "ARP handler inspection". ArpON è un demone portabile che rende il protocollo ARP sicuro contro attacchi Man in The Middle (MITM) attraverso tecniche ARP Spoofing, ARP Cache Poisoning, ARP Poison Routing (APR). Blocca anche attacchi derivati quali Sniffing, Hijacking, Injection, Filtering come: DHCP Spoofing, DNS Spoofing, WEB Spoofing, Session Hijacking e SSL/TLS Hijacking & co attacks.

Note[modifica | modifica sorgente]

  1. ^ (EN) Understanding Unicast Reverse Path Forwarding - su cisco.com
  2. ^ (EN) http://lcamtuf.coredump.cx/oldtcp/tcpseq.html
  3. ^ (EN) http://lcamtuf.coredump.cx/newtcp/
  4. ^ (EN) http://www.monkey.org/~dugsong/dsniff/ - Sito ufficiale di dsniff
  5. ^ (EN) http://ettercap.sourceforge.net/ - Sito ufficiale di Ettercap

Voci correlate[modifica | modifica sorgente]