Aquele perigoso trojan bancário para Android que informamos no início deste ano encontrou novamente uma forma de se infiltrar no Google Play, desta vez, mais sigiloso que nunca.

O BankBot evoluiu ao longo do ano, ressurgindo de vez em quando em diferentes versões tanto no Google Play como em outras lojas virtuais alternativas. A variante, que descobrimos na loja oficial do Android no último dia 4 de setembro, é a primeira que conseguiu combinar efetivamente os últimos avances do BankBot: obfuscação de código melhorado, uma sofisticada funcionalidade para baixar o payload e um mecanismo de infecção sigiloso que se aproveita do Accessibility Service do Android.

Muitos trojans já se aproveitaram anteriormente da acessibilidade no Android, principalmente fora do Google Play. Análises recentes do from SfyLabs e Zscaler confirmaram que os cibercriminosos que propagam o BankBot conseguiram publicar no Google Play um aplicativo com funcionalidade para explorá-lo, mesmo sem o payload do malware bancário.

O pacote completo, incluindo este payload, conseguiu chegar à loja oficial disfarçado de um jogo chamado Jewels Star Classic. É importante destacar que os cibercriminosos utilizaram o nome da popular saga Jewels Star, desenvolvida pela ITREEGAMER, que não possui qualquer relação com esta campanha maliciosa.

Notificamos à equipe de segurança do Google sobre o aplicativo malicioso, que já havia sido instalado por quase 5.000 usuários antes de ser eliminado da loja.

Como o BankBot funciona?

Quando o usuário baixa o Jewels Star Classic, desenvolvido pela GameDevTony (Fig. 1), obtém um jogo do Android que funciona, mas que tem alguns elementos adicionais escondidos: malware bancário entre os recursos do jogo e um serviço malicioso que espera ser executado por trás de uma janela do tempo pré-configurada.

Figura 1 – O aplicativo malicioso descoberto no Google Play.

O serviço malicioso se executa 20 minutos depois da primeira execução do Jewels Star Classic. O dispositivo infectado mostra uma alerta que instiga o usuário a habilitar algo chamado “Google Service” (nota: o alerta malicioso aparece independentemente da atividade que esteja sendo realizada pelo usuário, sem conexão aparente com o jogo).

Depois de clicar em OK, a única forma de evitar que a janela apareça, o usuário é levado para o menu de acessibilidade do Android, no qual são gerenciados serviços com esta função. Entre os legítimos aparece um novo chamado “Google Service”, que foi criado pelo malware. Ao clicar neste serviço, é apresentada uma descrição retirada das Condições de serviço originais do Google.

Figura 2 – Alerta que instiga o usuário a habilitar o “Google Service”.

 

Figura 3 – “Google Service” listado entre os Serviços de acessibilidade no Android.

 

Figura 4 – Descrição do serviço malicioso retirada das Condições de serviços do Google.

Quando o usuário decide ativar o serviço, visualiza uma lista de permissões requeridas (Fig. 5):

  • Observar as suas ações
  • Recuperar conteúdo da janela
  • Ligar o Explore by Touch
  • Ativar a acessibilidade web melhorada
  • Executar ações

Ao clicar em Ok, o usuário estará autorizando permissões de acessibilidade reais ao serviço de acessibilidade própria do malware. Com isso, o usuário dá à ameaça acesso livre para executar qualquer ação que precise para continuar a sua atividade maliciosa.

Figura 5 – Permissões requeridas para a ativação do “Google Service”.

Na prática, depois de aceitar as permissões, o usuário nega brevemente o acesso para a sua tela devido a uma “atualização” do Google Service (não precisamos dizer que isso não é obra do Google) que ocorre em segundo plano (Fig. 6).

Figura 6 – Tela que cobre a atividade maliciosa.

O malware usa esta tela para esconder os próximos passos: clicar, como se fosse o usuário, aproveitando as permissões obtidas. Enquanto o usuário espera que a suposta atualização termine, o malware executa as seguintes tarefas:

  • Habilita a instalação de aplicativos de fontes desconhecidas
  • Instala o BankBot nos recursos e o executa
  • Ativa o administrador do dispositivo para o BankBot
  • Define o BankBot como aplicativo SMS
  • Obtém permissão para substituir outros apps

Depois que estas tarefas são executadas, o malware pode começar a trabalhar na seguinte meta: roubar os detalhes do cartão de crédito da vítima. Diferente de outras variantes do BankBot que focam em uma extensa lista de aplicativos de home banking específicas e imitam suas páginas de início de sessão para coletar credenciais, esta variante se enfoca exclusivamente no Google Play, um aplicativo que todo usuário do Android tem pré-instalado no dispositivo.

Quando o usuário executa o aplicativo do Google Play, o BankBot entra em ação e se sobrepõe ao aplicativo legítimo com um formulário falso, pedindo dados do cartão de crédito (Fig. 7).

Figura 7 – Formulário falso que solicita os dados do cartão de crédito da vítima.

Caso o usuário caia na armadilha e insira os dados, podemos dizer que os cibercriminosos ganharam. Graças ao BankBot se estabelecer como o aplicativo de mensagens por padrão, pode interceptar todas as mensagens SMS que passam pelo dispositivo infectado. Isso faz com que os cibercriminosos burlem a dupla autenticação baseada em SMS na conta bancária da vítima, que seria o último obstáculo que protege o usuário.

O que o torna tão perigoso?

Nesta campanha, os cibercriminosos reuniram uma série de técnicas cada vez mais populares entre os criados de malware para Android: abusar do serviço de acessibilidade do Android, se fazendo passar pelo Google e estabelecer um tempo, que é utilizado para burlar as medidas de segurança do Google.

As técnicas combinadas fazem com que seja bem mais difícil para a vítima reconhecer a ameaça a tempo. Como o malware se passa pelo Google e espera 20 minutos antes de mostrar a primeira alerta, a vítima tem poucas chances para relacionar a sua atividade com o app do Jewel Star Classic que acaba de baixar. Além disso, os vários nomes diferentes que o malware usa ao longo do processo de infecção complica ainda mais a localização e eliminação manual.

Como limpar um dispositivo infectado?

Caso você costume baixar muitos aplicativos diferentes pelo Google Play e outras lojas, é importante verificar se este malware está no seu aparelho.

No entanto, verificar a presença do Jewels Star Classic em seu telefone não é o suficiente, considerando que os cibercriminosos trocam frequentemente os aplicativos utilizados para propagar o BankBot. Para ver se o seu dispositivo está infectado, te sugerimos que preste bastante atenção nos seguintes indicadores:

  • A presença de um app chamado “Google Update” (apresentado na Fig. 8, em Configurações → Aplicativos → Administrador de aplicativos → Google Update).
  • Um administrador de dispositivo ativo chamado “System update” (apresentado na Fig. 9 e esteja em Configurações → Tela de bloqueio e segurança → Outras configurações de segurança → Administradores de dispositivos).
  • Aparição de forma repetida do alerta de “Google Service” (apresentado na Fig.2).

Figura 8 – Os aplicativos maliciosos no Administrador de aplicativos.

 

Figura 9 - BankBot disfarçado de System update dentro dos Administradores de dispositivo ativos.

Caso você detecte alguns destes indicadores, é provável que o seu dispositivo tenha sido infectado com esta variante do BankBot.

Para limpar manualmente o seu dispositivo, primeiro seria necessário desabilitar os direitos de administrador do “System Update”, em seguida desistalar tanto o “Google Update” como o aplicativo trojanizado associado, neste caso o Jewel Star Classic.

Talvez determinar qual aplicativo trojanizado foi responsável pela infecção seja um pouco difícil, considerando a demora de 20 minutos na atividade maliciosa, e que o app funciona como esperado. Para detectar e eliminar a ameaça com todos os componentes, recomendamos usar uma solução de segurança móvel.

As soluções de segurança da ESET detectam e bloqueiam esta variante do BankBot como Android/Spy.Banker.LA.

Como se manter protegido?

Além de usar uma solução de segurança confiável, existem outras coisas que podem ser feitas para evitar ser vítima de um malware móvel:

  • Sempre que possível, dê prioridade às lojas de aplicativos oficiais e não às alternativas. Embora não seja perfeita, Google Play usa mecanismos de segurança avançados, o que nem sempre é o caso em outras lojas.
  • Quando estiver em dúvida sobre a instalação de um app, verifique a sua popularidade conferindo o número de instalações, as qualificações e os comentários dos usuários.
  • Depois de executar qualquer coisa que tenha sido instalada em seu dispositivo móvel, verifique as permissões e direitos solicitados. Se um aplicativo requer permissões intrusivas, principalmente relacionadas com a acessibilidade, leia tudo com bastante cuidado e autorize apenas se estiver totalmente certo de que o app é confiável.

O que é o BankBot?

Detectado pela ESET no último dia 26 de dezembro e analisado primeiramente pelo Dr. Web, BankBot é um trojan bancário para Android controlado remotamente, capaz de coletar dados bancários usando formulários falsos de login para vários aplicativos, interceptando mensagens de texto para burlar o duplo fator de autenticação e mostrando notificações push não solicitadas.

Pouco tempo depois do descobrimento dos apps trojanizados com o BankBot no Google Play no início de 2017, confirmamos que os apps maliciosos derivavam código fonte que se tornavam público em fóruns underground em dezembro de 2016. A disponibilidade pública do código resultou no aumento do número e na sofisticação de trojans bancários móveis.

Amostras analisadas/IoCs

Nome do pacote
Hash
com.mygamejewelsclassic.app B556FB1282578FFACDBF2126480A7C221E610F2F
com.w8fjgwopjmv.ngfes.app 4D3E3E7A1747CF845D21EC5E9F20F399D491C724