Durante uma visita de Páscoa ao sogro, leo-stone encontrou uma casa em apuros com o ransomware Petya. Alguém estava se candidatando a um emprego e o anfitrião realmente precisava ler seu currículo, então ele digitou a senha de administrador — e, em vez dos arquivos, recebeu a caveira vermelha do Petya, o sinal de que a tabela de arquivos mestre do disco havia sido criptografada. A saída oferecida era pagar por uma chave. O autor enquadrou a alternativa de forma direta: "pagar o resgate não é lá um desafio tão grande"; o desafio era quebrar a fechadura sem pagar.
Em vez de atacar a cifra de frente, leo-stone mirou no modo como o próprio Petya verifica uma chave digitada. Ele reimplementou o hash de verificação e publicou os pontos essenciais: Salsa em palavras de 16 bits em vez de 32, executando dez rodadas (Salsa10), não vinte (Salsa20). Os dados de teste ficam no disco da vítima — um nonce de 8 bytes no setor 54 e um setor de verificação criptografado de 512 bytes no setor 55. Seu programa em Go lê esses 512 bytes, aplica XOR nas palavras interessantes com 0x37 para recuperar a saída-alvo do hash, lê o nonce e dispara um solucionador genético contra o problema.
O solucionador encontrou a chave em segundos — de 10 a 30 no caso dele — e ele a liberou como o repositório open-source hack-petya com instruções simples: extraia o nonce e o setor de verificação do disco criptografado, salve-os como nonce.txt e src.txt, execute o programa, espere e então use a chave, de preferência em uma imagem de disco em uma VM. Ele se desculpou pelo código bagunçado ("eu estava meio com pressa") e corrigiu a biblioteca genética depois que ela entrou em pânico com leituras concorrentes de mapa no Go 1.6. O lançamento atraiu 451 pontos e 79 comentários no Hacker News em 11 de abril de 2016; o repositório mostra 612 estrelas e 80 forks.
Reimplementar a verificação de chave do Petya e então deixar um solucionador genético encontrar a chave — sem pagar resgate
Ele atacou a verificação de chave em vez da cifra: o setor de verificação fica no próprio disco da vítima, transformando o design do Petya em um oráculo testável que qualquer um poderia reconstruir
Um solucionador genético tornou a busca rápida: chaves candidatas evoluíram contra o hash reimplementado até que a correta surgisse, em 10 a 30 segundos em vez de uma espera de força bruta
A correção foi distribuída gratuitamente com passos exatos de recuperação, para que outras vítimas pudessem descriptografar sem pagar e sem enviar seus discos a lugar nenhum
Publicar no GitHub e no Hacker News deu alcance à ferramenta: 451 pontos e 79 comentários no lançamento, e um repositório que ainda mostra 612 estrelas e 80 forks
Uma fechadura que precisa verificar sua própria chave deixa um oráculo do lado da vítima: reconstrua a verificação e busque contra ela em vez de pagar, depois distribua a ferramenta para que a correção se espalhe.
leo-stone recuperou sua própria chave em 10 a 30 segundos e liberou a ferramenta abertamente. O lançamento no Hacker News em 11 de abril de 2016 atraiu 451 pontos e 79 comentários, e o repositório, conforme arquivado, mostra 612 estrelas, 80 forks e 34 watchers. A página não registra nenhuma alegação sobre variantes posteriores do Petya; o que ela deixa é o padrão reutilizável — extrair os dados de verificação do disco, reconstruir a verificação e deixar uma busca encontrar a chave.
CONFIRA AS EVIDÊNCIAS
As fontes
- leo-stone/hack-petya — search key to restore petya encrypted mft GitHub · github.com
- Hack-petya mission accomplished — Petya ransomware decryptor (Hacker News discussion) Hacker News · news.ycombinator.com ·