Lo spoofing è un tipo di attacco informatico che impiega in varie maniere la falsificazione dell'identità (spoof). Lo spoofing può avvenire a qualunque livello della pila ISO/OSI e 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
Esistono diversi tipi di attacchi spoofing a diversi livelli della pila OSI: si tratta di far credere alla vittima che si è qualcosa di diverso: un hostname, un indirizzo ethernet o altro ancora.
Spoofing a livello 2
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. Questa tecnica è impiegata nel MAC flooding in cui un attaccante manda continuamente pacchetti in rete con un MAC non suo. Questo attacco satura 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 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
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 sarà 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) siano 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 è scartato. Questo sistema si chiama uRPF.
Spoofing a livello 4
Il livello 4 della pila ISO/OSI non è rilevante in fase di autenticazione, quindi non si parla di UDP/TCP spoofing, ma di attacco di IP-spoofing portato verso uno di questi due protocolli.
Spoofing UDP
È 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
Lo spoofing di una sessione TCP è decisamente più complesso del caso UDP. TCP è infatti un protocollo connection oriented che richiede di stabilire una sessione tramite il three way handshake. Se è forgiato un pacchetto SYN con l'indirizzo IP falsificato e questo è 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 sarà rinviato all'attaccante che 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 non solo 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 è fatta da lcamtuf in e in.
Spoofing applicativo
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
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 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 è effettuata tramite un attacco di dns poisoning. A questo punto l'attaccante ha fatto credere al client che l'indirizzo del server vero sia quello 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 per esempio credenziali di accesso. 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: bisogna violare il sistema crittografico di TLS. Siccome gli algoritmi 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, ma non firmato dalla stessa CA. L'utente quindi riceve un certificato valido a prima vista, e solo un'analisi approfondita rivela la sua falsità. L'attaccante potrebbe rendere ancora più ardua l'identificazione usando una CA falsa, uguale a quella vera (cioè con stessi nomi, identificativi, ecc.). Se l'utente non è sufficientemente a conoscenza del problema può cliccare per accettare anche se la prova crittografica non è completa. A questo punto il server dell'attaccante fa una connessione al server vero agendo da proxy e intercettando le comunicazioni. Questo è l'attacco man in the middle. Alcuni tool che offrono la possibilità di compiere questo attacco sono dsniff ed ettercap mentre un tool per prevenirlo e bloccarlo è 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.