Memory (live) analysis with Google!
Mi affascina da sempre la Computer Forensics e proprio per questo mi sono deciso ad intraprendere una piccola analisi della memoria del mio computer.
Dopo aver compilato il programma per il dump live della memoria su VISTA (poco importa se troverò il footprint del programma in memoria), lo faccio girare in una shell con diritti di amministratore, ritrovandomi alla fine del processo i miei bei 3 Gbyte di file su disco.

Operazione abbastanza veloce e, giustamente, alla fine del dump il programma mi fornisce anche l'hash del file (necessario in un'indagine forense).
Ma adesso cercare qualche cosa all'interno di un file così grande è come cercare un ago in un pagliaio! La prima cosa (e anche quella più banale ahimè) che mi viene in mente è di cercare qualcuna delle mie innumerevoli password. Hai visto mai che qualche applicazione lascia le password in chiaro in memoria?
Ovviamente esiste sempre una finestra temporale abbastanza piccola (si spera) in cui questo è vero, ma di solito si cerca di azzerare sempre le zone di memoria delle password proprio per evitare analisi di questo tipo. La ricerca va avanti nel mega-file ed ecco i programmi incriminati:
GMail e Google Analytics
Le mie password in chiaro sono presenti nelle URL di accesso sia a GMail (in una prima analisi) che in Google Analytics (con un secondo dump) con il parametro "&passwd=miapassword". Qui sotto potete vedere le schermate ottenute con WinHex e le porzioni di memoria che contengono le URL di autenticazione :


Conclusione ovvia, poiché utilizzo molto spesso le due applicazioni incriminate e la probabilità di trovare in memoria le URL di autenticazione è sicuramente più alta rispetto ad altre applicazioni.
Ma qualche considerazione di sicurezza la possiamo sempre fare:
- Considerare le URL sopra indicate come pattern di ricerca in memoria mi sembra una buona strategia di ricerca delle password applicative di BigG e se consideriamo che la password della posta elettronica apre tante altre porte...
- Perché non calcolare l'hash della password tramite JavaScript e inviare alla parte server solo l'hash (e salt e tanto altro) e non la password in chiaro? In questo modo si minimizzerebbe il tempo in cui la password sarebbe in memoria ed inoltre sarebbe più difficile trovare dei pattern (come la URL nelle figure) identificativi per la ricerca di password. Un conto è ricercare la URL e risalire alla password, un altro è cercare le tracce della funziona JavaScript che calcola l'hash della password o trovare l'hash.
- Per effettuare il dump della memoria bisogna avere i diritti di amministratore sulla macchina. Ma questa è una condizione necessaria ma non sufficiente per trovare le altre password applicative, come per esempio la password di accesso alla posta elettronica.
- Mi chiedo se non esistano delle API specifiche per l'azzeramento delle aree di memoria in JavaScript (ma banalmente basterebbe riscrivere la password "n" volte con pattern casuali). Anche qui minimizzare il tempo di residenza della password in chiaro in memoria mi sembra un must non solo per le applicazioni fat-client, ma anche per quelle Web. E con tutto il JavaScript che c'è a livello client oramai possiamo considerare le applicazioni Web 2.0 delle Fat-Web-App.
- I tool che ho utilizzato per questo piccolo esperimento di Computer Forensic (anzi per essere precisi di Live Computer Forensics) sono: MDD: per il dump (live) della memoria su un sistema VISTA; WinHex: per l'analisi del dump file (e non solo...);
Ciao Roberto,
RispondiEliminaperchè limitarsi alle password, anche le chiavi possono essere ricercate:
“Getting a private key out of memory? That’s easy. Try looking for the PKCS identifiers.”
questo è un piccolo estratto da un post di Thomas Ptacek. In sintesi le chiavi non sono sperdute in mezzo a tutta quella memoria, accanto hanno sempre qualcosa di riconoscibile.
Mario da Roma.
"animal-engineering"
RispondiEliminaper questo c'è un termine più adatto inventato da Marcus J.Ranum Rubber Hose Cryptanalysis.
Mario