Mi succede spesso di tornare sull’argomento per il quale utilizzare un account limitato non significa per forza di cose essere al sicuro da malware e codici nocivi. Se è vero che un eventuale malware eseguito con diritti limitati non può fare danni evidenti al sistema, è altresì vero che i malware attuali non hanno bisogno di intaccare niente. L’unico interesse è rubare quanti piu dati sensibili possibili, tra cui password di siti bancari o PayPal ad esempio.

L’arrivare sul PC non è un problema. Possono arrivare sul PC attraverso exploit, pagine web malformate. Oppure possono sfruttare tecniche di ingegneria sociale. Ma entrambi i casi valgono sia su Windows Vista o 7, sia su OS X, sia su Linux.

Proprio per quanto riguarda Linux, fu utilizzata una tecnica simile qualche mese fa. Un falso screen saver, impacchettato in un file .deb e caricato su un sito web normalmente affidabile, conteneva in realtà un trojan programmato per lanciare attacchi DDoS.

Un evento pressocché comune su Windows, ma non perché Windows sia piu vulnerabile, bensì perché con un numero maggiore di utilizzatori è un bacino d’attacco con una percentuale di successo molto più ampia. L’utente scarica qualcosa che pensa sia affidabile, lo installa, ed il malware ha via libera. Una prassi comune su Windows, ma che funziona altrettanto egregiamente con Linux.

Con la differenza che, mentre su Windows c’è la possibilità (forse si, forse no, ma comunque la possibilità esiste) che l’antivirus intercetti il malware attraverso signature o euristica, chi utilizza Linux tende a ritenere a priori il proprio sistema operativo sicuro e invulnerabile. Un approccio sicuramente sbagliato, sia esso Windows, sia linux, sia OS X.

Per riflessioni più approfondite rimando ad un articolo che avevo pubblicato precedentemente. Quello che volevo in realtà sottolineare in questo breve post è come sia facile per un malware, eseguito anche a livello di account limitato, rubare le informazioni che vuole.

Un malware su Windows, anche su account limitato, potrebbe facilmente rubare le password digitate da tastiera grazie ad un API di Windows denominata GetAsyncKeyState. Questa funzione permette di sapere quale tasto della tastiera si sta premendo, anche da account limitato e senza privilegi particolari se non quelli standard (questo è solo un modo, chiaramente).

Su Linux è possibile fare altrimenti? Certamente, grazie alla funzione XQueryKeymap, esportata da XLib. Questa funzione, invocabile senza necessità di alcun privilegio particolare, permette di sapere quali tasti della tastiera si stanno premendo. In pratica molto simile alla API di Windows sopra citata.

Maggiori informazioni sulla funzione in questione possono essere lette in questa pagina di documentazione.

Nel video qui sotto, che ho registrato al volo, si può vedere come un esempio di keylogger – eseguito da un account limitato standard – sia in grado di catturare la password inserita nel sito web di PayPal. Un malware potrebbe fare altrettanto, inviando poi i dati catturati ad un server remoto.

Non è una novità, per chi programma in Linux queste cose sono conosciute da anni. È lo scopo finale che poi può cambiare. Un esempio di codice keylogger simile a quello utilizzato nel video è stato scritto da Magnus Weinberg ed è liberamente scaricabile nella sua pagina web.

Questo piccolo appunto vuol significare che non è Windows, o Linux, o OS X che fanno la differenza, ma è il buon senso dell’utente e un approccio al problema sicurezza che sia informato. L’idea del super sistema operativo immune ai virus e agli attacchi, qualunque esso sia, al giorno d’oggi stona un po’. Forse anche un po’ di piu.