Hacking di uno strumento di crittografia per migliorare la sicurezza dei dati contenuti su una penna USB, perché “Paranoia is a virtue”

Hacking di uno strumento di crittografia per migliorare la sicurezza dei dati contenuti su una penna USB, perché “Paranoia is a virtue”

di Paolo Giardini – Marzo 2007

A volte capita di imbattersi in strumenti che risolvono problemi per i quali non si erano ancora trovate buone soluzioni.

Truecrypt è uno di questi strumenti. Semplice ed efficace e soprattutto Open Source può risolvere il problema di mettere in sicurezza il contenuto di supporti informatici portatili, come ad esempio le penne USB . Ma  capita anche che giocando possa venire fuori un’idea per impiegare in modo nuovo  uno strumento già di per se ottimo.

In questo articolo, pur non avendo pretese di estremo tecnicismo,  vorrei mostrare come si può utilizzare uno strumento “standard” in un modo non previsto dal suo creatore e con il pretesto di aumentare la sicurezza dei nostri dati  dimostrare che “Hacker”, almeno nel suo significato originale, non è sinonimo di “delinquente informatico.

Fare hacking” non implica per forza “bucare” un sistema. Un hacker è si una persona in possesso di notevoli conoscenze ma è anche dotata di fantasia e creatività, in grado di trovare soluzioni ed applicazioni nuove per ovviare ai problemi cui si trova di fronte.

Magari divertendosi pure.

Da tempo sono convinto assertore della necessità di aumentare la consapevolezza in merito alla importanza di proteggere i propri dati personali, siano essi le e-mail ricevute o spedite, la cronologia dei siti visitati, le password di accesso ai servizi online o i certificati digitali.

Purtroppo chi ha necessità di spostarsi, ad esempio per lavoro, non sempre ha a disposizione sistemi fidati o il proprio computer.

La soluzione più semplice è quella di utilizzare una penna USB installandoci i software necessari, in modo da lanciarli dalla penna stessa evitando così di lasciare tracce sul disco del computer che ci ospita.

Ovviamente questo non è sufficiente per garantire la sicurezza, ad esempio, dei dati trasmessi via rete. C’è anche da tenere presente che sul pc potrebbe essere installato un keylogger od un altro malware, situazione questa che renderebbe del tutto inutile ogni  precauzione, ma non è di questo aspetto che parleremo.

Torniamo ai nostri software. Dato che vogliamo utilizzare la nostra penna USB per navigare e leggere la posta senza lasciare tracce sul pc, suggerisco di  scegliere  Thunderbird, Firefox, putty e TOR. Sono tutti software dei quali esiste  una versione utilizzabile senza necessità di installazione, cosa che è quello che ci serve in pratica.

Esistono molti siti specializzati dai quali scaricare gratuitamente tutta una serie di applicazioni appositamente studiate o modificate per l’utilizzo da una penna USB.   Tralascio gli aspetti relativi alla configurazione e all’utilizzo di questi software per restare nell’ambito della trattazione ma generalmente, tutto quello che  è necessario fare per utilizzare uno di questi software è semplicemente copiarlo od estrarlo nella cartella che abbiamo scelto.

Merita due parole in più TOR, ovvero The Onion Router. Si tratta di un sistema Open Source che permette, tramite l’utilizzo della crittografia e di  server appositamente configurati, di navigare in forma anonima e quindi senza lasciare tracce, proteggendo così la nostra privacy. Una ottima applicazione di TOR è Torpark, un pacchetto che comprende TOR  e Firefox  già configurati  e pronti da utilizzare senza bisogno di installazione.

Bene, abbiamo scaricato e copiato nella nostra penna USB i programmi che abbiano scelto ed abbiamo verificato che funziona tutto. Possiamo stare tranquilli? Io non credo.

Pensiamoci un momento. E’  chiaro che  lasciare così in bella vista sulla nostra chiavetta programmi e dati non è bello.

Penso alle e-mail ma anche ai nostri certificati digitali installati su Thunderbird che, in caso di smarrimento, furto o dimenticanza della penna USB inserita nel pc, sarebbero alla mercé di chiunque.

Cosa possiamo fare?

Ci viene in soccorso Truecrypt con i suoi dischi virtuali criptati.

Truecrypt è un programma Open Source che  per mezzo di una semplice interfaccia, permette di creare su qualsiasi supporto, usando vari algoritmi, un file criptato che sarà visto, tramite il programma stesso, come un normale disco sul quale scrivere o cancellare file, esattamente  come faremmo su qualsiasi altro disco.

Basterà quindi creare un disco virtuale con Truecrypt e copiarci dentro i nostri programmi e i nostri dati.

Truecrypt ha due modalità di funzionamento, la prima prevede l’installazione sul sistema, la seconda è specifica per l’utilizzo su penna USB, eseguibile in modalità standalone senza bisogno di installazione. Procediamo con la creazione del nostro disco virtuale. Una volta scaricato il file compresso contenente Truecrypfigura1t ed averlo estratto sul disco fisso del pc lanciamo l’eseguibile truecrypt.exe (figura 1)

Per creare un disco virtuale sulla penna USB basta cliccare sul pulsante “create volume” e proseguire con il Wizard.   I dischi virtuali così creati potranno essere utilizzati solo dopo essere stati “montati” tramite l’interfaccia di Truecrypt. Già. Quindi dovremo comunque portarci dietro anche Truecrypt, altrimenti non potremmo riaprire il nostro disco virtuale. E questo fa scattare la paranoia. Se metto Truecrypt sulla penna sarà immediatamente evidente che c’è un file criptato. E qui invece scatta l’hacking 🙂

Voglio fare in modo che, anche entrando in possesso della mia penna, non solo non si possa accedere ai miei file, ma nemmeno sia possibile capire che c’è un volume criptato.

Utilizzeremo a questo scopo una tecnica di ingegneria sociale. Avrete notato  che difficilmente chi cerca qualcosa si accorge di  quello che ha sotto gli occhi, pertanto maschereremo i nostri file camuffandoli in modo che appaiano come qualcos’altro, nascondendoli quindi in una cartella dove ci saranno tanti altri file apparentemente simili.

Vediamo cosa ci serve. Ovviamente il file criptato, e altrettanto ovviamente il programma Truecrypt, che purtroppo per funzionare deve avere nella stessa cartella due altri file, truecrypt.sys e truecrypt-x64.sys.

Dovremo quindi  individuare un programma che si porti dietro molti file fra eseguibili, archivi, file di configurazione, ecc. fra i quali andare a mimetizzare i file necessari a Truecrypt. Ad esempio si può utilizzare  Prboom (figura 2) figura21che è la versione free del classico gioco Doom della ID Software che va benissimo perché si porta dietro un buon numero di file, può essere utilizzato senza installazione (quindi anche dalla penna USB) e ha la possibilità di espandere i livelli di gioco aggiungendo dei file di mappe aggiuntive. Il primo passo sarà dunque quello di creare il nostro file criptato dentro la cartella di Prboom assegnandogli un nome che si possa confondere facilmente con quelli già presenti. Un buon esempio potrebbe essere prdoom.wad.

Adesso dobbiamo camuffare i file eseguibili  di Truecrypt. Il semplice cambio di nome dell’eseguibile principale non basta perché rimane l’icona (una chiave su sfondo azzurro) e comunque i due file .sys non possono essere rinominati perché altrimenti l’applicazione non funzionerebbe.

Cominciamo dall’icona, faremo in modo di cambiare l’icona standard del programma con un’altra che lo faccia confondere fra quelle “legittime” di Prboom.

Procuratevi dunque un editor di icone, ad esempio.figura3

Aprite con il vostro editor di icone un file di prboom che abbia una icona che vi piace, selezionatela  e copiatela. (fig.3)

Aprite adesso, sempre con l’editor di icone, il file eseguibile di Truecrypt.

Selezionate la prima icona e cliccate sul pulsante “Editor”. Potete adesso selezionare l’icona da modificare.

Cominciando dalla prima potete cancellare l’immagine (menu edit, delete) quindi incollare  l’icona  copiata  (figura 4)precedentemente.

figura4Ricordate che ci sono più icone, una per ogni risoluzione supportata, pertanto sostituite tutte le icone o cancellate quelle che non vi servono selezionandole tramite il pulsante “view, add, remove icon” della barra degli strumenti. Potete ignorare i messaggi di avviso  relativi alla differenza del numero di colori nella palette, non influiscono sul risultato finale (figura 5).

Chiudete l’editor, quindi dal menu file cliccate su “Save executables”.

Abbiamo adesso il file  truecrypt.exe con la nuova icona.  Cambieremo quindi il suo nome scegliendone uno che possa  confondersi fra gli altri e per evitare che possa essere  lanciato, anche  per caso,  cambieremo oltre al nome anche l’estensione. Questo però ci obbligherebbe a rinominare il file ogni volta che lo vogliamo usare e a fare l’operazione inversa dopo averlo utilizzato.figura5

Lo fareste? Naaa…..Neanch’io 🙂

Ok, facciamo una cosa di mezzo. Utilizziamo come estensione .scr, si quella del salvaschermo che, come forse saprete, null’altro è se non un normale file .exe con un’estensione diversa che viene però riconosciuta come eseguibile da Windows. Io ho usato come esempio il nome “prboom.scr”.

Abbiamo finito? Non ancora. Ci sono ancora i due file .sys che ci tradirebbero con i loro nomi anche troppo esplicativi. Li cambieremo anch’essi con nomi che siano plausibili all’interno della cartella del nostro gioco.

Io ho scelto “prbsav11.dsg” e “prboom_server.cfg”. I file .dsg sono file di salvataggio del gioco, quindi è perfettamente plausibile trovarne nella cartella.

Inoltre esiste nel pacchetto di Prboom un file che si chiama prboom_server.exe che pure  rende plausibile l’esistenza un file di configurazione. La cosa assolutamente da non dimenticare è che il nuovo nome di questi file deve avere lo stesso numero di caratteri del nome originale, altrimenti rischiate di rendere inutilizzabile il programma.

Certamente qualcuno potrebbe a ragione obiettare che cambiando i nomi di questi file Truecrypt difficilmente potrà funzionare. Quindi dovremo fare in modo che lanciando truecrypt.exe, questo vada a cercare non più i file con il nome originale ma quelli con il nome modificato.

Lo faremo andando a modificare le chiamate a questi file direttamente “dentro” all’eseguibile, utilizzando un Editor Esadecimale.

Ok, recuperate un editor esadecimale, ad esempio XVI32 (www.chmaas.handshake.de)  e aprite il vostro file eseguibile truecrypt.exe. Usando le funzioni di search & replace sostituite tutte le occorrenze di truecrypt.sys e truecrypt-x64.sys rispettivamente con i nuovi nomi che abbiamo scelto, nel nostro caso prbmsav11.dsg e prboom_server.cfg.  (figura 6).figura6

Salvate il file. A questo punto possiamo copiare nella penna USB, all’interno della cartella di prboom i file che abbiamo “hackerato” e potremo ammirate il risultato: abbiamo una penna USB che sembra contenere un gioco. Soltanto noi sapremo che lanciando quel determinato file potremo accedere al nostro disco virtuale criptato e ai nostri dati.

Il trucco sta nel trovare un programma che abbia le caratteristiche necessarie per mascherare dati e programmi e usare un po di fantasia per gestire il tutto.

Un ulteriore livello di protezione potrebbe essere creato impedendo l’esecuzione di truecript.scr nel caso venga lanciato senza un parametro od una password da noi impostata. Magari di questo parleremo in un altro articolo.figura7

Buon divertimento!

In rete

Truecrypt: http://www.truecrypt.org/

Applicazioni che non necessitano di installazione: http://www.portableapps.com; http://www.winpenpack.com;

http://pensuite.wininizio.it/ita/

Prboom: http://prboom.sourceforge.net/

Torpark: http://www.pcauthority.com.au/download/torpack-1507.aspx

Editor esadecimali: http://www.chmaas.handshake.de; http://www.funduc.com

Editor di icone:  http://www.chmaas.handshake.de; http://www.easyapps.com/

hacker ed hacking: http://it.wikipedia.org/wiki/Hacker;

http://it.wikipedia.org/wiki/Hacking

Terminologia

editor esadecimale: strumento che permette di editare un file eseguibile (ma non solo) direttamente nella sua forma binaria, anche non possedendo il sorgente originale.

Ingegneria sociale: lo studio del comportamento di una persona e la sua manipolazione al fine di carpire informazioni, convincerla a compiere una data azione, sviarla da un determinato obbiettivo.

Keylogger: dispositivo hardware o software in grado di intercettare tutto quanto un utente digiti sulla tastiera del computer.

Cosa vuol dire “Hacking”?
Hacker è un termine che sta significare “abile programmatore” ma che è diventato nell’uso corrente come sinonimo di  “qualcuno che cerca di entrare nei sistemi informatici” con lo scopo di danneggiarli o solo per fare vedere quanto sia bravo, grazie ai media che lo  usano a sproposito confondendolo con  “Cracker”.

Un “good hack” è una brillante soluzione ad un problema di programmazione  e “hacking” è l’azione che si effettua per metterla in atto .

In senso più; esteso, si può parlare di “hacking” ogni qualvolta si utilizza qualcosa in modo non convenzionale per risolvere un determinato problema, oppure si trova una soluzione logica seguendo un procedimento fuori dagli schemi.