Trojan Android Hirudo substitui apps bancários legítimos para roubar credenciais
Pesquisadores da ThreatFabric identificaram o Hirudo, um trojan bancário para Android que não usa tela de login falsa por cima do app real — em vez disso, ele desinstala o aplicativo bancário legítimo e instala, no lugar, uma cópia modificada com as verificações de segurança desativadas. O malware já mirou oito apps de sete bancos indonésios e também foi visto atacando usuários na China, Índia, México, Marrocos e Tailândia.
O golpe começa com um dropper disfarçado de aplicativo comum — uma loja, um app de vídeos curtos ou similar (identificados como Shopora, 1V1 X, ZoyaTV e KoiShort). Depois de instalado, esse app isca aguarda a vítima abrir o banco alvo e então exibe uma notificação falsa de "atualização disponível". Ao aceitar, o Hirudo aciona o próprio desinstalador do Android para remover o app bancário genuíno e, em paralelo, baixa e instala uma versão adulterada, abusando da permissão de Acessibilidade para completar a instalação sem a vítima perceber que está trocando o aplicativo original por uma cópia maliciosa.
A parte tecnicamente mais relevante é como essa cópia escapa das defesas do próprio banco: o Hirudo embute um motor de hooking baseado nos frameworks abertos YAHFA e Dobby, que rodam dentro do processo do próprio app bancário. Isso permite interceptar chamadas de verificação de integridade e devolver respostas falsas — o app "mente" para si mesmo dizendo que o certificado de assinatura é genuíno, que nenhum serviço de acessibilidade está ativo e que a proteção contra capturas de tela está funcionando. Na prática, as defesas client-side do aplicativo são viradas contra ele mesmo, e credenciais digitadas pela vítima (ela acredita estar usando o app real, com nome e versão idênticos) vão direto para um painel controlado pelos operadores — painel que, segundo a pesquisa, estava exposto sem autenticação.
Esse padrão de ataque expõe uma fragilidade estrutural de qualquer verificação de segurança que dependa só de sinais locais do dispositivo: se o processo que gera o sinal pode ser comprometido, o sinal não vale nada. É por isso que a recomendação central dos pesquisadores — e a lição prática para bancos e fintechs — é mover a validação de integridade para o lado do servidor: atestação remota (attestation) verificada fora do dispositivo, device fingerprinting que cruze múltiplos sinais independentes, e análise comportamental da sessão (velocidade de digitação, padrões de navegação, histórico do dispositivo) como camada que não pode ser falsificada só manipulando o processo local.
Para o usuário final, os sinais de alerta práticos são: desconfiar de pedidos de "atualização" de app bancário vindos de notificação de outro aplicativo; nunca conceder permissão de Acessibilidade a apps que não sejam de categorias que genuinamente precisam dela (leitores de tela, automação); e, após qualquer instalação de app de origem incerta, verificar se os aplicativos bancários instalados correspondem exatamente ao publicado nas lojas oficiais (assinatura, desenvolvedor, tamanho). Instituições financeiras que atuam nos países já afetados — Indonésia, China, Índia, México, Marrocos e Tailândia — devem tratar esse vetor como ativo e monitorar reinstalações/atualizações de seus apps fora da Play Store.