keylogger
adv

L’esempio di Eye Pyramid, operazione della Polizia Postale risalente all’anno scorso, ci mostra come certe minacce informatiche non siano relegate nel mondo televisivo. Eye Pyramid è un keylogger, sistema utilizzato per rubare dati a personaggi di spicco della politica italiana

Con il termine keylogger si indica un dispositivo fisico o, più frequentemente, un software capace di interporsi tra l’evento pressione del pulsante tastiera e l’apparizione del carattere a monitor, registrando l’avvenuto.

Di per sé tale sistema non è strettamente legato al mondo del furto dati, a volte può essere utilizzato con funzione di parental control, altre volte, in ambito aziendale, per monitorare le attività dei dipendenti, altre volte ancora è utilizzato da partner gelosi.

Quale che sia l’uso, la vendita sul mercato è legittima, a meno che non venga utilizzato con intenti criminali.

La lunga strada dalla tastiera al monitor

Il processo con cui Windows gestisce gli input da tastiera è complesso e prevede diversi passaggi nel mezzo dei quali è possibile inserirsi. Una rapida scorsa a tale funzionamento, con le opportune semplificazioni, può aiutare a comprendere meglio quali attori ci siano in gioco e come certi attacchi avvengano.

Il computer non funziona con un unico cervello, anche la tastiera ne ha uno, un piccolo processore 8042 che si occupa dei pulsanti premuti. Ogni tasto corrisponde ad una coppia di codici, scan code, che non hanno nulla a che fare con il valore riportato su tastiera ma, storicamente, furono mappati da IBM.

Si usano 2 codici perché uno viene generato in fase di pressione ed uno in fase di rilascio, ciò aiuta le combinazioni dei tasti (e.g.: CTRL+C, CTRL+V, SHIFT+CTRL+S, etc.).

La tastiera ha anche un buffer di memoria, uno spazio dove risiedono i codici dei pulsanti premuti in attesa di elaborazione, che non sempre avviene in maniera perfettamente sincrona.

Il computer, inoltre, ragiona su tipi di messaggio diversi da quelli forniti dalla tastiera e, quindi, come avviene praticamente per tutte le periferiche, si avvale di un ulteriore componente per la traduzione: il driver.

All’arrivo di un messaggio viene generato un segnale per catturare l’attenzione dell’elaboratore: l’interrupt. L’interrupt viene intercettato da specifiche funzioni filtro che eseguiranno, di conseguenza, delle operazioni. Questo processo è detto hooking.

I codici elaborati saranno poi dirottati alla finestra attiva, quella su cui abbiamo il focus con il mouse.

All’interno di questa architettura ci sono altri spazi di memoria, contenenti lo stato della tastiera con lo storico dei tasti premuti, questi vengono utilizzati per aiutare la gestione del multitasking.

Gli anelli deboli

I keylogger possono essere applicati in vari punti nella struttura di comunicazione. Per diversi step sono già stati implementati sistemi di intrusione, per altre fasi non ancora.

I keylogger hardware, di solito, sono piccole componenti che possono essere agganciate direttamente alla tastiera o al cavo (soluzione più diffusa) o, addirittura, essere posizionati all’interno del computer.

Questi sfruttano gli eventi di pressione del tasto ed il buffer di tastiera. Un esempio di dispositivo collegato al cavo della tastiera è KeyGhost USB Keylogger.

I sistemi software, invece, utilizzano varie tecniche e si dividono in:

  • User mode: più semplici da creare e da individuare, i più frequenti sfruttano le seguenti dinamiche
  • Hook di sistema: sono funzioni filtro con librerie dinamiche, note come dll, a sé stanti; esse intercettano i segnali e rigirano i dati ad applicazioni malevole. In tal modo tutti i tasti premuti verranno intercettati. Per gli antivirus sono facili da riconoscere grazie alla presenza delle suddette dll estranee.
  • Interrogazione dello stato della tastiera: sono sistemi che sfruttano gli spazi di memoria interni al PC che salvano le sequenze di tasti premuti, richiedendo periodicamente le informazioni in essi contenute. In questo caso non ci saranno moduli addizionali, come nel metodo precedente, ma potrebbero non essere intercettati tutti i tasti. Il malware si può identificare monitorando i processi chiamati da tastiera. Esistono anche utility, come IrpTracker, che consentono di fare quest’operazione manualmente.
  • Kernel mode: sfruttano i driver per modificare le funzioni di filtraggio, dichiarandosi come dispositivi verso cui direzionare il flusso dati o, addirittura, sostituendosi ai driver stessi. Possono essere virtualmente irrintracciabili e forniranno quasi sempre sequenze di tasti complete al malintenzionato. Di contro, questi sono sistemi molto difficili da sviluppare perché richiedono una profonda conoscenza del sistema operativo e dei driver da esso utilizzati.

Sotto il vetro del touchscreen

Gli smartphone, soprattutto Android, contengono dispositivi che non sono direttamente prodotti dalla casa madre: sensori di orientamento, touchscreen, lettori NFC, caricabatterie wireless, etc. Tali hardware sono prodotti da aziende fornitrici, le quali dotano il committente anche dei relativi driver.

I driver di componenti interne al dispositivo vengono considerati automaticamente affidabili e, di conseguenza, non vengono sottoposti a controlli di integrità, a differenza di quanto avviene per i driver “pluggable” USB.

Il driver di un touchscreen ha un canale diretto di comunicazione con il touch controller che gestisce i segnali dello schermo (resistivo o capacitivo), pertanto, tramite i sistemi visti prima di interrupt e scrittura in registri di memoria, esso può leggere le pressioni delle dita e, con i dati sullo stato del telefono, derivare quanto scritto.

Se il display con relativo driver viene rimpiazzato da un componente adulterato, è facile intuire quanto possa diventare insidiosa la minaccia.

Oltre al furto di dati, un attacco può essere compiuto anche simulando pressioni sullo schermo, in modo da installare, con la giusta sequenza, app nocive. Saranno introdotte, in tal modo, vulnerabilità nel sistema che possono poi sfociare in un exploit con il quale un utente malevolo, da remoto, potrà agevolmente prendere il controllo del dispositivo.

Un team di esperti dell’università di Ben Gurion del Negev ha simulato questo tipo di attacco chip-in-the-middle con un comune micro controller ATmega328, leggasi Arduino, delle dimensioni di 4x4x1mm. Esistono processori più potenti e maggiormente miniaturizzati.

Il codice maligno è eseguito direttamente dalla CPU in questo caso; si ha, così, un fileless attack che non può essere identificato da nessun antivirus.

Smartphone Android differenti usano componenti diverse per assolvere alla medesima funzione, sebbene l’architettura di funzionamento sia la stessa. Tanta varietà rende difficile testare, distribuire ed installare patch per le vulnerabilità trovate nei vari driver.

Dinamiche di contagio

I keylogger software spesso sono installati con trojan. Possono attivarsi, ad esempio, aprendo allegati di e-mail oppure tramite l’esecuzione di uno script presente in qualche pagina web. Quelli hardware potrebbero essere installati da riparatori di computer o chiunque abbia accesso fisico alle macchine. Le dinamiche d’installazione, però, in questo caso, sono più complicate.

Per quanto riguarda gli smartphone, invece, il caso principe è quello dello schermo rotto. Secondo uno studio del 2015, più del 50% degli utilizzatori di smartphone ha rotto lo schermo almeno una volta. Spesso i ricambi originali sono costosi e si potrebbe cedere alla tentazione di acquistare componenti “compatibili” e più a buon mercato su internet o ci si potrebbe avvalere di riparatori che utilizzano tali componenti.

Conclusioni

Sicuramente non è semplice difendersi dalla moltitudine di minacce presenti oggigiorno, specie se consideriamo che, a quelle informatiche, si affiancano quelle legate ai dispositivi elettronici.

Volendo limitare al minimo i rischi, si dovrebbero isolare totalmente le apparecchiature, come accade nelle strutture militari per i sistemi più sensibili. Affidandosi al buon senso, nella vita quotidiana, le armi cui ricorrere possono essere:

  • Mantenere gli antivirus sempre aggiornati, dal momento che, nei loro database, hanno i keyloggers conosciuti e le procedure per isolarli.
  • Evitare driver di provenienza sconosciuta scaricati da siti non affidabili, potrebbero funzionare ma, al contempo, fare più di quanto sia loro richiesto.
  • Evitare centri assistenza non fidati per la riparazione dei computer e degli smartphone. Lo stesso vale per il fai da te con componenti non originali.
  • Preferire sistemi di autenticazione che sfruttino i token (one-time password). In tal modo, anche se rilevata, la password sarà inutile.
  • Si potrebbe usare anche la tastiera virtuale, ma risulta scomoda e, comunque, le informazioni sarebbero tracciabili in altri modi.
  • Esistono software in grado di tracciare programmi di keylogging ma, anche questi, presentano una complessità di gestione.