Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 CRIPTOMOEDAS E SEUS VESTÍGIOS EM MÍDIAS DE ARMAZENAMENTO Eduardo Castro Mota Câmara - ecmcamara@hotmail.com Computação Forense e Perícia Digital Instituto de Pós-Graduação - IPOG Rio de Janeiro, RJ, 02 de Junho de 2019 Resumo O objetivo deste estudo é resumir o conhecimento, técnicas e ferramentas básicas para identificar vestígios do uso de criptomoedas em mídias de armazenamento. Esse estudo foca na Bitcoin como exemplo mas nada impede, porém, que as ténicas e ferramentas apresentadas possam ser utilizadas na análise de outras criptomoedas. Cada vez mais as criptomoedas estão presentes na vida das pessoas e cada vez mais aparecem quando o assunto é sequestro de dados, lavagem de dinheiro e fraude. Quais os rastros digitais deixados por criptomoedas em mídias de armazenamento? Quais os artefatos? Como analisar uma mídia e identificar esses vestígios? Essas são as perguntas que tentamos responder com base na literatura disponível. E por fim, conclui-se que ao explorar as entranhas das criptomoedas, os processos e artefatos envolvidos, todo perito digital, envolvido ou com interesse de investigar e analisar um caso desses, pode se beneficiar deste estudo. Palavras-chave: Computação Forense, Criptomoedas, Bitcoin, Vestídios Digitais. 1. Introdução De acordo com o relatório “Cryptocurrency Anti-Money Laundering Report” de abril de 2019 (2019:6), roubos e fraudes de criptomoedas podem chegar a 1.2 bilhão de dólares só no primeiro trimestre de 2019. Nele são contabilizados aproximadamente 200 milhões de dólares em fraudes com gerenciamento de carteiras, conhecido como “Exit Scam” ou “Golpe de saída” onde os fundadores e executivos das empresas desviaram a custódia das criptomoedas dos clientes e fugiram sem falar nada. Cerca de 360 milhões de dólares correspondem à ataque hackers e roubos as casas de câmbio de criptomoedas (Exchanges). A tendência, nos próximos anos, é que as criptomoedas façam cada vez mais parte do nosso dia a dia. Entender o conceito das criptomoedas pode ajudar a formar uma boa base de conhecimento técnico para a busca de provas. Segundo Barbosa e Gusmão (2016:109): Após a preservação e a extração dos dados chega o momento em que a intuição, a experiência e as habilidades técnicas do perito adquirem maior relevância. Durante a fase de análise, serão buscadas as provas que apoiam ou contradizem a hipótese levantada pelos envolvidos no fato apurado. Essa etapa já foi descrita como uma metódica busca por vestígios relacionados ao crime suspeito ou com um trabalho intuitivo, que consiste primeiro na identificação dos vestígios óbvios para, em seguida, a realização de exaustivas buscas para esclarecer as eventuais dúvidas restantes. (BARBOSA, 2016:109). 2 É muito importante para um perito entender a teoria por trás das criptomoedas, para conseguir desenvolver o instinto e as habilidades técnicas para buscar as evidências necessárias e depois conseguir explicar os conceitos sobre as evidências contidas em seus laudos para sanar as dúvidas das partes envolvidas e garantir que a justiça seja feita. Neste trabalho iremos apresentar primeiro um resumo básico da teoria por trás das criptomoedas, a fim de preparar o perito para encontrar artefatos e vestígios da utilização de criptomoedas em mídias de armazenamento. Depois iremos discutir como detectar o uso de criptomoedas e como encontrar alguns artefatos. Ao final iremos apresentar as conclusões e possíveis trabalhos futuros. 2. Criptomoedas A primeira criptomoeda descentralizada, Bitcoin, foi criada por Satoshi Nakamoto em 2008 (NAKAMOTO, 2008) e implantada em janeiro 2009. No nível mais básico, as Bitcoins são ativos digitais que podem ser negociados entre grupos de usuários sem a necessidade de qualquer intermediário confiável. Bitcoins podem ser consideradas que estão armazenadas em uma chave pública, que é controlada pelo usuário que possui a chave privada associada. Um único usuário pode armazenar suas Bitcoins em chaves públicas diferentes, estas chaves públicas por sua vez, funcionam como se fossem uma conta corrente, mas sem identificação de quem é o usuário que a possui. Para gastá-las, um usuário pode criar e assinar digitalmente uma transação que serve para enviar as Bitcoins para um destinatário ou endereço, mais especificamente para uma chave pública, de sua escolha. Além da Bitcoin, existem outras plataformas de criptomoedas e algumas oferecem funcionalidades mais sofisticadas. Em particular, o Ethereum permite aos usuários implantar contratos inteligentes para o blockchain. A única limitação para tais contratos e as transações que acionam os mecanismos dos contratos é sua complexidade: toda operação que eles executam vem com algum custo associado (medido em gás, um derivado de éter), e há uma quantidade máxima de gás que pode ser gasto por uma única transação. Em princípio, o usuário do Bitcoin não precisa se identificar para receber ou transferir dinheiro e isso é o que alimenta a fama de anonimato da moeda Bitcoin. As moedas digitais, em particular a Bitcoin, por serem descentralizadas, e por possuírem essa possibilidade de anonimato se tornam um propício ambiente para a atuação de grupos criminosos (SAT, 2016). Porém, a Bitcoin em si não garante que o usuário irá permanecer anônimo, é necessário que os usuários de criptomoeda tomem precauções para não revelar suas identidades durante a transação, por exemplo, usando sistemas de anonimato como TOR (DINGLEDINE, 2004). Pois existem cenários, com monitoramento do fluxo da rede e após sucessivas transações que é possível identificar e em alguns casos rastrear os usuários (MEIKLEJOHN, 2013) (TASCA, 2016) (AL JAWAHERI, 2018). 2.1 Blockchain Uma tecnologia central que permitiu o desenvolvimento das criptomoedas é o Blockchain, ou cadeia de blocos. Também criada por Satoshi Nakamoto, essa tecnologia é o que garante a validação das transações e a fidelidade do histórico. 3 Em resumo, o blockchain opera através de uma rede de nós que, possuindo o histórico completo de transações feitas, validam se as novas transações, que estão sendo feitas, estão de acordo com as regras. Essa validação de novos blocos é o que chamamos de “mineração”. As transações são cronologicamente armazenadas em blocos e amarradas aos blocos anteriores. Caso as transações sejam validadas, elas formam um bloco, o conteúdo desse bloco somado com o hash identificador do bloco anterior, gera um novo hash, consolidando assim cada vez mais o histórico de transações. No caso do Bitcoin, os blocos são minerados a cada dez minutos mais ou menos e no caso do Ethereum, um bloco é minerado a cada quinze segundos. Esse tempo varia de criptomoeda para criptomoeda, dependendo de sua implementação. Figura 1 – Estrutura do Blockchain Fonte: Ronan Damasco, diretor nacional de tecnologia da Microsoft, em sua palestra sobre blockchain na conferência Web.br 2017 De acordo com Marco Iansiti (2017) existem cinco princípios básicos no blockchain: Banco de dados distribuídos: Cada nó do blockchain possui acesso a todo o banco de dados e seu histórico completo. Não existe uma entidade central que controla individualmente os dados ou as informações. Cada nó pode verificar os registros de transações diretamente sem nenhum intermediário. Transmissão peer-to-peer ou ponto-a-ponto: Exatamente igual a uma rede peer-to- peer, a comunicação ocorre diretamente entre os nós, em vez de ocorrer através de um nó central. Transparência com pseudônimo: Toda transação e seu valor associado são visíveis para qualquer pessoa com acesso ao sistema. Cada endereço, nó, ou usuário possui um identificador único de 30 ou mais caracteres que o representa. Os usuários podem optar por permanecer anônimos ou fornecer prova de sua identidade a outras pessoas. As transações ocorrem entre endereços blockchain. Irreversibilidade dos registros: Depois que uma transação é inseridano banco de dados e as contas são atualizadas, os registros não podem ser alterados porque estão vinculados a todos os registros de transação que vieram antes dele (daí o termo “cadeia”). Vários algoritmos e abordagens computacionais são executados 4 para garantir que a gravação no banco de dados seja permanente, ordenada cronologicamente e disponível para todos os outros na rede. Lógica computacional: A natureza digital do blockchain permite que as transações possam ser vinculadas à uma lógica de programação. Assim, os usuários podem desenvolver algoritmos e regras que disparam automaticamente transações entre nós. 2.2 Transações Um endereço Bitcoin é essencialmente uma chave pública, no entrando, o endereço é normalmente formatado em Base58 Check, que é basicamente um Base64 sem os caracteres “0” (número zero) ,”O” (letra o maiúsculo), I (letra i maiúsculo) e l (letra L minúsculo), para evitar erros de digitação. Possui 34 caracteres, normalmente começa com 1 e, em raros casos, começa com 3. Ainda inclui 4 bytes para detecção de erros. Exemplo de endereço: 1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX. Se um usuário possuir uma chave privada, ele pode descriptografar ou resolver qualquer chave pública e/ou endereço Bitcoin que foi derivado dela (RIVEST, 1978); Isso significa que, com posse da chave privada, o usuário controla o conteúdo, ou valores, daquele endereço; Se um usuário somente possui a chave pública, ou endereço, ele não consegue derivar a chave privada para assumir o controle das moedas que estão “armazenadas” naquele endereço. Por isso é importante localizar a chave privada de um suspeito na mídia de armazenamento, porque assim é possível controlar as moedas e, se necessário e legalmente autorizado (RODRIGUES 2018), proceder com a apreensão das criptomoedas. Criar endereços Bitcoin a partir de uma chave privada é relativamente simples, Furneaux (2018:70) explica os passos para conseguir: 1 – Escolha um número aleatório de 256 bits, mas registre-o em um local seguro. Este pode ser qualquer número, e não é preciso se preocupar se alguém o possui (existem mais opções do que átomos no universo). 2 – Com sua chave privada de 256 bits, gere um número usando a curva elíptica que o Bitcoin usa: ECDSA (Elliptic Curve Digital Signature. Algorithm). 3 – Passe o resultado por um hash SHA256. 4 – Passe o resultado pelo hash RIPEMD160. 5 – Coverta-o para Base 58. 6 – Adicione o prefixo (1 ou 3). É possível ter umas 2 bilhões de endereços para cada chave privada. Um método muito utilizado para complicar o rastreamento de transações é utilizar uma nova chave pública para cada nova transação. Embora alguns usuários façam isso, especialmente quando o endereço é divulgado publicamente, a realidade é que poucos utilizam um novo endereço para cada transação. Se todos utilizassem esse método, ficaria muito mais difícil rastrear as transferências e associar a um usuário. Uma transação Bitcoin é basicamente a transferência de um ou mais endereço para um ou mais endereços, como demonstrado na Figura 2. Internamente, para criar uma transação o usuário que está transferindo escolhe os endereços que irá utilizar como “Entrada”, essas serão as fontes de recursos, e escolhe os endereços que irá 5 utilizar como “Saída”, esses serão os destinos das moedas. Ao determinar as quantidades que irão para cada destino, o usuário assina a transação. Figura 2 – Transação de 10 Bitcoins do Endereço “1F1..” para “1F4..” É possível também, caso o usuário tenha mais de um endereço Bitcoin, somar os valores desses endereços e transferi-los em conjunto para outro endereço, como representa a Figura 3: Figura 3 – Transação de 10 Bitcoins do Endereço “1F1..” e 20 Bitcoins do endereço “1F2..” para o endereço “1F3..” Uma regra importante de uma transação Bitcoin é que ao utilizar os valores de um endereço para uma transação, não é possível só utilizar parte dos valores. É necessário dizer o destino de todas a Bitcoins contidas naquele endereço. Na Figura 4, um exemplo de um usuário A, que possui controle dos endereços “1F1..” e “1F6..”, pagando 5 Bitcoins para o usuário B, que possui controle do endereço “1F5..”. O endereço “1F1..” possui 10 Bitcoins, o usuário A então transfere 5 Bitcoins para o endereço “1F5..” do usuário B e transfere os 5 Bitcoins remanescentes para seu outro endereço “1F6..” Figura 4 – Transação de 5 Bitcoins do Endereço “1F1..” para “1F5..” e 5 Bitcoins do Endereço “1F1..” para “1F6..” 6 Mesmo no caso de existirem mais de um endereço de entrada, essa regra ainda se aplica, sendo necessário dar destino a todas as Bitcoins contidas nos endereços. Figura 5 – Transação: 10 Bitcoins do Endereço “1F1..”, mais 20 Bitcoins do endereço “1F2..” mais 30 Bitcoins do endereço “1F3..” e depositando 55 Bitcoins no endereço “1F5..” e 5 Bitcoins no endereço “1F7” Quando o usuário A decide fazer um pagamento a um usuário B, essa transação não precisa ser comunicada ao usuário B especificamente, ao invés disso, o usuário A precisa comunicar essa transação para todos os nós da rede que a transação foi feita. A comunicação começa com o usuário A transmitindo todos os nós adjacentes a ele, esses nós irão enviar aos nós adjacentes a eles e assim sucessivamente até que todos os nós da rede sejam avisados daquela transação. Todas as transações que ainda não estão fechadas em um bloco ficam em uma área de armazenamento chamada de mempool. O Mempool é um local temporário para as transações até que um minerador coloque elas em algum bloco. O Bitcoin foi programado para que a mineração de um bloco dure uma média de 10 minutos. Segundo Furneaux (2018:89), a rede do Bitcoin recalcula a dificuldade com uma fórmula similar a essa: Nova dificuldade = Dificuldade anterior * (Tempo gasto com os últimos 2016 blocos / 20160 minutos). Isso garante que a dificuldade permaneça de tal forma que os blocos não serão rapidamente minerados, tentando manter os 10 minutos. O perito também precisa se atentar que nem sempre a transação irá entrar no próximo bloco fechado, logo nem toda transação será efetivada em 10 minutos. Como podemos ver na Figura 6, cada transação possui uma taxa vinculada que será paga ao minerador por incluir aquela transação em um bloco. Caso essa taxa seja muito pequena, o minerador pode não dar prioridade a essa transação e a consequência é que ela aguarde o fechamento de alguns blocos. O Ethereum funciona de uma forma diferente, atualmente cada bloco é fechado em cerca de 15 segundos, mas existem discussões sobre aumentar esse tempo e diminuir as recompensas dos mineradores. 7 Figura 6 – Transação real de aproximadamente 6 Bitcoins do endereço “1P5..” depositando 5 Bitcoins no endereço “17x..” e o remanescente no endereço “1Do..” Fonte:https://www.blockchain.com/btc/tx/1847fdf8d24b22b0298a2fb58a2a4ad1b2fd3ebb9ffc9b9e9f5b 8c00712a830e 2.3 Carteira Uma carteira de criptomoedas normalmente armazena e controla as chaves privadas e públicas de um usuário, permitindo o uso dessas chaves privadas para criar transações e se comunicar com os nós da rede para transmitir essas transações. Uma carteira também pode ter uma cópia do blockchain local, ou se comunicar com um outro nó para ter acesso ao blockchain e somar o saldo dos endereços controlados pelo usuário. Embora normalmente descrita como sendo um local para armazenar e controlar criptomoedas, as carteiras somente armazenam as chaves que o usuário controla, pois as criptomoedas ficam registradas na rede e não precisam de local específico para armazenagem, pois estão associadas à endereços e registrados no blockchain. Existem diversos tipos de carteiras para Bitcoin, existem as carteiras que são softwares que rodam no PC, algumas que rodam em smartfones IOS e Android e outras que são dispositivos físicos independentes. Alguns exemplos de softwares que são carteiras Bitcoins: Bitcoin Core, Electrum,Bitcoin Knots, Arcbit e algumas outras. E alguns outros que armazenam outras moedas como: Jaxx, Coinbase, MyEtherWallet e Coinpayments. Furneaux (2018:96) lista alguns tipos diferentes de carteiras e suas características: Full Node Wallet – esse tipo de carteira além de armazenar as chaves, também armazena todo o blockchain localmente na máquina do usuário. As transações podem ser processadas e verificadas na própria carteira e então transmitida para os outros nós. 8 Thin Node Wallet – esse tipo de carteira normalmente só armazena as chaves do usuário e se conecta a um nó da rede, ou uma carteira que tenha todo o blockchain, para conseguir processar uma transação. São normalmente utilizadas em smartfones e dispositivos com pouco recurso de armazenamento. Online Wallet – esse tipo de carteira só existe online e normalmente não mantém nenhuma informação sincronizada localmente na máquina do usuário. O armazenamento remoto das informações torna praticamente impossível a recuperação das chaves quando analisamos somente as mídias de armazenamento, uma possível abordagem seria analisar o histórico de navegação para identificar possíveis acessos à sites que oferecem esse tipo de serviço. Hardware Wallet – esse tipo de carteira são dispositivos físicos que armazenam as chaves do usuário e em alguns casos o saldo dos endereços. Alguns exemplos são: Ledger Nano S, Trezor Wallet e Keepkey demonstrados na Figura 7. A análise forense desse tipo de carteira é um pouco mais complexa pois entra no domínio de computação embarcada mas muitas dessas carteiras possuem sistemas de recuperação de senha que podem ser utilizados para conseguir o acesso aos dados armazenados. Figura 7 – Carteiras de hardware Além desses tipos de carteiras, também é possível armazenar suas chaves offline, escritas em um pedaço de papel, impressa em um QRCode ou até mesmo em cartões de metais especificamente feitos para isso (Figura 8). Apesar desses métodos não serem relevantes para a análise de mídias de armazenamento, é importante que o perito saiba que eles são utilizados, pois é imprescindível que esses objetos sejam identificados em uma possível busca e apreensão. 9 Figura 8 – Cold Wallet Cryptosteel Fonte: https://cryptosteel.com As carteiras armazenam chaves de várias maneiras (embora algumas já sejam antigas e raramente utilizadas). Esses métodos definem a maneira como as chaves públicas são criadas a partir de uma única ou muitas chaves privadas. Como perito, é importante entender como as chaves são derivadas, porque elas podem ajudar a rastrear carteiras complexas. Furneaux (2018:102) divide esses métodos em três categorias principais a seguir: Não-determinístico – Também conhecido como Tipo-0, as chaves não determinísticas são armazenadas em uma lista simples de pares de chaves pública / privada. Isso também é conhecido como JBOK (Just a Bunch of Keys) que significa só um conjunto de chaves. Este método significa que você tem muitas chaves para gerenciar, especialmente se você seguir o processo recomendado de usar uma nova chave para cada transação. Isso também significa que há muitos dados para fazer backup e manter em segurança. Deterministico – As carteiras determinísticas também são conhecidas como carteiras Tipo 1 ou semeadas (do inglês "seeded"). Todas as chaves privadas são derivadas de uma única semente (do inglês "seed") que é baseada em um número aleatório. Este método é significativamente melhor porque você só precisa armazenar e fazer backup da semente para recuperar todas as chaves privadas geradas. Isso torna a carteira muito mais fácil de gerenciar. Hierarquicamente Deterministico – Também conhecida como "carteiras HD", este é o protocolo de carteira mais atualizado em uso e foi implementado no Bitcoin Core em 2016. Assim como nas carteiras determinísticas padrão, todas as chaves privadas são derivadas de uma única semente, mas as chaves em uma carteira HD podem gerar suas próprias chaves privadas e públicas em uma estrutura de árvore hierárquica. Mais uma vez, a semente pode ser copiada e toda a estrutura da árvore pode ser recuperada da semente armazenada. 10 A semente é frequentemente representada por uma série de 12 a 24 palavras. O processo é bastante direto e é conhecido como um BIP39 (Bitcoin Improvement Proposal 39). Essas palavras podem ser usadas para recriar a semente e, portanto, todas as chaves derivadas. Carteiras como o Bitcoin Core atualmente usam uma versão simplificada de uma árvore hierárquica conhecida como BIP32. No entanto, o BIP44 extendeu esse método para fornecer mais informações e flexibilidade na árvore e atualmente é suportado por carteiras de hardware como o Trezor. Parece provável que o BIP44 se torne o padrão no devido tempo. 3. Vestígios Quando uma mídia de armazenamento, chega ao laboratório, a primeira coisa que acontece é que elas são copiadas. Essas imagens são então carregadas em uma variedade de ferramentas de investigação forense. Estas ferramentas permitem a manipulação dos dados contidos nessas mídias. Alguns exemplos dessas ferramentas que podem ser utilizadas para obter os vestígios de uso de criptomoeda são: Magnet AXIOM – Essa ferramenta forense faz nativamente a localização e o data carving de carteiras e endereços Bitcoins e também faz consultas à rede Bitcoin sobre os arquivos de logs encontrados no HD. EnCase, FTK e IPED – Essas são as melhores ferramentas forenses atuais, porém, nesse momento do estudo, não há nenhuma informação sobre funcionalidades nativas de localização e data carving de Bitcoins implementadas. Apesar de não ter nenhuma funcionalidade específica para tal, é possível fazer buscas utilizando as expressões regulares (Regex) para encontrar vestígios de Bitcoins e carteiras. Como vimos anteriormente, as chaves privadas e as chaves públicas são os elementos principais para manipular Bitcoin, sem eles é impossível a utilização da criptomoeda. Como perito, seu objetivo primário deve ser encontrar o máximo de chaves que você conseguir. Chaves públicas ou endereços podem estar dentro de carteiras, registrados em arquivo texto e armazenado em uma Imagem QRCode. As tabelas 1, 2 e 3 apresentam os formatos, regra de composição, expressões regulares para busca e exemplos dos principais endereços de criptmoedas. Moeda Bitcoin Vestígio Endereço ou chave pública Regra Prefixo 1 ou 3, Base 58 e tamanho 34 caracteres Regex ^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$ Exemplo 1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX Tabela 1 – Informações sobre o endereço ou chave pública do Bitcoin Moeda Bitcoin SegWit Vestígio Endereço ou chave pública Regra Prefixo bc1 e tamanho 42 caracteres Regex ^bc1[ac-hj-np-zAC-HJ-NP-Z02-9]{25,39}$ Exemplo bc1qq3q342clxm2p04hfdknhe3cg6mrs8ur8jfln7h Tabela 2 – Informações sobre o endereço ou chave pública do soft-fork SegWit do Bitcoin 11 Moeda Ethereum Vestígio Endereço ou chave pública Regra Prefixo 0x e tamanho 42 caracteres Regex ^0x[a-fA-F0-9]{40}$ Exemplo 0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe Tabela 3 – Informações sobre o endereço ou chave pública do Ethereum Chaves privadas também podem ser encontradas em diversos formatos e os peritos também precisam ter conhecimento de todos eles. As chaves podem estar no formato padrão de 256 bits hexadecimal e possuir 64 caracteres de tamanho, mais frequentemente encontradas no formato WIF (Wallet Import Format) com 51 caracters de tamanho e começando com o número 5 ou no formato minikey podendo ter de 21 a 30 caracteres. Essas regras e esses formatos se encontram disponíveis nas tabelas 4, 5, 6 e 7 abaixo. As chaves privadas também podem estar em formato de 12 a 24 palavras que representam a semente. O software de carteira Electrum, a carteira online blockchain.info e a carteira hardware Trezor utilizam chaves privadas nesse formato, por isso é importante ficar de olho em arquivos textos quepossuem conjuntos de palavras que não estão relacionadas entre si. Moeda Bitcoin Vestígio Chave privada formato 256bit Regra Tamanho 64 caracteres Regex ^[a-fA-F0-9]{64}$ Exemplo e9873d79c6d87dc0fb6a5778633389f4453213303da61f20bd67fc233aa33262 Tabela 4 – Informações sobre a chave privada do Bitcoin no formato 256-bit Moeda Bitcoin Vestígio Chave privada formato WIF Regra Prefixo 5, Base 58 e tamanho 42 caracteres Regex ^[5KL][1-9A-HJ-NP-Za-km-z]{20,51}$ Exemplo 5Kb8kLf9zgWQnogidDA76MzPL6TsZZY36hWXMssSzNydYXYB9KF Tabela 5 – Informações sobre a chave privada do Bitcoin no formato WIF Moeda Bitcoin Vestígio Chave privada formato minikey Regra Prefixo S, Base 58 e tamanho 21 a 30 caracteres Regex ^[S][1-9A-HJ-NP-Za-km-z]{20,29}$ Exemplo S6c56bnXQiBjk9mqSYE7ykVQ7NzrRy Tabela 6 – Informações sobre a chave privada do Bitcoin no formato minikey Moeda Ethereum Vestígio Chave privada Regra Tamanho 42 caracteres Regex ^[a-fA-F0-9]{42}$ Exemplo 0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe Tabela 7 – Informações sobre a chave privada do Ethereum Embora os formatos de chaves públicas e privadas sejam simples e as ferramentas forenses modernas possuírem métodos sofisticados de busca e indexação, esse método pode resultar em diversos falso-positivos. Uma melhor abordagem seria tentar encontrar e recuperar o arquivo de carteira. A carteira contém tudo o que você 12 precisa para analisar o uso de Bitcoins, chaves privadas, endereços públicos, registros de transações e outros metadados. Reconhecer quando uma ferramenta de gerenciamento de criptomoedas está instalada pode ser muito útil durante uma perícia e pode abrir teses em áreas de movimentação e lavagem de dinheiro que não eram conhecidas anteriormente. Os peritos digitais devem ser treinados para saber os nomes das principais ferramentas de software de carteiras de criptomedas para que possam ser reconhecidos e identificados. O mesmo conceito se aplica quando tratamos de análise de telefones celulares, é vital que os aplicativos de Thin Client sejam reconhecidos para que os vestígios de criptomoedas não sejam perdidos. As Tabelas 7, 8 e 9 apresentam alguns softwares reconhecidos de gerenciamento e carteiras de criptomoedas com as devidas pastas de instalação padrão separado por sistema operacional e as extensões de arquivos que estes softwares utilizam. Bitcoin Core Windows XP C:\Documents and Settings\<username>\ApplicationData\Bitcoin Windows Vista até Windows 10 C:\Users\<username>\Appdata\Roaming\Bitcoin Linux ~/.Bitcoin/ Mac ~/Library/Application Support/Bitcoin Tabela 7 – Locais de instalação padrão do Bitcoin Core Litecoin Windows XP C:\Documents and Settings\<username>\ApplicationData\Litecoin\litecoin.conf Windows Vista até Windows 10 C:\Users\<username>\Appdata\Roaming\Litecoin\litecoin.conf Linux /home/<username>/.lifecoin.conf Mac /Users//<username/Library/Application Support/lifecoin.conf Tabela 8 – Locais de instalação padrão do Litecoin Carteiras / Wallets Armory %appdata%\Armory (.wallet) Bitcoin Unlimited/Classic/XT/Core %appdata%\Bitcoin (wallet.dat) Bither %appdata%\Bither (address.db) Blockchain.info (wallet.aes.json) MultiBit HD %appdata%\MultiBitHD (mbhd.wallet.aes) Electrum %appdata%\Electrum\wallets mSIGNA %homedrive%%homepath% (.vault) Tabela 9 – Locais e extensões de carteiras utilizados pelos softwares de criptomoedas Nos casos em que as buscas pelas chaves resultar em muitos falso-positivos, a instalação dos softwares de carteira não estarem nas pastas padrões e os arquivos de carteira tiverem sido renomeados, o que fazer? Normalmente, na informática os arquivos possuem um número mágico que permite identificar o tipo de arquivo quando ele não possui a extensão ou está parcialmente recuperado. No caso da carteira Bitcoin não há um número mágico, porém, Furneaux (2018:133) apresenta uma solução parecida com o número mágico ao identificar uma string recorrente nas carteiras. Segundo o autor o “magic value”, ou valor mágico, a ser procurado é a string [ Name”1 ]. 13 Figura 9 – “Número mágico“ de arquivo de carteira Fonte: Furneaux (2018:134) A fim de contornar os falso-positivos resultante da busca por expressões regulares, em um artigo o autor Cohen (2015) apresenta uma ferramenta que utiliza os formatos Base58, que possuem checagem de erro embutida, para validar os endereços encontrados e eliminar os falso-positivos. O resultado encontrado é que a busca é realmente muito mais efetiva dessa forma em discos muito grandes. 4. Conclusão Esse estudo apresentou a estrutura do Bitcoin e os artefatos recuperáveis de uma mídia de armazenamento relacionados ao Bitcoin. Também apresentamos como funciona o Bitcoin, em que se baseia o blockchain, como as chaves públicas e chaves privadas se relacionam e como gerar as chaves públicas a partir das chaves privadas. Apresentamos a importância em localizar as carteiras, as chaves públicas e as chaves privadas para obter controle das criptomoedas. Nesse trabalho falamos também que as criptomoedas não ficam armazenadas no disco e sim associadas a endereços públicos na própria arquitetura do blockchain. E por fim listamos os formatos das chaves, os softwares mais utilizados e as pastas padrões de instalação dos softwares. Utilizando as informações apresentadas, o perito conseguirá entender como é a relação entre as chaves públicas e privadas, como as transações funcionam e como o blockchain garante a veracidade dos blocos validados. Com essa base teórica, o caminho para a análise dos artefatos encontrados fica mais intuitivo e permite a confecção de um laudo mais detalhado e confiável. Todas as informações contidas neste trabalho visam ajudar o perito a se familiarizar com o mundo das criptomoedas e permitir que ele funcione como um guia inicial para uma perícia digital que envolva criptomoedas. Apesar deste trabalho ter cumprido o escopo definido, existem uma gama extensa de outros trabalhos que podem ser desenvolvidos no futuro. Um trabalho futuro muito interessante seria falar sobre aquisição viva e utilizar os comandos do software de criptomoedas instalado para fazer um backup da carteira, verificar se está configurado para utilizar o TOR, executar comandos para listar as transações feitas e verificar se os endereços encontrados possuem saldos. Para isso será necessário identificar o software que está rodando e saber os diferentes tipos de carteiras disponíveis. Outro trabalho possível pode envolver uma explicação detalhada de como analisar os arquivos de carteira encontrados através das informações nesse trabalho, como lidar com carteiras criptografadas e quais as ferramentas e técnicas utilizadas para descriptografar e garantir o acesso a esses dados. 14 Um estudo futuro poderia incluir também informações de como seguir as movimentações financeiras de suspeitos e como desenvolver ama análise do histórico de um endereço Bitcoin. Analisando o histórico das transações, com uma linha do tempo, em que aquele endereço esteve envolvido, seja como entrada, enviando moedas, ou como saída, recebendo moedas. Analisar e catalogar as ferramentas e técnicas possíveis para seguir o dinheiro que passou pelos endereços do suspeito. Este estudo é apenas uma parte inicial sobre as evidências digitais envolvendo criptomoedas, pois o assunto é realmente muito abrangente e a cada dia surge uma nova criptomoeda no mercado e novas ferramentas forenses são desenvolvidas para analisar estas evidências. Referências AL JAWAHERI, Hussan et al. When A Small Leak Sinks A Great Ship: Deanonymizing Tor Hidden Service Users Through Bitcoin Transactions Analysis. arXiv:1801.07501v2 [cs.CR], Abril 2018. <https://arxiv.org/pdf/1801.07501.pdf> BARBOSA, Rodrigo et at. Exames em mídias de armazenamento. In: VILAR, Gustavo et. Al. Tratado de Computação Forense. São Paulo: Millennium, 2016,Cap 3, p.89-113. CIPHERTRACE, Cryptocurrency Intelligence. Cryptocurrency Anti-Money Laundering Report, Abril 2019. <https://ciphertrace.com/wp-content/uploads/2019/05/ciphertrace-q1-2019- cryptocurrency-anti-money-laundering-report.pdf> COHEN, Chris. Forensics and Bitcoin. Forensic Focus, January 2015. <https://articles.forensicfocus.com/2015/01/16/forensics-bitcoin> DINGLEDINE, Roger et al. Tor: The Second-Generation Onion Router. Proceedings of the 13th USENIX Security Symposium, 2004. <https://www.nrl.navy.mil/itd/chacs/sites/www.nrl.navy.mil.itd.chacs/files/pdfs/Dingledi ne%20etal2004.pdf>. FURNEAUX, Nick. Investigating Cryptocurrencies: Understanding, Extracting, and Analyzing Blockchain Evidence. Indiana: John Wiley & Sons, Inc. 2018. IANSITI, Marco et al. The Truth About Blockchain. Harvard Business Review. Harvard University. January 2017. <https://hbr.org/2017/01/the-truth-about-blockchain> MEIKLEJOHN, Sarah et al. A Fistful of Bitcoins: Characterizing Payments Among Men with No Names. USENIX, Dezembro 2013. <https://smeiklej.com/files/login13.pdf> 15 NAKAMOTO, Satoshi. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008. <https://bitcoin.org/bitcoin. pdf>. RIVEST, Ron et al. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM. Fevereiro 1978. <http://people.csail.mit.edu/rivest/Rsapaper.pdf> RODRIGUES, Andrei et al. A possibilidade e legalidade da penhora judicial de Bitcoins. Novembro 2018. <https://www.boletimjuridico.com.br/doutrina/artigo/4768/a-possibilidade-legalidade- penhora-judicial-bitcoins>. SAT, Diana et al. Investigation of money laundering methods through cryptocurrency. Journal of Theoretical and Applied Information Technology, v. 83, n. 2, p. 244-254, Janeiro. 2016. <http://www.jatit.org/volumes/Vol83No2/11Vol83No2.pdf> TASCA, Paolo et al. The Evolution of the Bitcoin Economy: Extracting and Analyzing the Network of Payment Relationships. SSRN 2808762, Julho 2016. <http://dx.doi.org/10.2139/ssrn.2808762>
Compartilhar