PixStealer: uma nova onda de cavalos de Troia para Android que abusam dos serviços de acessibilidade

Ao limitar as interações físicas, a pandemia COVID-19 acelerou significativamente a digitalização do setor bancário para atender às necessidades dos clientes. Para lidar com a demanda, melhorar o acesso e a conscientização sobre os serviços financeiros, bancos e governos estão desenvolvendo novas infra-estruturas, protocolos e ferramentas. Um dos exemplos mais bem-sucedidos dessas iniciativas lançadas durante o COVID é o Pix, a solução de pagamentos instantâneos criada pelo Banco Central do Brasil. Lançado apenas em novembro de 2020, Pix já atingiu 40 milhões de transações por dia, movimentando um total de US $ 4,7 bilhões por semana.

Claro, com a evolução da tecnologia vêm os hackers em evolução. Um aumento significativo no uso de aplicativos móveis e sites pelos consumidores para suas transações bancárias naturalmente não passou despercebido por agentes mal-intencionados, especialmente aqueles que visam serviços bancários móveis.

A Check Point Research descobriu recentemente uma nova onda de aplicativos Android maliciosos que visam o sistema de pagamento Pix e aplicativos de bancos brasileiros. Esses aplicativos maliciosos, uma vez distribuídos na Google Store, parecem ser uma evolução de uma família não classificada de banqueiros brasileiros analisados por pesquisadores de segurança em abril, e foram descobertos como tendo sido atualizados com novas técnicas e recursos. Uma das versões que encontramos contém funcionalidades nunca antes vistas para roubar o dinheiro das vítimas usando transações Pix. Devido à sua funcionalidade e implementação exclusivas, chamamos essa versão de PixStealer.

PixStealer é um malware muito minimalista que não executa nenhuma ação “clássica” de banqueiro, como roubar credenciais de aplicativos bancários direcionados e se comunicar com um C&C. Seu “irmão mais velho” MalRhino, por outro lado, contém uma variedade de recursos avançados e introduz o uso do Rhino JavaScript Engine de código aberto para processar eventos de acessibilidade.

Neste artigo, fornecemos a análise técnica dessas variantes de malware e discutimos as técnicas inovadoras que elas usam para evitar a detecção, maximizar o ganho do ator da ameaça e abusar de recursos bancários digitais muito específicos, como o sistema Pix.

PixStealer: uma análise técnica

O nome interno do malware PixStealer é “ Pag Cashback 1.4 ″. Ele foi distribuído no Google Play como um falso serviço de PagBank Cashback e voltado apenas para o PagBank brasileiro.

O nome do pacote com.pagcashback.beta indica que o aplicativo pode estar no estágio beta.

PixStealer usa uma técnica “menos é mais”: como um aplicativo muito pequeno com permissões mínimas e sem conexão com um C&C, ele tem apenas uma função: transferir todos os fundos da vítima para uma conta controlada pelo ator.

Com essa abordagem, o malware não pode se atualizar comunicando-se com um C&C ou roubar e carregar qualquer informação sobre as vítimas, mas atinge o objetivo muito importante: permanecer indetectável.

Figura 1: Total de detecções de vírus da amostra PixStealer.

Como muitos dos cavalos de Tróia bancários que surgiram nos últimos anos (Evenbot, Gustaff, Medusa e outros), o PixStealer abusa do serviço de acessibilidade do Android. O principal objetivo do AAS é ajudar os usuários com deficiência a usar dispositivos e aplicativos Android. No entanto, quando uma vítima é atraída por malware bancário para habilitar esse serviço, o Serviço de Acessibilidade se transforma em uma arma, concedendo ao aplicativo a capacidade de ler qualquer coisa que um usuário normal possa acessar e realizar qualquer ação que um usuário possa fazer em um dispositivo Android.

Quando o aplicativo é iniciado, o malware mostra à vítima uma caixa de mensagem solicitando a ativação do Serviço de Acessibilidade para obter a alegada funcionalidade de “reembolso”:

Figura 2: O malware PixStealer solicitando acesso ao Serviço de Acessibilidade do Android.

Semelhante às versões anteriores do malware, o serviço se chama com.gservice.autobot.Acessibilidade.

Depois de receber a permissão do Serviço de Acessibilidade, o malware mostra uma mensagem de texto com uma chamada para abrir o aplicativo PagBank para sincronização. Devemos mencionar que uma vez que tenha acesso ao Serviço de Acessibilidade, o malware pode abrir o aplicativo sozinho. Provavelmente, ele espera que o usuário abra o aplicativo para evitar a exibição do “comportamento de malware” típico, o que o ajuda a não ser detectado.

Depois que a vítima abre a conta bancária e insere as credenciais, o malware usa a Acessibilidade para clicar no botão “mostrar” para recuperar o saldo atual da vítima.

Figura 3: O malware irá clicar no ícone “olho” para recuperar o saldo da conta.

Este número é salvo em SharedPrefences com a chave “valor” (“valor” em português):

Figura 4: O malware salvando o saldo da conta em SharedPreferences na chave “valor”

Em seguida, o malware mostra uma exibição de sobreposição falsa pedindo ao usuário para aguardar a conclusão da sincronização:

Figura 5: “Sincronizando seu acesso… Não desligue a tela do celular” tela de sobreposição.

Essa tela de sobreposição desempenha um papel muito importante: ela oculta o fato de que, em segundo plano, o malware está transferindo todos os fundos para a conta controlada pelo ator.

Para realizar a transferência, o malware primeiro procura o botão Transferir :

Figura 6: O malware procura o botão Transferir.

O malware clica nele usando as seguintes ações de acessibilidade:

Figura 7: A função “clique no botão” do malware.

O valor da transferência é o valor que foi recuperado no início do aplicativo – todo o saldo armazenado na chave “valor” em SharedPreferences:

Figura 8: O malware busca o texto com a string “Informe o valor da transf” (“fornecer valor da transação”) e insere todo o valor do saldo no campo valor da transferência.

A última ação que resta é inserir o beneficiário do pagamento. O malware busca o campo CPF / CNPJ (CNPJ):

Figura 9: O malware procura o campo ID do Brasil

e, em seguida, insere o “CPF” (número de identificação brasileiro) do ator da ameaça por meio da funcionalidade de acessibilidade.

Figura 10: O malware entra na ID controlada por ator para transferência usando Pix.

Este breve vídeo demonstra todo o fluxo malicioso:

Video Player

 
 
00:00
 
00:32
 
 

O aplicativo PagBank, direcionado pelo PixStealer ,  implementa um processo de verificação de identidade antes de permitir que o usuário execute uma transação Pix. O processo garante que o dispositivo pertença ao proprietário da conta bancária e exige que o usuário passe pelas seguintes etapas para cada dispositivo móvel:

  • autenticação de dois fatores (credenciais e SMS)
  • faça upload de documentos que confirmem a propriedade da conta
  • capture uma selfie com a câmera do dispositivo.

Somente quando os documentos e a selfie passam na verificação manual do banco, a transferência Pix é habilitada no dispositivo. Essas medidas garantem que credenciais roubadas e até mesmo troca de SIM não sejam suficientes para realizar transações Pix. O perigo de malware como o PixStealer é que ele realmente ignora todas essas verificações enquanto está sendo executado no dispositivo da vítima que já passou pelo estágio de identificação.

MalRhino – o “irmão mais velho” do PixStealer

Um ladrão de banqueiros autônomo que não requer uma conexão C&C é leve e quase indetectável, mas não tem a capacidade de fazer ajustes dinamicamente. Ao procurar aplicativos semelhantes, encontramos outra versão da mesma família que possui várias semelhanças de código com PixStealer: manifesto, mensagens de logs, serviços e nomes de métodos.

Figura 11: Exemplo de funções de registro semelhantes em MalRhino (na parte superior) e exemplos PixStealer.

O aplicativo malicioso é um aplicativo falso do iToken para o Inter Bank do Brasil, com o nome do pacote com.gnservice.beta, e também foi distribuído via Google Play Store.

A variante MalRhino usa JavaScript por meio da estrutura Rhino da Mozilla para processar eventos de acessibilidade dinamicamente, dependendo do aplicativo em execução para fornecer ao ator remoto acesso de execução de código. Essa técnica não é comumente usada em malware móvel e mostra como os agentes maliciosos estão se tornando mais inovadores para evitar a detecção e entrar no Google Play. A última vez que nossos pesquisadores encontraram o RhinoJS usado para ações maliciosas foi pelo malware do banqueiro Xbot em 2016.

Assim como na versão anterior, o malware mostra à vítima uma mensagem tentando convencê-la a dar permissão de acessibilidade:

Figura 12: “Para continuar, ative o serviço de acessibilidade do iToken desenvolvido pela Inter Digital Development”.

Ao obter acesso de acessibilidade, o malware executa as ações típicas desse malware e as implementa da mesma forma que nas versões anteriores:

  • Colete o aplicativo instalado e envie a lista para o servidor C&C junto com as informações do dispositivo da vítima
  • Executar aplicativos de bancos
  • Recuperar pin do aplicativo Nubank

Aplicativos direcionados

Para verificar se o aplicativo em execução no sistema é um aplicativo bancário compatível, o malware usa um nome de pacote. Para evitar a detecção de strings de nomes de pacotes bancários dentro do aplicativo, o malware lê o nome do pacote, calcula a soma de verificação MD5 e a compara com a lista predefinida:

Figura 13: O malware verifica o nome do pacote usando hashes MD5

 Nome Nome do pacote Md5
Interbancáriobr.com.intermidium2ef536239b84195e099013cfda06d3dd
NuBankcom.nu.production678212691ab75ea925633512d9e3b5f4
Próximobr.com.bradesco.nextd74e8b32e9d704633bd69581a15f55de
Santandercom.santander.app38737771e1ddab60c062cd0be323e89b
Banco UOL Pa gbr.com.uol.ps.myaccount5b3deb74ec783b05645b3fff5d56667d
Banco ori g inalbr.com.original.bank64679e8af5f494db86fb7b7312e79ba9

Tabela 1: Lista de aplicativos bancários direcionados pela variante MalRhino.

Execução de código dinâmico RhinoJS

Rhino é um mecanismo JavaScript escrito totalmente em Java e gerenciado pela Mozilla Foundation como software de código aberto. Os desenvolvedores de malware usaram uma biblioteca rhino-android de código aberto que permite a execução de código JavaScript com a ponte para o código Java.

Se o aplicativo em execução for aquele suportado pelo malware, ele realiza a solicitação ao servidor C&C para obter o código JavaScript com “macros” Rhino JS:

Figura 14: O malware executa a função GetMacroForPackage (parte superior), que solicita ao servidor o código JS de acordo com o aplicativo em execução principal.

A resposta do servidor C&C contém código JavaScript a ser executado usando o mecanismo Rhino:

Figura 15: O malware executa o código JavaScript dentro do aplicativo de destino.

Usando o mecanismo Rhino JS, o malware tem a capacidade de executar a execução remota de código quando um aplicativo necessário é iniciado. O código AccessibilityService contém vários métodos de utilitário que não são usados ​​no código Java e provavelmente são acionados a partir do código JavaScript que o malware obtém do servidor C&C. Esses métodos utilitários incluem criar janelas falsas com solicitação de PIN, clicar em algo, fazer gestos, inserir texto etc.

Figura 16: Os métodos do utilitário realizam diferentes ações usando o Serviço de Acessibilidade.

Conclusão

Neste artigo, analisamos duas versões significativamente diferentes do malware bancário. Ambos introduziram novas técnicas inovadoras para realizar ações diferentes nas contas bancárias móveis das vítimas. A versão PixStealer usa o sistema de pagamento instantâneo Pix para transferir todos os fundos da conta da vítima para uma conta controlada pelo ator abusando do Serviço de Acessibilidade no telefone de um usuário desavisado. A versão MalRhino usa uma estrutura baseada em JavaScript para executar comandos dentro de aplicativos bancários. Com o crescente abuso do Serviço de Acessibilidade por malware de banqueiros móveis, os usuários devem ser cautelosos ao habilitar as permissões relevantes, mesmo nos aplicativos distribuídos por lojas de aplicativos conhecidas, como o Google Play.

O Check Point Harmony Mobile é uma solução de defesa contra ameaças móveis que mantém os dados corporativos protegidos, protegendo os dispositivos móveis dos funcionários em todos os vetores de ataque: aplicativos, rede e sistema operacional

IOCs

PixStealer

28e8170485bbee78e1a54aae6a955e64fe299978cbb908da60e8663c794fd195 com.pagcashback.beta

c0585b792c0a9b8ef99b2b31edb28c5dac23f0c9eb47a0b800de848a9ab4b06c com.pagback.beta

8b4f064895f8fac9a5f25a900ff964828e481d5df2a2c2e08e17231138e3e902 com.gnservice.beta

MalRhino

2990f396c120b33c492d02e771c9f1968239147acec13afc9f500acae271aa11 com.gnservice.beta

Com informações de Check Point Research 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *