• Non ci sono risultati.

5. Analisi forense di reperti informatici per il reato di pedopornografia:

5.5. eMuleForensic: un nuovo strumento

5.5.1. Specifica dei requisiti

5.5.1.1. Funzionalità del prodotto

L’obiettivo principale del software è l’estrazione di informazioni relativamente ai file condivisi, scaricati ed inviati ad altri utenti utilizzando il software di peer-to-peer eMule.

Tali informazioni sono presenti nei file di configurazione del software eMule installato su un sistema informatico, pertanto il programma dovrà operare dopo aver recuperato tutte le suddette informazioni disco per disco. Il recupero dei file prescinde dal software stesso in quanto l’attività di estrazione può essere compiuta sia direttamente dai dischi (opportunamente protetti in scrittura con un write blocker), sia da immagini forensi (prodotte con dd, EnCase…) nonché da un’immagine non forense (ad esempio, prodotta con software tipo Ghost o TrueImage).

Una volta ricavati tutti i file di configurazione, l’analisi e il successivo incrocio (nei casi di analisi che coinvolgono più sistemi appartenenti a soggetti diversi) deve risultare particolare semplice e veloce.

Deve essere possibile definire una timeline di possesso dei file a contenuto pedopornografico al fine di individuare per ogni coppia di utenti il primo che ne è entrato in possesso; per quanto possibile, nella coppia di utenti si dovrebbe identificare chi ha inviato e chi ha ricevuto296.

Aspetto fondamentale è poter identificare i file oggetto di scambio o comunque messi in condivisione, potendo stabilire se i file sono stati scaricati dalla rete o forniti dall’utente (ad esempio in quanto autoprodotti).

Un requisito auspicabile è la classificazione dei file automatica, potendo definire la natura del file senza necessità di visualizzazione da parte dell’operatore forense.

5.5.1.2. Tipologia di utenti

L’utente tipo del software è un consulente tecnico o perito informatico, dunque una figura con elevate competenze tecniche.

Altra tipologia di utente è un’agente di forze dell’ordine: in questo caso il livello di competenze atteso può essere estremamente variabile.

296 A tal proposito si precisa che eMule non mantiene dei log molto dettagliati, pertanto

bisogna prestare attenzione a non giungere ad una conclusione non supportate in maniera esplicita da dati relativi alle attività realmente verificatesi: le informazioni presenti nei file di configurazione sono di tipo aggregato, per cui in riferimento ad ogni utente remoto si hanno dati complessivi di upload e download, senza alcuna indicazione riguardo ai file effettivamente condivisi. Per maggior precisione si evidenzia che tale valore aggregato non permette neppure di capire quanti sono i file inviati e scaricati, pertanto l’unico modo per poter affermare con assoluta certezza l’attività compiuta prevede una situazione in cui due utenti abbiano solo un file in comune.

Oltre agli operatori forensi, il software potrebbe essere utilizzare da altre tipologie di utenti intenzionati a verificare le attività poste in essere con il software di file sharing: si pensi ad esempio ad un amministratore di sistema.

5.5.1.3. Vincoli e requisiti

Nessun vincolo implementativo è stato individuato.

Tenendo presente che l’utente tipo del programma dispone di elevate competenze tecniche, si può scegliere qualsiasi linguaggio di programmazione e dunque qualsiasi sistema operativo di utilizzo.

Considerato che nell’ambito dell’informatica forense sono particolarmente diffuse le distribuzioni forensi Linux, la scelta implementativa è ricaduta sul linguaggio C per sistemi Linux, producendo un’applicazione eseguibile a riga di comando. Un’ulteriore versione viene sviluppata in linguaggio Java, producendo un’applicazione completa di ambiente grafico che può essere utilizzata non solo con comandi testuali ma anche con l’utilizzo del puntatore.

Un’ulteriore versione, sottoprodotto della versione C per Linux, viene resa disponibile come servizio consultabile via web alla pagina http://www.emuleforensic.com, attraverso la quale è possibile ottenere il report in output utilizzando un qualsiasi computer connesso ad Internet, anche se non attrezzato con particolari software forensi. La versione web richiede l’upload dei file da analizzare che comunque non contengono dati sensibili: in ogni caso, al termine della computazione il dato viene immediatamente distrutto.

Requisiti funzionali:

 il sistema non deve alterare i reperti originali;

 il sistema deve essere eseguibile sia a riga di comando che mediante interfaccia grafica;

 il sistema deve essere in grado di convertire i file binari di log e di configurazione di eMule in un file XML297;

 l’output del sistema deve essere definito da un XMLSchema298 al fine di poter riutilizzare i dati anche in momenti futuri secondo modalità non attualmente previste; XMLSchema è l’unico linguaggio di descrizione XML che abbia già raggiunto la

297 a scelta di utilizzare XML come formato intermedio permette di mantenere la struttura

logica dei dati, facilitando un’eventuale attività di trasferimento dei dati in un DBMS.

298 XMLSchema, come la DTD, è un linguaggio di descrizione del contenuto di un

validazione ufficiale del W3C; definendo la struttura dell’output con XMLSchema risulterà più facile in futuro aggiungere ulteriori moduli che consentano di aumentare le funzionalità del programma relativamente all’elaborazione dei vari file di output; inoltre lo stesso XML può essere facilmente modificato con una trasformazione XSLT (ad esempio per essere stampato su carta in un formato più leggibile);

 il sistema deve permettere di verificare se i file sono stati scaricati o se sono stati immessi dall’utilizzatore;

 il sistema deve permettere di verificare se c’è stata attività di download di file, anche se questi fossero stati spostati o cancellati;  il sistema deve permettere di verificare se c’è stata attività di upload

di file, anche se questi fossero stati spostati o cancellati;

 il sistema deve permettere di classificare i file senza necessità di visualizzarli, comparando l’hash con un database di hash già disponibile; il sistema deve altresì consentire di incrementare il database degli hash noti;

 il sistema deve permettere di verificare i rapporti di scambio tra più sistemi coinvolti, rappresentando anche graficamente gli scambi avvenuti.

 il sistema deve produrre dei report delle attività svolte. Requisiti non funzionali:

 il sistema deve essere semplice da apprendere e da ricordare;

 il sistema deve portare a termine la computazione nell’ordine di qualche secondo;

 il sistema deve richiede la minima interazione possibile;

 il sistema non deve richiedere particolari risorse computazionali;  il sistema deve essere indipendente da altri programmi in

esecuzione.