Em julho de 2015, o hacker Phineas Fisher despejou cerca de 400 GB de dados da fornecedora italiana de vigilância Hacking Team, incluindo e-mails internos. Entre eles, Costin Raiu, da Kaspersky Lab, encontrou uma negociação de 2013 na qual o vendedor de exploits Vitaliy Toropov ofereceu ao Hacking Team um zero-day de Silverlight "escrito há 2,5 anos" com "todas as chances de sobreviver ainda nos próximos anos" — evidência de que um exploit sem patch e sem detalhes públicos poderia ainda estar infectando sistemas, se ao menos a Kaspersky conseguisse encontrá-lo.

Zero-days costumam ser descobertos por acaso, na esteira forense de uma invasão. Raiu tentou o contrário: traçar o perfil do autor. Ele reuniu os exploits de prova de conceito que Toropov havia publicado em programas de bug bounty entre 2011 e 2013, antes de suas divulgações públicas cessarem, e notou três strings de depuração que se repetiam nos arquivos — resíduos que desenvolvedores rotineiramente enviam em código compilado sem querer. Em julho, ele as escreveu em uma regra YARA e a distribuiu pela ferramenta automática de prevenção de exploits da Kaspersky e por sua rede de telemetria compartilhada com clientes, e então esperou.

Passaram-se meses sem nada. Então, em 25 de novembro de 2015, uma máquina de cliente no Oriente Médio deu correspondência: um exploit de execução remota de código em Silverlight construído sobre código do PoC de calculadora publicado por Toropov. Horas depois, uma segunda amostra surgiu no VirusTotal, enviada do Laos e compilada em 21 de julho — duas semanas após os e-mails vazados irem ao ar. A Kaspersky reportou a vulnerabilidade, e a Microsoft lançou um patch "crítico" para o bug BinaryReader do Silverlight em janeiro de 2016.

É possível caçar um exploit que você nunca viu: identifique a impressão digital do autor, não da amostra — suas provas de conceito publicadas carregam strings de depuração que o trabalho privado pode herdar.

O vazamento foi reaproveitado como sistema de alerta antecipado: um folheto de vendas roubado revelou aos defensores qual exploit invisível existia, aproximadamente qual era sua idade e quem o havia construído.

A autoria é uma assinatura: autores de exploits reutilizam suas bibliotecas, e o código de depuração tende a sobreviver em binários compilados, de modo que PoCs publicados podem identificar trabalhos privados posteriores.

A rede de sensores já existia: uma regra YARA na telemetria opt-in da Kaspersky transformou milhares de máquinas de clientes em sensores de alerta sem implantar nada novo.

A etiqueta defensiva deixou o rastro: os anos que Toropov passou divulgando bugs de forma responsável em programas de bounty — com PoCs publicados — tornaram-se a impressão digital de seus exploits não divulgados.

A atribuição de ataques também funciona ao contrário: os hábitos de um autor são uma assinatura. Quando você não consegue encontrar o artefato, modele seu criador a partir do que ele publicou e deixe seus sensores esperarem pela correspondência.

A Kaspersky não encontrou mais amostras, o que sugere que o comprador usou o exploit de forma cirúrgica; Raiu estimou que ele valia de US$ 20.000 a US$ 40.000 no mercado de zero-days. Toropov disse à WIRED que o exploit "não é meu" após examinar o código, embora tenha confirmado que as partes do PoC eram dele. Raiu chamou isso de primeira vez que sua equipe conseguiu capturar algo que havia planejado caçar, e observou que a técnica agora poderia ser voltada contra o código público de outros vendedores. O patch da Microsoft removeu a ameaça específica; o método — identificar a impressão digital do autor e então esperar — permaneceu na caixa de ferramentas.

CONFIRA AS EVIDÊNCIAS

As fontes

  1. Hacking Team's Leak Helped Researchers Hunt Down a Zero-Day WIRED · wired.com ·