Pesquisadores descobriram um novo malware para Android chamado Hirudo, que tem como alvo usuários de serviços bancários ao substituir os aplicativos bancários originais por versões modificadas no dispositivo. Segundo um relatório da empresa de segurança móvel ThreatFabric, o malware usa um mecanismo de injeção de código para contornar verificações de assinatura de aplicativos, serviços de acessibilidade e o Play Integrity.
Foram identificadas versões maliciosas de oito aplicativos bancários, incluindo aplicativos pertencentes a pelo menos sete bancos indonésios. A campanha também teve como alvo instituições financeiras na China, Índia, México, Marrocos e Tailândia, enquanto o número de vítimas ainda é desconhecido.
Como o Hirudo chega aos dispositivos?
O malware geralmente chega por meio de aplicativos que parecem normais e oferecem funções de compras ou conteúdo de entretenimento, como Shopora, 1V1 X, ZoyaTV e KoiShort. Esses aplicativos funcionam como programas de download do malware e, em seguida, exibem uma notificação falsa de atualização que leva o usuário a conceder permissões adicionais, incluindo a permissão de Accessibility.
Depois que a permissão é ativada, o aplicativo malicioso começa a remover o aplicativo bancário verdadeiro, baixa uma versão modificada dele e tenta instalá-la. A ThreatFabric descreve o processo como arriscado para o invasor, pois o usuário pode interrompê-lo em duas etapas.
Transformando mecanismos de proteção em uma ferramenta de evasão
A versão modificada mantém a maior parte do código original do aplicativo bancário, mas adiciona um mecanismo baseado nos frameworks de código aberto YAHFA e Dobby. O mecanismo funciona dentro do próprio processo do aplicativo bancário, permitindo manipular os resultados das verificações em vez de atacar o aplicativo externamente.
- Substituir o certificado de assinatura original quando ele é consultado.
- Ocultar os serviços de Accessibility ativados.
- Desativar a proteção contra capturas de tela, permitindo a visualização e a gravação remotas.
- Modificar certificados de atestação associados às chaves e encaminhar solicitações do Play Integrity por meio de um servidor controlado pelos operadores.
O que os invasores podem roubar?
O Hirudo consegue roubar senhas de contas bancárias, códigos secretos de pagamento, segredos de desbloqueio do dispositivo e mensagens SMS, além de transmitir a tela do telefone e controlar as duas câmeras. Ele também usa páginas de pagamento falsas para coletar códigos de pagamento e, em seguida, exibe um resultado falso de sucesso para ocultar o roubo de dados.
A ThreatFabric encontrou milhares de registros contendo credenciais de aplicativos em um painel de backend desprotegido, além de dados dos dispositivos, telas de bloqueio e arquivos financeiros. O relatório não informa se esses dados pertencem a todas as vítimas ou apenas a uma parte delas.
Quais são as limitações e o que deve ser feito?
Os métodos de evasão não funcionam sem limitações. A chave de atestação incorporada pode ter sido exposta publicamente, e o Google incluiu dois de seus certificados na lista de certificados comprometidos, permitindo que os servidores detectem falsificações ao realizar verificações de revogação no lado do servidor.
A ThreatFabric considera que o Hirudo representa uma escalada nas técnicas de malware de roubo de contas bancárias no Android, pois tem como alvo os mecanismos de proteção dentro dos próprios aplicativos. A empresa recomenda que os bancos realizem verificações de integridade e atestação no servidor, vinculem as verificações às sessões e às operações sensíveis e mantenham controles de comportamento e de risco das transações.
Já os usuários são aconselhados a atualizar seus dispositivos, evitar arquivos APK de lojas não oficiais e realizar verificações periódicas usando o Play Protect.