Università degli Studi di Padova

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli Studi di Padova"

Transcript

1 Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica CryptoSleuth - Rilevamento automatico di utilizzo criptovalute con strumenti Digital Forensics Tesi di laurea triennale Relatore Prof. Mauro Conti Laureando Andrea Costa Matricola: Anno Accademico

2 Andrea Costa: CryptoSleuth - Rilevamento automatico di utilizzo criptovalute con strumenti Digital Forensics, Tesi di laurea triennale, c Settembre 2015.

3 Abstract Il presente documento descrive il lavoro svolto durante il periodo di stage, della durata di circa trecentoventi ore, dal laureando Costa Andrea presso l azienda CyBrain S.r.l. per lo sviluppo del progetto CryptoSleuth. Obiettivo del progetto è stata la ricerca automatica di informazioni riguardanti crittovalute all interno di una memoria di massa. Per realizzare questo strumento si sono utilizzate metodologie e tecnologie Digital Forensics, disciplina informatica che si occupa dell identificazione, conservazione, analisi e documentazione di reperti informatici per scopi investigativi o per utilizzo in procedimenti giudiziari. Per la realizzazione del progetto sono stati sviluppati alcuni nuovi strumenti, oltre all utilizzo di strumenti open source già esistenti. CryptoSleuth è pensato per supportare analisti forensi e Forze dell Ordine nell analisi dei dispositivi digitali, in modo da automatizzare il più possibile processi che oggigiorno vengono spesso svolti manualmente. Lo strumento fornisce quindi in tempi contenuti informazioni utili per indirizzare gli approfondimenti degli analisti. L architettura del sistema è stata progettata in modo tale che sia possibile aggiungere nuovi moduli di analisi per altri ambiti specifici. Per esempio, in futuro potranno essere realizzati moduli che verifichino l utilizzo o meno del deep web o di volumi cifrati. iii

4

5 Indice 1 Introduzione Descrizione dell azienda Motivazioni dell attivazione dello stage Obbiettivi dello stage Scopo del documento Bitcoin Nascita Valore Client Wallet e Indirizzi Rete e Protocollo Blockchain Blocco Transazione Mining Mixer Come acquistare Bitcoin Statistiche Alternative Coin Ripple Litecoin Altri usi del protocollo bitcoin Computer Forensics Browser forensics Artifact Carving Semantic Carving Analisi Free Space Tecnologie e strumenti utilizzati NodeJS handlebarsjs Git Guymager Autopsy e The Sleuth Kit BTCScan Bulk Extractor CryptoSleuth Cos è CryptoSleuth? Casi d uso UC 1: Analisi di memorie v

6 INDICE UC 1.1: Inserimento parametri di input UC 1.1.1: Inserimento parametri di ricerca UC : Inserimento nome moduli UC : Inserimento nomi jobs UC 1.1.2: Inserimento parametri di lavoro UC 1.1.3: Inserimento file/directory di input UC : Inserimento path directory UC : Inserimento path immagine forense UC 1.1.4: Visualizzazione helper UC 1.2: Avvio analisi dei file/directory di input UC 1.3: Visione dei risultati prodotti UC 1.3.1: Visione dei report JSON UC : Visione del report JSON generico UC : Visione del report JSON specifico per un job UC 1.3.2: Visione del report HTML UC 1.3.3: Visione del report dei log UC 1.3.4: Visione dei file recuperati tramite carving Tracciamento di requisiti Requisti Funzionali Requisti di qualità Requisti vincolo Architettura Tool Job Moduli Funzionamento Inizializzazione Configurazione Montaggio immagini Esecuzione tool Esecuzione moduli Unmount immagini e cancellazione file temporanei Terminazione File di configurazione Features Installazione e utilizzo Installazione Utilizzo Output prodotto e tempi Report prodotti Tempi di esecuzione sui test Sviluppi futuri Modulo Job Tool Scanner bulk extractor Considerzioni finali Raggiungimento degli obbiettivi Consuntivo ore Conoscenze acquisite Valutazione personale Bibliografia 65 vi

7 Elenco delle figure 2.1 Informazioni indirizzo bitcoin Blockchain bitcoin Crescita della blockchain in MB Blocco bitcoin Transazione bitcoin Valore di mercato bitcoin in USD (ultimi due anni) capitalizzazione dei bitcoin in USD (ultimi due anni) Alternative Coin UC 1: Analisi di memorie UC 1.1: Inserimento parametri di input UC 1.1.1: Inserimento parametri di ricerca UC 1.1.3: Inserimento file/directory di input UC 1.3: Visione dei risultati prodotti UC 1.3.1: Visione dei report JSON Helper Report html Report html con espansione singolo job Cartelle contenenti i file recuperati Risultati prodotti da analisi di immagine forense Istogramma riepilogo ore a preventivo e a consuntivo Elenco delle tabelle 2.1 Pro e contro Bitcoin client Riepilogo tempi di esecuzione Riepilogo ore a preventivo e a consuntivo vii

8 ELENCO DELLE TABELLE viii

9 Capitolo 1 Introduzione 1.1 Descrizione dell azienda CyBrain S.r.l. nata a Vicenza nel 2013 si occupa di consulenza e sviluppo software in ambito IT Security per grandi gruppi bancari, società di telecomunicazioni ed altre realtà Enterprise di importanza nazionale. Le soluzioni offerte vengono progettate e sviluppate in modo autonomo, e sono rivolte sia ad utenti tecnici che ad utenti con un minor background tecnologico e di stampo più manageriale. 1.2 Motivazioni dell attivazione dello stage Lo stage nasce dalla decisione da parte dell azienda di ampliare il proprio personale tentando di inserire nuove figure junior all interno del team di sviluppo assegnando loro la creazione di progetti innovativi per valutarne le capacità. Tale scelta è stata anche supportata dalla volontà di ampliare il numero di servizi proposti in modo da crescere maggiormente e acquisire sempre maggiore importanza nell ambiente della sicurezza informatica. 1.3 Obbiettivi dello stage Il progetto di stage si propone di realizzare un sistema per l analisi automatica di supporti di memorizzazione, con metodo Computer Forensics, per produrre report con dettagli su alcuni contenuti del disco/memoria, ad esempio tracce di uso e possesso di crittovalute. Viene prevista la realizzazione di software, chiamato CryptoSleuth, che unisca soluzioni open source a quelle sviluppate appositamente, in modo da fornire ad operatori forensi, Forze dell Ordine ed altre figure operative degli strumenti di prima analisi dei contenuti di un dispositivo. Le tecniche usate per certificare il contenuto del dispositivo possono permettere di produrre elementi utilizzabili come prove in giudizio, o di aiutare l indirizzamento delle indagini forensi. Le tecnologie utilizzate comprendono sistemi operativi basati su kernel GNU Linux, script BASH, linguaggi di programmazione C/C++, Handlebars come linguaggio per la creazione di template html e JavaScript utilizzando il framework NodeJS. Lo stage prevede l inserimento dello studente nel team di ricerca e sviluppo (R&D) di nuovi prodotti. Lo studente è stato formato nel campo dell IT Security e della progettazione e sviluppo di prodotti innovativi, ponendo attenzione all implementazione di nuove soluzioni tecnologiche a problematiche riscontrate da alcuni clienti e collaboratori. 1

10 1.4. SCOPO DEL DOCUMENTO 1.4 Scopo del documento Il presente documento ha lo scopo di illustrare tutte le attività sostenute durante il periodo di stage presso la ditta CyBrain S.r.l. : nel Capitolo 2 sono descritte tutte le informazioni teoriche apprese per capire come funziona il sistema Bitcoin; nel Capitolo 3 vengono esposte le metodologie riguardi l ambito della Computer Forensics utilizzate per la realizzazione del progetto e quali sono le tracce, relative all utilizzo di criptovalute, che vengono lasciate sul proprio pc; nel Capitolo 4 vengono descritte le tecnologie utilizzate durante lo sviluppo del progetto; nel Capitolo 5 viene descritto CryptoSleuth nella sua totalità, ovvero: l architettura su cui si basa, il suo funzionamento, l installazione; nel Capitolo 6 vengono descritti tutti i metodi per implementare CryptoSleuth andando quindi ad aggiungere nuove funzionalità/ottimizzazioni al progetto. nel Capitolo 7 viene presentata una valutazione finale dell esperienza di stage; 2

11 Capitolo 2 Bitcoin In questo capitolo verranno descritte tutte le informazioni teoriche apprese sul mondo Bitcoin. Tali informazioni sono alla base dello sviluppo di CryptoSleuth, infatti grazie ad esse si è potuto capire che tipi di tracce le criptovalute possono lasciare sul pc di un qualsiasi utilizzatore, e in che modo esse possano essere recuperate. 2.1 Nascita Bitcoin è una criptovaluta creata nel 2009 da Satoshi Nakamoto, pseudonimo a cui non si sa ancora oggi se associare una persona, un gruppo di lavoro o uno stato, visti i dettagli e le conseguenze che questa tecnologia ha portato in così tanti ambiti. Le caratteristiche principali del sistema Bitcoin sono: non appartenenza ad un ente centrale; bassissima tassazione per le transazioni; totale trasparenza delle transazioni, che possono essere consultate tramite la blockchain; importanza della comunità, più quest ultima è grande più la valuta bitcoin è importante; pseudonomicità degli utenti, si conosce lo pseudonimo ma non l utente reale; irreversibilità, ogni transazione è definitiva; tempo di transazione (minuti). Questa valuta potrebbe essere usata al posto delle tipiche monete in circolazione. Per utilizzarla basta possedere un Wallet (portafoglio), sia esso web, desktop o mobile, in cui sono conservate le chiavi private e pubbliche con le quali è poi possibile spendere i bitcoin. La quantità massima di bitcoin in circolazione è 21 milioni ma allo stato attuale ne sono disponibili solamente 14. Si prevede di arrivare alla disponibilità completa nel Valore Il valore dei bitcoin è dato dalla rete, si parla quindi di network value: più persone e più scambi implicano più valore. Per calcolare il valore di una rete è possibile utilizzare la Legge di Metcalfe: n 2 n (2.1) 3

12 2.3. CLIENT dove n è il numero di utenti della rete. Tale legge però ha un difetto, considera tutti i nodi della rete di uguale importanza ma in realtà ciò non è vero infatti l importanza di un semplice pc è diversa da quella di un server che fornisce milioni di utenti. Per calcolare quindi il valore della rete Bitcoin si utilizza la Legge di Beckstrom in cui il valore V di una rete j per ogni individuo i è la somma dei benefici B di tutte le transazioni a cui è stata tolto il costo C: V j = n B j C j (2.2) j=0 Secondo la legge di Beckstrom il valore dei una rete, in particolare della rete Bitcoin, per un utente è uguale alla somma di tutte le commissioni risparmiate se lo stesso volume di affari fosse stato trasferito tramite moneta comune (es. dollari). 2.3 Client Il client bitcoin è il luogo in cui risiedono i wallet i quali si dividono in tre categori: desktop, mobile e web. Nella Tabella 2.1 vengono riassunti i punti di forza e di difetti di ogni tipo di client. Desktop Web Mobile * Facili da creare e utilizzare * Immediati (no download blockchain) * Accedere al proprio da wallet sempre o ovunque Pro * Wallet scaricati e conservati nel proprio computer * Il wallet non è controllato da terze parti * Sicurezza e totale disponibilità Contro * Download della blockchain molto oneroso (circa 40 GB) * Dipende da terze parti Tabella 2.1: Pro e contro Bitcoin client * Sempre a disposizione dell utente * Facile da utilizzare * Immediato nell utilizzo * Bassa sicurezza per dispositivi mobile * Maggiore rischio di smarrimento e furto 2.4 Wallet e Indirizzi Come detto in precedenza un wallet è il portafoglio bitcoin che contiene le chiavi private/pubbliche ed il riferimento a tutti gli indirizzi creati per ricevere pagamenti. L indirizzo Bitcoin rappresenta la destinazione di un pagamento; esso è composto da una sequenza di caratteri alfanumerici lunga tra 26 e 35 valori che inizia con il numero: 1: normale testa di un indirizzo bitcoin (es. 1JTPjuQLepetfJ4V5xRyrUxkZxD4wPoP2E); 3: testa utilizzata in ambiente testnet (es. 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy). Tutti gli indirizzi sono in formato base58 (sono esclusi quindi i valori O,0,I,l,+,/) e sono strettamente legati alla chiave privata necessaria per spendere i bitcoin. 4

13 2.5. RETE E PROTOCOLLO Figura 2.1: Informazioni indirizzo bitcoin 2.5 Rete e Protocollo La rete utilizzata per lo scambio di bitcoin è come detto la forza di questa moneta. Tutte le comunicazioni all interno della rete avvengo in chiaro tramite TCP/IPv4, TCP/IPv6 (con Bitcoind), oppure in modo occulto via rete TOR. Il protocollo alla base dell idea Bitcoin si basa su quattro principi: trasferire un pezzo unico di proprietà digitale a un altro utente; garantire la sicurezza della transazione; far sapere a tutti che il trasferimento è avvenuto; non permettere a qualcuno di contestare la legittimità della transazione. A rafforzare i principi sopra elencati si fa utilizzo inoltre di una funzione chiamata hashcash, che utilizza la funzione di hashing SHA-256 in modo ricorsivo effettuando due iterazioni. 2.6 Blockchain La blockchain è la base su cui si fonda l idea Bitcoin. Essa infatti è una catena di blocchi al cui interno sono salvate tutte le transazioni confermate effettuate. In questo modo è possibile sapere quanti bitcoin sono stati trasferiti ad un certo indirizzo in una certa data. Tale catena di blocchi è completamente consultabile in chiaro tramite vari portali web (es. blockchain.info, blockr.io), che permettono di consultare tutte le informazioni riguardanti i blocchi di cui essa è composta. È inoltre possibile consultare le informazioni delle singole transazioni ed effettuare ricerche anche su specifici indirizzi in modo da vedere tutte le transazioni fatte in entrata e in uscita da uno specifico indirizzo. Nell immagine sottostante (fonte blockr.io) è possibile vedere tutte le informazioni relative alla blockchain che possono essere consultate su un qualsiasi sito che ne analizza il contenuto. 5

14 2.7. BLOCCO Figura 2.2: Blockchain bitcoin Figura 2.3: Crescita della blockchain in MB La Figura 2.3 mostra la crescita della blockchain negli ultimi due anni. Come si può vedere la dimensione della blockchain ha avuto una crescita vertiginosa andando a quadruplicare la propria dimensione nell arco di un biennio. Tale fenomeno è la dimostrazione di come i bitcoin siano ad oggi la criptovaluta più conosciuta ed utilizzata nel web. 2.7 Blocco Ogni blocco della blockchain contiene oltre alla lista di tutte le transazioni fatte anche altre informazioni importanti tra le quali: numero di blocco progressivo; totale numero transazioni presenti nel blocco; numero di versione; hash del blocco corrente; 6

15 2.8. TRANSAZIONE hash del blocco precedente; merkel root (hash di tutti i blocchi precedenti); livello di difficoltà; timestamp; miner che l ha scoperto; nonce 1. Grazie alle informazioni sopra descritte è possibile capire come ogni blocco sia collegato al blocco precedente (hash del precedente e merkel root) andando quindi a formare una vera e propria catena a partire dal primo blocco creato (genesys block). Grazie a questa concatenazione diventa quindi molto complesso modificare i valori di una transazione perchè una tale modifica andrebbe a modificare prima di tutto l hash del blocco alterato e di conseguenza anche l hash di tutti i blocchi successivi. Nell immagine 2.4 è possibile vedere le informazioni descritte in precedenza riguardanti un singolo blocco (fonte blockr.io). Figura 2.4: Blocco bitcoin 2.8 Transazione La transazione è l atto con cui due utenti si scambiano bitcoin ed è catalogata tramite un indirizzo univoco. Consultando una transazione sono visibili tutte le informazioni che la riguardano ovvero: indirizzo di tutti i mittenti e destinatari, dimensione del file della transazione, orario della ricezione, numero del blocco in cui è salvata, numero di conferme ricevute, totale bitcoin scambiati ed eventuale costo di commissione. Come detto nei capitoli precedenti le transazioni non hanno costi obbligatori di commissione però è possibile, se si desidera, inserire nella transazione una donazione di bitcoin sotto forma di commissione che viene percepita dai miner. Tale donazione permette che la transazione venga accettata ed inserita in minor tempo nella blockchain. Per firmare la transazione e renderla quindi più sicura si una l Elliptic Curve Digital Signature Algorithm (ECDSA); tale firma impedisce quindi che l operazione possa 1 Campo da 32 bit il cui valore è impostato in modo tale che l hash del blocco conterrà una serie di zeri 7

16 2.9. MINING essere alterata. Nell immagine sottostante è riportato uno screenshot delle informazioni descritte in precedenza riguardanti una singola transazione (fonte blockr.io). Figura 2.5: Transazione bitcoin 2.9 Mining Il mining è l operazione con cui si confermano le transazioni effettuate andando quindi ad aggiungerle alla blockchain, tramite la creazione di nuovi blocchi. Per scoprire un nuovo blocco è necessario che questo rispetti determinati requisiti (proof of work) ad esempio che inizi con un certo numero di zeri (probabilità molto bassa). Il processo di creazione di un nuovo blocco passa attraverso la verifica delle transazione effettuate; tale procedimento attualmente viene effettuato da macchine costruite appositamente per risolvere problemi matematici (hashing). L algoritmo di verifica per il protocollo Bitcoin è SHA-256, inoltre il protocollo prevede l aumento nel tempo della difficoltà dei calcoli di hashing per evitare che tutti i nuovi blocchi siano scoperti in maniera troppo rapida. Tale difficoltà è ricalcolata ogni 2016 blocchi scoperti, circa ogni 2 settimane. In media ci vogliono 8 minuti per scoprire un nuovo blocco e il miner o gruppo di miner che lo scopre riceve una ricompensa, che ad oggi è di 25 bitcoin più la somma di tutte le commissioni pagate dagli utenti. La complessità per scoprire ogni blocco aumenta sempre di più mano a mano che si scoprono nuovi blocchi mentre la ricompensa ricevuta dai miner viene dimezzata ogni blocchi estratti. Perchè si fa mining? La risposta a questa domanda è molto semplice e si basa su due punti: per prima cosa ogni volta che si scopre un nuovo blocco esso, oltre a dare un premio economico ai miners, mette in circolazione nuovi bitcoin andando quindi ad aumentarne il numero in circolazione; il secondo aspetto è che sono i miners a confermare le transazioni quindi senza di loro, o meglio senza le loro conferme, non sarebbe più possibile effettuare transazioni Mixer Per rendere l utilizzo dei bitcoin il più anonimo possibile un utente può utilizzare in primo luogo la rete TOR e in secondo luogo i mixer per confondere il percorso creato dalle transazioni in modo tale da renderne difficoltoso il back-tracking. Il mixer bitcoin è un servizio presso il quale possono essere inviati i propri bitcoin i quali poi vengo fatti ritornare tramite altri indirizzi. In questo modo vengono "rimosse" tutte le tracce dei precedenti proprietari e delle precedenti transazioni andandone quindi ad oscurare 8

17 2.11. COME ACQUISTARE BITCOIN l origine. Tale operazione viene fatta per rendere quindi molto difficoltoso risalire alla reale fonte e destinazione di una transazione. Allo stato attuale esistono tre generazini di mixer bitcoin: Centralized Mixing Services (1 gen.): servizio centralizzato presso il quale si inviano i propri bitcoin e, pagando una piccola commissione, se ne ricevono di diversi da quelli inviati. Questo tipo di mixer dipende dal numero di utenti e bitcoin disponibili per la miscelazione; Peer Based Mixer (2 gen.): servizio peer-to-peer, in cui un team di utilizzatori di bitcoin mixano tra loro i propri bitcoin; Anonymous Altcoins (3 gen.): una volta inviati i propri bitcoin al posto di ricevere altri bitcoin si riceve un altro tipo di criptovaluta (Altcoins) che si basi sul protocollo bitcoin (es. Zerocoin) Come acquistare Bitcoin Per acquistare bitcoin è sufficiente registrarsi a un sito che offre il suddetto servizio. Una volta registrati si è in possesso di un wallet però prima di poter utilizzare i bitcoin spesso risulta necessario inviare una copia dei propri documenti. Tale procedimento serve per verificare se i valori inseriti durante la fase di registrazione siano autentici. A questo è necessario aspettare la conferma dell account, tale operazione può richiedere anche alcuni giorni prima di essere soddisfatta. Una volta che il proprio account è stato confermato è possibile iniziare a scambiare il proprio denaro in bitcoin. Durante il periodo di stage lo studente ha acquistato bitcoin per una somma poco inferiore a 50 euro. Tale operazioni è stata fatta sia per mostrare effettivamente come sia possibile comprare bitcoin sia per poter poi effettuare transazione reali e vedere a fondo come tali funzionino e che tracce lasciano sul proprio pc. Per comprare i bitcoin si è fatto uso del sito bitboat.net il quale permette di comprare bitcoin con estrema facilità senza doversi registrare e inviare copia di documenti. Per effettuare l acquisto è infatti sufficiente indicare l indirizzo bitcoin di destinazione della transazione, la propria mail e la quantità di criptovaluta da acquistare. Una vota fatto ciò il sistema darà in output un indirizzo al quale deve essere fatta una ricarica Postepay dell importo esatto richiesto. Una volta avvenuta la transazione il sistema in automatico invia all indirizzo bitcoin inserito all inizio la somma richiesta; da quel momento è possibile iniziare a spendere i bitcoin acquistati Statistiche Vediamo alcuni valori statistici, presi dal sito blockr.io, riferiti alla data del 16 settembre 2015: 1 bitcoin viene scambiato per la somma di USD; capitalizzazione del mercato: 3,339, USD; numero di transazioni (ultime 24 ore): 173,676; bitcoin totali in circolazione: 14,620,825; tempo medio di conferma di una transazione: 7 minuti; dimensione totale della blockchain: 42,228 MB; Vediamo ora alcuni grafici riguardanti il valore di mercato dei bitcoin e la loro capitalizzazione riguardanti gli ultimi due anni. 9

18 2.13. ALTERNATIVE COIN Figura 2.6: Valore di mercato bitcoin in USD (ultimi due anni) Come si può vedere nella Figura 2.6 il valore di mercato dei bitcoin rispetto ai dollari ha un andamento molto variabile. Negli ultimi due anni tale valore ha raggiunto il picco massimo di circa 1,151$ e un valore minimo di 104$. Figura 2.7: capitalizzazione dei bitcoin in USD (ultimi due anni) Come si può notare dalla Figura 2.7 la capitalizzazione rispetto ai dollari dei bitcoin nell ultimo biennio ha toccato un massimo di quasi 14 miliardi di dollari ed un minimo di circa 1,230,000,000$, tale differenza è caratterizzata dall enorme variabilità del prezzo delle criptovalute Alternative Coin I Bitcoin non sono l unica criptovaluta esistente, nel tempo ne sono nate altre e nell immagine 2.8 (fonte coinmarketcap.com) viene riportata una tabella che riassume i dati delle più importanti criptovalute al momento in circolazione. Come si può notare i Bitcoin sono al primo posto con un enorme distacco rispetto alle concorrenza, questo infatti è uno dei motivi per cui si è scelto di realizzare il progetto CryptoSleuth partendo dalla ricerca proprio dei Bitcoin. 10

19 2.14. ALTRI USI DEL PROTOCOLLO BITCOIN Figura 2.8: Alternative Coin Ripple Ripple è una criptovaluta utilizzata nel web che utilizza un protocollo di pagamento open source e distribuito. Permette pagamenti istantanei e gratuiti, senza chargeback 2 e in ogni valuta fiat (dollari, yen, euro, bitcoin). La banca tedesca Fidor è la prima ad utilizzare il protocollo Ripple come parte dell infrastruttura utilizzata nelle transazione bancarie Litecoin I Litecoin sono una ciptovaluta nata nell ottobre del 2011 basata sul protocollo Bitcoin che però ne differisce per il proof-of-work. Viene infatti utilizzato scrypt come algoritmo di hashing al posto di SHA-256. Tale cambiamento rende l attività dei miner più semplice infatti il mining può essere fatto con una certa efficienza anche con un hardware non specifico. Altre differenze rispetto ai Bitcoin si possono notare nei tempi di accettazione di una transazione, 2.30 minuti rispetto a 8 e nel numero massimo di moneta in circolazione, 84 Milioni per i Litecoin rispetto ai 21 Milioni dei Bitcoin Altri usi del protocollo bitcoin Il protocollo Bitcoin viene utilizzato anche in altri ambiti come ad esempio nel mondo della messaggistica. BitMessage è infatti un sistema che permette di mandare e ricevere messaggi usando un protocollo peer-to-peer decentralizzato. Per rendere il servizio di messaggistica sicuro si utilizzano sistemi di crittografia e strumenti quali PGP (Pretty Good Privacy). 2 Possibilità di annullare un pagamento e riavere i soldi spesi. 11

20

21 Capitolo 3 Computer Forensics Questo capitolo è dedicato alle metodologie e tecnologie utilizzate nell ambito del Computer Forensics, tale ramo dell informatica è uno degli aspetti caratterizzanti di CyBrain, infatti molti loro progetti si basano sull utilizzo di tecnologie forensi. Nel corso del periodo di stage sono state studiate e provate le tecnologie e metodologie descritte in seguito, sia per apprendere il modo di lavorare che sta alla base del Computer Forensics, sia per capire al meglio i requisiti e le basi sulle quali il progetto CryptoSleuth si fonda. 3.1 Browser forensics Per la ricerca di informazioni relative ai bitcoin si è fatto uso della Browser Forensics. Tale metodologia permette di ricavare informazioni che vengono lasciate quando si utilizzano i browser. In particolare le informazioni ricercate riguardavano l eventuale utilizzo di siti che trattassero criptovalute. Tutto ciò è stato possibile analizzando in maniera accurata cronologia, cache, storico download dei browser utilizzati. Per effettuare questo tipo di analisi si sono provati vari strumenti Windows come ad esempio WinUFO e altri strumenti reperibili al sito nirsoft.net. Per quello che invece riguarda l ambiente Linux, su quale è stato sviluppato CryptoSleuth, si è preferito analizzare a mano i file sqlite utilizzati come database dai più comuni browser; tramite l utilizzo di sqlite3 è stato possibile vedere la cronologia di firefox effettuando la query "SELECT * FROM moz_historyvisits" sul file places.sqlite. Quest ultima soluzione è quella utilizzata all interno di CryptoSlueth per verificare se, e nel caso quando, sono stati visitati domini riconducibili al mondo bitcoin. 3.2 Artifact Questa sezione è dedicata a tutti gli "artifact" (artefatti) ovvero tracce lasciate dai bitcoin nel computer di un utilizzatore. Come tester si sono utilizzati i seguenti client bitcoin: Bitcoin Core (cliente ufficiale bitcoin), Electrum, MultiBit HD, Copay e Armory (definito il più adatto ai paranoici della sicurezza). Per prima cosa si è cercato di capire se sono stati installati o meno client bitcoin andando quindi a cercare le cartelle principali di tali programmi; già questo dato, seppure semplice da trovare, può essere molto significativo e vincolante in riferimento ai passaggi successivi. Il passo successivo è quello di cercare di recuperare i wallet dei client analizzati, tali file sono salvati in formato diverso in base al tipo di programma e ciò ovviamente comporta metodologie di ricerca differenti. Vediamo ora qualche differenza tra i vari client: 13

22 3.3. CARVING Electrum è il client dal quale si riescono a recuperare più informazioni vista la possibilità di non criptare i file. Il suo wallet viene salvato in un semplice file di testo dal quale è facilmente possibile recuperare storico delle transazioni e chiavi private/pubbliche; Bitcoin può utilizzare Berkley DB criptati per la gestione dei propri wallet rendendo molto difficoltoso il recupero delle informazioni, inoltre il suo utilizzo è vincolato dal previo download di tutta la blockchain (alla data attuale è di quasi 40GB); Copay oltre a criptare tutti i file, non permette nemmeno di fare backup in chiaro; MultiBit HD come Copay cripta ogni singolo file e l unica informazione che permette di salvare in chiaro è lo storico dei pagamenti che comunque è un ottimo risultato; Armory, che come detto è considerato il client più sicuro, cripta tutti i file permettendo però di fare un backup della propria key list in chiaro; da tale backup è possibile recuperare la chiave privata del wallet e di conseguenza di rigenerarlo. Come Bitcoin anche Armory è legato in maniera indissolubile alla blockchain. Tra le altre informazioni che possono essere utili allo studio dei bitcoin ci sono anche gli indirizzi bitcoin, che possono essere recuperati dai vari client permettendo quindi di vedere tutti i movimenti fatti. Per la ricerca di questi indirizzi si è fatto uso di espressioni regolari (es. per gli indirizzi [13][a-km-zA-HJ-NP-Z1-9]{25,34) da utilizzare come parametri per il programma grep di Linux. La tecnica precedentemente descritta è stata utilizzata anche per la ricerca di chiavi pubbliche (es. "xpub[a-za-z0-9]") e private (es. "xprv[aza-z0-9]") all interno dei file wallet non criptati. Anche la Browser Forensics, precedentemente descritta nello specifico, è uno strumento molto importante per la ricerca di tracce dell utilizzo di bitcoin grazie ad essa infatti analizzando sopratutto la cronologia è possibile vedere che siti bitcoin sono stati frequentati e con che frequenza in modo da capire se l utente ha visitato il sito solo per curiosità o per farne un utilizzo costante. Tutti questi artefatti sono la base su cui si è sviluppato il progetto CryptoSleuth. Infatti, come vedremo nel capitolo 5, ognuno dei punti precedentemente descritti viene recuperato tramite un tool apposito per poi essere elaborato da un modulo chiamato cryptocurrency che ne produce un report riassuntivo. 3.3 Carving Il File Carving è un processo per il riassemblamento di file partendo da frammenti di dati contigui in assenza dei metadati presenti nel file system. Questo tipo di operazione viene effettuata tramite il controllo dell header e/o footer di ogni singolo file, ad esempio i file delle classi Java hanno i primi 4 byte con valore "CA FE BA BE", questo valore è conosciuto anche con il nome di magic number. Analizzando quindi tutti i file presenti una volta identificato un magic number si scorre il disco in modo sequenziale finchè non si trova un nuovo magic number (footer o header). Tale operazione può portare nel migliore dai casi ad un recupero completo del file, o nel peggiore dei casi solo ad un recupero parziale. Per il recupero dei file tramite File Carving sono stati utilizzati due programmi, Scalpel e Foremost, grazie ai quali è stato possibile recuperare i file presenti nell im- 14

23 3.4. ANALISI FREE SPACE magini analizzata. Come test si è provato a recuperare le immagini in formato jpg e png. 1 Successivamente si è deciso di scremare i file tenendo solo i file che erano stati cancellati, evitando quindi di tenere duplicati. Queste operazioni sono state fatte utilizzando il comando fdupes che eseguito più volte con input diversi permette alla fine di conservare solamente i file che erano stati cancellati dal disco Semantic Carving Per il recupero delle informazioni si è anche fatto uso di strumenti che utilizzano Semantic Carving, variante del File Carving, che basa la sua analisi sul contenuto delle immagini analizzate e non sul semplice recupero dei file. Per esempio è possibile riconoscere una parte di file scritta in francese all interno di un documento scritto in inglese o anche recuperare tutti gli indirizzi presenti all interno di un immagine analizzata. Lo strumento scelto per effettuare Semantic Carving è Bulk Extractor. 3.4 Analisi Free Space Per lo sviluppo del progetto si è resa necessaria l analisi dello spazio libero presente all interno di una memoria di massa. Tale spazio, chiamato Free Space, è composto da due componenti: Spazio non allocato: con questo termine si intende tutto lo spazio dove il sistema operativo può scrivere, ovvero lo spazio non utilizzato; Slack Space: nel Computer Forensics questo termine indica lo spazio inutilizzato all interno di un cluster ovvero lo spazio in byte presenta tra la fine logica del file e la fine del cluster che contiene l informazione. 1 Tale operazione viene eseguita tramite i comandi: foremost -t jpg, png -o output -i pcacquisition.e01 e scalpel -c scalpel.conf -o output pcacquisition.e01. 15

24

25 Capitolo 4 Tecnologie e strumenti utilizzati In questo capitolo verranno descritte tutte le principali tecnologie e strumenti utilizzati per la realizzazione del progetto CryptoSleuth. Tali tecnologie hanno richiesto l utilizzo anche di particolari librerie/pacchetti per ottenere tutti i risultati desiderati e rendere il prodotto finale il più efficiente possibile. 4.1 NodeJS Per lo sviluppo del progetto si è deciso di utilizzare il framework event-driven Node.js basato su Javascript. Il modello di networking utilizzato di Node.js è I/O eventdriven, ovvero si richiede al sistema operativo di inviare delle notifiche una volta avvenuti determinati eventi, una volta ottenuti viene invocata una funzione di callback che gestisce l evento appena evidenziato. Principio molto importante alla base di node è quindi l asincronia dell elaborazione dei risultati ciò vuol dire che invece di aspettare che un istruzione impartisca al programma il comando per elaborare una certa informazione, il sistema esegue all infinito un loop di istruzioni all interno del quale vi sono istruzioni che verificano continuamente la comparsa delle informazioni da elaborare. Tutto questo permette di avere prestazioni maggiori soprattutto in caso di elevato traffico di rete; tale idea è stata anche implementata in altre librerie come Event machine per Ruby e Twisted per Python. Si è scelto di utilizzare questo framework per la realizzazione del progetto perchè all interno dell azienda è uno degli strumenti maggiormente utilizzati e quindi mantenibile anche da altri dipendenti. Inoltre vista la notevole quantità di operazioni I/O da eseguire la possibilità di eseguirle in modalità asincrona permettendo quindi di impartire altre istruzione mentre si attende la terminazione delle operazioni I/O renderebbe i tempi di esecuzione nettamente minori rispetto ad altre scelte. 4.2 handlebarsjs HandlebarsJS è lo strumento scelto per la realizzazione dei report html, esso infatti è un estensione del "Mustache templating language" creato da Chris Wanstrath e permette in maniera molto semplice di creare template html tenendo separata la parte di view da quella di codice. Tale funzionalità è possibile tramite keyword inserite all interno del template html che riconducono a parti di codice scritte in JavaScript; le pagine prodotte sono pagine html statiche che riassumono in maniera completa tutte le informazione ricavate da CryptoSleuth. 17

26 4.3. GIT 4.3 Git Git è un sistema per il controllo di versione distribuito progettato per gestire sia piccoli che grandi progetti ponendo particolare attenzione alla velocità, all integrità dei dati e all efficienza; esso è disponibile sotto GNU General Public License versione 2. Git è stato ideato da Linus Torvalds nel 2005 per lo sviluppo del kernel Linux e ad oggi è uno dei sistemi di versionamento distribuiti più utilizzati al mondo. Come i suoi concorrenti anch esso utilizza una directory come reporitory alla quale è associata una storia di tutte le operazioni effettuate che permette il tracciamento di versione molto utile nel caso di sviluppo di progetti distribuiti. Si è scelto questo sistema di versionamento perchè oltre ad essere quello maggiormente conosciuto era anche quello utilizzato all interno dell azienda. Le sue funzionalità si sono rese molto utili perchè essendo il codice sorgente su repository aziendale ogni qualvolta un altro dipendente volesse vedere a che punto era arrivato lo sviluppo del progetto o controllarne alcune parti poteva farlo senza alcun tipo di problema. Inoltre una volta terminato il periodo di stage l azienda ha la possibilità di sviluppare il progetto in totale autonomia. All interno della cartella del progetto si sono anche inseriti i link a repository git del software Bulk Extractor modificato salvato all interno di un branch dell account personale dello studente (https://github.com/andreacosta/bulk_extractor) e del software BTCScan (https://gist.github.com/simcity4242/a59089b5e2d48999fcb2). 4.4 Guymager Guymager è un tool grafico open source, utilizzato in ambito di Computer Forensics, utilizzabile per l acquisizione bitwise di un device digitale le cui caratteristiche principali sono: possibilità di utilizzare tecniche per velocizzare l acquisizione (multi processore); possibilità di verificare la copia forense ottenuta tramite il calcolo dell hash MD5 e SHA256; produzione di file di output in formato EWF, AFF o dd. Tale strumento è risultato molto utile sia in fase di sviluppo che in fase di test in quanto si è dovuto effettuare l acquisizione di immagini diverse per verificare l esatto funzionamento di CryptoSleuth. Tale strumento è inoltre utilizzato da CyBrain quando è necessario effettuare acquisizioni forensi per terzi specialmente nel caso fosse necessario esibire prove durante eventuali processi. 4.5 Autopsy e The Sleuth Kit The Sleuth Kit è una libreria e una collezione di comandi utilizzata in analisi forense per investigare all interno di immagini forensi. Autopsy è una piattaforma forense digitale utilizzabile tramite browser per interfacciarsi con The Sleuth Kit e altri tools di analisi forense. Grazie a questo strumento è possibile: creare vari "casi" ed associare ad essi delle immagini forensi; analizzare il contenuto dell immagine e cercare file e/o stringhe; vedere tutti i file cancellati e se possibile anche recuperarne il contenuto; vedere la timeline delle operazioni fatte. 18

27 4.6. BTCSCAN Autopsy è lo strumento utilizzato in fase di analisi per capire come funzionino alcune operazioni di Computer Forensics e quali siano li strumenti al momento disponibili. Da questi strumenti si sono poi presi degli spunti che successivamente sono stati inseriti all interno di CryptoSleuth. 4.6 BTCScan BTCScan è uno script python utilizzato per la realizzazione del progetto. Esso permette di trovare chiavi bitcoin (private/pubbliche) e indirizzi effettuando un match tra le espressioni regolari salvate al suo interno e le stringhe presenti nei file analizzati. È possibile passare in input un immagine (.dd) ma i tempi per la sua analisi sono molto più alti rispetto al passaggio della directory in cui l immagine è stata montata. Questo strumento ha subito solo alcune piccole modifiche sull output prodotto, in modo da renderlo utilizzabile per le successive elaborazioni. 4.7 Bulk Extractor Bulk Extractor è un tool open source per l analisi forense di immagini, file e directory che permette di estrarre informazioni utili senza analizzare la struttura del file system. I risultati che produce sono file.txt facilmente analizzabili e usabili da strumenti automatizzati (es. CryptoSleuth); può inoltre creare in output un istogramma delle informazioni recuperate, output che tuttavia non è stato utilizzato all interno di CryptoSleuth. Bulk Extractor viene spesso utilizzato dalle Forze dell Ordine e all interno di strumenti di cyber-indagini distinguendosi rispetto ad altri concorrenti per la sua velocità e completezza nei risultati. Inoltre essendo uno strumento open source permette di poterlo modificare in base alle proprie necessità come infatti è stato fatto per la realizzazione di CryptoSleuth. Bulk Extractor è composto da svariati scanner, ognuno dei quali rappresenta una tipologia di file/azioni che si voglio recuperare/eseguire. Per esempio esistono già scanner che permettono di recuperare tutte le informazioni possibili sull utilizzo di facebook, ricerca di stringhe tramite espressioni regolari, recuperare immagini ecc. Questo strumento è stato scelto per recuperare informazioni sia dalla sezione partizionata non allocata dell immagine analizza sia da tutta l immagine raw. Un aspetto che ha inciso molto sulla sua adozione oltre al fatto che era già conosciuto dai membri del team, è il fatto che questo strumento è facilmente implementabile sia allo stato attuale per recuperare informazioni sui bitcoin, sia in futuro nel caso si desideri verificare la presenza di altri generi di informazioni come ad esempio tracce di accesso al deep web. 19

28

29 Capitolo 5 CryptoSleuth 5.1 Cos è CryptoSleuth? Il programma sviluppato durante il periodo di stage, chiamato CryptoSleuth, è un software realizzato per identificare tracce di Bitcoin o altre criptovalute all interno di un memoria di massa o di una directory seguendo i principi dell informatica forense. Tale strumento è stato realizzato per essere dato in dotazioni alle Forze dell Ordine, agenzie private e altre associazioni il cui intento è appunto quello di identificare se il soggetto che possiede la memoria di massa è mai entrato in contatto con criptovalute e in che modo. Come detto in precedenza CryptoSleuth può ricevere in input sia una directory che un immagine forense di un disco; la seconda opzione è sicuramente quella più interessante dal lato della ricerca di informazioni perchè oltre a lavorare sulla parte allocata, è possibile analizzare lo spazio partizionato non allocato (spazio allocato e slack) e l intera immagine in modo da scovare eventuali informazioni cancellate o memorizzate in settori non partizionati. E da sottolineare il fatto che lo scopo principale di CryptoSleuth non è quello di fornire certezze assolute, altresì quello di essere un mezzo con il quale trarre indicazioni per poter decidere come proseguire con le investigazioni. 5.2 Casi d uso Per facilitare la comprensione e l utilizzo di CryptoSleuth vengono di seguiti descritti i casi d uso. Tali diagrammi fanno parte della famiglia dei diagrammi UML e vengono utilizzati per descrivere in maniera semplice e comprensibile all utilizzatore finale ma anche a futuri developer, sia le funzionalità al momento offerte dal prodotto sia le possibili azioni che si possono compiere su di esso, come ad esempio la creazione di nuove implementazioni. Ogni caso d uso sarà espresso con la seguente sintassi: UC [codice univoco della radice].[codice progressivo del figlio] 21

30 5.2. CASI D USO UC 1: Analisi di memorie Figura 5.1: UC 1: Analisi di memorie Attore: analista forense Descrizione: l analista decide di analizzare una directory o l immagine di una memoria per vedere la presenza di criptovalute; Precondizione: l analista ha correttamente installato e configurato Crypto- Sleuth e successivamente avviato il programma; Flusso principale degli eventi: 1. Inserimento parametri di input UC 1.1; 2. Avvio analisi dei file/directory di input UC 1.2; 3. Visione dei risultati prodotti UC 1.3; Postcondizione: il sistema ha prodotto tutti i report richiesti in input dall utente. 22

31 5.2. CASI D USO UC 1.1: Inserimento parametri di input Figura 5.2: UC 1.1: Inserimento parametri di input Attore: analista forense Descrizione: l analista inserisce tutti i parametri per avviare la ricerca, essi comprendono parametri di lavoro e di ricerca oltre ai file da analizzare; Precondizione: l analista ha avviato il sistema in ambiente Linux; Flusso principale degli eventi: 1. Inserimento parametri di ricerca UC 1.1.1; 2. Inserimento parametri di lavoro UC 1.1.2; 3. Inserimento file/directory di input UC 1.1.3; Postcondizione: il sistema ha preso in carico tutti i parametri/file utilizzare per la ricerca di informazioni. 23

32 5.2. CASI D USO UC 1.1.1: Inserimento parametri di ricerca Figura 5.3: UC 1.1.1: Inserimento parametri di ricerca Attore: analista forense Descrizione: l analista inserisce i moduli e i jobs che vuole eseguire; Precondizione: l analista è a conoscenza dei moduli e jobs disponibili; Flusso principale degli eventi: 1. Inserimento nome modulo UC ; 2. Inserimento nomi jobs UC ; Postcondizione: l analista ha correttamente inserito i moduli e jobs da utilizzare UC : Inserimento nome moduli Attore: analista forense Descrizione: l analista deve poter inserire il nome del modulo da utilizzare; Precondizione: l analista è a conoscenza dei moduli disponibili; Scenario principale: l analista inserisce il nome del modulo da utilizzare; Postcondizione: il modulo inserito è tra quelli disponibili UC : Inserimento nomi jobs Attore: analista forense Descrizione: l analista deve poter inserire i nomi dei moduli del modulo precedentemente indicato; Precondizione: l analista è a conoscenza dei job associato al modulo precedentemente scelto; Scenario principale: l analista inserisce i nomi dei job da utilizzare; Postcondizione: i job inseriti sono tra quelli disponibili per il modulo scelto. 24

33 5.2.6 UC 1.1.2: Inserimento parametri di lavoro Attore: analista forense 5.2. CASI D USO Descrizione: l analista deve poter inserire tutti i parametri di ricerca disponibili; Precondizione: l analista è a conoscenza dei parametri di lavoro disponibili; Scenario principale: l analista inserisce i parametri di lavoro descritti nella sezione 5.6.2; Postcondizione: l analista ha correttamente indicato i parametri di lavoro UC 1.1.3: Inserimento file/directory di input Figura 5.4: UC 1.1.3: Inserimento file/directory di input Attore: analista forense Descrizione: l analista deve poter inserire tutte le directory e immagini forensi che vuole analizzare; Precondizione: l analista ha avviato il sistema in ambiente Linux; Flusso principale degli eventi: 1. Inserimento path directory UC ; 2. Inserimento path immagine forense UC ; Postcondizione: l analista ha correttamente inserito i path dei file/directory da analizzare UC : Inserimento path directory Attore: analista forense Descrizione: l analista deve poter inserire il path della directory che desidera analizzare; Precondizione: l analista ha avviato il sistema in ambiente Linux; Scenario principale: l analista inserisce il path della directory da analizzare; Postcondizione: l utilizzatore ha correttamente inserito il path della directory da analizzare. 25

34 5.2. CASI D USO UC : Inserimento path immagine forense Attore: analista forense Descrizione: l analista deve poter inserire il path dell immagine forense che desidera analizzare; Precondizione: l analista ha avviato il sistema in ambiente Linux; Scenario principale: analizzare; l analista inserisce il path dell immagine forense da Postcondizione: l analista ha correttamente inserito il path dell immagine forense da analizzare UC 1.1.4: Visualizzazione helper Attore: analista forense Descrizione: l analista deve poter inserire visualizzare l helper nel caso in cui i parametri di input siano errati; Precondizione: l analista ha avviato l analisi; Scenario principale: l analista visualizza l helper; Postcondizione: l helper è stato visualizzato correttamente UC 1.2: Avvio analisi dei file/directory di input Attore: analista forense Descrizione: l analista deve poter avviare l analisi dei file/directory di input; Precondizione: l analista ha avviato il sistema in ambiente Linux; Scenario principale: l analista avvia l analisi; Postcondizione: il sistema ha correttamente iniziato ad eseguire l analisi. 26

35 5.2. CASI D USO UC 1.3: Visione dei risultati prodotti Figura 5.5: UC 1.3: Visione dei risultati prodotti Attore: analista forense Descrizione: l analista deve poter visionare i risultati (report, file recuperati) dell analisi; Precondizione: il sistema ha correttamente eseguito l analisi; Flusso principale degli eventi: 1. Visione dei report JSON UC 1.3.1; 2. Visione del report HTML UC 1.3.2; 2. Visione del report dei log UC 1.3.3; 2. Visione dei file recuperati tramite carving UC 1.3.4; Postcondizione: l analista ha visionato i risultati prodotti dall analisi. 27

36 5.2. CASI D USO UC 1.3.1: Visione dei report JSON Attore: analista forense Figura 5.6: UC 1.3.1: Visione dei report JSON Descrizione: l analista deve poter visionare i report JSON prodotti dall analisi; Precondizione: il sistema ha correttamente eseguito l analisi; Flusso principale degli eventi: 1. Visione del report JSON generico UC ; 2. Visione del report JSON specifico per un job UC ; Postcondizione: l analista ha visionato i report JSON UC : Visione del report JSON generico Attore: analista forense Descrizione: l analista deve poter visionare il report JSON generico per tutti i job; Precondizione: il sistema ha correttamente eseguito l analisi; Scenario principale: l analista ha correttamente visionato il report JSON generico; Postcondizione: l analista ha visionato il report JSON generico UC : Visione del report JSON specifico per un job Attore: analista forense Descrizione: l analista deve poter visionare il report JSON specifico per un job; Precondizione: il sistema ha correttamente eseguito l analisi; Scenario principale: l analista ha correttamente visionato il report JSON specifico per il job scelto; Postcondizione: l analista ha visionato il report JSON specifico per un job. 28

37 UC 1.3.2: Visione del report HTML Attore: analista forense 5.3. TRACCIAMENTO DI REQUISITI Descrizione: l analista deve poter visionare il report HTML prodotto dall analisi; Precondizione: il sistema ha correttamente eseguito l analisi; Scenario principale: l analista visiona il report HTML tramite browser; Postcondizione: l analista ha visionato il report HTML UC 1.3.3: Visione del report dei log Attore: analista forense Descrizione: l analista deve poter visionare il report dei log prodotto dall analisi; Precondizione: il sistema ha correttamente eseguito l analisi; Scenario principale: l analista visiona il report dei log; Postcondizione: l analista ha visionato il report dei log UC 1.3.4: Visione dei file recuperati tramite carving Attore: analista forense Descrizione: Carving; l analista deve poter visionare i file recuperati tramite File Precondizione: il sistema ha correttamente eseguito l analisi; Scenario principale: l analista visiona i file recuperati tramite file carving; Postcondizione: l analista ha visionato i file recuperati tramite file carving. 5.3 Tracciamento di requisiti Partendo dai casi sopra indicati è stata stilata la lista dei requisiti individuati; per ognuno di essi viene inoltre indicato il caso d uso d origine. I requisiti vengono ora suddivisi per categoria ed esposti tramite tabelle per renderli più leggibili. Ogni requisito sarà identificato dalla seguente sintassi: R[Importanza][Tipo][Codice] Importanza: Tipo: 0: obbligatorio; 1: desiderabile; 2: opzionale. F: funzionale; V: vincolo; Q: qualità; 29

38 5.3. TRACCIAMENTO DI REQUISITI P: prestazionale. Codice: codice gerarchico univoco di ogni requisito espresso in numero (es ). Ad ogni requisito vengono inoltre associati: descrizione: breve ma completa descrizione sullo scopo del requisito; fonte: caso d uso: il requisito è stato ricavato da un caso d uso. Possono essere indicati anche più di un caso d uso. tutor aziendale: il requisito è stato espressamente richiesto dal tutor aziendale Requisti Funzionali Requisito Descrizione Fonte R0F 1 L utente desidera analizzare una UC 1 o più memorie per determinare un eventuale presenza di criptovalute al loro interno R0F 1.1 Il sistema richiede in input dei parametri UC 1.1 per iniziare l analisi delle memorie R0F Il sistema richiede in input i parametri UC 1.1 di ricerca, ovvero le infor- mazioni che devono essere cercate dal sistema R0F Il sistema richiede in input l inserimento UC dei moduli da esegui- re, nel caso non ne siano indicati vengono eseguiti tutti R0F Il sistema nel caso siano stati inseriti UC in input dei moduli deve permettere di inserire i job da eseguire R0F Il sistema richiede in input i parametri UC di lavoro i quali determi- nano dove e come l analisi debba essere eseguita R0F Il sistema deve permette di analizzare UC solo la parte allocata di un immagine forense R0F Il sistema deve permette di analizzare UC solo la parte partiziona- ta non allocata di un immagine forense R0F Il sistema deve permette di analizzare UC solo l intera raw image di un immagine forense R0F Il sistema deve permette di eliminare i file contenenti le stringhe estratte temporaneamente dalla cartella contenente i risultati UC

39 5.3. TRACCIAMENTO DI REQUISITI R0F R0F R0F R0F R0F R0F 1.2 R0F 1.3 R0F R0F R0F R0F R0F Il sistema deve permette di modificare il path della cartella di output in cui vengono salvati i risultati Il sistema richiede in input i path dei file e delle directory da analizzare, questi devono essere separati da uno spazio Il sistema permette l inserimento del path delle directory da analizzare Il sistema permette l inserimento del path delle immagini forensi da analizzare Il sistema deve visualizzare l helper nel caso i parametri di input siano errati Il sistema deve salvare i risultati prodotti dai job in formato JSON Il sistema permette la visualizzazione dei risultati prodotti dall analisi Il sistema permette la visualizzazione di report JSON prodotti dall analisi Il sistema permette di visionare il report JSON generico contenenti i risultati di tutti i job Il sistema permette di visionare il report JSON relativo ad un singolo job Il sistema permette la visione del report HTML contenete il risultato di tutti i job Il sistema permette la visione del report contenente tutti i log prodotti dal sistema R0F Il sistema permette di visionare i file recuperati tramite l operazione di File Carving UC UC UC UC UC Tutor aziendale UC 1.3 UC UC UC UC UC UC Requisti di qualità Requisti vincolo Requisito Descrizione Fonte R0V1 Il sistema deve essere eseguito Tutor aziendale sotto ambiente Linux R1V2 Il sistema deve essere poter essere eseguito su sistema embedded Tutor aziendale 31

40 5.4. ARCHITETTURA 5.4 Architettura CryptoSleuth è stato sviluppato con l ottica di essere un prodotto estendibile tramite l aggiunta di ulteriori funzionalità utilizzabili in altri settori ad alto rischio di criminalità come ad esempio deep web, dark market, volumi cifrati. A tal fine la sua struttura è stata divisa in tre macro categorie: tool: strumenti per la raccolta di informazioni; job: configurano i tool indicando le operazioni che ogni modulo può svolgere; moduli: configurano i job da eseguire, elaborano le informazioni recuperate dai tool e producono i report finali. 32

41 5.4.1 Tool 5.4. ARCHITETTURA I tool sono un interfaccia (wrapper) agli strumenti grazie ai quali si recuperano le informazioni che vengono poi elaborate dai moduli; essi si interfacciano sia a strumenti già presenti e rilasciati sotto licenze open source, sia a script creati ex novo. Nel caso specifico di CryptoSleuth sono al momento utilizzati i seguenti tool: grep: programma che permette di effettuare pattern matching su stringhe; find: programma che permette la ricerca di file e directory; BTCScan: script realizzato in python che identifica indirizzi e chiavi Bitcoin tramite una ricerca su stringhe; scalpel: programma utilizzato per effettuare File Carving; BulkExtractor: programma che permette di effettuare Semantic Carving. Ogni tool deve implementare le seguenti quattro funzioni: appendoption: funzione che permette di impostare eventuali parametri in input, tale funzione è utilizzata dai job durante la fase di configurazione; run: la funzione principale che esegue un tool, ovvero effettua le operazioni di ricerca delle informazioni; workalloc: funzione di supporto utilizzata per sapere se il tool lavora anche sulla parte allocata di un immagine fornita come input; setverify: funzione che, se necessario, setta la funzione di verifica che viene lanciata alla fine della funzione run() del tool, il reale funzionamento della funzione di verifica viene scritta all interno di ogni modulo in quanto quest ultima si occupa di eliminare eventuali falsi positivi. Vediamo ora nel dettaglio come funzionano i vari tool Grep Il tool di grep effettua ricerche di strighe nei file presenti all interno della memoria analizzata; a tal fine vengono utilizzati dei dizionari, file di testo.txt, che contengono la lista delle parole da ricercare. Per una maggiore efficienza è stato reso possibile utilizzare in uno stesso run di grep più dizionari in modo da evitare di eseguire il comando più volte. Tale tool può essere utilizzato su qualsiasi area di ricerca ma come primo passaggio è necessario estrarre le stringhe utf-8 e utf-16 tramite il programma strings di Linux. Questa operazione è stata resa necessaria perchè altrimenti non si sarebbero potute analizzare le stringhe salvate in utf-16 con il programma grep. Una volta ricavate le stringhe queste vengono salvate su file.txt che viene successivamente passato in input al programma grep, il quale in un ulteriore file.txt salva tutti i match trovati. I file prodotti dal comando strings, se non indicato diversamente da riga di comando, non vengono cancellati alla terminazione del programma in quanto possono contenere informazioni utili per ulteriori ricerche sulle stringhe. Essi infatti non vengono salvati tra i file temporanei ma direttamente nella cartella che contiene i report finali. Per quello che riguarda invece i file contenenti i match prodotti dal programma grep una volta elaborati dai moduli vengono cancellati durante la fase di terminazione. module. exports. NAME = " grep "; module. exports. VERSION = "0.1.0"; module. exports. AUTHORS = [" Andrea Costa "]; module. exports. DESCR = " Tool that make grep ( math with strings )."; 33

42 5.4. ARCHITETTURA // Dependencies var execsync = require ( child _ process ). execsync, fs = require ( fs ), utils = require (../ src / utils.js ); // Config var keywords = ""; var size = 100; // max value of searching file // Primary functions module. exports. run = function ( input, tmpdirectory, output, type ) { var strings ; console. log (" LANCIATO GREP --- " + input ); try { if ( type == alloc ) { strings = stringsalloc. txt ; console. log ( find + input + - size - + size + M - exec strings -es { > + tmpdirectory + strings + \\; ) ; execsync ( find + input + - size - + size + M - exec strings -es { > + tmpdirectory + strings + \\; ) ; execsync ( find + input + - size - + size + M - exec strings -el { >> + tmpdirectory + strings + \\; ) ; else { strings = strings. txt ; console. log ( sudo strings + input + - es > + tmpdirectory + strings ); execsync ( sudo strings + input + - es > + tmpdirectory + strings ); execsync ( sudo strings + input + - el >> + tmpdirectory + strings ); var data = fs. readfilesync ( tmpdirectory + strings ); ; if ( data. tostring ()!== "") { console. log ( LC_ ALL =C sudo grep -r -E - oa + keywords + + tmpdirectory + strings + >> + output ); execsync ( LC_ ALL =C sudo grep -r -E - oa + keywords + + tmpdirectory + strings + >> + output ); catch (a) { console. log (" Errore " + input ); 34

43 5.4. ARCHITETTURA module. exports. appendoption = function ( dictionaries ) { for ( var i = 0; i < dictionaries. length ; i ++) { keywords += - f \"./ src / dictionaries / grep / + dictionaries [ i] +. txt \" ; ; module. exports. workalloc = function () { return true ; ; Find Il tool di find a differenza del tool grep viene utilizzato solo sulla parte allocata della memoria. Anch esso interfaccia un programma, il comando find, grazie al quale è possibile verificare se esistono file/directory che hanno un determinato nome e/o estensione, riportando sul file.txt di output il match della parola chiave rilevata e il path in cui essa è stata trovata. Anche in questo caso le parole chiave da cercare sono salvate in dizionari. Il file temporaneo prodotto viene salvato nella cartella dei file temporanei e alla terminazione del programma viene cancellato. module. exports. NAME = " find "; module. exports. VERSION = "0.1.0"; module. exports. AUTHORS = [" Andrea Costa "]; module. exports. DESCR = " Tool that find files and directories with certain name."; // Dependencies var execsync = require ( child _ process ). execsync, fs = require ( fs ); // Config var keyword = ""; // Primary functions module. exports. run = function ( input, output ) { execsync ( sudo find + input + + keyword + > + output + find.txt ); ; module. exports. appendoption = function ( keywordsinput ) { var keywordslist = keywordsinput. split ( \ n ); var i = 0; if ( keyword === "") { keyword = - name + "\"" + keywordslist [0] + "\""; i ++; 35

44 5.4. ARCHITETTURA for ( i; i < keywordslist. length -1; i ++) { keyword = keyword + " -o -iname \"" + keywordslist [i] + "\""; ; module. exports. workalloc = function () { return true ; ; BTCScan Il tool btcscan interfaccia l omonimo script python reperibile su Github che tramite una ricerca su stringhe ricava indirizzi e chiavi Bitcoin effettuando già un controllo sulla loro autenticità. Tale tool riceve come input una directory in quanto le sue prestazioni sono più veloci rispetto alla lettura di un file d immagine. Come output viene prodotto un file.csv dal quale è possibile estrapolare l indirizzo/chiave bitcoin e il relativo path. Tale funzionalità poteva essere sviluppata anche tramite l utilizzo di espressioni regolari all interno del tool grep ma si è preferito utilizzare questo strumento perchè seppure più lento ha una maggiore precisione nei risultati evitando quindi di incappare in falsi-positivi. Come per i precedenti tool il file temporaneo prodotto viene eliminato una volta terminato il programma. module. exports. NAME = " btcscan "; module. exports. VERSION = "0.1.0"; module. exports. AUTHORS = [" Andrea Costa "]; module. exports. DESCR = " Tool that find strings that contain certain bitcoin regex."; // Dependencies var execsync = require ( child _ process ). execsync, fs = require ( fs ); // Config // Primary functions module. exports. run = function ( input, output ) { execsync ( cd./ vendor / BTCScan / ; sudo python 3.4./ BTCscan. py -i + input ); execsync ( sudo cp./ vendor / BTCScan / btcscan. csv + output + btcscan.csv ); ; module. exports. workalloc = function () { 36

45 5.4. ARCHITETTURA return true ; ; Bulk Extractor Interfaccia il programma di Semantic Carving Bulk Extractor, questo tool svolge le stesse funzionalità di btcscan con la differenza che viene utilizzato sulla parte non allocata del disco e/o su tutta l immagine passata in input. A differenza del tool precedente questo programma può svolgere molte altre funzioni ognuna delle quali è definita all interno di un file chiamato scanner scritto in C++. Come output viene prodotto un file.txt che ha lo stesso nome dello scanner che lo ha prodotto. Per utilizzare questo programma sono stati creati due appositi scanner: uno per la ricerca di indirizzi Bitcoin (scan_btcaddr.cpp) e uno per la ricerca di chiavi Bitcoin (scan_btckey.cpp), una volta creati i due file.cpp sono stati inseriti tra gli scanner presenti di default, modificando il codice sorgente del programma. module. exports. NAME = " bulkextractor "; module. exports. VERSION = "0.1.0"; module. exports. AUTHORS = [" Andrea Costa "]; module. exports. DESCR = " Tool that recover bitcoin addresses / keys with semantic carving."; // Dependencies var execsync = require ( child _ process ). execsync, fs = require ( fs ); // Config var scanner = ""; var config = fs. readfilesync (./ config / config.json ); var configuration = JSON. parse ( config ); var path =../ vendor / bulk _ extractor / src / ; // Primary functions module. exports. run = function ( input, output ){ execsync ( sudo + path + bulk _ extractor + scanner + -o + output + + input ); ; module. exports. appendoption = function ( scannerinput ){ var i = 0; if( scanner === "") { scanner += " -E " + scannerinput [0]; i ++; for (i; i < scannerinput. length ; i ++) { 37

46 5.4. ARCHITETTURA ; scanner += " -e " + scannerinput [ i]; module. exports. workalloc = function (){ return false ; ; Scalpel Questo tool interfaccia l omonimo programma open source di File Carving per recuperare particolari tipi di file; il suo funzionamento è legato al file di configurazione nel quale sono scritti tutti i magic number dei file recuperabili. La procedura di recupero file consiste nell effettuare un match tra i magic number presenti nel file di configurazione e l header e/o il footer dei file presenti nell unità di memoria leggendola in modo binario bit per bit. Con questo programma è possibile recuperare sia porzioni di file sia file completi. Per lo scopo del progetto il tool scalpel si limita solamente a recuperare file sqlite in quanto sono i database più utilizzati dai client bitcoin. module. exports. NAME = " scalpel "; module. exports. VERSION = "0.1.0"; module. exports. AUTHORS = [" Andrea Costa "]; module. exports. DESCR = " Tool that recover files with file carving."; // Dependencies var execsync = require ( child _ process ). execsync, fs = require ( fs ); // Config var config =./ config / scalpel. conf ; var verify = function () {; // Primary functions module. exports. run = function ( input, output ) { execsync ( sudo scalpel -c + config + -o + output + + input ); if ( verify ) { verify ( output ); ; module. exports. setverify = function ( verifyfunction ) { if ( typeof verifyfunction === function ) { verify = verifyfunction ; 38

47 5.4. ARCHITETTURA ; else { verify = null ; module. exports. workalloc = function () { return false ; ; 39

48 5.4. ARCHITETTURA Job I job sono stati creati a livello architetturale per disaccoppiare moduli e tool. Da un punto di vista di user experience non richiedono inoltre all utente la conoscenza dei tool o delle techine utilizzate per recuperare i dati. Tali scelte permettono quindi all utente di capire ed utilizzare il programma pur non essendo un esperto nel campo del Digital Forensics. Tutti i job sono scritti all interno del file jobs.js e la struttura è composta dalle seguenti parti di esempio: // jobs.js // Dependencies var fs = require ( fs ), path = require ( path ), bulkextractor = require (../ tools / bulkextractor ), find = require (../ tools / find.js ), grep = require (../ tools / grep.js ), scalpel = require (../ tools / scalpel.js ), btcscan = require (../ tools / btcscan.js ), winston = require ( winston ); // Config // strings for dot notation var strbulkextractor = bulkextractor, strbtcscan = btcscan, strgrep = grep, strfind = find, strscalpel = scalpel ; var parts = { raw : false, allocated : false, free : false ; var dirtools =./ tools / ; var tools = {; module. exports. config = { cryptocurrency : { desc : Module that search artifacts of crypto currency ( bitcoin )., jobs :[ addresses, keys, filesystemscout, browserhistory, recoverfiles ] ; // Config function module. exports. gettools = function () { return tools ; ; module. exports. setalloc = function ( partspass ) { parts = partspass ; ; 40

49 5.4. ARCHITETTURA module. exports. readtools = function () { fs. readdir ( dirtools, function (err, files ){ if ( err ) throw err ; files. foreach ( function ( file ){ var name = file. slice (0, -3); if( path. extname ( file ) == ". js "){ tools [ name ] = false ; ); ); winston. info ( Read all tools ); ; // Utils function function btcstringmatch ( scanners ) { if ( parts. allocated === true ) { tools [ strbtcscan ] = true ; if ( parts. free === true parts. raw === true ) { tools [ strbulkextractor ] = true ; bulkextractor. appendoption ( scanners ); function finder ( keywords ) { if ( parts. allocated === true ) { tools [ strfind ] = true ; find. appendoption ( keywords ); function greper ( dictionaries ) { tools [ strgrep ] = true ; grep. appendoption ( dictionaries ); function scalpelfunction ( verify ) { if ( parts. free === true parts. raw === true ) { tools [ strscalpel ] = true ; scalpel. setverify ( verify ); // Jobs function keys ( keysscanners ) { btcstringmatch ( keysscanners ); function addresses ( addressesscanners ) { 41

50 5.4. ARCHITETTURA btcstringmatch ( addressesscanners ); function filesystemscout ( keywords ) { finder ( keywords ); function browserhistory ( dictionaries ) { greper ( dictionaries ); function recoverfiles ( verify ) { scalpelfunction ( verify ); // Exports module. exports. keys = keys ; module. exports. addresses = addresses ; module. exports. filesystemscout = filesystemscout ; module. exports. browserhistory = browserhistory ; module. exports. recoverfiles = recoverfiles ; La loro descrizione visualizzata nel report html è salvata all interno del file jobs.json sia in formato corto che lungo. // jobs. json { " jobs " : { " addresses ": { " shortdescr ": " Cryptocurrencies Addresses ", " longdescr ": " Job that search bitcoin addresses inside allocated / free memory space and all raw disk of the input memory ( raw disk image, directory ).", " keys ":{ " shortdescr ": " Cryptocurrencies Keys ", " longdescr ": " Job that search bitcoin keys inside allocated / free memory space and all raw disk of the input memory ( raw disk image, directory ).", " filesystemscout ":{ " shortdescr ": " Cryptocurrencies Files and Folders ", " longdescr ": " Job that find files and folder of bitcoin client / artifacts.", " browserhistory ":{ " shortdescr ": " Cryptocurrencies Browser History ", " longdescr ": " Job that search artifatcs of bitcoin website.", " recoverfiles ":{ " shortdescr ": " Cryptocurrencies Files Recovered ", " longdescr ": " Job that recover bitcoin wallet ( sqlite )." 42

51 5.4. ARCHITETTURA Allo stato attuale sono disponibili i seguenti job, tutti associati al modulo crypto- Currency: Job Descrizione Tools utilizzati keys Ricerca di chiavi Bitcoin private e pubbliche grep, bulkexractor addresses Ricerca di indirizzi Bitcoin grep, bulkexractor filesystemscout Ricerca di file/cartelle aventi nomi collegabili a client find di criptovalute browserhistory Ricerca di informazioni riconducibili a siti che grep trattano criptovalute recoverfiles Recupero di file tramite File Carving scalpel Una volta indicato in input uno di questi job esso si occupa sia di passare eventuali parametri di ricerca sia di configurare il tool associato rendendolo attivo, ovvero aggiungendolo alla lista dei tool da eseguire. 43

52 5.4. ARCHITETTURA Moduli I moduli sono una parte importante dell infrastruttura di CryptoSleuth essi infatti hanno il compito di elaborare le informazioni recuperate dai tool e produrre i file di output che ne riassumono il contenuto. Per questo progetto è stato realizzato un solo modulo (cryptocurrency) in quanto lo scopo attuale era quello di analizzare la presenza di criptovalute. L architettura di CryptoSleuth è stata però pensata per supportare più moduli infatti tra gli sviluppi futuri del progetto c è l idea di creare un modulo dedicato al deep web e uno apposito per i volume cifrati. Per quello che riguarda le caratteristiche strutturali ogni modulo deve essere composto dalle seguenti funzioni: config: si occupa di avviare la configurazione dei job che devono essere eseguiti; run: si occupa di eseguire tutte le operazioni di elaborazione delle informazioni recuperate dai tool e di stamparne l output riassuntivo; settmppath: setta il path dove vengono salvati i file temporanei CryptoCurrency CryptoCurrency come detto è al momento l unico modulo presente, e il suo compito è quello di elaborare i risultati prodotti dai tool in base ai job che sono stati avviati. Per ogni job avviato viene creato un oggetto json associato nel quale vengono riportate tutte le informazioni necessarie; tale oggetto viene poi scritto sul report json e dato in input alla funzione che si occupa di creare il report html. Vediamo ora nello specifico per ogni job associato al modulo cryptocurrency cosa viene fatto e che output viene realizzato. Keys: questo job serve per recuperare chiavi Bitcoin. Per fare ciò vengono utilizzati i tool btcscan per la parte allocata e Bulk Extractor per la parte non allocata e l immagine raw. Dai file prodotti in output vengono estrapolate le chiavi trovate e per ognuna di esse viene creato un apposito oggetto json che oltre a contenere l indirizzo della chiave contiene anche le seguenti informazioni: tools: lista dei tool dai quali la chiave è stata trovata; rawmatch: numero di match trovati su tutto il file passato in input; locations: array che contiene le informazioni su dove e quante volte la chiave è stata trovata in ogni partizione 1 ; path: partizione in cui la chiave è stata trovata; freespacematch: numero di match trovati nella parte partizionata non allocata; allocatedmatch: numero di match trovati nella parte partizionata allocata; paths: lista di path relativi in cui la chiave è stata trovata. L oggetto json contenente tutte le chiavi bitcoin viene scritto sul file bitcoin_keys.json. { " name ": " keys ", " type ": " img ", 1 nel caso sia stata passata in input una directory sarà presente un solo elemento e il valore associato a path sarà la locazione della directory; 44

53 5.4. ARCHITETTURA " data ": { " xpub 661 MyMwAqRbcGb 3 ipu 8 whksdhssetckjkcxthnao 6 smr 1 gcszkprwasctc 52 XAESBNodM 7 obneowx 9 kaqq 8 ZxSXhLHDCijfsg 8 jria 5 tutz ": { " tools ": [ " bulkextractor ", " btcscan " ], " rawmatch ": 13, " locations ": [ { " path ": "06: Linux ", " freespacematch ": 9, " allocatedmatch ": 4, " paths ": [ "06: Linux /. electrum / wallets / wallet _4", "06: Linux /. electrum / wallets / default _ wallet " ] ] Addresses: questo job funziona esattamente come il job Keys solo che al posto di analizzare chiavi Bitcoin analizza indirizzi Bitcoin; le uniche differenze si basano sull oggetto json creato che oltre alle informazioni già viste nel job precedente ha inoltre: balance: saldo in bitcoin dell indirizzo; totalreceived: quantità di bitcoin ricevuta; numbertransactions: numero di transazioni effettuate. L oggetto json contenente tutte gli indirizzi bitcoin viene scritto sul file bitcoin_addresses.json. { " name ": " addresses ", " type ": " img ", " data ": { "1 AJ9 EcUceQ 8sm6qb2Zf9 FsKkysWQbzKzXY ": { " balance ": 0, " totalreceived ": 0, " numbertransactions ": 0, " tools ": [ " bulkextractor ", " btcscan " ], " rawmatch ": 5, " locations ": [ { " path ": "10: Win 95 FAT 32", " freespacematch ": 3, " allocatedmatch ": 0, " paths ": [], { " path ": "06: Linux ", 45

54 5.4. ARCHITETTURA " freespacematch ": 0, " allocatedmatch ": 2, " paths ": [ "06: Linux /. electrum / wallets / wallet _2" ] ], "1 BPVdMzV 5 UnmQ 6 rnbsh 5 NiJSBgefmSQGMr ": { " balance ": , " totalreceived ": , " numbertransactions ": 27, " tools ": [ " bulkextractor " ], " rawmatch ": 4, " locations ": [ { " path ": "06: Linux ", " freespacematch ": 4, " allocatedmatch ": 0, " paths ": [] ],... filesystemscout: per questo job viene preso in input il file.txt prodotto dal tool find. Nell oggetto json associato viene creato un sottoggetto json per ogni partizione nel caso ce ne siano più di una, ognuna di quest ultime contiene poi il campo: paths: lista dei path relativi in cui i file/cartelle solo stati trovati. L oggetto json contenente tutti i path trovati viene scritto sul file bitcoin_filesystemscout.json. { " name ": " filesystemscout ", " type ": " img ", " data ": { "12: Win 95 FAT 32": { " paths ": [ "/ armory ", "/ armory /. armory ", "/ armory /. armory / armory _2 CHCbgx 3y_ backup. wallet ", "/ armory /. armory /2 CHCbgx 3y / / armory _2 CHCbgx 3y old. wallet ", "/ armory /. armory /2 CHCbgx 3y / / armory _2 CHCbgx 3y old. wallet ", "/ armory /. armory / armory _2 CHCbgx 3y_. wallet ", "/ armory /. armory / armory _ ckyvnofd _. wallet ", "/ armory /. armory / armory _ ckyvnofd _ backup. wallet ", "/ armory /. armory / armory _35 JiUrTYT _. wallet ", "/ armory /. armory / armory _35 JiUrTYT _ backup. wallet ", "/ armory / copay " ], "10: Win 95 FAT 32": { 46

55 " paths ": [ "/. MultiBitHD ", "/ test - wallets / armory - wallet. wallet ", "/ test - wallets / bitcoinj - wallet. wallet " ], "02: Win 95 FAT 32": { " paths ": [ "/ armory ", "/ armory / armory _ ckyvnofd _ decrypt. wallet ", "/ bitcoin ", "/ bitcoin /. bitcoin / blk dat ", "/ bitcoin /. bitcoin / blk dat " ], "06: Linux ": { " paths ": [ "/ multibit -hd", "/ multibit -hd/ multibit -hd", "/. electrum " ] 5.4. ARCHITETTURA browserhistory: come input in questo caso viene preso il file.txt prodotto dal tool di grep. Nell oggetto json associato viene creato un sottoggetto json per ogni dominio ricercato contenente i seguenti campi: lastvisit: ultima data di accesso al dominio indicato; firstvisit: prima data di accesso al dominio indicato; rawmatch: numero di match trovati su tutto il file passato in input; locations: array che contiene le informazioni su dove e quante volte la chiave è stata trovata in ogni partizione; path: partizione in cui la chiave è stata trovata; freespacematch: numero di match trovati nella parte partizionata non allocata; allocatedmatch: numero di match trovati nella parte partizionata allocata; webhistory: lista della cronologia associata a quel dominio. L oggetto json contenente tutti match relativi alla browser history trovati viene scritto sul file bitcoin_browserhistory.json. { " name ": " browserhistory ", " type ": " img ", " data ": { " bitcoin. org ": { " lastvisit ": " T 11:21: Z", " firstvisit ": " T 11:21: Z", " rawmatch ": 80, " locations ": [ { " path ": "02: Win 95 FAT 32", 47

56 5.4. ARCHITETTURA {,... " freespacematch ": 2, " allocatedmatch ": 0, " webhistory ": [], { " path ": "06: Linux ", " freespacematch ": 16, " allocatedmatch ": 0, " webhistory ": [], " path ": "10: Win 95 FAT 32", " freespacematch ": 0, " allocatedmatch ": 50, " webhistory ": [ " https :// bitcoin. org /it/come - iniziare ", " https :// bitcoin. org /it /", " https :// bitcoin. org /it/faq ", " https :// bitcoin. org /it/ sostieni - bitcoin ", " https :// bitcoin. org /it/bitcoin -per - sviluppatori ", " https :// bitcoin. org /it/ innovazione ", " https :// bitcoin. org /it/ comunita " ] recoverfiles: questo job a differenza dei precedenti non prende in input nessun tipo di file e l oggetto json associato contiene una lista di oggetti json, uno per ogni partizione analizzata al cui interno è presente il campo: files: array che contiene il nome di tutti i file recuperati. L oggetto json contenente i nomi dei file recuperati viene scritto sul file bitcoin_recoverfiles.json. { " name ": " recoverfiles ", " data ": { "02: Win 95 FAT 32": { " files ": [ " DB", " DB", " DB", " DB", " DB" ], "06: Linux ": { " files ": [ " DB", " DB", " DB", " DB", " DB", " DB",... ] 48

57 5.4. ARCHITETTURA, " raw ": { " files ": [ " DB", " DB", " DB",... ] 49

58 5.5. FUNZIONAMENTO 5.5 Funzionamento Nella sezione che segue verrà descritto il funzionamento di CryptoSleuth suddiviso per fasi, le ultime due sotto sezioni riguardano invece l utilizzo del file di configurazione e le features aggiuntive inserite per rendere la correzione di eventuali bug il più semplice possibile Inizializzazione La fase di inizializzazione comprende tutte le operazioni necessarie per preparare la configurazione e la successiva esecuzione delle funzionalità richieste. Come primo passo vengono caricati i path di output presenti nel file di configurazione, che sono la locazione in cui vengono salvati i file temporanei successivamente cancellati, e la locazione in cui vengono salvati i risultati finali, siano essi report o file recuperati tramite carving. Si inizia poi a controllare quali tool sono disponibili per l utente, operazione fatta tramite la lettura di tutti i file.js presenti all interno della cartella tools. Tale azione è poi eseguita anche per i moduli presenti all interno della cartella modules. A questo punto la fase di inizializzazione si può considerare terminata e l ambiente e pronto per la fase di configurazione di tool e moduli Configurazione Tale fase si occupa di configurare tutte le impostazioni richieste per la successiva esecuzione dei tool/moduli; il primo passo da fare è creare per ogni modulo le keywords associate che possono essere prese in input. Per tale operazione è stato utilizzato il pacchetto yargs presente per NodeJS. Successivamente, nel caso sia stato passato in input una cartella di output diversa da quella di default, essa viene aggiornata e al suo interno creata la cartella principale che conterrà tutti gli output finali, dove il nome della cartella è il giorno e la data corrente scritti nel formato seguente: dd/mm/yyy_hh:mm:ss. Una volta fatto ciò vengono lette tutte le immagini e le directory passate in input separandole una dall altre. Nella fase di esecuzione saranno prima analizzate tutte le directory e poi le immagini secondo l ordine di scrittura nella riga di comando avviata. Dopo aver registrato anche le parti da analizzare spazio allocato, non allocato e raw, ed eventuali comandi secondari, si passa alla configurazione vera e propria dei tool e dei moduli in base ai job che si è scelto di eseguire. Per fare ciò viene invocata la funzione config() di ognuno modulo scelto dentro la quale vengono avviati i job che configurano i tool a loro collegati passando gli eventuali parametri di input. Al termine di questi passaggi la fase di configurazione è terminata ed il programma è pronto ad analizzare singolarmente tutti gli input passati; di conseguenza le successive fasi vengono ripetute ciclicamente per ognuno degli input inseriti Montaggio immagini Questa fase viene eseguita solo se l oggetto di input è un file d immagine. Come primo passo viene, se necessario, scompressa l immagine EWF in modo da poter accedere all immagine in formato raw. Successivamente vengono montate tulle le partizioni presenti (tramite il comando mount); in fine viene estratto il Free Space dalle partizione (tramite il comando blkls). Una volta terminate queste operazioni all interno della cartella di output finale vengono create le sotto cartelle che conterranno tutti i risultati divisi per file di input. Ogni cartella ha come nome il seguente formato hhmmss_nomeinput. Nel caso si sia passato in input un file d immagine saranno create delle ulteriori sotto cartelle, una per ogni partizione esistente, all interno delle quali sarà presente il file che contiene l estrazione delle stringhe. 50

59 5.5. FUNZIONAMENTO Esecuzione tool Arrivati a questo punto vengono avviati uno alla volta tutti i tool in maniera sincrona. I tool precedentemente configurati dai job estraggono tutte le informazioni richieste e ne salvano il contenuto all interno della cartella dei file temporanei, ad eccezione dei file contenenti le stringhe estratte e i file recuperati tramite carving che vengono salvati nella cartella dell output finale. Si è deciso di salvare i file contenenti le stringhe estratte nella cartella di output finale e non in quella contente i file temporanei perchè potrebbero essere utili per approfondimenti successivi ad essendo operazioni molto onerose in termini di tempi si è preferito evitare che l investigatore riesegua manualmente operazioni già fatte da CryptoSleuth Esecuzione moduli Una volta che i tool hanno finito di ricavare le informazioni è possibile avviare la funzione di run() presente in ogni modulo ed andare quindi ad eseguire tutte le operazioni necessarie quali elaborare i dati e creare i report finali. Prendiamo ora come esempio il modulo cryptocurrency e analizziamone i passi della funzione run(). Il modulo cryptocurrency come primo passo si memorizza la locazione dove salvare i file di output e il codice identificativo di ogni partizione analizzata. Tale codice è prodotto dal numero della partizione all interno della tabella creata tramite il comando mmls e il nome stesso della partizione (es. 02:Linux). Successivamente vengono avviati uno alla volta tutti i job richiesti i quali come primo passo analizzano le informazioni ricavate dai tool e successivamente ne salvano il contenuto elaborato in un oggetto json il quale viene sia stampato nei report.json, sia mandato alla funzione che crea il report html Unmount immagini e cancellazione file temporanei In questa fase nel caso si sia analizzata un immagine vengono smontate tutte le partizioni montate precedentemente. Successivamente si passa alla cancellazione di tutti i file temporanei creati Terminazione La fase di terminazione è l ultima fase prevista e viene eseguita una sola volta solo quando tutti gli input sono stati analizzati. Essa si occupa come prima cosa di eliminare i file temporanei contenenti le stringhe estratte se espressamente richiesto da linea di comando. Successivamente viene invocata la funzione che si occupa di generare il report complessivo in formato html ed il file json che riassume i risultati di tutti i file analizzati. Tali report vengono salvati all interno della cartella degli output finali con i nomi report.html e report.json File di configurazione Questa sezione riguarda l utilizzo del file di configurazione dove sono salvate alcune informazione che sono modificabili dall utente. Al momento tale file contiene i path nei quali vengono salvati i file di output e i file temporanei. Tale file è stato però pensato per permettere, nel caso di sviluppi futuri, l inserimento di informazioni che potranno essere modificate dall utente per rendere l utilizzo di CryptoSleuth il più semplice possibile senza dover modificare il codice sorgente. 51

60 5.6. INSTALLAZIONE E UTILIZZO Features In questa sezione vengono descritte le features aggiuntive realizzate per rendere il più possibile mantenibile e consistente CryptoSleuth oltre che a renderlo utilizzabile come strumento di prova in ambiti legali. log: in svariati punti del programma sono stati inseriti comandi di log che stampano ciò che si sta eseguendo in quel momento (esecuzione tool, cancellazione file ecc). Tale strumento è stato realizzato per due importanti motivi: il primo riguarda il suo utilizzo in caso di crash del programma; infatti grazie al file di log sarà possibile capire dove il programma si è interrotto e se ha eseguito tutti i passi aspettati. Il secondo motivo per cui questa features è stata resa necessaria riguarda l aspetto legale. Infatti CryptoSleuth è stato pensato per essere usato come prova ammissibile in caso di processo e per fare ciò è necessario allegare insieme alle prove raccolte anche tutti i passaggi che sono stati eseguiti. Tali informazioni sono salvate come log nel file report.log presente all interno della cartella che contiene gli output finali. status: tale features è stata creata sia come supporto alla precedente in caso di debug sia per il futuro sviluppo della GUI la quale permetterà di vedere in che stato si trova il programma durante l esecuzione. All interno del file status.json presente nella cartella di progettazione è presente un oggetto json continuamente aggiornato nel quale viene scritto lo stato corrente in cui si trova il programma. 5.6 Installazione e utilizzo In questa parte verranno descritte le operazioni da effettuare per installare, configurare e utilizzare CryptoSleuth su ambiente Linux. Nel capitolo 6 sarà inoltre spiegato come è possibile estendere il progetto andando ad aggiungere nuove funzionalità (tool, job, moduli...) Installazione Per installare CryptoSleuth è sufficente scaricare il progetto dal GitLab aziendale tramite il comando: git clone -- recursive http :// / root / cryptosleuth Tramite l apposita opzione di git recursive verranno anche scaricate tutte le librerie esterne collegate al progetto. Una volta completato il download è necessario compilare Bulk Extractor, posizionandosi nella sotto cartella /vendor/bulk_extractor ed eseguire i seguenti comandi: sh bootstrap. sh./ configure make A questo punto il programma è correttamente scaricato e pronto per l utilizzo. Si ricorda che per l utilizzo di CryptoSleuth è necessario avere installato il framework NodeJS Utilizzo Per vedere le funzionalità e le opzioni disponibili su CryptoSleuth è sufficente eseguire da terminale il comando: node cryptosleuth. js -h 52

61 5.6. INSTALLAZIONE E UTILIZZO che permette di visualizzare la seguente pagina di info, in cui oltre alla descrizione delle opzione è presenta anche una breve descrizione dei tool, job e moduli disponibili: Figura 5.7: Helper Come mostrato nella figura sopra per avviare CryptoSleuth bisogna passare come parametri di input obbligatori un immagine e/o directory (o una lista di immagini/- directory) da analizzare. Nel caso non vengano indicate ulteriori parametri verrà avviata l analisi completa di tutti i moduli e job disponibili su tutte la parti analizzabili (partizionata allocata, partizionata non-allocata, immagine raw). Nel caso si desideri avviare solo alcuni moduli di CryptoSleuth sarà sufficiente indicare il nome del modulo mettendo prima del nome i caratteri -, così da avviare tutti i job associati al modulo scelto (es. cryptosleuth.js -cryptocurrency inputpath). Se si desidera filtrare ulteriormente le operazioni di ricerca è possibile selezionare i job che si vogliono eseguire, per fare ciò è sufficiente immediatamente dopo il nome del modulo inserire la stringa -jobs seguita dalla lista di job da avviare separati tra di loro da, senza spazi (es. cryptosleuth.js -cryptocurrency-jobs addresess,keys inputpath). Nel caso venga passata in input un immagine di una memoria di massa è possibile scegliere che parte della memoria analizzare tramite le seguenti opzioni: -a: analizza solamente la parte partizionata allocata della memoria; -f: analizza solamente la parte partizionata non-allocata della memoria (free space); -r: analizza l intera immagine raw passata in input, operazione più onerosa in termini di tempi e risorse; Di default l immagine viene analizzata in tutte le sue parti. Sono inoltre disponibili i seguenti parametri: -o: indica il path di output in cui vengono salvati i report, i file contenenti le stringhe estratte e tutti i file recuperati tramite carving. -d: autorizza l eliminazione dei file contenenti le stringhe estratte salvati nella cartella di output. 53

Una breve introduzione ai Bitcoin. @FlavioGiobergia

Una breve introduzione ai Bitcoin. @FlavioGiobergia Una breve introduzione ai Bitcoin Bitcoin: cos'è? Bitcoin è una moneta decentralizzata: non esiste alcun potere centrale in grado di controllarla. Al suo posto, esiste una rete di peers che gestisce tutte

Dettagli

1) Una periferica di input è: A) il mouse B) il monitor C) la stampante

1) Una periferica di input è: A) il mouse B) il monitor C) la stampante CONOSCENZE DI INFORMATICA 1) Una periferica di input è: A) il mouse B) il monitor C) la stampante 2) Una memoria in sola lettura con la particolarità di essere cancellata in particolari condizioni è detta:

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Il File System È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Le operazioni supportate da un file system sono: eliminazione di dati modifica

Dettagli

INDICE PROGRAMMA CORSO

INDICE PROGRAMMA CORSO INDICE PROGRAMMA CORSO PRIMA LEZIONE: Componenti di un computer: Hardware, Software e caratteristiche delle periferiche. SECONDA LEZIONE: Elementi principali dello schermo di Windows: Desktop, Icone, Mouse,

Dettagli

Manuale LiveBox CLIENT DESKTOP (WINDOWS)

Manuale LiveBox CLIENT DESKTOP (WINDOWS) 2015 Manuale LiveBox CLIENT DESKTOP (WINDOWS) LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa o implicita di

Dettagli

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Sistemi Operativi. Organizzazione logica ed implementazione di un File System Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Organizzazione logica ed implementazione di un File

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

SETTE DOMANDE SU «Protocollo 2»

SETTE DOMANDE SU «Protocollo 2» SETTE DOMANDE SU «Protocollo 2» 1. Che cosa è «Protocollo 2»? 2. A chi serve «Protocollo 2»? 3. Quali sono le principali funzionalità di «Protocollo 2»? 4. Quanto può essere adattato «Protocollo 2» alle

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

Parte II: Reti di calcolatori Lezione 9

Parte II: Reti di calcolatori Lezione 9 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 9 Martedì 1-04-2014 1 Applicazioni P2P

Dettagli

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT

REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT TESI DI LAUREA REALIZZAZIONE DI UN LABORATORIO REMOTO PER ESPERIENZE DI ROBOTICA EDUCATIVA: LATO CLIENT RELATORE: Prof. Michele Moro LAUREANDO: Marco Beggio Corso di laurea Specialistica in Ingegneria

Dettagli

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

Dettagli

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento

Dettagli

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito) IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

ANALISI FORENSE. irecovery_analisi_forence.indd 1 21/01/14 17:48

ANALISI FORENSE. irecovery_analisi_forence.indd 1 21/01/14 17:48 ANALISI FORENSE irecovery_analisi_forence.indd 1 21/01/14 17:48 COSA è L informatica forense è la scienza che studia l individuazione, la conservazione, la protezione, l estrazione, la documentazione,

Dettagli

51) Linux è: A) un sistema operativo B) una periferica C) un applicazione

51) Linux è: A) un sistema operativo B) una periferica C) un applicazione Conoscenze Informatiche 51) Linux è: A) un sistema operativo B) una periferica C) un applicazione 52) Un provider è: A) un ente che fornisce a terzi l accesso a Internet B) un protocollo di connessione

Dettagli

Manuale Operativo. Istituto Nazionale Previdenza Sociale DIREZIONE CENTRALE SISTEMI INFORMATIVI E TELECOMUNICAZIONI

Manuale Operativo. Istituto Nazionale Previdenza Sociale DIREZIONE CENTRALE SISTEMI INFORMATIVI E TELECOMUNICAZIONI Manuale Operativo Istruzioni per l utilizzo del Software di controllo uniemens aggregato per l invio mensile unificato delle denunce retributive individuali (EMENS) e delle denunce contributive aziendali

Dettagli

USO OTTIMALE DI ACTIVE DIRECTORY DI WINDOWS 2000

USO OTTIMALE DI ACTIVE DIRECTORY DI WINDOWS 2000 VERITAS StorageCentral 1 USO OTTIMALE DI ACTIVE DIRECTORY DI WINDOWS 2000 1. Panoramica di StorageCentral...3 2. StorageCentral riduce il costo totale di proprietà per lo storage di Windows...3 3. Panoramica

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Bitcoin e Cash Out. 1 a parte Aspetti Tecnici e Investigativi (Paolo Dal Checco)

Bitcoin e Cash Out. 1 a parte Aspetti Tecnici e Investigativi (Paolo Dal Checco) 1 a parte Aspetti Tecnici e Investigativi (), Consulente Informatico Forense Stefano Capaccioli, Dottore Commercialista Roma, 17 dicembre 2015 - GIPAF Gruppo di Lavoro Interdisciplinare per la Prevenzione

Dettagli

Specifiche Tecniche e Funzionali Applicativo DIAGNOS PLUS (09/2015)

Specifiche Tecniche e Funzionali Applicativo DIAGNOS PLUS (09/2015) Specifiche Tecniche e Funzionali Applicativo DIAGNOS PLUS (09/205) Circolarità Anagrafica in Comuni sino a 00.000 abitanti Indice Scopo del Documento 3 DIAGNOS PLUS, lo scenario 3 DIAGNOS PLUS, a cosa

Dettagli

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito) IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per sito. Questo documento

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

Introduzione ai certificati S/MIME e alla posta elettronica certificata...2 Procedura di installazione del certificato personale S/MIME rilasciato

Introduzione ai certificati S/MIME e alla posta elettronica certificata...2 Procedura di installazione del certificato personale S/MIME rilasciato Guida all installazione e all utilizzo di un certificato personale S/MIME (GPSE) Introduzione ai certificati S/MIME e alla posta elettronica certificata...2 Procedura di installazione del certificato personale

Dettagli

Manuale LiveBox CLIENT DESKTOP (WINDOWS)

Manuale LiveBox CLIENT DESKTOP (WINDOWS) 2014 Manuale LiveBox CLIENT DESKTOP (WINDOWS) LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa o implicita di

Dettagli

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi

Dettagli

Introduzione a Bitcoin. Marco Polci

Introduzione a Bitcoin. Marco Polci Introduzione a Bitcoin Marco Polci Iniziamo subito con la pratica Prendete il PC Per la dimostrazione scaricare Electrum da: https://www.electrum.org/download.html Windows: scaricare «Standalone Executable»

Dettagli

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli) SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli) Le seguenti istruzioni sono relative all installazione di SPSS Statistics con licenza per utenti singoli. Una

Dettagli

Vendere online. Andrea Marin. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO

Vendere online. Andrea Marin. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO Andrea Marin Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO a.a. 2013/2014 Section 1 Introduzione Parliamo di acquisti online quando a seguito

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Capitolo 1 Installazione del programma

Capitolo 1 Installazione del programma Capitolo 1 Installazione del programma Requisiti Hardware e Software Per effettuare l installazione del software Linea Qualità ISO, il computer deve presentare una configurazione minima così composta:

Dettagli

Installazione SQL Server 2005 Express Edition

Installazione SQL Server 2005 Express Edition Supporto On Line Allegato FAQ FAQ n.ro MAN-6S4ALG7637 Data ultima modifica 25/08/2010 Prodotto Tutti Modulo Tutti Oggetto Installazione SQL Server 2005 Express Edition In giallo sono evidenziate le modifiche/integrazioni

Dettagli

Console di Amministrazione Centralizzata Guida Rapida

Console di Amministrazione Centralizzata Guida Rapida Console di Amministrazione Centralizzata Contenuti 1. Panoramica... 2 Licensing... 2 Panoramica... 2 2. Configurazione... 3 3. Utilizzo... 4 Gestione dei computer... 4 Visualizzazione dei computer... 4

Dettagli

Master Quiz. Matteo Zignani. 18 agosto 2014

Master Quiz. Matteo Zignani. 18 agosto 2014 UNIVESITÁ DEGLI STUDI DI MILANO LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE PROGETTO LABORATORIO DI RETI DI CALCOLATORI Master Quiz Matteo Zignani 18 agosto 2014 1 PRESENTAZIONE DEL PROBLEMA Lo studente

Dettagli

Quaderni di formazione Nuova Informatica

Quaderni di formazione Nuova Informatica Quaderni di formazione Nuova Informatica Airone versione 6 - Funzioni di Utilità e di Impostazione Copyright 1995,2001 Nuova Informatica S.r.l. - Corso del Popolo 411 - Rovigo Introduzione Airone Versione

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: V. Lonati Progetto Analisi di mercato valido per gli appelli di gennaio e febbraio 2015 1 Il problema L analista Ing. Ferrari lavora per l azienda RicerMer

Dettagli

Pratiche edilizie on line PRATICHE EDILIZIE ON LINE MANUALE UTENTE VIRTUAL BACK-OFFICE FEBBRAIO 2005. PIM-MUT-RUPAR-2005-02-03.

Pratiche edilizie on line PRATICHE EDILIZIE ON LINE MANUALE UTENTE VIRTUAL BACK-OFFICE FEBBRAIO 2005. PIM-MUT-RUPAR-2005-02-03. PRATICHE EDILIZIE ON LINE MANUALE UTENTE VIRTUAL BACK-OFFICE FEBBRAIO 2005 PIM-MUT-RUPAR-2005-02-03.DOC Pagina 1 di 30 INDICE 1 INTRODUZIONE... 3 1.1 SCOPO DEL DOCUMENTO... 3 1.2 RIFERIMENTI NORMATIVI...

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito

LEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito LEZIONE 3 Il pannello di amministrazione di Drupal, configurazione del sito Figura 12 pannello di controllo di Drupal il back-end Come già descritto nella lezione precedente il pannello di amministrazione

Dettagli

josh Archive! il software per Archiviazione Documentale josh Archive! per una completa gestione dei processi di

josh Archive! il software per Archiviazione Documentale josh Archive! per una completa gestione dei processi di josh Archive! il software per l Archiviazione Documentale josh Archive! per una completa gestione dei processi di Archiviazione Documentale e Conservazione Sostitutiva Cos è josh Archive! Dalla scansione

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

Dettagli

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps SOFTWARE PER LA GESTIONE DEI TELECONTROLLI SMS-GPS MANAGER Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps Rev.0911 Pag.1 di 8 www.carrideo.it INDICE 1. DESCRIZIONE

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

Dettagli

Messaggi volatili. Matteo Zignani. 10 gennaio 2015

Messaggi volatili. Matteo Zignani. 10 gennaio 2015 UNIVESITÁ DEGLI STUDI DI MILANO LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE PROGETTO LABORATORIO DI RETI DI CALCOLATORI Messaggi volatili Matteo Zignani 10 gennaio 2015 1 PRESENTAZIONE DEL PROBLEMA Lo studente

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Il Sistema Operativo Gerarchia del software

Dettagli

Basi di Dati. Programmazione e gestione di sistemi telematici

Basi di Dati. Programmazione e gestione di sistemi telematici Basi di Dati. Programmazione e gestione di sistemi telematici Coordinatore: Prof. Paolo Nesi Docenti: Prof. Paolo Nesi Dr.sa Michela Paolucci Dr. Emanuele Bellini UML La prima versione ufficiale risale

Dettagli

Analisi dei Requisiti

Analisi dei Requisiti Analisi dei Requisiti Pagina 1 di 16 Analisi dei Requisiti Indice 1 - INTRODUZIONE... 4 1.1 - OBIETTIVO DEL DOCUMENTO...4 1.2 - STRUTTURA DEL DOCUMENTO...4 1.3 - RIFERIMENTI...4 1.4 - STORIA DEL DOCUMENTO...4

Dettagli

MANUALE D USO Agosto 2013

MANUALE D USO Agosto 2013 MANUALE D USO Agosto 2013 Descrizione generale MATCHSHARE è un software per la condivisione dei video e dati (statistiche, roster, ) delle gare sportive. Ogni utente abilitato potrà caricare o scaricare

Dettagli

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta auletta@dia.unisa.it

Dettagli

Tutto Ciò che devi sapere per poter iniziare a guadagnare con le CriptoValute Versione 1.0 data: lunedì 6 ottobre 2014

Tutto Ciò che devi sapere per poter iniziare a guadagnare con le CriptoValute Versione 1.0 data: lunedì 6 ottobre 2014 Tutto Ciò che devi sapere per poter iniziare a guadagnare con le CriptoValute Versione 1.0 data: lunedì 6 ottobre 2014 http:// 1 indice INDICE 2 PREMESSA 6 COPYRIGHT 8 LICENZA 9 AFFILIAZIONE 10 INTRODUZIONE

Dettagli

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Relatore Chiarissimo

Dettagli

14 maggio 2010 Versione 1.0

14 maggio 2010 Versione 1.0 SOFTWARE PER LA GESTIONE DI UN SISTEMA PER LA RILEVAZIONE DELLA QUALITÀ PERCEPITA DAGLI UTENTI, NEI CONFRONTI DI SERVIZI RICHIESTI ALLA PUBBLICA AMMINISTRAZIONE, ATTRAVERSO L'UTILIZZO DI EMOTICON. 14 maggio

Dettagli

Quali informazioni posso comunicare o ricevere?

Quali informazioni posso comunicare o ricevere? I n f o W E B A cosa serve InfoWEB? InfoWEB è una soluzione completamente web che, presentandosi con l aspetto di un sito internet, permette di distribuire tutte le informazioni di presenza volute, e non

Dettagli

Progetto Gennaio 2013: Social Chat Internazionale

Progetto Gennaio 2013: Social Chat Internazionale UNIVERSITÀ DEGLI STUDI DI MILANO, DIPARTIMENTO DI INFORMATICA LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE CORSO DI RETI DI CALCOLATORI ANNO ACCADEMICO 2011/2012 Progetto Gennaio 2013: Social Chat Internazionale

Dettagli

Sistema Gestionale Pem

Sistema Gestionale Pem Sistema Gestionale Pem Guida al Sistema Servizi Informatici Versione 23 Sommario della presentazione Il sistema informatico per la gestione delle domande Gli utenti: diritti e responsabilità La pagina

Dettagli

Esercitazione 2 Certificati

Esercitazione 2 Certificati Sommario Esercitazione 2 Certificati Laboratorio di 2015/2016 Andrea Nuzzolese Certificati Descrizione esercitazione Free Secure Email Certificates (con InstantSSL) ALMA MATER STUDIORUM UNIVERSITA DI BOLOGNA

Dettagli

GESTIONE DEL MOVIMENTO DEL PERSONALE IN AMBIENTE INTRANET. Open System s.r.l.

GESTIONE DEL MOVIMENTO DEL PERSONALE IN AMBIENTE INTRANET. Open System s.r.l. Open System s.r.l. P.IVA: 00905040895 C.C.I.A.A.: SR-7255 Sede Legale: 96016 Lentini Via Licata, 16 Sede Operativa: 96013 Carlentini Via Duca degli Abruzzi,51 Tel. 095-7846252 Fax. 095-7846521 e-mail:

Dettagli

Installare un nuovo programma

Installare un nuovo programma Installare un nuovo programma ICT per la terza età Le video lezioni della Fondazione Mondo Digitale Diapositiva Introduzione Installare un nuovo programma sul computer installazione Quando acquistiamo

Dettagli

Guida Pro di Email Verifier

Guida Pro di Email Verifier Guida Pro di Email Verifier 1) SOMMARIO 2) ISTRUZIONI DI BASE 3) CONFIGURAZIONE 1) SOMMARIO Pro Email Verifier è un programma che si occupa della verifica della validità di un certo numero di indirizzo

Dettagli

INSTALLAZIONE E CONFIGURAZIONE DURC CLIENT PEC E FIRMA DIGITALE

INSTALLAZIONE E CONFIGURAZIONE DURC CLIENT PEC E FIRMA DIGITALE Pag.1 INSTALLAZIONE E CONFIGURAZIONE DURC CLIENT PEC E FIRMA DIGITALE Premessa La Cassa Edile può decidere se utilizzare o meno l invio dei DURC via PEC. Al momento dell installazione DURC Client è configurato

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente Prerequisiti Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente L opzione Provvigioni agenti è disponibile per le versioni Vendite, Azienda Light e Azienda Pro. Introduzione

Dettagli

EFFICIENZA E RIDUZIONE DEI COSTTI

EFFICIENZA E RIDUZIONE DEI COSTTI SCHEDA PRODOTTO TiOne Technology srl Via F. Rosselli, 27 Tel. 081-0108029 Startup innovativa Qualiano (NA), 80019 Fax 081-0107180 www.t1srl.it www.docincloud.it email: info@docincloud.it DocinCloud è la

Dettagli

Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (J-Z)

Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (J-Z) 2011-2012 Ingegneria Gestionale della logistica e produzione Prof. A. Palomba - Elementi di Informatica (J-Z) 14 File e cartelle File system Software di utilità Il S.O. e le periferiche Il S.O. e la memoria

Dettagli

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli) IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per utenti

Dettagli

Manuale d uso Manutenzione impianti termici Ver. 1.0.6 [05/01/2015]

Manuale d uso Manutenzione impianti termici Ver. 1.0.6 [05/01/2015] Manuale d uso Manutenzione impianti termici Ver. 1.0.6 [05/01/2015] Realizzato e distribuito da LeggeraSoft Sommario Panoramica... 2 Menù principale... 2 Link Licenza... 3 Link Dati del tecnico... 3 Link

Dettagli

Guida per il PGP. Scritto da Spy. Indice:

Guida per il PGP. Scritto da Spy. Indice: Indice: Introduzione Le chiavi Chiave pubblica Chiave privata Verifica del messaggio e del mittente "Finger print" Installazione Gestione chiavi Come creare le chiavi Come estrarre una chiave Come esaminare

Dettagli

Le Infrastrutture Software ed il Sistema Operativo

Le Infrastrutture Software ed il Sistema Operativo Le Infrastrutture Software ed il Sistema Operativo Corso di Informatica CdL: Chimica Claudia d'amato claudia.damato@di.uniba.it Il Sistema Operativo (S0) (Inf.) E' l'insieme dei programmi che consentono

Dettagli

Il software. la parte contro cui si può solo imprecare. Il software

Il software. la parte contro cui si può solo imprecare. Il software Il software la parte contro cui si può solo imprecare Il software L hardware da solo non è sufficiente per il funzionamento dell elaboratore ma è necessario introdurre il software ovvero un insieme di

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Manuale Operativo. Novità della versione:

Manuale Operativo. Novità della versione: Versione 3.3 Manuale Operativo Istruzioni per l utilizzo del Software di Controllo uniemens individuale integrato Novità della versione: Possibilità di visualizzare e scaricare in formato csv le caratteristiche

Dettagli

FAW Forensics Acquisition of Website

FAW Forensics Acquisition of Website FAW Forensics Acquisition of Website www.fawproject.com Multiutente Il software profila in maniera separata i vari utenti riservando aree separate per ogni investigatore gestendo la concorrenza in maniera

Dettagli

LICARUS LICENSE SERVER

LICARUS LICENSE SERVER UNIVERSITÀ DEGLI STUDI DI ROMA TOR VERGATA Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Progetto per il corso di Sicurezza dei Sistemi Informatici LICARUS LICENSE SERVER

Dettagli

Guida al sistema. Dott. Enea Belloni Ing. Andrea Montagnani

Guida al sistema. Dott. Enea Belloni Ing. Andrea Montagnani Sistema Gestionale Internazionalizzazione Guida al sistema Dott. Enea Belloni Ing. Andrea Montagnani Firenze, 16 gennaio 2012 Sommario della presentazione Il sistema informatico per la gestione Internazionalizzazione

Dettagli

Manuale di installazione per scarico referti FSE (Fascicolo Sanitario Elettronico)

Manuale di installazione per scarico referti FSE (Fascicolo Sanitario Elettronico) Pag. 1 di 13 Manuale di insta per scarico referti FSE (Fascicolo Sanitario Elettronico) Versione 02 INDICE 1. SCOPO E RIFERIMENTI DEL DOCUMENTO... 2 1.1 SCOPO DEL DOCUMENTO... 2 1.2 RIFERIMENTI... 2 2.

Dettagli

Al fine di pubblicare le informazioni di un condominio sul WEB è necessario che l amministratore proceda con le seguenti fasi:

Al fine di pubblicare le informazioni di un condominio sul WEB è necessario che l amministratore proceda con le seguenti fasi: CONDOMINI SUL WEB Cosa si intende per condomini sul Web? Dalla versione 1.45 del programma Metodo Condomini l amministratore ha la possibilità di rendere fruibili via WEB ai condòmini (proprietari e conduttori)

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

WEBsfa: l automazione della forza vendita via Web

WEBsfa: l automazione della forza vendita via Web WEBsfa: l automazione della forza vendita via Web White Paper 1 Gennaio 2005 White Paper Pag. 1 1/1/2005 L automazione della Forza Vendita Le aziende commerciali che che sviluppano e alimentano il proprio

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

11 Realizzazione del File System. 11.1.1 Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file

11 Realizzazione del File System. 11.1.1 Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file 11 Realizzazione del File System 1 Metodi di allocazione Allocazione contigua Allocazione concatenata e varianti Allocazione indicizzata e varianti Gestione dello spazio libero 11.1.1 Struttura a livelli

Dettagli

ARCHIVIA PLUS: ARCHIPROTO PEC

ARCHIVIA PLUS: ARCHIPROTO PEC ARCHIVIA PLUS: ARCHIPROTO PEC Istruzioni per la configurazione e l utilizzo del modulo di protocollazione PEC Versione n. 2012.05.25 Data : 25/05/2012 Redatto da: Veronica Gimignani Luca Mattioli Approvato

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per utenti singoli)

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per utenti singoli) IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per utenti singoli) Le seguenti istruzioni sono relative all installazione di IBM SPSS Statistics versione 21 con licenza per utenti

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica CL3 - Biotecnologie Orientarsi nel Web Prof. Mauro Giacomini Dott. Josiane Tcheuko Informatica - 2006-2007 1 Obiettivi Internet e WWW Usare ed impostare il browser Navigare in internet

Dettagli

Web File System Manuale utente Ver. 1.0

Web File System Manuale utente Ver. 1.0 Web File System Manuale utente Ver. 1.0 Via Malavolti 31 41100 Modena Tel. 059-2551137 www.keposnet.com Fax 059-2558867 info@keposnet.com Il KDoc è un Web File System cioè un file system accessibile via

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

L ultima versione rilasciata è a pagamento. Il caricamento del CD su un sistema Windows consente di avere a disposizione un ampio campionario di

L ultima versione rilasciata è a pagamento. Il caricamento del CD su un sistema Windows consente di avere a disposizione un ampio campionario di Ordine degli Ingegneri della Provincia di Roma Helix Helix3 è un LiveCD basato su Linux per l Incident Response, l aquisizione dei dischi e dei dati volatili, la ricerca della cronologia di internet e

Dettagli

PRIVACY POLICY. Tipi di dati trattati

PRIVACY POLICY. Tipi di dati trattati PRIVACY POLICY In questa pagina si descrivono le modalità di gestione del sito in riferimento al trattamento dei dati personali degli utenti che lo consultano. Si tratta di un informativa che è resa anche

Dettagli

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo La Firma Digitale La sperimentazione nel Comune di Cuneo Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo Perchè questa presentazione Il Comune di Cuneo, aderente alla RUPAR, ha ricevuto due

Dettagli

Università degli Studi di Napoli Federico II. FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM. Progetto di un applicazione Android

Università degli Studi di Napoli Federico II. FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM. Progetto di un applicazione Android Università degli Studi di Napoli Federico II FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM Progetto di un applicazione Android Briscola bluetooth Candidati: Giuliano Formato Daniele

Dettagli

Sistema Gestionale Biophotonics Guida al sistema

Sistema Gestionale Biophotonics Guida al sistema Sistema Gestionale Biophotonics Guida al sistema Servizi Informatici 5 marzo 2013 Sommario della presentazione Il sistema informatico per la gestione delle domande Gli utenti: definizione dei ruoli Gli

Dettagli

Plone all Università di Ferrara - Case Study

Plone all Università di Ferrara - Case Study Plone all Università di Ferrara - Case Study Francesco Margutti, Cesare Stefanelli, Luca Tebaldi Università di Ferrara, Italia {francesco.margutti, cesare.stefanelli, luca.tebaldi}@unife.it 1. L Università

Dettagli

LEX-ARC STUDIO 3.60.1 : MIGLIORAMENTI E NUOVE FUNZIONALITA

LEX-ARC STUDIO 3.60.1 : MIGLIORAMENTI E NUOVE FUNZIONALITA LEX-ARC STUDIO 3.60.1: IL SOFTWARE GESTIONALE PER AVVOCATI, STUDI, ENTI E UFFICI LEGALI Un professionista del mondo legale, per gestire efficacemente le sue attività, necessita di rapidità nell accesso

Dettagli