Deftcon 2012 - Michele Ferrazzano - Emule Forensic

1,124 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,124
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Deftcon 2012 - Michele Ferrazzano - Emule Forensic

  1. 1. 1emuleforensicMichele Ferrazzanomichele.ferrazzano@unibo.itDEFTCON 2012Torino - 30 marzo 2012Scenario normativo – Art. 600-ter c.p.Art. 600-ter – Pornografia minorileProduzione e commercio1. Chiunque, utilizzando minori degli anni diciotto, realizza esibizionipornografiche o produce materiale pornografico ovvero induceminori di anni diciotto a partecipare ad esibizioni pornografiche è punito[…]2. Alla stessa pena soggiace chi fa commercio del materialepornografico di cui al primo comma.
  2. 2. 2Scenario normativo – Art. 600-ter c.p.Art. 600-ter – Pornografia minorileDivulgazione (anche a titolo gratuito)3. Chiunque, al di fuori delle ipotesi di cui al primo e al secondo comma,con qualsiasi mezzo, anche per via telematica, distribuisce, divulga,diffonde o pubblicizza il materiale pornografico di cui al primocomma, ovvero distribuisce o divulga notizie o informazionifinalizzate all’adescamento o allo sfruttamento sessuale di minoridegli anni diciotto, é punito […]4. Chiunque, al di fuori delle ipotesi di cui ai commi primo, secondo eterzo, offre o cede ad altri, anche a titolo gratuito, il materialepornografico di cui al primo comma, è punito […]Scenario normativo – Art. 600-ter c.p.Art. 600-ter – Pornografia minorileIngente quantità5. Nei casi previsti dal terzo e dal quarto comma la pena è aumentata inmisura non eccedente i due terzi ove il materiale sia di ingentequantità.
  3. 3. 3Scenario normativo – Art. 600-quater c.p.Art. 600-quater – Detenzione di materiale pornograficoDetenzione1. Chiunque, al di fuori delle ipotesi previste dall’articolo 600-ter,consapevolmente si procura o detiene materiale pornograficorealizzato utilizzando minori degli anni diciotto, è punito […]2. La pena è aumentata in misura non eccedente i due terzi ove ilmateriale detenuto sia di ingente quantità.Scenario normativo – Altri aspettiArt. 600-quater.1 – Pornografia virtualePornografia virtuale e definizione1. Le disposizioni di cui agli articoli 600-ter e 600-quater si applicano anchequando il materiale pornografico rappresenta immagini virtuali realizzateutilizzando immagini di minori degli anni diciotto o parti di esse, ma lapena è diminuita di un terzo.2. Per immagini virtuali si intendono immagini realizzate con tecniche dielaborazione grafica non associate in tutto o in parte a situazioni reali, la cuiqualità di rappresentazione fa apparire come vere situazioni non reali.Art. 600-sexies – Circostanze aggravanti ed attenuantiEtà dei minori1. Nei casi previsti dagli articoli 600-bis, primo comma, 600-ter, primo comma, e600-quinquies la pena è aumentata da un terzo alla metà se il fatto ècommesso in danno di minore degli anni quattordici […]
  4. 4. 4KeywordsDivulgazioneProduzioneDetenzioneIngentequantitàIngentequantitàMinore anni 14600-terCommercio600-ter600-quater.1Pedopornografiavirtuale600-sexiesConsapevolezzaAnalisi per detenzione: workflowCopiaforenseCercare edestrarre fileVisionare fileVerificare datedi ultima letturaVerificareorganizzazionefile systemContare filepositiviconsapevoliImmagini:JPG …Video:AVI …CaselleemailArchivi:ZIP …Scompattare:JPG AVI …Calcolarehash fileAnalisi deilog del P2PFonte è ilP2P?Log P2P:eMule …CronologiawebIndividuarematerialeProvenienzaQuantificareClassificare
  5. 5. 5Analisi per divulgazione: workflowCopiaforenseCercare edestrarre fileVisionare filee classificareVerificare datedi ultima letturaVerificareorganizzazionefile systemContare filepositiviconsapevoliImmagini:JPG …Video:AVI …Archivi:ZIP …CronologiawebScompattare:JPG AVI …Calcolarehash file eclassificareAnalisi deilog del P2PDivulgati suP2P?Log P2P:eMule …CaselleemailQuantificareIndividuaredestinatariProfittoObiettivi dell’analisi forense1. Individuare e quantificare file a contenutopedopornograficoSe possibile, classificare il materiale per età dei soggetti raffigurati(possibilità di utilizzo di tecniche di riconoscimento automatico)2. Individuare le fonti3. Individuare elementi che consentano di determinare laconsapevolezzaKeyword di ricerca, organizzazione del materiale sul file system, datedi accesso, competenza dell’utente, utilizzo di software dianonimizzazione…4. Individuare elementi che consentano di determinare se c’èstata divulgazione e in che quantità
  6. 6. 6Obiettivi dell’analisi forense1. Individuare, quantificare e classificare i fileAttività più sempliceRicerca e conta dei file presenti sui supportiSe possibile, classificare il materiale per età dei soggettiraffiguratiTecniche di riconoscimento automaticoChi fa analisi forense è esperto di informatica, non di anatomia!Difficile stabilire con esattezza l’età (es: visi asiatici)Obiettivi dell’analisi forense2. Individuare le fontiFile sharingSiti internetEmailGruppi di chatCopia da altri supporti…Concentriamoci sul file sharing con eMule
  7. 7. 7Obiettivi dell’analisi forense3. Stabilire consapevolezzaFinora abbiamo parlato di elementi oggettiviIndividuare file presenti, contare, determinare la fonteLa consapevolezza è un concetto astrattoIl consulente tecnico si limita a mettere in evidenza elementi concretiIl giudice valuta gli elementi ed esprime il giudizioQuali elementi utili per determinare la (in)consapevolezza?Parole chiave di ricercaOrganizzazione dei file nel file systemDate di ultima lettura, ultima modifica e di creazioneCompetenze dell’utenteUtilizzo di software di anonimizzazioneNomi dei file (file fake)Obiettivi dell’analisi forense4. DivulgazioneNel caso del file sharing su P2P?La divulgazione di file è automatica ed incontrollabileAnche quando un file è ancora in scaricamento...…e magari non corrispondente ai propri interessi…Necessità di analizzare i log dell’applicazione
  8. 8. 8eMuleSoftware di file sharing su rete P2P (eDonkey, ibrida)Open sourceUltima versione 0.50a (eseguibile e codice sorgente)http://sourceforge.net/projects/emule/È il software più scaricato da sourceforge– oltre 500.000.000 di downloadFini forensiDal sorgente è possibile comprendere come vengono gestiti i filee i trasferimenti, procedendo alla ricostruzione dei fatti dopo chequesti si sono verificateeMule - I fileOgni file è identificato nella rete con un File IDHash MD4 (128 bit)Il nome del file non è identificativo del fileÈ utilizzato unicamente in fase di ricercaDopo aver individuato il file, eMule prende in considerazione il file-idassociato al file su cui si fa doppio clickIl nome del file su cui si fa doppio click sarà utilizzato anche comenome del file nel sistema in cui si scarica il file
  9. 9. 9eMule – I fileFile.txtSaluto.txtHanno lo stesso contenuto(cioè hanno lo stesso hash MD4)Hanno nomi diversi, sonosalvati/creati in giorni diversiIn eMule sono lo stesso fileFile.txtFile.txtNon hanno lo stesso contenuto(cioè non hanno lo stesso hash MD4)Hanno nomi uguali, sonosalvati/creati lo stesso giornoIn eMule sono file diversieMule - I file (ricerca)
  10. 10. 10eMule – I fileL’utente vuole scaricare il filecon hash466FFA817B36189DED61F383420D4F15Ecco la canzone che stavocercando. La scarico!Doppio clic sul file“Renato Zero –Spiagge.mp3”L’utente vuole la lista di file nelcui nome compaiono le parole“Spiagge” e “zero”Voglio scaricare la canzoneSpiagge di Renato ZeroRicerca con keyword“Spiagge zero”Cosa fa eMuleCosa pensa l’utenteeMule – I file (scaricamento)
  11. 11. 11eMule – I fileIl filename non è identificativo, né univocoFile con contenuti identici hanno stesso hash, ma possono avere nomi diversiRenato Zero - spiagge.mp3Renato_Zero-spiagge.mp3Vasco Rossi - Bollicine.mp313yo sex ass young preteen pthc raygold.zip[…]File con contenuti diversi hanno hash diversi, ma possono avere stesso nome12101AB43A95634538BCDE39283BCD4520482747BACDEEE324300987734AA34C3875CDE456AA121ABCDF4340989D45CD[…]12101AB43A95634538BCDE39283BCD45Renato Zero - spiagge.mp3eMule – I fileIl filename non è identificativo, né univocoLe ricerche di file si basano sul filename, ovvero sullapresenza nel nome del file delle parole chiave utilizzate infase di ricercaRischio di fake– Il filename e l’estensione non forniscono una rappresentazione delcontenuto– Esempio: il file “Pinocchio.avi” non necessariamente contiene uncartone animato; potrebbe trattarsi di un film di altro genere, di unbrano musicale, di un file zippato, di un video pedopornografico…
  12. 12. 12Effetti dei file fake• Utente Tizio• Ricerca con keyword “VascoRossi”• Doppio click su “DiscografiaVasco Rossi al 2011.zip• File scaricato con contenutopedopornografico------------------------------------------• Filename• Negativo• Hash/contenutopedopornografico• Positivo• Intenzione di ricercare materialepedornografico• No• Utente Caio• Ricerca con keyword “sexyoung”• Doppio click su “13yo sex assyoung raygold.zip• File scaricato con contenutopedopornografico------------------------------------------• Filename• Positivo• Hash/contenutopedopornografico• Negativo• Intenzione di ricercaremateriale pedornografico• SiEffetti dei file fakeTizio CaioPositivo Negativo
  13. 13. 13eMule – Gli utenti• Ogni istanza di eMule è identificata nella rete da uno User ID– Costituito da 128 bit– Generato casualmente al primo avvio di eMule– Simile ad un hash, ma non lo è– Scopi• Sistema dei crediti• Ogni utente mantiene traccia degli utenti remoti con i quali c’è statoalmeno uno scambio in download e in upload– Ogni utente conserva in un file (clients.met) l’elenco degli User ID deicorrispondenti remoti e il volume dello scambio• Scopo forense– Utilizzando opportunamente gli User ID e incrociando gli hash deifile è possibile ricostruire la divulgazione dei file utilizzandoeMuleeMuleForensic
  14. 14. 14Analisi forensesenza eMuleForensicRicerca di file nel disco• Indipendente dalla fonte– File sharing, siti web…• Identificazione dei file “positivi”– Visualizzazione del contenuto• Visualizzazione delle varie immagini e dei vari video• Con alcuni software di riconoscimento automatico– Parole chiave nel filename (metodo insufficiente)• Alcuni esempi: lolita, 9yo, 13yo, preteen, raygold…– Hash dei file• Calcolo del digest tutti i file presenti sul disco• Necessità di un database di hash di file positivi
  15. 15. 15
  16. 16. 16Analisi forense di eMuleutilizzando DEFT ed eMuleForensic
  17. 17. 17eMuleForensic• Semplifica e velocizza l’analisi forense per ricostruire leattività dell’utente di eMule– Analizza file di configurazione di eMule per evidenziare• Parole chiave utilizzate per la ricerca di file– Elemento forte per stabilire la consapevolezza, più del contenuto del file• File condivisi– Conoscenza di nome, hash, dimensione, data di ultima modifica dei file senzanecessità di visualizzarli• Utenti remoti con cui c’è stata comunicazione– Ricostruire relazioni di scambio tra utenti• File divulgati– Quantità di invii (quante volte e quanti byte, massima informazione disponibile)eMuleForensic• Semplifica e velocizza l’analisi forense per ricostruire leattività dell’utente di eMule– Output in formato XML• Linguaggio di markup, definisce documenti strutturati• Possibilità di incrociare dati di utenti diversi• La versione “base” è disponibile via web(http://emuleforensic.cirsfid.unibo.it) e nella distribuzioneDEFT 7.1.• In fase di sviluppo una versione Java portable checomprende anche analisi degli hash e analisi incrociata percostruire grafo delle relazioni
  18. 18. 18Analisi forense con eMuleforensicDetenzione e consapevolezza• File di configurazione di eMule– AC_SearchString.dat• Elenco di keyword di ricerca– Known.met• Filename– È possibile associare i filescaricati con le keyword utilizzatein fase di ricerca• Hash– Disponendo di un archivio di hashdi file positivi, è possibiledeterminare le informazionipresenti in un file senzavisualizzarne il contenutoFile “known.met” visualizzato con un editor esadecimaleFile “known.met” visualizzato con un editor di testoVari file (principale srchybrid/Packet.cpp)<known.met> ::= 0x0e <File details list><File details list> ::= DWORD <File details>*<File details> ::= 0x02 <Date> <File hash> <Meta tag list><known.v04.met> ::= 0x0e DWORD <File details v04>*<File details v04> ::= <Date> <File hash> <Part hash list> <Meta tag list><Date> ::= DWORD<File hash> ::= HASH<Part hash list> ::= WORD HASH*<Meta tag list> ::= DWORD <Meta tag>*<Meta tag> ::= 0x00 Undefined||= 0x01 <Meta tag name> HASH||= 0x02 <Meta tag name> <String>||= 0x03 <Meta tag name> DWORD||= 0x04 <Meta tag name> FLOAT||= 0x05 <Meta tag name> BOOL||= 0x06 <Meta tag name> BOOL Array||= 0x07 <Meta tag name> BLOB
  19. 19. 19Vari file (principale srchybrid/Packet.cpp)<Meta tag name> ::= WORD <Special tag>||= <String><eMule special tag> ::= 0x20 // Compression||= 0x21 // UDP client port||= 0x22 // UDP version||= 0x23 // Source exchange||= 0x24 // Comments||= 0x25 // Extended request||= 0x26 // Compatible client<String> ::= <String length> DATA<String length> ::= WORDDATA : Data of custom lengthDWORD : 4 bytes integerHASH : MD4 (16 byte)<Special tag> ::= 0x01 // name||= 0x02 // size: size of file||= 0x03 // type: Audio, Video...||= 0x04 // format: file extension||= 0x05 // Collection (depricated)||= 0x06 // Part Path||= 0x07 // Part Hash||= 0x08 // copied||= 0x09 DATA // gap start||= 0x0a DATA // gap end||= 0x0b // description||= 0x0c // ping||= 0x0d // fail||= 0x0e // preference||= 0x0f // port||= 0x10 // ip||= 0x11 // version||= 0x12 // tempfile||= 0x13 // priority||= 0x14 // status||= 0x15 // availability||= 0x16 // QTime||= 0x17 // Parts||= <eMule special tag>Analisi forense con eMuleforensicDivulgazione• File di configurazione di eMule– Preferences.dat• User ID dell’utente indagato– nell’esempio90257D2DB80E4CEC6D386092B0936F1D– Clients.met• User ID utenti remoti– Possibilità di determinare ilvolume di dati scambiati in uploade in download– Possibilità di incrociare questi duefile con il file known.met perdefinire le relazioni di scambioFile “clients.met” visualizzato con un editor esadecimaleX YI file scambiati tra X e Yappartengono all’insiemeHash(Known.met[X]) ∩ Hash(Known.met[Y])File “preferences.dat” visualizzato con un editor esadecimale
  20. 20. 20srchybrid/preferences.hstruct Preferences_Ext_Struct{uint8 version;uchar userhash[16];WINDOWPLACEMENT EmuleWindowPlacement;};srchybrid/ClientCredits.hstruct CreditStruct_29a{uchar abyKey[16]; // userhashuint32 nUploadedLo; // uploaded TO himuint32 nDownloadedLo; // downloaded from himuint32 nLastSeen;uint32 nUploadedHi; // upload high 32uint32 nDownloadedHi; // download high 32uint16 nReserved3;};struct CreditStruct{uchar abyKey[16]; // userhashuint32 nUploadedLo; // uploaded TO himuint32 nDownloadedLo; // downloaded from himuint32 nLastSeen;uint32 nUploadedHi; // upload high 32uint32 nDownloadedHi; // download high 32uint16 nReserved3;uint8 nKeySize;uchar abySecureIdent[MAXPUBKEYSIZE];};
  21. 21. 21Analisi forense con eMuleforensicAssociazione tra utenti– Possibilità di incrociare dati dei file– Preferences.dat– Clients.met– Known.metper definire le relazioni di scambioX YI file scambiati tra X e Yappartengono all’insiemeHash(Known.met[X]) ∩ Hash(Known.met[Y])Analisi forense con eMuleforensicAssociazione tra utenti(Clients.met)User-ID degli utenti remoti di X (Preferences.dat)User-ID di Y
  22. 22. 22Analisi forense con eMuleforensicAssociazione tra utenti(Clients.met)User-ID degli utenti remoti di Y (Preferences.dat)User-ID di XX conosce Y, Y conosce X => X e Y hanno scambiato dei fileAnalisi forense con eMuleforensicAssociazione tra utentiFile-ID dei file dell’utente XFile-ID dei file dell’utente YFile scambiato
  23. 23. 23eMuleForensic – EsempioeMuleForensic – Esempio<?xml version="1.0"?><case><info><timeStart>07/05/10-04:46:30</timeStart><code>001</code><description>Descrizione</description><examinator>Michele</examinator></info><search><keyword>fisting</keyword><keyword>printmusic</keyword>[…]</search><userinfo><code>001</code><userhash>90257D2DB80E4CEC6D386092B0936F1D</userhash></userinfo>
  24. 24. 24...<clients><client id="1"><code>001</code><hash>6C8AE577FD0EECCFB26E6EC57D246F78</hash><nUploaded>9625892</nUploaded><nDownloaded>0</nDownloaded><nLastSeen>Mon Dec 10 23:14:172007</nLastSeen></client>[…]</clients>...eMuleForensic – Esempio...<knownMet files="13706"><file id="0"><code>001</code><date>Fri Nov 30 17:20:06 2007</date><hashfile>851BD2CB7180B4795A8CC57E6F83AE68</hashfile><filename>lp061692.jpg</filename><size>145756</size></file><file id="1"><code>001</code><date>Thu Jan 4 12:36:08 2007</date><hashfile>71CA38BE0DB2EF9BBE85240D655105EA</hashfile><filename>NEW! pedo 9yo Tori 006 lsm kdqualitychildlover pthc kidzilla(2).mPG</filename><size>262223208</size></file>[…]</knownMet></case>eMuleForensic – Esempio
  25. 25. 25eMuleForensic – Esempio webeMuleForensic - Esempio
  26. 26. 26
  27. 27. 27• Incrociando gli output è possibile dedurre possibiliconnessioni tra due utenti.– Non ci sono dati chiari ed espliciti nei log– La funzione di incrocio dei dati non è attualmenteimplementata ma può essere realizzata in maniera moltosemplice (es: Access)625A3A073C0E6C09B96E6ADF01996FACCarlo VerdiMario Neri90257D2DB80E4CEC6D386092B0936F1DDetentoreDetentore edivulgatoreeMuleForensicEsempio di divulgazione
  28. 28. 28eMuleForensicRappresentazione grafica delle divulgazioni32132111eMuleForensic (versione Java in sviluppo)
  29. 29. 29eMuleForensic (versione Java in sviluppo)eMuleForensic (versione Java in sviluppo)
  30. 30. 30eMuleForensic (versione Java in sviluppo)eMuleForensic (versione Java in sviluppo)
  31. 31. 31Grazie dell’attenzioneDEFTCON 2012Michele Ferrazzanomichele.ferrazzano@unibo.it

×