5. Analisi forense di reperti informatici per il reato di pedopornografia:
5.5. eMuleForensic: un nuovo strumento
5.5.3. Formato di output per ogni reperto
Il programma eMuleForensic procede quindi a trasformare i file binari elencati in un file xml, la cui struttura è definita dal seguente XMLSchema.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.emuleforensic.com"
targetNamespace="http://www.emuleforensic.com" elementFormDefault="qualified">
<xsd:element name="case" type="typeCase" /> <xsd:complexType name="typeCase">
<xsd:sequence>
<xsd:element name="info" type="typeInfo" /> <xsd:element name="search" type="typeSearch" /> <xsd:element name="userinfo" type="typeUserinfo"/> <xsd:element name="clientsMet" type="typeClientsMet" /> <xsd:element name="knownMet" type="typeKnownMet" /> </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="typeInfo"> <xsd:sequence>
<xsd:element name="code" type="xsd:string"/>
<xsd:element name="description" type="xsd:string" /> <xsd:element name="examinator" type="xsd:string" /> </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="typeSearch"> <xsd:sequence>
<xsd:element name="keyword" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence> </xsd:complexType>
<xsd:complexType name="typeUserinfo"> <xsd:sequence>
<xsd:element name="code" type="xsd:string"/> <xsd:element name="hash" type="xsd:string"/> </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="typeClientsMet"> <xsd:sequence>
<xsd:element name="client" type="typeClient" minOccurs="0" maxOccurs="unbounded" />
<xsd:attribute name="clients" use="required" type="xsd:integer"/>
</xsd:complexType>
<xsd:complexType name="typeClient"> <xsd:sequence>
<xsd:element name="code" type="xsd:string"/> <xsd:element name="hash" type="xsd:string"/>
<xsd:element name="nUploaded" type="xsd:integer" /> <xsd:element name="nDownloaded" type="xsd:integer" /> <xsd:element name="nLastSeen" type="xsd:string" /> </xsd:sequence>
<xsd:attribute name="id" use="required"
type="xsd:integer"/> </xsd:complexType>
<xsd:complexType name="typeKnownMet"> <xsd:sequence>
<xsd:element name="file" type="typeFile" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence>
<xsd:attribute name="files" use="required"
type="xsd:integer"/> </xsd:complexType>
<xsd:complexType name="typeFile"> <xsd:sequence>
<xsd:element name="code" type="xsd:string"/> <xsd:element name="date" type="xsd:string"/> <xsd:element name="hashfile" type="typeHash" /> <xsd:element name="filename" type="xsd:string"/> <xsd:element name="size" type="xsd:integer"/> </xsd:sequence>
<xsd:attribute name="id" use="required"
type="xsd:integer"/> </xsd:complexType> <xsd:simpleType name="typeHash"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[0123456789ABCDEF]{32}"/> <xsd:length value="32"/> </xsd:restriction> </xsd:simpleType> </xsd:schema>
<?xml version="1.0"?> <case xmlns="http://www.emuleforensic.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.emuleforensic.com schema.xsd"> <info> <code>CASO0001</code>
<description>Indagato: Mario Rossi (reperto 34)</description> <examinator>Michele Ferrazzano</examinator> </info> <search> <keyword>lino banfi</keyword> <keyword>antonello venditti</keyword> <keyword>wii</keyword>
<keyword>wii mario kart</keyword> <keyword>porno</keyword> <keyword>sex</keyword> <keyword>7yo</keyword> </search> <userinfo> <code>1</code> <hash>1237B460D90E0DAB8B82EA5399FF6FA6</hash> </userinfo> <clientsMet clients="2"> <client id="1"> <code>CASO0001</code> <hash>FAADA708A30EE7DB6A00B005E0B76FF8</hash> <nUploaded>0</nUploaded> <nDownloaded>17167506</nDownloaded>
<nLastSeen>Tue Sep 8 18:28:39 2009</nLastSeen> </client> <client id="2"> <code>CASO0001</code> <hash>E5C0EAD1EA0EA5195077EBF9216E6F73</hash> <nUploaded></nUploaded> <nDownloaded>3445450</nDownloaded>
<nLastSeen>Tue Aug 3 20:23:48 2009</nLastSeen> </client>
</clientsMet>
<knownMet files="2"> <file id="0">
<code>CASO0001</code>
<date>Tue Sep 8 18:28:39 2009</date>
<hashfile>77034E2B890ABC2EE8943954610FA48A</hashfile>
<filename>young girls baby sex 7yo porno cum.avi</filename> <size>35893040</size>
</file>
<file id="1">
<code>CASO0001</code>
<date>Tue Oct 6 21:59:37 2009</date>
<hashfile>1B5954D171240BBCDF57C7B3E50EF0DE</hashfile> <filename>[DivX]Il.diavolo.veste.prada.avi</filename> <size>744534366</size>
</file> </knownMet>
</case>
Da un output così composto, ottenibile nel giro di un secondo o poco più se l’attività di file sharing è stata particolarmente intensa, risulta evidente quali sono le ultime keyword utilizzate dall’indagato, i file scambiati, da quali utenti ha ricevuto e verso quali ha inviato.
Diventa molto semplice verificare il possesso di un file a contenuto illecito senza visualizzarlo. Supponiamo che l’utente abbia fatto sparire qualsiasi traccia del file “young girls baby sex porno cum.avi” tramite cancellazione sicura: disponendo di un archivio di hash, è possibile verificare se effettivamente quel file è stato in un momento precedente catalogato come file pedopornografico. Incrociando questa informazione con il dato relativo alle parole chiave utilizzate nella ricerca (nell’esempio proposto la keyword “young”) è possibile inferire un’ipotesi di ricerca e detenzione consapevole di materiale pedopornografico.
Utilizzando lo stesso criterio è altresì possibile identificare le circostanze in cui l’utente ha scaricato un file illecito per errore: si supponga ad esempio il caso in cui risulti presente un denominato “Pinocchio.avi”, che tra le keyword di ricerca risulti la parola “pinocchio” e che l’hash associato al file sia rinvenibile nel database dei file catalogati come pedopornografici: è possibile inferire un’ipotesi di ricerca di file non di tipo pedopornografico che si è invece poi tradotta in scaricamento di file cosiddetto fake che l’utente ha poi provveduto a cancellare.