UNIVERSITÀ DEGLI STUDI DI CAMERINO Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica (classe L-INF ) Dipartimento di Matematica ed Informatica na An Android Forensics: Bi recupero dei dati cancellati con SQLite3 Anna Biselli se Laureanda: Relatrice: Prof. Maria Concetta De Vivo lli Correlatore: Raul Guido Capriotti Anno Accademico 2015-2016 na An Alle persone che amo... lli se Bi Indice 4 Elenco delle Figure 6 1 Introduzione 7 na An Indice Bi 2 Diritto, Crimini e tecnologie 2.1 Ispezione e Sequestro . . . . . . . . . . . . 2.1.1 Sequestro di un dispositivo mobile 2.2 Analisi di un dispositivo mobile: Mobile Forensics . . . . . . . . . . . . . . 2.2.1 Android Forensics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 10 11 . . . . . . . . . . . . . . . . . . . . . . . . . . 11 12 3 SQLite 13 3.1 Struttura della pagina . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2 Come viene salvato il record nel disco . . . . . . . . . . . . . . . 15 nella Forensics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 17 17 19 19 21 21 23 23 25 26 lli 3 se 4 Attività e applicazioni inerenti ad SQLite 4.1 SMS . . . . . . . . . . . . . . . . . . . . . 4.1.1 Acquisizione SMS . . . . . . . . . 4.2 Skype . . . . . . . . . . . . . . . . . . . . 4.2.1 Acquisizione chat Skype . . . . . . 4.3 Facebook Messenger . . . . . . . . . . . . 4.3.1 Acquisizione Facebook Messenger . 4.4 Telegram . . . . . . . . . . . . . . . . . . 4.4.1 Acquisizione Telegram . . . . . . . 4.5 Whatsapp . . . . . . . . . . . . . . . . . . 4.5.1 Acquisizione Whatsapp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 33 35 6 Tecnologie di Anti-forensics 38 7 Conclusioni 48 8 Ringraziamenti 49 na An 5 Recupero dei dati cancellati con SQLite 5.1 Recupero SMS cancellati . . . . . . . . . 5.2 Recupero chat Skype cancellata . . . . . 5.3 Recupero chat Facebook Messenger cancellata . . . . . . . . . . . . . . . . . 5.4 Recupero chat Telegram cancellata . . . 5.5 Recupero chat Whatsapp cancellata . . Bibliografia 51 lli se Bi Struttura di un Database SQLite . . . . . . . . . . . . . . . . . . Struttura di una pagina di un database SQLite . . . . . . . . . . Salvataggio di un record di un Database SQLite . . . . . . . . . . 14 14 15 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 Acquisizione Logica con AFLogicalOSE . . Cartella AFLogical-data . . . . . . . . . . . Acquisizione Logica SMS . . . . . . . . . . Chat Skype . . . . . . . . . . . . . . . . . . main.db . . . . . . . . . . . . . . . . . . . . Chat Facebook Messenger . . . . . . . . . . Identificativi Utenti . . . . . . . . . . . . . . Chat Telegram . . . . . . . . . . . . . . . . Codice Esadecimale del database Telegram Chat Segreta Telegram . . . . . . . . . . . . Codice Esadecimale del database Telegram Chat Whatsapp . . . . . . . . . . . . . . . . Database msgstore.db Whatsapp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 18 19 20 21 22 23 23 24 24 25 26 26 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 Database SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . Acquisizione Logica SMS . . . . . . . . . . . . . . . . . . . . . Acquisizione FileSystem SMS . . . . . . . . . . . . . . . . . . . Eliminazione Chat Skype . . . . . . . . . . . . . . . . . . . . . Database Skype . . . . . . . . . . . . . . . . . . . . . . . . . . . Codice Esadecimale del database Skype prima dell’eliminazione Codice Esadecimale del database Skype dopo l’eliminazione . . Chat Messenger Facebook . . . . . . . . . . . . . . . . . . . . . Database Facebook Messenger . . . . . . . . . . . . . . . . . . . Codice Esadecimale database Facebook Messenger . . . . . . . Messaggi Eliminati Telegram . . . . . . . . . . . . . . . . . . . Autodistruzione Messaggi Telegram . . . . . . . . . . . . . . . . Messaggi Eliminati Whatsapp . . . . . . . . . . . . . . . . . . . Chat Whatsapp dopo aver cancellato i messaggi . . . . . . . . . Codice Esadecimale del database Whatsapp . . . . . . . . . . . . . . . . . . . . . . . . . . 27 28 28 29 29 30 30 31 31 32 34 35 36 37 37 6.1 Database di Whatsapp su Sqlitebrowser . . . . . . . . . . . . . . 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . se Bi 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lli 3.1 3.2 3.3 na An Elenco delle figure Databasa SQLite prima della modifica . Database SQLite dopo la modifica . . . Primo Esperimento Antiforensics . . . . Secondo Esperimento Antiforensics . . . Modifica Database con Sqlbrowser . . . Messaggio inserito tramite Antiforensics Comando stat msgstore.db . . . . . . . . Comando stat com.whatsapp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 41 42 43 44 45 46 47 na An 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 lli se Bi Introduzione na An Capitolo 1 lli 7 se Bi Da pochi anni si è generata una nuova intersezione tra il mondo giuridico e quello informatico: la Digital Forensics. Nello specifico questa nuova branca consiste nello specializzarsi in quei reati definiti crimini informatici (cioè quei reati introdotti nel Codice Penale dalla legge 547/93) e in quei reati noti al diritto che sono stati perpetrati a mezzo di sistemi telematici e/o informatici, ma che i criminali informatici hanno reinterpretato a causa dell’illecito utilizzo della tecnologia informatica. Chi, ad esempio, non ha mai sentito o avuto a che fare anche indirettamente con il cyber stalking, ovvero le molestie via Internet (invio di spam, messaggi non graditi, insulti on-line, ecc.)? Oppure con il phishing, frode informatica che, attraverso una falsa email di un istituto di credito o di una società di commercio elettronico, invita a fornire i propri dati sensibili, o con il pharming, simile al phishing, ma che dirotta URL legittimi a IP fraudolenti che falsificano gli originali. Questi sono soltanto alcuni dei c.d.d. nuovi reati che affliggono la nostra società. L’illecito informatico, pur essendo un illecito penale di nuova generazione è ormai il più diffuso. In questo nuovo contesto sono coinvolti sia il diritto che l’informatica, formando cosı̀ una vera e propria disciplina orientata all’attività investigativa digitale. Il problema maggiore si è riscontrato (e si riscontra tuttora) nel far cooperare questi due mondi, a tratti opposti, perchè il concetto base da applicare quando si ha a che fare con un reato è la tutela della privacy e le garanzie processuali sia della vittima che del carnefice. Come si può immaginare quindi è difficile prendere una posizione equa su un qualunque evento criminoso, perchè di regole da seguire ce ne sono, ma la realtà è molto più complessa e intricata visto che, nonostante si faccia sempre più ricorso all’ausilio di macchine, si è sempre esseri umani, diversi e ognuno con le proprie esperienze di vita che portano a punti di vista molteplici. Come l’investigatore deve immedesimarsi nell’assassino per capire le sue prossime mosse, l’informatico forense deve avere la conoscenza del criminale con cui ha a che fare, la professionalità di un operatore dell’IT e la conoscenza di base del diritto; da questa esigenza ha preso corpo la nascita di na An sezioni specializzate delle forze dell’ordine, come ad esempio la Polizia Postale e delle Comunicazioni, il GAT-Gruppo Anticrimine Tecnologico della Guardia di Finanza, i RIS-Reparti Investigazioni Scientifiche dei Carabinieri con le sezioni specializzate come la RTI-Sezione Telematica del Reparto Tecnologie Informatiche operante all’interno del RaCIS-Raggruppamento Carabinieri Investigazioni Scientifiche. lli se Bi Diritto, Crimini e na An Capitolo 2 tecnologie • Conservare e non alterare la prova informatica; se Bi Per far sı̀ che una prova digitale sia utilizzata in contesto legale bisogna seguire delle linee guida sulla ricerca, reperimento e analisi dei ”contenuti” presenti in una scena del crimine. Per prova digitale si intende ”qualsiasi dato memorizzato o trasmesso usando un computer che supporta o respinge una teoria su come è avvenuto un fatto offensivo o che individua elementi critici dell’offesa, come l’intenzionalità o l’alibi ”, pertanto tale definizione è applicabile sia allo strumento che si analizza, sia al supporto che conserva le prove ricavate dall’analisi. La digital evidence, insomma, deve essere assolutamente inalterata. In proposito nel 2008 è stata approvata la legge n.48 che disciplina i principi di base per eseguire un’analisi forense: • Proibire qualsiasi alterazione successiva all’acquisizione; • Effettuare (se possibile) una copia identica alla prova originale acquisita; • Proibire qualsiasi alterazione della copia della prova originale; • Assicurare la presenza di sigilli informatici sui documenti acquisiti. lli Questa normativa ha, di fatto, modificato sia il codice penale che il codice di procedura penale. Nel Codice Penale è stato aggiunto l’art. 615 quinquies sulla ”Diffusione di apparecchiature, dispositivi o programmi informatici diretti a danneggiare o interrompere un sistema informatico o telematico”, dove per “danneggiamento informatico” si intende un qualsiasi reato volto a danneggiare illecitamente un sistema informatico (un computer o più apparati tra loro 9 na An interconnessi) o telematico, le informazioni, i dati o i programmi in esso contenuti o ad esso pertinenti ovvero di favorire l’interruzione, totale o parziale, o l’alterazione del suo funzionamento. Nel codice di procedura penale sono state fatte modifiche inerenti le perquisizioni (Art.352 comma 1-bis) e sequestro di qualunque traccia informatica (sia essa un dato o informazione) che devono essere fatte quando vi è motivo di ritenere che abbiano una certa relazione con il reato (Art.247 c.p.p e Art.254 c.p.p); si introduce l’Art.259 c.p.p che tratta il delicato argomento della custodia delle prove digitali sequestrate e l’importanza dell’apposizione di sigilli (Art.260 c.p.p), della collaborazione con persone tecnicamente capaci (Art. 348 c.p.p) e della non ripetibilità degli accertamenti tecnici (Art.360 c.p.p). Si passa poi alla definizione del contesto investigativo e giudiziario:viene definita la figura del difensore (Art. 327-bis c.p.p), che è colui che cerca e individua elementi di prova a favore del proprio assistito; quando occorre svolgere indagini o acquisire dati o valutazioni che richiedono specifiche competenze tecniche, scientifiche o artistiche entra in gioco l’oggetto della perizia (Art. 220 c.p.p) e vengono nominati il perito e il consulente tecnico. Altri cambiamenti sono stati redatti circa la modalità di documentazione (Art.134 c.p.p): un verbale, secondo l’Articolo 136 c.p.p, deve contenere la menzione del luogo, dell’anno, del mese, del giorno e, quando occorre, dell’ora in cui è cominciato e chiuso, le generalità delle persone intervenute, l’indicazione delle cause, se conosciute, della mancata presenza di coloro che sarebbero dovuti intervenire, la descrizione di quanto l’ausiliario ha fatto o ha constatato o di quanto è avvenuto in sua presenza nonché le dichiarazioni ricevute da lui o da altro pubblico ufficiale che egli assiste; inoltre, sempre il verbale, è da definirsi nullo quando vi è incertezza assoluta sulle persone intervenute o manca la sottoscrizione del pubblico ufficiale che lo ha redatto(Art. 142 c.p.p.). Con il passare del tempo però, acquisendo sempre più esperienza in campo, la normativa del 2008 è stata “integrata ed arricchita” dalle cc.dd best practices, regole fondamentali che indicano con esattezza la prassi da seguire nelle condizioni più svariate, facendo attenzione anche allo scenario che l’investigatore si trova ad esaminare. Secondo queste linee guida, acquistano rilevante importanza non solo il tipo di prova informatica che si sta repertando (pc, memoria di massa, supporto magneto-ottico, server, cellulare, smartcard, magnetic-card...) e il suo status (scarica, carica, rotta, con batteria, senza batteria...), ma anche le modalità di acquisizione e di conservazione ed il suo trattamento durante le varie fasi del “repertamento” come avviene nella c.d. ”Catena di custodia” (come e da chi sono state trattate, gestite ed esaminate le digital evidence) perchè nel caso in cui si scopra e si dimostri una minima violazione procedurale nella manipolazione della evidenza informatica, i dati acquisiti potrebbero non avere più valore probatorio. lli Ispezione e Sequestro se Bi 2.1 L’ispezione costituisce un mezzo di ricerca delle prove ed è una pratica invasiva sotto ogni punto di vista. Essendo la privacy della persona al centro di ogni operazione, spesso l’autorità giudiziaria può saltare questo passaggio chiedendo 2.1.1 Sequestro di un dispositivo mobile Quando si ha a che fare con un cellulare le accortezze da prendere in considerazione sono davvero tante. A partire dal tipo di telefono (di base, avanzato o smartphone), si passa alla classifica in base all’hardware (tipo di processore, memoria, display, connettività, geolocalizzazione) e in base al software (sistema operativo, messaggistica, applicazioni, multimedia, sincronizzazione dati con altri dispositivi, navigazione web) cosı̀ da avere un’idea molto dettagliata su come funzioni e quale sia la sua architettura sia interna che esterna. Una volta inquadrato il tipo di apparecchio con cui si ha a che fare, si vanno a cercare anche gli eventuali accessori associati che possono rivelarsi essenziali al momento dello spostamento del telefono o se, prima che finisca l’acquisizione, inizia a scaricarsi. Infatti ci sono alcuni dispositivi a memoria volatile (soprattutto quelli più vecchi) che se si spengono tornano allo stato ”nascent”, ossia quello risalente alla prima accensione, creando quindi non pochi problemi ai fini dell’acquisizione. Come operare nello specifico allora? Se l’apparecchio risulta acceso bisogna cercare di farlo rimanere acceso e, se c’è la possibilità di poter agire direttamente e senza rischi, attivare la modalità aereo oppure metterlo in una gabbia di Faraday per l’isolamento radio o usare un jammer (o lo spoofer); se invece il dispositivo è spento, bisogna lasciarlo spento. na An al soggetto di collaborare e cedere di sua spontanea volontà il bene oggetto dell’indagine. Per quanto riguarda il sequestro, ne esistono tre forme diverse: sequestro probatorio, sequestro preventivo e sequestro conservativo. Quello che interessa al reperimento degli elementi di prova è sicuramente il primo, perchè impedisce che l’oggetto sequestrato venga ulteriormente manipolato o comunque utilizzato qualificandolo come “pertinente al reato”. Bi 2.2 Analisi di un dispositivo mobile: se Mobile Forensics lli Al momento dell’analisi, la prima cosa a cui si va incontro è il codice di sblocco del dispositivo: gli apparecchi possono essere obstructed o unobstructed, cioè richiedenti autenticazione o meno; se il telefono è unostructed sarà molto più semplice andare avanti con l’acquisizione, altrimenti, a seconda del modello di cellulare, ci sono diverse tecniche per aggirare la protezione sia hardware che software, ma ciò richiede più tempo e un margine di rischio superiore. Una volta superato questo passaggio si arriva all’ acquisizione che può essere fisica o logica: per acquisizione fisica si intende quella ”bit-a-bit un’intera unità di memorizzazione fisica (ad es: un chip di memoria)”; l’acquisizione logica invece è la ”copia bit-a-bit di ”oggetti logici” memorizzati(file, cartelle) su spazi di memorizzazione ”logici” (es: partizioni di storage fisici)”. Il primo metodo dà come risultato una sequenza di bit che poi andranno ad essere interpretati mediante applicativi di digital forensics, mentre con il secondo metodo si ottengono dati 2.2.1 Android Forensics na An già comprensibili al primo sguardo, in quanto strutturati ed organizzati. Ovviamente è preferibile sottoporre il dispositivo ad entrambe le acquisizioni, cosı̀ da confermare e completare il lavoro. Fondamentale nell’acquisizione è il calcolo dell’hash, una stringa che identifica univocamente il dato stesso e che funge da ”sigillo” per verificare che il dato non sia stato alterato, perchè in quel caso la stringa finale sarebbe diversa da quella originale; gli algoritmi utilizzati per calcolarlo sono vari, tra quelli più utilizzati ci sono l’MD5, lo SHA-1, SHA-256, SHA-512. Un’altra accortezza è garantire l’accesso in sola lettura ai dispositivi per far sı̀ che non si verifichino eventuali tentativi di scrittura da parte di software ”non tipicamente forensi”; questo è possibile tramite un approccio software o grazie ad un dispositivo chiamato ”USB blocker” che intercetta i comandi che dalla workstation vengono inviati al dispositivo mobile. lli se Bi Android è un sistema operativo open-source per dispositivi mobili basato sul kernel Linux, composto da applicazioni Java che vengono eseguite su uno speciale framework, basato anch’esso su Java e orientato ad oggetti. Il dispositivo che si è utilizzato in questa tesi è un Samsung GT-s6500 con versione Android 2.3.6. Gingerbread. Solitamente un telefono Android è più facile da analizzare semplicemente perchè è più diffuso rispetto a Windows Phone, BlackBerry o iPhone, quindi maggiore è il mercato, maggiore è la documentazione. Ma è anche il più sicuro? La risposta è no. Il sistema infatti è fortemente integrato con i servizi Google (calendario, contatti, gmail...) e se da un lato per l’utente può essere conveniente avere tutto sempre sincronizzato, per il forense questa integrazione non solo rappresenta una mole di dati maggiore da analizzare e considerare, ma può essere anche fonte di rischi per l’incolumità delle prove, perchè nulla vieterebbe all’indagato di connettersi al proprio dispositivo tramite PC e manomettere o peggio cancellare delle prove. SQLite na An Capitolo 3 lli 13 se Bi Ogni applicazione negli smartphone ha un proprio database o base di dati. Ma che cos’è un database? Esso può essere considerato una raccolta di dati correlati, memorizzati su un supporto di memoria di massa e progettati per essere fruiti da diverse applicazioni e utenti; deve essere sicuro (protetto contro interventi non autorizzati), integro (deve garantire che le operazioni non provochino la perdita dei dati), consistente (i dati devono essere significativi ed effettivamente utilizzabili nelle applicazioni), condivisibile (diversi utenti e applicazioni devono poter accedere ai dati comuni), persistente (i dati devono essere salvati su memoria di massa e non in memoria centrale), scalabile (deve mantenere intatte le proprie performance all’aumentare della quantità di dati). Il suo utilizzo semplifica di gran lunga il lavoro di raccolta e catalogazione dei dati sopratutto perchè esistono molti programmi open-source ed efficaci come SQLite. I databases SQLite sono formati da pagine di un numero fisso di bytes (1024, 2048, 4096, 8192, 16384, 32768, 65536), di cui 100 della prima sono per l’header, i rimanenti seguono la struttura di ogni altra pagina; le parti fondamentali sono le tabelle e gli indici (una sorta di tabelle ”speciali”), e ogni tabella usa una o più pagine. La sqlite master, o ”master table” che si trova nella prima pagina del database, ha il compito di segnalare dove si trova il root di ogni utente che ha creato la tabella e gli indici. Ogni tabella o indice viene memorizzata come un B-Tree (albero bilanciato)e le pagine sono classificate come: na An Figura 3.1: Struttura di un Database SQLite • Interne, che contengono i puntatori ad altre pagine interne o alle foglie; • Foglie (Leaf ) che contengono i dati della tabella. Tipicamente una pagina di root punta a un certo numero di foglie; nelle tabelle più grandi la pagina di root può puntare anche a pagine interne, mentre nelle tabelle davvero piccole la pagina foglia o interna è costituita unicamente dalla pagina di root. Bi 3.1 Struttura della pagina Prima di tutto si trova l’header (8 o 12 byte, dipende dal tipo di pagina), poi l’array di puntatori alle celle (di lunghezza variabile) dove ognuno punta all’inizio di un record. Si devono considerare anche gli spazi vuoti, perchè nel momento della cancellazione di un record si cancella anche il puntatore e quindi i record in questione è marcato come inutilizzato. lli se Figura 3.2: Struttura di una pagina di un database SQLite 3.2 Come viene salvato il record nel disco Il record è salvato come una serie continua di bytes; poi si suddivide in header e payload. Il payload a sua volta è composto da serial type (una chiave unica per ogni colonna della riga) e data(i dati). na An Figura 3.3: Salvataggio di un record di un Database SQLite lli se Bi Attività e applicazioni na An Capitolo 4 inerenti ad SQLite nella Forensics Bi se Ogni sistema operativo ha la propria libreria SQLite. Allo stesso modo, ogni applicazione che si scarica dallo store ha il proprio database dove vengono salvati i record. È proprio da qui che inizia l’esperimento: per ogni applicazione di messaggistica, trovare il database e andarlo a scandagliare con l’utilizzo di varie query mirate, fino a trovare il messaggio cancellato o almeno parte di esso. La sfida principale è stata arrivare a risultati soddisfacenti con un software opensource che, a differenza degli altri a pagamento usati in ambito processuale, ha molte limitazioni; attualmente ce ne sono ancora pochi di software in circolazione, visto che si parla di una attività ”di elite” (a causa dei costi elevatissimi sia del prodotto con gli opportuni sigilli informatici, che delle certificazioni per acquisire l’autorità per collaborare su una digital evidence come privato), ma tra questi si è scelto ViaExtract. ViaExtract è un prodotto di NowSecure che nella versione a pagamento presenta le seguenti caratteristiche: lli 1. Acquisizione fisica che constiste nella copia bit-a-bit del dispositivo, la più completa; 2. Acquisizione logica, dove si ha un rapido accesso ai record memorizzati dal telefono all’interno delle diverse aree d’interesse come SMS, MMS, Video, Immagini, Registro chiamate, Contatti, Info sul telefono(modello, marca, IMEI, versione del sistema operativo), nomi delle reti Wifi a cui ci si è collegati, le App istallate; 16 3. Acquisizione backup; 4. Acquisizione filesystem, dove si ottengono più informazioni perchè viene eseguita una copia dei file contenuti nel file system, quindi c’è la possibilità di recuperare record cancellati all’interno di file; 6. Report avanzato. La versione open-source ViaExtract Community Edition non supporta i punti [1] e [6], ma è sufficiente per lo scopo ultimo di questo esperimento. Nel caso di studio di questa tesi, dopo aver completato l’acquisizione logica e del filesystem si sono prese in considerazione le principali applicazioni di messaggistica più in voga in questo periodo: Whatsapp, Telegram, Messenger Facebook, Skype e i comuni Sms. In seguito le analizzeremo una per una per comprenderne il funzionamento e se sono cosı̀ sicure come ci dicono. 4.1 na An 5. Rooting di alcuni tipi di dispositivi con un click; SMS 4.1.1 Acquisizione SMS Bi Chi non ha mai inviato un sms in vita sua? Lo Short Message Service è operativo dal 1992 e ad oggi, anche se la tecnologia è avanzata molto e la maggior parte comunica tramite applicazioni di messaggistica istantanea, è ancora molto utilizzato. In un’analisi forense, trovare gli sms è alquanto immediato perchè basta una semplice acquisizione logica, tant’è che si può ottenere un buon risultato senza andare a scomodare applicativi di digital forensics. lli se Per fare un’acquisizione logica il sistema operativo Santoku è davvero indispensabile: è una distribuzione Linux (quindi open source) che ospita programmi per la Mobile Forensics, Mobile Malware e Mobile Security. Per prima cosa bisogna abilitare l’USB Debug nel dispositivo android, che non fa altro che rendere possibile l’interazione con il dispositivo via USB attraverso l’interfaccia ADB(Android Debug Bridge); in questo modo, attraverso la workstation si possono installare applicazioni, interagire col sistema tramite shell e dare comandi di PUSH (invio di file all’apparato) e PULL (copia di file dall’apparato alla postazione di lavoro forense). Il programma invece che si va ad utilizzare è AFLogicalOSE, la versione open source dell’originale AFLogical presente nel sistema operativo ViaExtract a pagamento: na An Figura 4.1: Acquisizione Logica con AFLogicalOSE Nell’immagine si può notare che bastano due comandi per arrivare agli SMS: • adb devices: serve per verificare che il telefono è connesso al programma; • aflogical-ose per istallare l’applicazione nel device. Bi Il risultato è che il programma estrapola i dati dei database di immagini, sms, mms, contatti, call history, eventi, calendari e li riversa in file formato csv (”comma-separated values”), salvando l’acquisizione nella cartella aflogical-data creata direttamente dal programma. li l se Figura 4.2: Cartella AFLogical-data na An Skype Bi 4.2 Figura 4.3: Acquisizione Logica SMS 4.2.1 Acquisizione chat Skype l se Skype è un software VoIP(per Voice over IP si intende una ”tecnologia che rende possibile effettuare una conversazione telefonica sfruttando la connessione Inernet”)basato su network peer-to-peer che non solo si sostituisce alle compagnie telefoniche tradizionali proponendo prezzi vantaggiosi per sms e chiamate ai fissi (anche internazionali e intercontinentali), ma è anche il più usato perchè consente videochiamate, messaggistica e invio file gratuitamente. Per trovare i messaggi della chat bisogna utilizzare l’acquisizione del File System di ViaExtract. Inizialmente si è creato un profilo Skype (Anna Rossi) e si è finta una conversazione con un utente, ”infinito2006” come se fosse una reale chat. li na An Figura 4.4: Chat Skype Bi Dopodichè, cercando tra i file di tipo ”sqlite DB” è stato trovato il database di Skype: “main.db”. Nella tabella messages troviamo i messaggi inviati e ricevuti, più nello specifico i messaggi automatici di quando si richiede l’aggiunta di un contatto. li l se na An 4.3 Figura 4.5: main.db Facebook Messenger 4.3.1 Bi Messenger è un’altra tra le applicazione della categoria VoIP che permette di chiamare, creare chat di gruppo, inviare file, mandare messaggi (anche sms se il destinatario non è in linea), ma, a differenza di Skype, è limitata agli utenti Facebook. Acquisizione Facebook Messenger li l se Per fare prove di acquisizione si è creato il profilo di Anna Rossi in modo tale da poter scambiare messaggi con il suo amico Marco. na An se Bi Figura 4.6: Chat Facebook Messenger lli Il database che contiene questi messaggi è “Threads db2”: aprendolo con il programma SQLite, verranno visualizzati nella tabella ”messages”, tra le tante colonne, gli id dei messaggi scambiati, il sender, il timestamp, il message type e il corpo del messaggio. L’unica cosa che manca apparentemente è il nome degli utenti con cui si sono scambiati i messaggi, ma nella prima colonna di un’altra tabella ”thread users” ci sono gli identificativi (user key) di ogni amico di Facebook, quindi è facile risalire alla persona con la quale si è tenuta una chat. 4.4 Telegram Telegram è l’applicazione meno usata perchè meno conosciuta, anche se negli ultimi mesi c’è stato un forte incremento del suo impiego. La caratteristica che la distingue da Whatsapp, oltre il poter inviare fino a 1,5 Gb per ogni documento, è che si possono impostare delle chat ”crittate” e addirittura un timer di autodistruzione. na An Figura 4.7: Identificativi Utenti 4.4.1 Acquisizione Telegram Il database a cui si fa riferimento per questa sezione è ”cache4.db”. Le conversazioni costruite sono 2: una con Anna Biselli e l’altra con Alessandro. Con Anna Biselli, Anna Rossi ha scambiato dei messaggi in una semplice chat: lli se Bi Figura 4.8: Chat Telegram Dall’acquisizione forense, nell’esadecimale, si trovano i messaggi scambiati: na An Figura 4.9: Codice Esadecimale del database Telegram Con Alessandro invece, Anna Rossi si è scambiata messaggi tramite chat segreta: lli se Bi Figura 4.10: Chat Segreta Telegram na An e anche questi messaggi sono salvati in plaintext in locale. Questo perchè la cifratura ”client-to-client” dà modo di crittografare i pacchetti in modo che solo mittente e destinatario siano in grado di decriptare i messaggi inviati attraverso la rete. In altre parole, le chiavi crittografiche sono presenti direttamente nello smartphone che invia e riceve i messaggi, mentre i messaggi, quando sono in transito, sono difficili da decifrare. Telegram si occupa di generare la coppia di chiavi: la prima, detta chiave privata, resta sul dispositivo dell’utente e serve per decifrare i pacchetti dati ricevuti nel corso dello scambio; la seconda, detta chiave pubblica, è condivisa con l’altro utente con cui si scambiano i messaggi ed è utilizzata da quest’ultimo per crittografare tutti pacchetti che invia. La chiave pubblica, inoltre, è progettata in modo che i messaggi crittografati possano essere decifrati solo da chi possiede la relativa chiave privata: un sistema end-to-end (o client-to-client) nel quale sono necessarie entrambe le chiavi per spedire e ricevere messaggi “comprensibili”. Bi Figura 4.11: Codice Esadecimale del database Telegram Whatsapp se 4.5 lli Chi non ha Whatsapp? Al giorno d’oggi è l’applicazione usata da quasi mezzo miliardo di persone, nonostante fosse ancora a pagamento fino a qualche tempo fa. Whatsapp garantisce agli utenti varie forme di comunicazione user-to-user, messaggi di broadcast e chat di gruppo. Nel comunicare si possono condividere files (immagini, audio e video), contatti e informazioni sulla geolocalizzazione. Ogni utente ha un profilo(un nome Whatsapp, uno stato e un’immagine) salvato nel sistema centrale cosı̀ che tutti gli altri contatti possano vederlo. Il sistema centrale provvede anche ad altre cose, come la registrazione dell’utente e la trasmissione del messaggio. 4.5.1 Acquisizione Whatsapp Le chat vengono salvate nel database ”msgstore.db”. Anna Rossi in questo caso ha scambiato messaggi con Leo: na An Figura 4.12: Chat Whatsapp Bi Facendo un’acquisizione del file system si trovano tutti i messaggi scambiati: se Figura 4.13: Database msgstore.db Whatsapp lli Recupero dei dati cancellati na An Capitolo 5 con SQLite 5.1 Bi Recuperare dati cancellati è tutta un’altra storia: come detto precedentemente l’acquisizione da sfruttare per questo intento è quella del File System. Nei capitoli seguenti verrà descritto nel dettaglio come si è andati ad operare per ogni applicazione di messaggistica. Recupero SMS cancellati Per gli SMS bisogna andare a cercare tra i file acquisiti il database SQLite che contenga i messaggi. Quello di cui si sta parlando non è altro che logs.db. lli 27 se Figura 5.1: Database SMS L’immagine sopra mostra il database aperto tramite un’applicazione SQLite (SQLiteman) che ci fornisce tantissimi dati, tra cui l’id del messaggio, il numero del contatto con cui è stato scambiato l’sms, i riferimenti temporali (timestamp) in formato Unixtime, il nome del contatto come è salvato in rubrica e l’id e il contenuto del messaggio. An Figura 5.2: Acquisizione Logica SMS na A questo punto si nota la differenza tra i tipi di acquisizione, logica e del file system: nella prima vengono riportati gli stessi dati che si vedono nel cellulare, nella seconda invece ci sono anche i messaggi cancellati in precedenza. Bi 5.2 se Figura 5.3: Acquisizione FileSystem SMS Recupero chat Skype cancellata lli Per fare una prova, si crea un’altra chat con un altro utente (annabiselli), dove ci si scambia messaggi normali e un file .docx. Successivamente, la stessa chat viene completamente cancellata: na An Figura 5.4: Eliminazione Chat Skype Aprendo il database main.db con Sqliteman si trovano tutti i messaggi: quelli che Skype invia in automatico quando aggiungi un contatto, quelli non cancellati e soprattutto quelli che si sono cancellati precedentemente. se Bi Figura 5.5: Database Skype Nell’ esadecimale dell’acquisizione della chat, prima che venga eliminata, i messaggi risultano cosı̀: lli mentre, dopo esser stata cancellata, si ha: na An Figura 5.6: Codice Esadecimale del database Skype prima dell’eliminazione Figura 5.7: Codice Esadecimale del database Skype dopo l’eliminazione Bi Come si può notare dalle immagini non ci sono cambiamenti nel pre e post cancellazione: si ritrovano tutti i messaggi interi senza perdita di dati. lli se 5.3 Recupero chat Facebook Messenger cancellata na An Si ipotizza che della conversazione con Marco rimangano solo i primi due messaggi: Figura 5.8: Chat Messenger Facebook Bi Aprendo ”Threads db2” con SQLite si trovano effettivamente solo i messaggi rimasti e nessuna traccia degli altri cancellati. lli se Figura 5.9: Database Facebook Messenger La prima cosa da fare è andare a cercare nel codice esadecimale del file SQLite se si trova qualche spezzone di chat o frammento di messaggio. Proprio come si poteva immaginare i dati cancellati sono ancora lı̀: na An lli se Bi Figura 5.10: Codice Esadecimale database Facebook Messenger 5.4 Recupero chat Telegram cancellata Per quanto riguarda Telegram, i messaggi, una volta cancellati, vanno a finire in qualche porzione di memoria dove non sono recuperabili perchè non vi è traccia nelle acquisizioni fatte. na An lli se Bi na An Figura 5.11: Messaggi Eliminati Telegram lli se Bi Allo stesso modo, nella descrizione dei messaggi che si autodistruggono, Telegram è chiaro: ”il messaggio scompare da entrambi i dispositivi e non lascia traccia” ed è effettivamente cosı̀, quindi è probabile che questo tipo di chat non venga proprio salvata localmente. na An Figura 5.12: Autodistruzione Messaggi Telegram 5.5 Recupero chat Whatsapp cancellata lli se Bi Riprendendo in considerazione la conversazione che Anna Rossi ha avuto con Leo su Whatsapp, si sono cancellati i seguenti messaggi: na An se Bi Figura 5.13: Messaggi Eliminati Whatsapp lli Quindi, nell’ultima parte, la chat risulta cosı̀: Guardando nel database msgstore.db ovviamente si trovano solo i messaggi non cancellati, ma andando a spulciare nell’esadecimale del predetto file si trovano anche gli altri, più nello specifico si trova tutta la chat integra com’era prima di essere modificata: na An Figura 5.14: Chat Whatsapp dopo aver cancellato i messaggi Bi Figura 5.15: Codice Esadecimale del database Whatsapp lli se Effettuando una successiva acquisizione si nota che questi messaggi piano piano si deteriorano: vengono sovrascritti con gli altri messaggi scambiati e cancellati; questo succede perchè SQLite gestisce i record da cancellare marcandoli come ”liberi”, ma di fatto non li rende disponibili immediatamente per la sovrascrittura. Quindi è fondamentale non solo il tempo che è passato da quando i dati sono stati cancellati dall’utente e acquisiti, ma anche la non ripetibilità di un’acquisizione forense. Tecnologie di Anti-forensics na An Capitolo 6 lli 38 se Bi Se dai capitoli precedenti si può pensare di essere al sicuro da dubbi e incomprensioni per via del grande lavoro che c’è dietro al reperto di una prova digitale ci si sbaglia di grosso, almeno in parte. Per questo lavoro di tesi, sempre nello stesso cellulare, si è costruita una falsa prova: aggiungere ex-novo un messaggio ricevuto e cambiare il testo di un altro messaggio ricevuto in precendenza sull’applicazione di messaggistica per eccellenza: Whatsapp. Questa tecnica si chiama Antiforensics: “Insieme di tecniche che mirano a confondere gli applicativi e gli operatori forensi, o usare i programmi e i loro risultati per confondere l’analista forense”. Tale tecnica non ha altro scopo che ridurre il numero di prove (più specificatamente ridurre l’attendibilità delle stesse ) e a renderle incerte o contestabili in ambito giuridico. Ma andiamo a vedere nello specifico in cosa consiste questa prova. Innanzitutto il programma che si utilizza è AFLogicalOse, come per l’acquisizione logica da terminale, ma in questo caso nei panni di un utente malevolo si va ad operare sul database della chat Whatsapp. Il problema che si può riscontrare sono i permessi di root perchè, per ogni applicazione, Android crea un utenza ”amministrativa” e ”non amministrativa” per ragioni di sicurezza. Tale limitazione può essere aggirata con tecniche definite di ”rooting” (o ”jailbreak” per iPhone), tenendo conto che in alcuni modelli un’operazione di questo tipo può comportare la perdita di dati salvati, quindi degli elementi di prova. Il Rooting consiste nella ”sostituzione totale o parziale del sistema operativo con una versione modificata” e quindi con queste caratteristiche l’investigatore forense deve farne uso solo come ultima ed estrema ratio; è anche vero però che molti tra gli utenti sfruttano le funzionalità del rooting, quindi è possibile che il dispositivo come prova abbia già i permessi di root. Il caso preso in esame è di un cellulare che non ha i permessi di root attivi e che, dall’acquisizione forense non si sono estrapolati dati a sufficienza. La prima cosa da considerare è il modello e la marca di telefono, per ogni dispositivo infatti ci sono specifiche metodologie. Una volta superata questa barriera, basta prelevare tramite terminale di AFLogicalOSE il database di Whatsapp e andarlo a modificare. Per farlo i comandi sono i seguenti: • sudo-i per acquisire i privilegi di root Una volta che si ha il database è relativamente semplice modificare i record e per farlo si utilizza il programma SQLite. na An • adb pull /data/data/com.whatsapp/databases/msgstore.db /home/ per scaricare nella directory indicata (qui è ”home”) il database lli se Bi na An Figura 6.1: Database di Whatsapp su Sqlitebrowser Bi Questo è il database di whatsapp aperto con il programma SQLite per Mac (sqlitebrowser) che permette di modificare i record della base di dati; innanzitutto bisogna studiare la struttura della base di dati con cui si ha a che fare. Ogni messaggio ha: • un id progressivo che conta il numero dei messaggi presenti nel database; se • key remote id che non è altro che il numero di telefono della persona con cui si è tenuta la conversazione; • key from me,uguale a ”0” se il messaggio è inviato dal proprietario del telefono, uguale ad ”1” se ricevuto; • key id che consiste nell’identificativo univoco di un messaggio. • varie colonne per i riferimenti temporali (Timestamp) che verranno descritti in seguito. lli Altri campi non citati sono spesso prestabiliti, fissati, pertanto al momento della creazione di un messaggio bisognerà copiare gli stessi valori per ogni colonna. Per il primo esperimento di tecnica antiforensics si è ripresa la conversazione tra Anna Rossi e Leo e si è modificato, per confutare la fattibilità di modifica, un messaggio in una conversazione già avvenuta nella realtà. Questa che segue è la vera conversazione: quest’altra invece è quella modificata na An Figura 6.2: Databasa SQLite prima della modifica Bi Figura 6.3: Database SQLite dopo la modifica Sul cellulare il risultato è questo: lli se na An Figura 6.4: Primo Esperimento Antiforensics lli se Bi Un altro esperimento, che rientra tra le tecniche di antiforensics, è stato quello di creare un messaggio che non è stato mai inviato. Pensandoci su almeno un attimo non è difficile immaginare quali conseguenze possa provocare un messaggio presente nel proprio cellulare, soprattutto se compromettente! in tal caso le tecniche di antiforensics riescono a scaturire conseguenze deleterie e devianti non solo nelle forze dell’ordine e negli analisti forensi, ma potenzialmente anche in ognuno di noi. La chat presa di mira per questo esperimento è quella con Alessandro, perchè Anna Rossi non ha mai ricevuto risposta al ”Ciao. Come stai?:* ” inviato molto tempo fa. na An Figura 6.5: Secondo Esperimento Antiforensics Bi Si noti che la data risale al 19 giugno 2015 e i messaggi sono stati inviati alle 10:19 (UTC + 2). Vogliamo che Alessandro abbia risposto ai messaggi esattamente 2 minuti dopo Anna. Andando ad operare direttamente nel database si aggiunge un record, quindi: • nella colonna id ci sarà il numero successivo all’ultima riga (il numero di righe totali è 30, quindi sarà ”31”); • key from me impostato a 1; se • su key remote id il numero di telefono di Alessandro secondo la formula ”[email protected]” che ricorre nelle altre righe; • una stringa di 18 caratteri; lli Quando si arriva a compilare il key id non si sa come operare, visto che non si hanno guide su come venga calcolato dall’applicazione, perciò si sono fatte due prove sostanziali: una consiste nel lasciare la casella vuota, l’altra nel digitare una sequenza di cifre casuali della stessa lunghezza delle altre che compongono le key id. La prima procedura si è dimostrata un fallimento perchè, una volta conclusa, il messaggio non è apparso nella chat di whatsapp del dispositivo. La seconda tecnica, invece, è risultata vincente: la parte fondamentale è stata studiare e mettere a confronto i key id degli altri messaggi, cosı̀ da notare che tutti sono composti da: • un trattino(”-”) a cui segue il numero progressivo dei messaggi scambiati(es: ”-3” indica che nella chat in questione Alessandro ha scritto 3 messaggi); na An Una volta realizzato che forse sarebbe bastata questa tecnica per ingannare i controlli di Whatsapp si è generata la seguente stringa: ”154409093454086530-1”. Avanzando tra le colonne di msgstore.db si incontra poi ”data” che contiene i testi dei messaggi ricevuti/inviati; è arrivata l’ora, quindi, di aggiungere il messaggio di Alessandro ”Tutto bene! Tu?”: Figura 6.6: Modifica Database con Sqlbrowser Bi Un’altra parte fondamentale del processo è l’impostare il Timestamp. Sembra semplice, ma Whatsapp ha vari orari di riferimento: 1. timestamp: l’ora che viene visualizzata nella chat e anche l’ora in cui il messaggio viene inviato (presa dall’orologio locale del dispositivo); 2. received timestamp: l’ora in cui il messaggio è ricevuto (presa dall’orologio locale del dispositivo) se 3. send timestamp: sempre impostato a “-1”; 4. receipt server timestamp: ora in cui l’applicazione riceve l’ack dal server; 5. receipt device timestamp: ora in cui l’applicazione riceve l’ack dal destinatario(presa dall’orologio locale del dispositivo); 6. read device timestamp: quando il destinatario ha letto il messaggio; lli date -d @xxxxxxxxxxxxxxx se invece si vuole convertire una determinata data in unixtime: date -d ”2010-10-13 14:55” ”+ %s” na An Tutti questi campi devono essere compilati se si vuole far risultare il messaggio spedito dal cellulare, oggetto dell’attività di Antiforensics a qualsiasi destinatario. Se invece si vuole far risultare che un qualunque utente risponda al proprietario del telefono, gli unici timestamp da compilare sono il primo e il secondo della lista, il resto è ”-1”. Per calcolare il proprio Timestamp esistono, oltre numerosi siti web che lo fanno in modo immediato, formule apposta per ogni sistema operativo utilizzato. Sotto Linux, se si vuole convertire lo unixtime in data e ora corrente: Sotto iOS, se si vuole convertire lo unixtime in data human ready: date -r xxxxxxxxxxxxx invece convertire una determinata data in unixtime: date -j -f ”%Y-%m-%d %H:%M” ”2010-10-02 14:55” ”+%s” Una volta finito di modificare a piacimento il database (in questa prova si è anche modificato ulteriormente il secondo messaggio inviato da Anna) basta tornare al terminale di AFLogicalOSE e digitare: Bi adb push /home/santoku/Desktop/nomedb.db /data/data/com.whatsapp/databases/msgstore.db Dopo aver spento e riacceso il device, il risultato sarà questo: lli se Figura 6.7: Messaggio inserito tramite Antiforensics na An Secondo le indicazioni date nei capitoli precedenti non è difficile pensare che tutti gli ostacoli che incontra un informatico forense come il rooting e lo sblocco del cellulare sono le stesse a cui andrebbe incontro l’utente malevolo in questa attività di antiforensics, ma è anche vero che esistono hacker ai quali agire addirittura da remoto sembra un gioco da ragazzi. Come fare allora a distinguere se un messaggio è stato effettivamente inviato/ricevuto? Il messaggio prodotto da una tecnica antiforensics è visibile solo localmente nel dispositivo che è stato manomesso e non ce n’è traccia nel dispositivo dell’altro utente perchè non è salvato nei server di WhatsApp. Una soluzione a questo problema può essere verificare i timestamp del file sqlite msgstore.db, nello specifico se la data di creazione che risulta nel filesystem prima e dopo la modifica del messaggio combacia o no. Attraverso il comando stat msgstore.db lanciato da un terminale direttamente installato nel telefono, la schermata risultante è: Figura 6.8: Comando stat msgstore.db Bi Da notare i tre Timestamp presenti: 1. Access: normalmente è l’ora in cui viene creato il database di Whatsapp per la prima volta (quindi la data e l’ora in cui l’applicazione è stata scaricata dal Play Store); in questo caso è la data dell’ultimo salvataggio, dopo la creazione del messaggio malevolo, di msgstore.db. lli se 2. Modify: si altera quando si modifica il contentuto del file; 3. Change: si altera quando si modificano gli attributi del file. na An Quindi, per provare che un database Whatsapp sia stato manomesso con una delle tecniche di Antiforensics si può andare a verificare che la data di installazione di Whatsapp combaci, ovvero sia compatibile e/o coerente, con il Timestamp Access. Infatti, per concludere l’esperimento e avere delle certezze riguardo le ipotesi fatte, si è lanciato il comando stat anche per ottenere informazioni dal file com.whatsapp: Figura 6.9: Comando stat com.whatsapp lli se Bi Come si evince dall’immagine, l’installazione di Whatsapp nel dispositivo di Anna Rossi è datata 19.06.2015, quindi il database è stato senza ombra di dubbio alterato... O forse no, perchè le tecniche dell’antiforensics usano e sfruttano le procedure e gli strumenti degli operatori della digital forensics. Dal momento che si è riusciti ad individuare la manomissione del file msgstore.db, si può pensare a raggirare la stessa semplicemente impostando la data e l’ora del sistema operativo in cui si altera il file e far risultare uguale a quella che ci si aspetta: la data presente in com.whatsapp. Conclusioni na An Capitolo 7 lli 48 se Bi Come dimostrato in questo studio le tecnologie stanno avanzando molto velocemente ed è sempre più importante promuovere la consapevolezza nell’utente finale, che al giorno d’oggi è ricoperto della tecnologia più varia, affinchè si destreggi tra le insinue del web e venga a conoscenza delle tecniche base utili a difendersi o delle autorità che in questo scenario corrono in suo aiuto all’occorrenza, come ad esempio la Polizia Postale. È vero che il capitolo Antiforensics può scoraggiare nella ricerca di difese contro attacchi malevoli, ma è anche vero che le dinamiche descritte qui sono fattibili per la Forensics attuale, quindi non è detto che in un prossimo futuro non si trovi un modo per stare più al sicuro. D’altronde l’interdisciplinarietà ha sempre portato ad un’evoluzione, perchè si è costretti ad uscire dagli schemi convenzionali e rimettere tutto in questione. Da questo punto di vista la Digital Forensics, ”l’unione delle forze giuridiche e informatiche”, può essere la spinta giusta per far sı̀ che le cose cambino, che in ambito giuridico le leggi del nostro Ordinamento Giuridico vengano rivisitate e che allo stesso tempo nella fusione uomo-macchina non si perda di vista la caratteristica fondamentale che ci fa essere umani: la ragione e la capacità di giudizio. [1] ”Computer Forensics: Ricerca ed analisi della prova informatica nell’attività investigativa della Polizia Giudiziaria”, Raul Guido Capriotti, Antonio Deidda, Alessandro Grilli, Maurizio Pierlorenzi. na An Bibliografia [2] ”Diritto crimini e tecnologie”, articolo di M.C. De Vivo e G. Ricci in Informatica e Diritto 2012 [3] ”Computer Forensics e Indagini Digitali”, S.Aterno, F.Cajani, G.Costabile, M.Mattiucci, G.Mazzaraco [4] ”Mobile Forensics: Tecniche di Acquisizione e Soluzioni Open Source, Security Summit 2014”, Paolo Dal Checco. lli se Bi 51