È un luogo comune considerare come nuovo tutto ciò che è "virtuale". Gli attacchi contro l'identità sono invece una costante dell'esistenza umana. Lo spoofing, di fatto, non è una novità, ma è un pericolo nato dall'evoluzione della rete Internet stessa.
Cos'è lo spoofing
Lo spoofing è l'arte della contraffazione dei pacchetti, intendendo per pacchetto una qualsiasi sequenza di dati distinta trasmessa su una rete. In una rete di computer con il termine spoofing s'intende il sistema che permette di creare un pacchetto IP, ad hoc, nel quale viene falsificato l'indirizzo IP del mittente. Durante lo spoofing, infatti, l'attaccante autentica la propria macchina nella rete bersaglio usando i pacchetti che provengono da un host "fidato".
Questa definizione è stata in realtà molto ampliata fino a comprendere qualsiasi metodo usato per aggirare le regole di autenticazione basate sugli indirizzi IP o sui nomi degli host. Questa tecnica è utilizzata principalmente durante gli attacchi di tipo DoS e, soprattutto, nella loro variante distribuita (i dDOS), per controllare che gli algoritmi e le policy di routing siano impostate correttamente. Le tecniche di spoofing sono diverse, le più note e adoperate sono:
- Spoofing dell'IP;
- Spoofing del DNS;
- Spoofing dell'ARP;
- Spoofing del desktop;
- Web spoofing;
- SMS spoofing.
In quest'articolo parleremo di queste tecniche di spoofing, analizzando le caratteristiche particolari di ognuna ed i possibili metodi di difesa.
Spoofing dell'IP
È il tipo d'attacco più diffuso dal momento che è il più facile da eseguire. L'attacco è reso possibile dal fatto che la maggior parte dei router attivi all'interno delle reti aziendali, controllano, durante la richiesta di accesso ai servizi, solo l'indirizzo IP di destinazione e non quello di provenienza. Nell'intestazione di un pacchetto IP si trova uno specifico campo, il Source Address, il cui valore riporta l'indirizzo IP del mittente. Se chi attacca modifica questo campo può far credere, ad un sistema bersaglio, che un pacchetto IP sia stato trasmesso da una macchina differente ricevendo le risposte direttamente sul falso IP.
Questa tecnica può essere utilizzata per superare alcune tecniche difensive contro le intrusioni, specialmente quelle basate sull'autenticazione dell'indirizzo IP. Infatti, come detto in precedenza, nelle intranet aziendali l'autenticazione ad alcuni servizi avviene basandosi sull'indirizzo IP delle macchine, senza l'uso di altri sistemi. Questo tipo di attacco ha tanto più successo quanto più forti sono i rapporti di fiducia tra due o più macchine. Lo spoofing IP potrebbe essere limitato inserendo dei filtri sull'indirizzo IP sorgente a livello routers. Un firewall non vi protegge automaticamente dagli attacchi di spoofing, quindi non dormite sonni tranquilli dietro i firewall per quanto ottimi possano essere.
Tipi di attacchi IP Spoofing
Gli attacchi spoofing IP possono essere divisi in tre categorie:
- IP spoofing cieco. Quando l'attaccante cerca di farsi passare per un host di una qualsiasi sottorete.
- IP spoofing non cieco. È attuabile in una rete LAN; quando chi attacca cerca di farsi passare per un host che è nella sua stessa sottorete.
- Attacchi DOS. L'attaccante cerca di bloccare un host per impedire a quest'ultimo di svolgere la normale attività oppure per prenderne il controllo.
Servizi vulnerabili allo spoofing IP
Lo spoofing IP danneggia in maniera pesante, per fortuna, poche macchine che eseguono alcuni servizi particolari. Le configurazioni ed i servizi noti per la loro predisposizione a questo tipo di attacco includono i seguenti componenti:
- servizi RPC (da Remote Procedure Call);
- servizi che usano l'autenticazione dell'indirizzo IP.
Anche qui limitare i danni è d'obbligo: utilizzate sempre NAT (Network Address Translation) per la vostra rete interna. Usando indirizzi privati per la vostra rete interna è difficile, ma non impossibile, effettuare lo spoofing di una connessione (tranne che dall'interno, è ovvio). Altro accorgimento è quello di consentire solo connessioni esterne da host fidati, abilitate le connessioni crittografate al router in maniera tale da non permettere, a chi attacca, di captare il traffico in transito nella rete.
Spoofing del DNS
In questo tipo di spoofing l'attaccante compromette il server DNS (Domain Name Service) scelto come bersaglio ed altera la tabelle degli indirizzi dei nomi. Queste manomissioni vengono scritte nei database della tabella di traduzione sul server DNS e quando un PC richiede una ricerca, gli viene fornito un indirizzo falso.
Con questo tipo di spoofing è possibile, ad esempio, per gli intrusi contraffare il BIND tramite l'invio di dati relativi ai nomi non corretti. Alcuni sistemi e programmi che dipendono da queste informazioni per l'autenticazione diventano praticamente indifesi, è quindi possibile contraffare questi sistemi ed ottenere un accesso non autorizzato. Lo spoofing DNS è stato attualmente automatizzato su alcune piattaforme.
Difendersi dagli attacchi contro il DNS
Scoprire un attacco al DNS non è difficile, di solito basta confrontare il server sospetto con gli altri server DNS presenti sulla rete. Se gli altri server riportano informazioni diverse dal server incriminato, è segno che quest'ultimo è stato violato. Questo controllo però potrebbe non essere sufficiente poiché le false tabelle degli indirizzi potrebbero essere state trasmesse anche agli altri server DNS della rete. Se notate anomalie nella risoluzione dei nomi è bene usare un'utility per diagnosticare i server DNS della vostra rete. DOC (Domain Obscenity Control) è forse il miglior programma ideato per testare le anomalie nella risoluzione dei nomi. Questo tool invia delle query ai server dei nomi di dominio appropriati, svolgendo una serie di test ed analizzando l'output di queste query.
Nella prima parte dell'articolo abbiamo esaminato gli attacchi spoofind all'indirizzo IP e al DNS. In questa seconda parte esamineremo gli altri tipi di attacchi, tra cui quello all'ARP.
Lo Spoofing dell'ARP
Questo tipo di spoofing è una variante sul tema dello spoofing IP e sfrutta un punto debole molto simile. Nell'ARP (vedi più avanti per la definizione) l'autenticazione avviene basandosi sull'indirizzo del dispositivo collegato (il MAC Address), non su quello IP, ma su quello di un indirizzo hardware.
Nello spoofing ARP, l'obiettivo di chi attacca è di mantenere il proprio indirizzo hardware reale, ma di assumere un indirizzo IP valido per autenticarsi nella rete. Per far questo, chi attacca, invia una mappa falsificata di informazioni, sia al bersaglio, sia alla memoria cache dell'ARP. Una volta fatto questo, i pacchetti provenienti dal target vengono instradati all'indirizzo hardware di chi attacca. Il bersaglio, quindi, comincia a credere che la macchina dell'attaccante sia effettivamente una delle sue macchine "fidate"; vi lascio immaginare le conseguenze di questo inganno.
Cos'è l'ARP?
L'ARP (o Address Resolution Protocol) determina gli indirizzi IP come indirizzi fisici. Quando un host richiede una sessione, invia una trasmissione ARP che trasporta l'indirizzo IP della destinazione desiderata. Per maggior efficienza, il sistema fornisce una memoria cache dell'ARP per permettere alle macchine di connettersi velocemente con gli host conosciuti senza dover effettuare una trasmissione; questo tipo di memoria contiene mappe informative dall'hardware, all'IP.
Gli attacchi spoofing ARP presentano diversi limiti, uno di questi è quello dell'impiego di hardware intelligente. Molti dispositivi rendono innocui questi attacchi quando il pacchetto trasmesso va al di là del segmento originario. Inoltre, gli inserimenti nella cache vengono rimossi velocemente di default: circa una ogni cinque minuti.
Spoofing del desktop
Ebbene sì, molti degli attacchi spoofing sono diretti ai proprietari delle risorse colpite; il grande problema è che l'utente medio si accorge della scomparsa delle proprie risorse, ma non di quella delle risorse altrui, a meno che non possa più avervi accesso. Gli spoofing più efficaci sono quelli invisibili, i programmi di vulnerabilità sono realizzati per portare attacchi impercettibili atti a conquistare il pieno controllo del PC vittima, il poter controllare la macchina bersaglio è sempre più utile della sua totale distruzione. Lo spoofing è in grado di prendere il potere a qualsiasi livello di fiducia, il fatto che un account di rete sia controllato da un aggressore anziché da un utente onesto, mantiene lo stato del sistema sotto spoofing perenne.
Web spoofing
Il web spoofing consiste nel far credere ad un utente che sta visitando il sito web desiderato, con la pagina richiesta, mentre invece, ne guarda un'altra modificata. Questa tecnica fa un uso massiccio di script realizzati con il linguaggio JavaScript.
Supponiamo di visitare il sito www.acquisti.net; al momento della connessione al sito, la falsa pagina principale, residente sul server web attaccante e creata opportunamente simile all'originale, si colloca immediatamente tra il nostro browser web e le altre pagine richieste successivamente al server fidato: la finta pagina si comporterà, quindi, come un server proxy non voluto e non visibile. Così, l'attaccante, potrà vedere tutto ciò che vede il visitatore del sito: informazioni, moduli e password. Usando JavaScript, chi attacca, è in grado di reindirizzare la connessione, modificare la barra di stato del browser, disabilitare alcune funzioni dei menu del browser e impedire la visualizzazione del codice della pagina. La soluzione al problema è drastica, bisognerebbe disattivare, dal browser web, il supporto di JavaScript, ma soprattutto visitare solo siti veramente fidati.
Spoofing SMS
Lo spoofing SMS consiste nell'invio di SMS (Short Message Service) il cui mittente è falso oppure inesistente. Tutti gli operatori di telefonia mobile offrono il servizio di invio SMS attraverso appositi Gateway SMS raggiungibili via modem. È possibile collegarsi via telefono a questi gateway ed ottenere il servizio di invio SMS attraverso uno specifico protocollo di comunicazione. Due sono i protocolli usati per comunicare con i gateway SMS:
- TAP (Telematic Application Program)
- UCP (Universal Computer Protocol)
Il secondo protocollo è quello vulnerabile allo spoofing poiché i pacchetti di tipo UCP si possono modificare facilmente. In rete esistono diversi programmi per comunicare con i server SMS, il più diffuso è SMS Client. Per fortuna ormai quasi tutti i server che provvedono allo smistamento e all'instradamento degli SMS sono immuni a questo tipo di attacco.
Non sempre lo spoofing è dannoso
Un vecchio adagio cita: non tutti i mali vengono per nuocere; questo vale anche per la tecnica di spoofing. A volte lo spoofing su un livello è adoperato come semplice riferimento ad un altro livello. Facciamo un esempio: molti server web con nomi indipendenti possono essere ospitati usando un'unica installazione di Apache (l'application server più diffusa sui sistemi Unix like); nonostante il nome DNS di ciascuno degli host virtuali si risolva nello stesso indirizzo IP, Apache sa di quale server deve occuparsi poiché il protocollo HTTP rivela nuovamente l'indirizzo DNS che l'utente s'attende di ricevere.
I protocolli di livello inferiore si aspettano che informazioni di questo tipo vengano perdute nel processo di risoluzione DNS; avendole invece reintrodotte, HTTP fornisce al server un mezzo per sottoporre a spoofing gli host virtuali in qualità di unico e vero server attivo, indirizzabile su un determinato indirizzo IP.
Conclusioni
Lo spoofing è sempre intenzionale, ma di fatto, cattive configurazioni e piccole disattenzioni nella propria rete possono causare lo stesso effetto di un attacco deliberato. Gli attacchi subdoli, come lo spoofing, sono molto più blandi di quelli manifesti. In questo senso lo spoofing ha un enorme vantaggio rispetto alle vulnerabilità vere e proprie, quindi richiede maggiore attenzione e applicazione per difendersi efficacemente.