Università degli Studi di Padova

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 ( e del software BTCScan ( 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

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

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

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE. Versione 05

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE. Versione 05 SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE Versione 05 Novembre 2015 1 Sommario Generalità... 3 Pagare con ICONTO... 7 Pagare con carta di credito... 10 Pagare

Dettagli

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

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

PRODUZIONE PAGELLE IN FORMATO PDF

PRODUZIONE PAGELLE IN FORMATO PDF Requisiti minimi: PRODUZIONE, FIRMA E PUBBLICAZIONE DELLA PAGELLA ELETTRONICA CON ALUNNI WINDOWS PRODUZIONE PAGELLE IN FORMATO PDF Argo Alunni Windows aggiornato alla versione più recente. Adobe PDF CREATOR,

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

Istruzioni operative instal azione FirmaVerifica3.0 Pag.1 di 27

Istruzioni operative instal azione FirmaVerifica3.0 Pag.1 di 27 Istruzioni operative installazione FirmaVerifica3.0 Pag.1 di 27 Generalità... 3 Operazioni preliminari... 4 Requisiti tecnici... 5 Installazione applicazione...6 Visualizzazione fornitura... 14 Gestione

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

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,

Dettagli

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Avviso di mancata consegna L avviso, emesso dal sistema, per indicare l anomalia

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

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

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

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata. Sommario A cosa serve InfoWEB?... 3 Quali informazioni posso comunicare o ricevere?... 3 Cosa significa visualizzare le informazioni in maniera differenziata in base al livello dell utente?... 4 Cosa significa

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

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

SOMMARIO... 3 INTRODUZIONE...

SOMMARIO... 3 INTRODUZIONE... Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...

Dettagli

Portale Suap SPORVIC2 Manuale Prerequisiti tecnici di sistema

Portale Suap SPORVIC2 Manuale Prerequisiti tecnici di sistema Portale Suap SPORVIC2 Manuale Prerequisiti tecnici di sistema Versione 1.0 > I N D I C E < Sommario 1. PREREQUISITI PER L UTILIZZO DEL SISTEMA... 3 Browser e sistemi operativi... 3 Certificati di autenticazione

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

Console di Monitoraggio Centralizzata

Console di Monitoraggio Centralizzata BackupAssist Console di Monitoraggio Centralizzata Cos'è il monitoraggio centralizzato?... 2 Esempi di report e schermate... 3 Quali report sono inviati tramite email? Quali sono visualizzati su Web?...

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

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

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

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 Progetto ICoNLingua Scienza senza Frontiere CsF- Italia Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 1. Introduzione La valutazione sia in itinere

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

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

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

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 D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

1) GESTIONE DELLE POSTAZIONI REMOTE

1) GESTIONE DELLE POSTAZIONI REMOTE IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo

Dettagli

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato

Dettagli

Protocollo Informatico (D.p.r. 445/2000)

Protocollo Informatico (D.p.r. 445/2000) Protocollo Informatico (D.p.r. 445/2000) Ricerca veloce degli atti, archiviazione, fascicolazione ed inventario semplice e funzionale Collegamento tra protocolli tramite la gestione dei fascicoli e visualizzazione

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

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

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

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

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

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

Come masterizzare dischi con Nero 11

Come masterizzare dischi con Nero 11 Come masterizzare dischi con Nero 11 Non c è dubbio che Nero è diventato un sinonimo di masterizzatore di dischi, data la lunga esperienza sul mercato. Molte persone pensano in questo programma nel momento

Dettagli

lem logic enterprise manager

lem logic enterprise manager logic enterprise manager lem lem Logic Enterprise Manager Grazie all esperienza decennale in sistemi gestionali, Logic offre una soluzione modulare altamente configurabile pensata per la gestione delle

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

Sharpdesk V3.3. Guida all installazione Versione 3.3.04

Sharpdesk V3.3. Guida all installazione Versione 3.3.04 Sharpdesk V3.3 Guida all installazione Versione 3.3.04 Copyright 2000-2009 di SHARP CORPORATION. Tutti i diritti riservati. È vietata la riproduzione, l adattamento o la traduzione senza previa autorizzazione

Dettagli

PORTALE CLIENTI Manuale utente

PORTALE CLIENTI Manuale utente PORTALE CLIENTI Manuale utente Sommario 1. Accesso al portale 2. Home Page e login 3. Area riservata 4. Pagina dettaglio procedura 5. Pagina dettaglio programma 6. Installazione dei programmi Sistema operativo

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

PROTOS GESTIONE DELLA CORRISPONDENZA AZIENDALE IN AMBIENTE INTRANET. Open System s.r.l.

PROTOS GESTIONE DELLA CORRISPONDENZA AZIENDALE 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

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

3. INSERIMENTO PUBBLICAZIONI NUOVE Anche qui previsto il nuovo codice 02 per Periodici in bolla quotidiani

3. INSERIMENTO PUBBLICAZIONI NUOVE Anche qui previsto il nuovo codice 02 per Periodici in bolla quotidiani EDICOLA MANAGER 2.4 Sta per essere messo in distribuzione il nuovo aggiornamento di Edicola Manager, il programma Edicole creato dai giornalai per la gestione della rivendita che crea una rete di colleghi

Dettagli

Esempio 1: CarMatch. Direzione centrale Sedi centrali per ogni paese Concessionarie locali di franchising UML 2

Esempio 1: CarMatch. Direzione centrale Sedi centrali per ogni paese Concessionarie locali di franchising UML 2 Esempio 1: CarMatch CarMatch è una società di franchising fondata con lo scopo di promuovere il car sharing CarMatch fornisce un servizio per i potenziali condivisori di automobili cercando di abbinare

Dettagli

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

ARCHIVIAZIONE DOCUMENTALE NEiTdoc ARCHIVIAZIONE DOCUMENTALE NEiTdoc PROCESS & DOCUMENT MANAGEMENT La documentazione può essere definita un complesso di scritture prodotte da entità pubbliche o private nell espletamento della loro attività,

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

MANUALE UTENTE Profilo Azienda Partecipata. APPLICATIVO CAFWeb

MANUALE UTENTE Profilo Azienda Partecipata. APPLICATIVO CAFWeb MANUALE UTENTE Profilo Azienda Partecipata APPLICATIVO CAFWeb CAF_ManualeUtente_Partecipate_2.0.doc Pag. 1 di 17 Sommario 1 GENERALITÀ... 3 1.1 Scopo... 3 1.2 Validità... 3 1.3 Riferimenti... 3 1.4 Definizioni

Dettagli

Report di valutazione studiolegalebraggio.it

Report di valutazione studiolegalebraggio.it Roma, li 15/01/2013 Report di valutazione studiolegalebraggio.it Il presente documento è redatto allo scopo di mostrare e analizzare le performance del sito web a due mesi e mezzo dalla pubblicazione online,

Dettagli

GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE

GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE L applicazione elaborata da Nordest Informatica e disponibile all interno del sito è finalizzata a fornirvi un ipotesi dell impatto economico

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI SCRIVANIA PER GLI UFFICI SUAP

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI SCRIVANIA PER GLI UFFICI SUAP InfoCamere Società Consortile di Informatica delle Camere di Commercio Italiane per azioni SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI SCRIVANIA PER GLI UFFICI SUAP versione

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

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

MUDE Piemonte. Modalità operative generazione Procura speciale

MUDE Piemonte. Modalità operative generazione Procura speciale MUDE Piemonte Modalità operative generazione Procura speciale STATO DELLE VARIAZIONI Versione Paragrafo o Pagina Descrizione della variazione V01 Tutto il documento Versione iniziale del documento Sommario

Dettagli

CERTIFICATI DIGITALI. Manuale Utente

CERTIFICATI DIGITALI. Manuale Utente CERTIFICATI DIGITALI Procedure di installazione, rimozione, archiviazione Manuale Utente versione 1.0 pag. 1 pag. 2 di30 Sommario CERTIFICATI DIGITALI...1 Manuale Utente...1 Sommario...2 Introduzione...3

Dettagli

STAMPA DI UNA PAGINA SEMPLICE

STAMPA DI UNA PAGINA SEMPLICE Pagina 11 copiati nel proprio sistema (disco fisso o floppy). Questa operazione è detta download o scaricamento. Il modo più semplice per effettuare un download di un file (a meno che non sia specificato

Dettagli

OpenPsy: OpenSource nella Psicologia. Presentazione del progetto in occasione dell edizione 2004 del Webbit (Padova)

OpenPsy: OpenSource nella Psicologia. Presentazione del progetto in occasione dell edizione 2004 del Webbit (Padova) OpenPsy: OpenSource nella Psicologia Pag. 1 di 9 OpenPsy: OpenSource nella Psicologia Presentazione del progetto in occasione dell edizione 2004 del Webbit (Padova) PREMESSA Per prima cosa, appare ovvio

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Ata_NiAg02. Modulo Gestione Agenti

Ata_NiAg02. Modulo Gestione Agenti Ata_NiAg02 Modulo Gestione Agenti Il software NiAg02 consente alle aziende che utilizzano il software gestionale ATA di gestire in maniera totalmente automatizzata l acquisizione ordini e/o clienti dalla

Dettagli

Express Import system

Express Import system Express Import system Manuale del destinatario Sistema Express Import di TNT Il sistema Express Import di TNT Le consente di predisporre il ritiro di documenti, pacchi o pallet in 168 paesi con opzione

Dettagli

Alfa Layer S.r.l. Via Caboto, 53 10129 Torino ALFA PORTAL

Alfa Layer S.r.l. Via Caboto, 53 10129 Torino ALFA PORTAL ALFA PORTAL La struttura e le potenzialità della piattaforma Alfa Portal permette di creare, gestire e personalizzare un Portale di informazione in modo completamente automatizzato e user friendly. Tramite

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

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

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Portale Servizi Online Sogetras versione del 08/10/2010 Pagina 1 di 18

Portale Servizi Online Sogetras versione del 08/10/2010 Pagina 1 di 18 INDICE 1. Introduzione 2. Requisiti 3. Accesso Servizi Online 4. Gestione lettere di vettura 5. Tracking Spedizioni 6. Gestione Giacenza 7. Gestione Prese 8. Gestione Anagrafica 9. Richiesta Consumabili

Dettagli

Introduzione. Installare EMAS Logo Generator

Introduzione. Installare EMAS Logo Generator EMAS Logo Generator Indice Introduzione... 3 Installare EMAS Logo Generator... 3 Disinstallare EMAS Logo Generator... 4 Schermata iniziale... 5 Creare il Logo... 7 Impostazioni... 7 Colore...8 Lingua del

Dettagli

FOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

FOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA FOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA Redatto da IZ1FAL Secco Marco Pagina 1 di 15 INDICE 1 1- INSTALLAZIONE... 3 1-1 Scaricare i pacchetti aggiornati... 3 1-2 Startup

Dettagli

Manuale d'uso. Manuale d'uso... 1. Primo utilizzo... 2. Generale... 2. Gestione conti... 3. Indici di fatturazione... 3. Aliquote...

Manuale d'uso. Manuale d'uso... 1. Primo utilizzo... 2. Generale... 2. Gestione conti... 3. Indici di fatturazione... 3. Aliquote... Manuale d'uso Sommario Manuale d'uso... 1 Primo utilizzo... 2 Generale... 2 Gestione conti... 3 Indici di fatturazione... 3 Aliquote... 4 Categorie di prodotti... 5 Prodotti... 5 Clienti... 6 Fornitori...

Dettagli

Funzioni di Trasferimento Movimenti

Funzioni di Trasferimento Movimenti Airone Gestione Rifiuti Funzioni di Trasferimento Movimenti Airone Funzione di Trasferimento Movimenti pag. 1 Indice INTRODUZIONE... 3 FUNZIONE DI TRASFERIMENTO MOVIMENTI... 3 Configurazione dell applicazione...4

Dettagli

MODULO PER LA GESTIONE DEI RESI

MODULO PER LA GESTIONE DEI RESI MODULO PER LA GESTIONE DEI RESI Clienti, prodotti, categorie merceologiche e stabilimenti di produzione. Difetti, tipologia difetti, test ed esiti finali di verifica. Raggruppamento dei test loro in schede

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Manuale Utente. Gestione Richieste supporto Data Warehouse. Della Ragioneria Generale dello Stato. Versione 1.0. Roma, Ottobre 2015

Manuale Utente. Gestione Richieste supporto Data Warehouse. Della Ragioneria Generale dello Stato. Versione 1.0. Roma, Ottobre 2015 Manuale Utente Gestione Richieste supporto Data Warehouse Della Ragioneria Generale dello Stato Versione 1.0 Roma, Ottobre 2015 1 Indice 1 Generalità... 3 1.1 Scopo del documento... 3 1.2 Versioni del

Dettagli

Progettazione e realizzazione di un applicativo Web Annunci Immobiliari

Progettazione e realizzazione di un applicativo Web Annunci Immobiliari Corso di Gestione dell Informazione Studenti NON frequentanti A.A. 2009/2010 Progettazione e realizzazione di un applicativo Web Annunci Immobiliari 1 Scopo del progetto Si vuole realizzare un applicazione

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA Biblioteca di Cervia NOZIONI BASE DI INFORMATICA NOZIONI DI INFORMATICA Il PC è composto solitamente di tre parti principali: - Il Case, ovvero il contenitore del cuore del computer, da qui si accende

Dettagli

Centro Tecnico per la Rete Unitaria della Pubblica Amministrazione

Centro Tecnico per la Rete Unitaria della Pubblica Amministrazione Centro Tecnico per la Rete Unitaria della Pubblica Amministrazione Area Rete Unitaria - Sezione Interoperabilità Linee guida del servizio di trasmissione di documenti informatici mediante posta elettronica

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

CONTENT MANAGEMENT SY STEM

CONTENT MANAGEMENT SY STEM CONTENT MANAGEMENT SY STEM I NDI CE I NTRODUZI ONE Accesso al CMS 1) CONTENUTI 1.1 I nserimento, modifica e cancellazione dei contenuti 1.2 Sezioni, categorie e sottocategorie 2) UTENTI 3) UP LOAD FILES

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

Manuale Utente. Gestione Richieste supporto BDAP. Versione 1.0

Manuale Utente. Gestione Richieste supporto BDAP. Versione 1.0 Manuale Utente Gestione Richieste supporto BDAP Versione 1.0 Roma, Settembre 2015 1 Indice 1 Generalità... 3 1.1 Scopo del documento... 3 1.2 Versioni del documento... 3 1.3 Documenti di Riferimento...

Dettagli

A T I C _W E B G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O. Rev. 2.1

A T I C _W E B G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O. Rev. 2.1 G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O A T I C _W E B Rev. 2.1 1 1. ISCRIZIONE Le modalità di iscrizione sono due: Iscrizione volontaria Iscrizione su invito del Moderatore

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo GRUPPO CAMBIELLI Posta elettronica (Webmail) Consigli di utilizzo Questo sintetico manuale ha lo scopo di chiarire alcuni aspetti basilari per l uso della posta elettronica del gruppo Cambielli. Introduzione

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

Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE

Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE Si tratta della funzione che consente di generare il file in formato testo (.TXT) che permette la spedizione all Agenzia

Dettagli