Davide Gabrini, più noto tra gli hacker come Rebus, si occupa di criminalità informatica dalla fine degli anni '90, lavorando prima per la Polizia delle Comunicazioni, poi per la Squadra Reati Informatici della Procura di Milano, e oggi per la Polizia Scientifica. Collabora con il Laboratorio di Informatica Forense dell'Università di Pavia, afferente al Laboratorio Nazionale di Cyber Security. Svolge docenza in materia di digital forensics e sicurezza delle informazioni per Università, pubbliche amministrazioni e aziende private. Contribuisce allo sviluppo di Tsurugi Linux e, dal 2007, cura la newsletter quotidiana Rebus' Digest.
"In sintesi: la mitica soluzione all-in-one inseguita con alterne fortune da tanti produttori negli ultimi vent’anni."
Come molti altri tecnici del settore, recentemente ho avuto occasione di testare Belkasoft X, la rinnovata versione di Belkasoft Evidence Center. I propositi del prodotto di punta di Belkasoft sono molto ambiziosi: un’unica soluzione per l’acquisizione, l’analisi e la presentazione delle evidence digitali, che possa assistere l’operatore nell’estrazione dati da memorie, dispositivi mobili e servizi cloud, e che possa analizzare il contenuto di immagini fisiche, filesystem, aree deallocate, archivi logici ecc. individuando e interpretando gli artefatti prodotti dal funzionamento dei sistemi operativi e dall’uso dei software applicativi di maggior diffusione. In sintesi: la mitica soluzione all-in-one inseguita con alterne fortune da tanti produttori negli ultimi vent’anni.
Per il test ho utilizzato l’immagine forense di un PC Windows (prodotta dal fidato FTK Imager in formato EWF), l’estrazione fisica di uno smartphone Android Xiaomi operata da UFED4PC e le credenziali di un account Instragram. Successivamente ho incluso anche l’immagine binaria di un Samsung Galaxy.
La prima cosa che si apprezza ovviamente è un’interfaccia utente amichevole e intuitiva. Salto quindi i preliminari, ovvero la parte di creazione del caso, per mostrare lo screenshot relativo all’importazione della prima copia forense. Una volta indicato il file E01 da aprire, Belkasoft X mostra il partizionamento rilevato e consente di scegliere su quali aree del disco/immagine lavorare.
Il passo successivo consiste nell’istruire Belkasoft X su quali sono gli artefatti di interesse per l’indagine in corso, scegliendo tra un ampio set di possibilità suddivise per categoria:
Esiste naturalmente la possibilità di calcolare i più comuni hash sui file che saranno lavorati e provvedere al confronto automatizzato con eventuali hashset. Naturalmente è possibile utilizzare sia liste di elementi known bad, per individuare subito contenuti di interesse, che liste di known good, per permettere all’analista di “nascondere” dalla visualizzazione tutti quei file innocui e irrilevanti per l’analisi.
La parte Media offre la possibilità di analizzare il contenuto visuale delle immagini per individuare elementi rilevanti quali volti, armi, pornografia o il riconoscimento dei testi (utilissimo ad esempio per i numerosi screenshot di messaggi spesso conservati sui dispositivi mobili). Esiste poi una funzione di stima dell’entropia dei file che si prefigge di individuare eventuali contenitori cifrati.
Durante la scansione, gli elementi individuati e ricostruiti popolano progressivamente questa impressionante dashboard:
Se, nel corso dell’analisi di una sorgente, viene individuata all’interno un’ulteriore sorgente (ovvero un contenitore logico come un disco virtuale, o un backup di un telefono), questa viene automaticamente aggiunta alle sorgenti del caso e la sua analisi accodata ai task da eseguire:
Il task manager offre una visione immediata e intuitiva dell’avanzamento dei lavori, utile anche a scopi di audit. Quando un task necessità di informazioni da parte dell’operatore (ad esempio quando viene rilevato un contenuto cifrato per cui è necessario inserire la password pe procedere all’analisi del contenuto) l’alert “Enter missing data” avvisa l’operatore di questa necessità e consente di inserire (quanto note) le informazioni mancanti.
In generale si ha una visione piuttosto dettagliata dei lavori in corso e alcune limitate possibilità di interazione (ho sfruttato la possibilità di interrompere task che si sono rivelati troppo onerosi in corso d’opera, ma avrei preferito la possibilità di metterli in pausa ed eventualmente riprenderli in un secondo momento senza doverli riavviare daccapo).
L’acquisizione dello smartphone Android tentata con Belkasoft X non è andata a buon fine: il modello in effetti presenta delle limitazioni imposte dal produttore che hanno reso problematica l’acquisizione anche con altri strumenti. Alla fine, però, sono rocambolescamente riuscito ad ottenere un dump fisico da UFED. BECX supporta diversi formati di immagine per i dispositivi mobili, incluso ovviamente il raw binario, e per fortuna anche il descrittore UFD del file binario di mio interesse.
Ne ho approfittato anche per importare l’immagine di un Samsung Galaxy S9 di cui avevo già svolto l’analisi con altri strumenti. Va segnalato che comunque Belkasoft X mette a disposizione diverse alternative per l’acquisizione da dispositivi mobili, anche avanzate, che includono ad esempio gli exploit per chipset MTK, il metodo basato su checkm8, l’estrazione filesystem da iOS mediante agent (disponendo di credenziali sviluppatore Apple).
Infine, l’importazione dell’account cloud, nel mio caso Instagram.
Qui ho dovuto appuntare una carenza: l’unico metodo di autenticazione proposto è tramite l’accoppiata nome utente e password, nessuna possibilità di importare token di sessione dall’esterno. Non è possibile operare via proxy, quindi serve un accesso a Internet diretto, e ho riscontrato inoltre che manca il supporto per la gestione dell’autenticazione a due fattori: l’account di interesse era configurato per ricevere OTP via SMS, ma BECX non prevede l’inserimento della OTP, limitandosi a riscontrare l’impossibilità di completare l’autenticazione con nome utente e password (sarebbe necessario a questo punto autenticarsi via browser, disattivare la 2FA e tornare a Belkasoft X per eseguire l’estrazione, ma sarà per un’altra volta).
Eccoci finalmente alla sezione Artefatti, che consente di visionare ciò che Belkasoft X ha individuato e interpretato, seguendo la struttura logica delle sorgenti (Structure), oppure accorpando tutti gli artefatti per categoria, indipendentemente dalla loro provenienza (Overview).
L’aggregazione dei dati georeferenziati è molto utile, soprattutto in combinazione con il filtro timeline che è sempre visualizzato nella parte alta dell’area di lavoro, però la mia macchina di analisi è offline, quindi…
…non posso vedere le coordinate GPS rappresentate sulle cartine di OpenStreetMap.
Sarebbe utile il supporto per delle mappe offline. Posso comunque agilmente esportare i dati in formato KML e vedermeli, ad esempio, con Google Earth.
Anche la gallery dedicata ai video è utile, ma potrebbe essere migliorata integrando il player inline nell’interfaccia base, così da evitare il noioso doppio click per ogni filmato da visionare:
La parte file system consente di sfogliare le sorgenti percorrendo gerarchicamente i filesystem presenti, come quasi tutti i software di analisi fanno (e chi non lo fa dovrebbe, senza appello). L’interazione coi file però è limitata, e i visualizzatori proposti potrebbero essere aumentati (oltre all’esadecimale, ad esempio, un’estrazione di stringhe e un’anteprima dei contenuti - almeno per formati universali come jpeg, pdf, office… - sarebbero assai apprezzabili).
Alcuni tipi di file (registro di Windows, Plist, database SQlite) possono essere poi analizzati con specifici moduli, richiamabili contestualmente, oppure inviati a VirusTotal per un riscontro (essendo offline, non ho verificato se sia possibile scegliere di mandare solo l’hash MD5 dei file, oppure se venga inviato comunque l’intero contenuto).
Un momento di difficoltà l’ho avuto aprendo la parte Chat, che avrebbe dovuto contenere qualche migliaio di messaggi WhatsApp provenienti da un Samsung Galaxy S9. Qualcosa non ha funzionato:
Per fortuna, il task manager ha tenuto traccia delle analisi effettuate, annotando anche le scansioni fallite e mantenendo un efficace log, per cui ho potuto almeno capire cosa fosse successo:
Purtroppo non ho saputo risolvere il problema. Trattandosi di un’acquisizione fisica, la chiave per la decrittazione del msgstore dovrebbe essere disponibile, e se mi fossi preso la briga di usare il modulo filesystem sono sicuro che avrei potuto isolarla, solo che… avrei dovuto comunque usarla con un tool alternativo, dal momento che BECX si è limitato a segnalare il task come fallito ma non mi ha richiesto l’inserimento della chiave, né offerto la possibilità di inserirla manualmente. Comunque sia, il recupero della chiave e il suo utilizzo per la ricostruzione intelligibile delle chat è proprio uno di quei task che voglio demandare ad un programma automatizzato, senza che debba preoccuparmene di persona, se non in casi eccezionali.
Ultima parola sulla reportistica: sono supportati tutti i formati di cui si può verosimilmente avere bisogno (testo, HTML, XML, CSV, PDF, RTF, Excel, Word, EML e, come anticipato, KML), ma la risorsa più preziosa è indubbiamente la possibilità di esportare l’intero database o parti di esso insieme a un viewer portabile, che per quanto mi riguarda è la soluzione definitiva a buona parte delle mie necessità di reportistica.
Giudizio finale
Trovo che sia stato fatto un grande lavoro, e che ci sia un bisogno 'disperato' di programmi come questo, che alleggeriscano il lavoro dell’analista e lo riportino a una dimensione umanamente affrontabile: abbiamo registrato negli anni un continuo aumento nella quantità di dati che dobbiamo analizzare, e le cose non potranno che proseguire in quella direzione, per cui è indispensabile potersi affidare a strumenti che siano in grado di fagocitare tanti e disparati dati per produrre analisi di alto livello, correlazioni, rappresentazioni visuali, filtraggi, aggregazioni e dedupliche… ma senza perdere la possibilità di scendere nel dettaglio a isolare il singolo record, parsare il singolo blob, spaccare in quattro il bit. E tutto questo nella concezione di BECX c’è: il grande lavoro fatto in questa direzione si percepisce e si apprezza.
In particolare ho apprezzato la facilità d’uso, dovuta all’interfaccia semplice e intuitiva, e l’esteso supporto per i formati sorgente e soprattutto per i numerosi artefatti di varia natura. Nel corso dei test, il programma si è mostrato molto stabile, ragionevolmente veloce nell’analisi e piacevolmente reattivo alle azioni dell’utente.
Ma proprio perché l’ambizione è altissima, tocca ammettere che rimane ancora tanto altro lavoro da fare. Per fortuna Belkasoft dimostra da anni di essere un’azienda alacremente attiva e attenta ad ascoltare le necessità degli utilizzatori: ne è una riprova il fatto che alcuni dei feedback che ho fornito dopo questo test sono già stati presi in considerazione e inseriti nella to do list dei prossimi miglioramenti, per cui sono convinto che un prodotto come BECX, per sua stessa natura, non sarà mai un’opera compiuta, ma sarà in perenne rinnovamento, che è esattamente ciò di cui abbiamo bisogno.
Ultima parola sul costo: non starei a pensarci troppo. Il costo del primo anno parte da 4.500 euro, per poi diventare 1.400 negli anni successivi. Magari pare tanto, ma se si fa il conto di quante ore/uomo consente di salvare un programma simile, si scopre che fa in fretta a ripagarsi e mantenersi.
See also