PETYA Virus, Vulnerabilità e Pentesting
13 luglio 2017
CopyKittens, gli hacker iraniani che minacciano Israele e i nemici di Teheran
27 luglio 2017

Il Clustering come Strumento di Deanonimizzazione dei Wallet Bitcoin

Si sente sempre più spesso parlare di Bitcoin, in particolare durante gli attacchi tramite ransomware come durante le tristemente famose campagne di Wannacry e NotPetya. E’ noto ai più ormai che si tratta di una sorta di “moneta virtuale”, utilizzata anche (ma non solo) dai criminali per diversi motivi, tra i quali la possibilità di ricevere denaro nascondendosi dietro a uno pseudonimo che sembra garantire l’anonimato. Per molti di coloro che per la prima volta si trovano ad affrontare l’argomento, però, questa moneta matematica è avvolta da un circolo di errata percezione relativa alla potenziale anonimità nelle transazioni.

Il Bitcoin viene certamente anche utilizzato come “valore” di scambio per le attività illecite che latitano nella parte più nascosta della rete, ma non offre nel suo utilizzo standard l’anonimato che tanti vi attribuiscono. Uno dei motivi è il fatto che la tecnologia peer-to-peer alla base del Bitcoin è legata a una memoria cronologica di tutte le transazioni effettuate a partire dalla sua creazione, avvenuta nel 2009 da parte di un anonimo ricercatore o gruppo di ricerca. La blockchain – nome con il quale questo archivio delle transazioni viene identificato – registra ogni trasferimento e ogni indirizzo Bitcoin ed è assolutamente di pubblica consultazione, al punto che è ancora possibile risalire al primo scambio di moneta o persino o ricostruire il pagamento della prima pizza pagata interamente in criptomoneta. Ricordiamo che gli indirizzi Bitcoin sono dei “codici” simili agli IBAN bancari, possono essere utilizzati per ricevere della moneta e da essi si può attingere, come se fossero dei conti correnti, per disporre dei versamenti. La differenza rispetto al modo bancario – dove l’Autorità Giudiziaria è in grado di stabilire l’associazione utente-conto – è che in ambito Bitcoin nessuno è tenuto a comunicare il possesso di uno o più particolari indirizzi. Se da un lato vi è quindi una percezione di anonimato, dall’altro possiamo osservare come all’opposto ogni aspetto del Bitcoin è pubblico: per questo motivo è tendenzialmente più corretto definire il Bitcoin come “pseudonimo” piuttosto che “anonimo”.

Il protocollo si fonda sulla crittografia asimmetrica e offre una copertura dell’identità del possessore della moneta limitata alla pseudonimia: ogni indirizzo è provvisto di una chiave privata (che il proprietario usa per confermare e autorizzare le transazioni) e di una chiave pubblica (che poi viene tradotta in un “indirizzo” bitcoin). Un utente può avere infiniti indirizzi (e quindi infinite coppie di chiavi privata e pubblica) che di solito vengono raccolti e gestiti in wallet (“portafogli”) ma nessuno è obbligato né a richiedere a terzi l’autorizzazione a utilizzare indirizzi/wallet ne a comunicare il loro possesso. Gli indirizzi Bitcoin si possono generare autonomamente, anche sul proprio PC, in numero potenzialmente infinito. Questo aspetto ha nel tempo portato a credere che le transazioni potessero essere irrintracciabili e che non si potessero ricostruire i wallet e le proprietà degli indirizzi tramite l’analisi della blockchain.

In realtà ci sono diversi metodi tramite i quali la potenziale privacy può essere violata, primo fra tutti il clustering degli indirizzi Bitcoin. Questa tecnica consiste nel trovare e raggruppare gli indirizzi in wallet, cioè in gruppi d’indirizzi appartenenti presumibilmente a un singolo soggetto (che può poi essere un individuo, un negozio, un exchange, un mixer, etc…). Il clustering avviene tramite un’analisi della blockchain e l’utilizzo di alcuni approcci euristici, descritti efficacemente da Jonas David Nick nel suo lavoro “Data-Driven De-Anonymization in Bitcoin”. Sostanzialmente, tramite il clustering è possibile, dato un indirizzo Bitcoin appartenente a un’entità, identificare eventuali altri indirizzi facenti parte del suo stesso wallet. Trasponendo l’esempio nella realtà, sarebbe come riuscire a identificare tutti i conti correnti di proprietà di un soggetto – anche quelli che questi sta tentando di mantenere segreti – conoscendone soltanto uno tramite il quale, ad esempio, sono stati commessi degli illeciti.

Le euristiche sono misurazioni basate sull’analisi del protocollo e sull’esperienza, non sono sempre valide ma se correttamente pesate possono indicare il livello di attendibilità delle risultanze dell’analisi. Vediamo, in dettaglio, i principi su cui si basa il clustering, così come abilmente raccolti da Jonas David Nick nek suo lavoro sulla deanonimizzazione del Bitcoin. La prima euristica viene definita da Nick “Multi-Input Heuristic”. Già accennata dal presunto creatore del protocollo, noto come Satoshi Nakamoto, questa regola mostra come tutti gli indirizzi in input di una transazione provengano dallo stesso wallet, principio questo valido sempre, nel senso che l’autore della transazione possiede le chiavi private di tutti gli indirizzi in input. Ciò su cui vanno fatte le giuste premesse è cosa intendiamo con “autore” o “soggetto”: non sempre infatti si tratta di una persona, potrebbe essere infatti un Exchange, un mixer, un wallet online. Tale approccio è basato sul fatto che solitamente i wallet siano i soli responsabili della generazione delle transazioni di un utente e che quindi, se si è a conoscenza del fatto che, in una transazione definita multi-input, un indirizzo sia di proprietà dell’utente, anche tutti gli altri indirizzi in input apparterranno allo stesso.

La “Shadow Heuristic”, l’“euristica ombra”, è invece sviluppata tenendo in considerazione come i wallet gestiscono le transazioni con resto. La quasi totalità dei wallet cerca di tutelare la privacy del proprio utente generando una nuova coppia di chiavi per ogni output di resto che viene generato in una transazione. Se quindi vi è una transazione con un input e due output, si può supporre che uno sia l’indirizzo di destinazione e l’altro sia il resto. Supponiamo che la destinazione sia la chiave pubblica di un commerciante, questo indirizzo si presume rimanere costante in ogni transazione; l’altro input variabile sarà quindi l’indirizzo generato dal wallet per la ricezione del resto della transazione. Da qui si evince che le pubkeys di invio e del resto siano nello stesso wallet. Un indirizzo che può essere un potenziale resto è uno che viene usato per massimo due transazioni: una in entrata e una in uscita.

Il terzo tipo di euristica è detta “Consumer Heuristic” ed è applicabile nel caso di wallet gestiti da utenti privati (consumers), cosa che avviene nella maggior parte dei casi. Questo fa sì che le transazioni abbiano massimo due output, di cui uno è il resto; solitamente un privato non invia denaro a più entità diverse. Questa caratteristica diventa importante quando sorge il dubbio di quale, tra due transazioni, sia quella che porta i fondi verso il destinatario e quale il resto. Se, al secondo livello, una delle due transazioni dubbie riversa denaro su più output (magari prendendolo da più input), significa che quella è la transazione di resto, l’altra quella da seguire per ricercare i dettagli del destinatario della moneta.

L’ultima euristica presentata è chiamata “Optimal change heuristic”, che intuitivamente spiega come i wallet cerchino di ottimizzare la gestione del resto andando a cercare i migliori output da spendere. Esempio: se in una transazione troviamo due input da 0.5 BTC ciascuno e due output rispettivamente da 0.6 BTC e da 0.4 BTC, allora sapremo con certezza che quest’ultimo è il resto. Non avrebbe senso il contrario, in quanto sarebbe se gli 0.4 BTC fossero il trasferiemento principale, per sostenerlo sarebbe stato sufficente un solo input da 0.5 BTC, con un avanzo di 0.1 BTC. La situazione opposta genere risulterebbe fortemente pleonastica e comporterebbe solamente lo svantaggio di incrementare le dimensioni della transazione e, di conseguenza, le commmissioni a carico dell’utente. Quindi, per riassumere in maniera più chiara grazie alle parole dello stesso Jonas Nick, “se c’è un unico output con un valore minore di ogni input, allora quello sarà il resto della transazione”.

Questi quattro approcci euristici, per definizione, possono risultare certamente fallaci, in talune condizioni. La Multi-Imput Heuristic fallirà nel momento in cui vengono effettuate operazioni di CoinJoin, che descriveremo meglio più avanti; la Shadow Heuristic porta a un risultato errato se il wallet in oggetto è uno dei pochi che riutilizza gli indirizzi per i resti; per far fallire la Consumer Heuristic un utente dovrebbe generare transazioni rivolte a più destinatari tramite il suo wallet, cosa possibile ma piuttosto rara; infine, per l’Optimal Change Heuristic, è talvolta possibile che il wallet non riesca ad ottimizzare la gestione degli output da spendere e quindi “sprechi” transazioni.

Questi approcci vengono utilizzati, assieme a principi più complessi, dai principali tool open source che supportano un’efficace strategia di clustering, come BitCluster e WalletExplorer, che, uniti a un costante monitoraggio delle transazioni su piattaforme online per la visualizzazione della blockchain o in locale scaricandosene copia e installando un block explorer, possono produrre risultati eccellenti e collegare fra loro indirizzi ignoti e indirizzi noti per ricostruire anche indirettamente l’identità dei proprietari o almeno i movimenti di denaro.

Nonostante queste potenzialità investigative, esistono dei metodi più o meno efficaci per tentare di eludere le tecniche di blockchain analysis: i principali sono i servizi di mixing (o tumbler) e le già citate operazioni di CoinJoin.

Partiamo dalle operazioni di CoinJoin, che permettono almeno in teoria di superare le criticità e i rischi dei mixer “unendo” la propria transazione a un altro blocco in modo “sicuro”, senza dover riporre la propria fiducia su un ente terzo e potenzialmente malevolo. L’operazione d’incrocio delle transazioni rende di fatto molto difficile se non talvolta impossibile ricollegare gli output ai rispettivi input e facendo sì che questo tipo di operazioni siano molto più complesse da smascherare tramite gli strumenti open source che sfruttano le sopracitate euristiche.

Quando si parla invece di mixer o tumbler, s’intendono servizi offerti da terzi che “mescolano” il denaro inviato per anonimizzarlo e ripulirlo (anche se c’è letteratura che definisce CoinJoin un “mixer”, differenziandolo dai “tumbler”). Questo tipo di servizio garantisce un potenziale anonimato della transazione poiché “ripulisce” il denaro sporco facendolo “saltare” da un indirizzo a un altro non collegati tra di loro se non da algoritmi interni al servizio stesso.

Il funzionamento dei servizi di mixing è infatti molto semplice: l’utente invia la somma che desidera “ripulire” all’indirizzo Bitcoin fornitogli dal tumbler. Questi poi versa l’importo (da cui viene trattenuta una piccola commissione) sull’indirizzo destinazione indicato dall’utente, ma questa volta il denaro proviene dai versamenti di altri “clienti”. In questo modo è molto difficile se non impossibile (a meno di non conoscere i dettagli interni e lo storico del mixer) ricollegare i due indirizzi indicati tramite una semplice analisi della blockchain, poiché tecnicamente la transazione inviata dall’utente non è mai realmente entrata in suo possesso.

Ovviamente il servizio ha, per quanto limitato, un costo: alla transazione è applicata una piccola commissione, che viene anch’essa deanonimizzata in diversi modi all’interno del processo intero. Le fees prelevate dall’importo ripulito possono infatti essere fisse o, molto più frequentemente, variabili, con quest’ultima opzione volta ad aumentare l’imprevedibilità della transazione. Solitamente le commissioni variabili si muovono in un range che spazia dall’1% al 3% e, come detto, differenziano ulteriormente le cifre di input e output, aggiungendo un elemento di aleatorietà ad un processo già complesso da decifrare.

Altre frecce all’arco dei mixer (a dir la verità solo dei migliori) sono il delay temporale e la scomposizione della transazione: alcuni servizi, come BitMixer, permettono di scomporre la transazione in n componenti, ognuna delle quali verrà inviata all’indirizzo destinazione in seguito a un ritardo temporale stabilito dall’utente. Questo significa che è possibile che dalla ricezione della prima “fetta” della somma inviata al completamento della transazione effettiva passi anche qualche giorno, così da rendere difficile l’attività d’intelligence sul mixing anche di grosse somme di denaro.

Ovviamente chiunque può utilizzare servizi di mixing senza avere l’effettiva necessità di “ripulire” il denaro, ma c’è comunque da prestare attenzione al provider scelto. Risulta infatti abbastanza intuitivo comprendere come questo genere di servizio si basi sulla fiducia che circola attorno al servizio stesso, poiché non ci sono garanzie esterne a tutelare l’utente riguardo l’effettiva restituzione della cifra versata e su chi si nasconda poi effettivamente dietro al sistema oltre alle somme ricevute in cambio delle proprie.

In conclusione, tra i diversi sistemi utilizzabili per deanonimizzare indirizzi, transazioni e wallet Bitcoin, il clustering è quello più noto perché basato su poche regole ormai piuttosto consolidate. Non è certamente la soluzione al problema dello pseudo-anonimato, non permette sempre di ricostruire i movimenti o risalire ai soggetti, ma in numerosi casi si è dimostrato uno strumento indispensabile per poter arricchire con nuove informazioni ciò che la blockchain naturalmente già offre agli investigatori, soltanto in un formato non facilmente usufruibile.

A cura di: Paolo Dal Checco, Lorenzo Zen

Paolo Dal Checco

Consulente Informatico Forense, socio CLUSIT e IISFA, tra i fondatori delle Associazioni ONIF e DEFT

Paolo Dal Checco svolge attività di Consulenza Tecnica in ambito forense collaborando con Procure, Tribunali e Forze dell'Ordine oltre che con aziende, privati e Avvocati. Dopo il Dottorato in Informatica si è dedicato agli aspetti tecnici e giuridici dell’informatica forense, eseguendo attività di formazione e perizie informatiche in ambito d’indagine su cellulari, computer, audio, video, malware, reti, social network e criptovalute. Professore a Contratto del corso di Sicurezza Informatica per l’Università degli Studi di Torino, nel C.d.L. in Scienze Strategiche, socio IISFA, CLUSIT, AIP e Tech & Law è tra i fondatori dell'Osservatorio Nazionale per l'Informatica Forense, dell'Associazione DEFT che sviluppa la piattaforma DEFT Linux per acquisizioni e analisi forensi.

Studente al secondo anno della Laurea Specialistica in Scienze Strategiche Politico-Organizzative.

Lorenzo Zen unisce lo studio delle Relazioni Internazionali alla passione per il mondo delle criptovalute dedicandosi in particolare ad approfondire gli aspetti di privacy, deanonimizzazione e l’impatto che le monete matematiche possono avere nei fenomeni di riciclaggio e finanziamento al terrorismo.

Download PDF
Condividi sui Social Network:

ISCRIVITI ALLA NEWSLETTER DI ICT SECURITY MAGAZINE

Una volta al mese riceverai gratuitamente la rassegna dei migliori articoli di ICT Security Magazine

Rispettiamo totalmente la tua privacy, non cederemo i tuoi dati a nessuno e, soprattutto, non ti invieremo spam o continue offerte, ma solo email di aggiornamento.