Il pharming, pur essendo molto simile al phishing negli scopi, è una tecnica di truffa informatica molto più insidiosa e subdola in quanto il flusso informativo del client verso un server legittimo viene dirottato su falsi siti appositamente allestiti per carpire dati sensibili o per fungere da ulteriori teste di ponte.
Questa modalità d’azione ingannevole risulta molto pericolosa in quanto può colpire anche gli utenti dotati di evoluti strumenti di protezione: si tratta, infatti, di un metodo che manipola la risoluzione dei nomi degli host in rete, potendo agire sia sui server DNS distribuiti (caso più devastante) sia direttamente sugli utenti finali.
Indice degli argomenti
Il Domain Name Server: come funziona
Il servizio di rete noto come DNS (Domain Name Server), nato per aiutare l’essere umano a districarsi nei meandri del Web (è più facile ricordare il nome testuale di un sito piuttosto che il suo indirizzo IP in forma alfanumerica), è stato fondamentale per la diffusione di Internet anche tra i non addetti ai lavori.
Quando si digita l’URL (Uniform Resource Locator) ovvero l’indirizzo alfanumerico (www[.]nomeserver[.]it) di un sito Internet nella barra degli indirizzi del proprio browser, l’URL viene tradotto dal DNS in un indirizzo IP numerico (x.y.z.k), tipicamente secondo uno schema d’interrogazione gerarchico:
- quando viene digitato l’URL di un sito, viene interrogato il DNS locale sul computer;
- se le informazioni necessarie non risiedono localmente, il computer allora interroga il DNS dell’ISP (Internet Service Provider) cui è collegato e si procede secondo un processo di risoluzione indirizzi che coinvolge diversi name server.
I server DNS si classificano in quattro categorie:
- Resolver (l’intermediario diretto tra il client ed il server dei Nomi DNS);
- Root Name Server;
- TLD Name Server (Top Level Domain);
- Name Server autorevole.
Se la risoluzione dell’indirizzo non è presente sulla cache del Resolver, questi quattro server DNS si scambiano informazioni, ognuno per la propria competenza, per la consegna finale al client dell’indirizzo di dominio richiesto.
In particolare, il processo di risoluzione degli indirizzi funziona in questo modo:
- il client WEB invia una richiesta al Resolver DNS (qual è l’IP di www.google.com?);
- il Resolver DNS risponde con i dati memorizzati in cache, altrimenti:
- invia una richiesta a un nameserver root DNS che lo indirizza verso un nameserver TLD in base all’estensione del dominio richiesto (.com);
- segue l’invio di una richiesta al TLD Name Server indicato al punto a), che a sua volta indirizza il Resolver DNS verso un DNS autorevole sulla base del nome di dominio (google.);
- segue un’ultima richiesta, da parte del Resolver, al DNS Name Server autorevole indicato al punto b);
- solo dopo aver ricevuto una risposta dal Name Server autorevole contenente l’indirizzo IP richiesto, il Resolver DNS invia la risposta definitiva al client WEB (l’IP di www.google.com è 216.58.206.36).
Questo meccanismo di risoluzione dei nomi alfanumerici in indirizzi IP può rappresentare, per l’appunto, l’anello debole sfruttato dal pharming.
Pharming: possibili scenari di attacco
In considerazione della gerarchia d’interrogazione descritta, un attaccante ha due possibilità d’azione per compiere una truffa basata sulla tecnica del pharming. Può colpire localmente la cache DNS di un PC oppure più a larga scala direttamente i server DNS distribuiti.
Primo scenario
Il malintenzionato deve infiltrarsi nel computer dell’utente per modificare i file di risoluzione DNS locale. Viene modificata la parte del sistema che determina quale sito Web è presente a un dato indirizzo prima ancora che la ricerca inizi su Internet.
L’utente colpito immette l’URL corretto, ma finirà su un sito falso. Tipicamente questo scenario richiede l’installazione preventiva di un malware nel computer della vittima attraverso, ad esempio, tecniche di malvertising o malspam, con l’obiettivo di contraffare il file hosts del computer o di modificare i DNS sui file di registro.
Il file hosts, lo ricordiamo, altro non è che un elenco di indirizzi alfanumerici risolti in indirizzi IP, archiviato in locale nel percorso: C:WINDOWSsystem32driversetchosts.
Il file viene utilizzato dai PC per gli accessi successivi senza dover richiedere l’indirizzo IP al server DNS. Una modifica non autorizzata degli indirizzi archiviati può di fatto reindirizzare il traffico verso il sito Web contraffatto piuttosto che verso quello ufficiale.
Il path della voce dedicata al DNS che può essere modificata, malevolmente, sul registro di sistema Microsoft Windows è il seguente: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/DhcpNameServer.
Secondo scenario
Il malintenzionato compromette la cache del server DNS, modificando le regole in essa archiviate in modo da reindirizzare il flusso informativo destinato ad un dominio legittimo verso l’indirizzo IP del sito Web farlocco.
Questo risultato, anche se più difficile da ottenere, può potenzialmente realizzarsi ad esempio:
- tramite un accesso diretto a un Resolver DNS per modificare le tabelle memorizzate in cache;
- attraverso delle tecniche di tipo DNS poisoning.
Il fatto principale che rende possibile un avvelenamento DNS è che il meccanismo distribuito per la risoluzione degli indirizzi è stato concepito fondamentalmente secondo un principio di fiducia senza opportune tecniche di verifica:
- i server DNS utilizzano come protocollo di comunicazione, a livello trasporto, l’User Data Protocol (UDP) che non prevede, a differenza del Transmission Control Protocol (TCP), nessun processo di verifica identità sia nella fase di apertura di una comunicazione (handshake) che durante la gestione effettiva delle query;
- un Resolver DNS salverà (sulla fiducia!) le risposte alle richieste di indirizzi IP per un certo periodo, il cosiddetto tempo di vita (Time To Live) e durante questo lasso di tempo, potrà rispondere alle query future molto più velocemente, bypassando il tipico processo di risoluzione DNS.
Pertanto, gli aggressori possono “avvelenare” (poisoning significa, per l’appunto: avvelenamento) la cache di un Resolver DNS impersonando, ad esempio, un Name Server autorevole e falsificando il messaggio di risposta UDP dopo l’invio di una prima richiesta.
In questi casi, per interdire i Name Server legittimi coinvolti, la loro velocità di risposta alle richieste originali può venire notevolmente ridotta tramite tecniche di attacco di tipo NXDOMAIN (dominio inesistente) oppure con attacchi DDoS (Distributed Denial of Service) interrompendo il regolare flusso informativo del servizio di risoluzione, generando traffico di rete anomalo.
DNS Poisoning: anatomia di un attacco locale
Questa tipologia di attacco informatico può essere realizzata con un’implementazione MitM (Man in the Middle) tramite ARP Spoofing.
In pratica, il protocollo di servizio ARP che risiede al livello datalink dello stack protocollare ISO/OSI viene adoperato per associare gli indirizzi IP di ogni calcolatore con gli indirizzi MAC univoci delle relative schede di rete, in modo da indirizzare il pacchetto IP al corretto calcolatore di destinazione della stessa sottorete (il pacchetto IP verrà incapsulato in un pacchetto di livello datalink con indirizzo target il MAC del calcolatore di destinazione).
Nel caso in cui il pacchetto viene indirizzato ad un computer di una sottorete diversa, il protocollo ARP dovrà ricavare il corretto indirizzo MAC del calcolatore gateway. Ogni calcolatore mantiene, per un tempo prefissato sulla propria ARP cache, una tabella di corrispondenza tra indirizzi IP ed indirizzi MAC redatta in base alle interrogazioni precedenti.
L’ARP Spoofing consiste, quindi, nel falsificare queste corrispondenze associando, ad esempio, l’indirizzo IP del client legittimo con l’indirizzo MAC di un client malevolo.
Lo scenario che segue presuppone che il PC dell’attaccante si trovi sulla stessa LAN del PC target. Questa circostanza non è del tutto improbabile, perché si potrebbe ottenere l’accesso ad una postazione della rete locale attraverso lo sfruttamento di una vulnerabilità o la violazione di credenziali estendendo successivamente l’attacco a tutta la LAN.
Un attaccante (con IP x.y.z.74) intercetta un canale di comunicazione tra un PC client (con IP x.y.z.90) e un server Web (www[.]sitovero[.]com, con IP a.b.c.d) e fa in modo di ingannare il client impersonando il server (il Client viene dirottato verso l’attaccante riconosciuto con l’indirizzo IP appartenente al Server (a.b.c.d.)):
- l’attaccante crea sul proprio PC un file hosts associando il sito Web legittimo (www[.]sitovero[.]com) al proprio indirizzo IP x.y.z.74;
- l’attaccante imposta un server Web sul proprio PC con indirizzo IP x.y.z.74 e allestisce un sito Web clone;
- l’attaccante agisce in modo che i pacchetti IP inviati al server legittimo vengano inoltrati sul proprio PC modificando gli indirizzi MAC nella tabella ARP del client ed impersonando il server (l’indirizzo MAC del client malevolo viene associato all’indirizzo IP del server a.b.c.d);
- l’attaccante intercetta tutte le richieste DNS, risolvendole tramite il proprio file hosts prima che vengano inoltrate al Resolver legittimo. Al client richiedente viene così mostrato il sito WEB clone.
Pharming: come difendersi
Per difendersi dal pharming, oltre che affidarsi a servizi DNS fidati, la cosa più importante è la prevenzione e l’attenzione, riducendo al minimo le possibilità di essere infettati da malware che possano spianare la strada ad un successivo attacco di reindirizzamento verso siti dannosi.
Tra i consigli di buona pratica per privati e aziende si possono segnalare i seguenti:
- prestare particolare attenzione alla protezione delle impostazioni DNS locali. Le impostazioni della cache DNS sul proprio PC andrebbero comunque, opportunamente gestite non solo per evitare possibili manipolazioni ma anche per nascondere abitudini di navigazione e talvolta per risolvere problemi tecnici. Allo scopo per i sistemi Windows vengono in aiuto i seguenti comandi da shell:
- ipconfig /displaydns per visualizzare la cache
- ipconfig /flushdns per cancellare la cache
- usare un Internet Service Provider affidabile. Gli ISP dovrebbero adoperare dei servizi DNS che prevedano un’intercomunicazione con metodi di autenticazione. Il protocollo DNSSEC (Domain Name System Security Extensions) ad esempio nasce con lo scopo di risolvere alcuni dei problemi evidenziati, utilizzando, come fanno i protocolli TLS/SSL, la crittografia a chiave pubblica per verificare l’integrità e autenticare la legittimità del flusso informativo DNS;
- utilizzare browser aggiornati per la navigazione sicura:
- è possibile fare una verifica sui server DNS in uso con un test sul proprio gateway;
- è possibile verificare se il proprio browser supporta la crittografia del Server Name Indication e dei certificati TLS durante le connessioni alle pagine web e se il DNS resolver in uso è di tipo DNSSEC;
- fare attenzione alle URL dei siti che si visitano. L’Uniform Resource Locator è un indirizzo costituito da più elementi. Uno dei metodi più frequentemente usati dai cyber criminali è quello di falsificare i collegamenti a questi URL. Ad esempio, per l’indirizzo https://www.cybersecurity360.it:
- https rappresenta il protocollo che determina il tipo di servizio offerto dal server (HyperText Transfer Protocol over Secure Socket Layer);
- www rappresenta la risorsa che specifica il tipo di contenuto del server (una pagina web);
- cybersecurity360 è il nome di dominio scelto dal proprietario e assegnato dal gestore adibito al servizio;
- it rappresenta il tipo di dominio assegnato. In questo caso identifica un dominio italiano.
Una buona prassi da seguire, infine, sarebbe quella di verificare prima quale sia l’indirizzo reale di un link, passandoci semplicemente sopra con il puntatore del mouse senza fare clic.