PixStealer: uma nova onda de Trojans bancários Android abusando de Serviços de Acessibilidade

Views: 914
0 0
Read Time:9 Minute, 20 Second

Introdução

Ao limitar as interações físicas, a pandemia de 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 dos serviços financeiros, bancos e governos estão desenvolvendo novas infraestruturas, protocolos e ferramentas. Um dos exemplos mais bem-sucedidos de tais iniciativas lançadas durante a COVID é o Pix, a solução de pagamentos instantâneos criada pelo Banco Central do Brasil. Lançado apenas em novembro de 2020, o 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 tecnologia em evolução vêm hackers em evolução. Um aumento significativo no uso de aplicativos e sites móveis pelos consumidores para suas transações bancárias naturalmente não escapou ao conhecimento de atores maliciosos, especialmente aqueles direcionados a serviços bancários móveis.

A Check Point Research descobriu recentemente uma nova onda de aplicativos Android maliciosos direcionados ao sistema de pagamento Pix e aos aplicativos bancários 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 descobriram que foram atualizados com novas técnicas e capacidades. 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 únicas, nomeamos esta versão de PixStealer.

O PixStealer é um malware muito minimalista que não executa nenhuma ação banqueira “clássica”, 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 Mecanismo JavaScript Rhino 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 de ameaças 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”. Foi distribuído no Google Play como um falso serviço de Cashback PagBank e direcionado apenas ao PagBank brasileiro.

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

O 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 por atores.

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

Figura 1: Vírus Detecções totais da amostra do PixStealer.

Como muitos dos Trojans bancários que apareceram nos últimos anos (Evenbot, Gustaff, Medusa e outros), o PixStealer abusa do Serviço de Acessibilidade do Android. O principal objetivo da AAS é ajudar usuários com deficiência a usar dispositivos e aplicativos Android. No entanto, quando uma vítima é atraída por malware bancário para permitir este 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 comum possa acessar e executar 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 pedindo para ativar o Serviço de Acessibilidade para obter a suposta funcionalidade de “cashback”:

Figura 2: O malware PixStealer solicitando acesso ao Serviço de Acessibilidade 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 ele tenha acesso ao Serviço de Acessibilidade, o malware pode abrir o aplicativo por si só. Muito provavelmente, ele espera que o usuário abra o aplicativo para evitar exibir o “comportamento de malware” típico, o que ajuda a permanecer sem ser detectado.

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

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

Este número é salvo em SharedPrefences sob a chave “valor”:

Figura 4: O malware salvando o saldo da conta no SharedPreferences sob a chave “valor”

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

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

Essa tela de sobreposição desempenha um papel muito importante: esconde 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 de “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” no SharedPreferences:

Figura 8: O malware procura o texto com a string “Informe o valor da transf” e insere todo o valor do saldo no campo de quantia de transferência.

A última ação que resta é inserir o beneficiário do pagamento. O malware procura o campo CPF/CNPJ (número de identificação do contribuinte brasileiro):

Figura 9: O malware procura o campo de identificação brasileiro

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

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

Este pequeno vídeo demonstra todo o fluxo malicioso:Leitor de Vídeo

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

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

MalRhino – “irmão mais velho” da PixStealer

Um ladrão de banqueiro 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 tem várias semelhanças de código com o PixStealer: manifesto, mensagens de logs, nomes de serviços e métodos.

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

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

A variante MalRhino usa JavaScript através da estrutura Rhino da Mozilla para processar Eventos de Acessibilidade dinamicamente, dependendo do aplicativo em execução superior para fornecer ao controle remoto do ator acesso à execução de código. Essa técnica não é comumente usada em malware móvel e mostra como atores 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 à Acessibilidade:

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

Quando obtém acesso à Acessibilidade, o malware executa as ações típicas desse malware e as implementa da mesma maneira 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
  • Execute aplicativos bancários
  • Recuperar pino do aplicativo Nubank

Aplicativos direcionados

Para verificar se o aplicativo em execução superior no sistema é um aplicativo bancário suportado, 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

NomeNome do pacoteMd5
Interbancobr.com.intermidium2ef536239b84195e099013cfda06d3dd
NuBankcom.nu.production678212691ab75ea925633512d9e3b5f4
Próximobr.com.bradesco.próximod74e8b32e9d704633bd69581a15f55de
Santandercom.santander.app38737771e1ddab60c062cd0be323e89b
UOL PagBankbr.com.uol.ps.minhaconta5b3deb74ec783b05645b3fff5d56667d
Banco originalbr.com.original.bank64679e8af5f494db86fb7b7312e79ba9

Tabela 1: Lista de pedidos bancários visados pela variante MalRhino.

Execução dinâmica de código 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 de rino-andróides de código aberto que permite executar código JavaScript com a ponte para o código Java.

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

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

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

Figura 15: O malware executa 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 utilitários que não são usados a partir do código Java e provavelmente se destinam a serem 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 utilitários que executam 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 diferentes ações nas contas bancárias móveis das vítimas. A versão PixStealer usa o sistema de pagamento instantâneo da Pix para transferir todos os fundos da conta da vítima para uma conta controlada por atores, 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 ter cuidado ao permitir as permissões relevantes, mesmo nos aplicativos distribuídos através de lojas de aplicativos conhecidas, como o Google Play.

Check Point Harmony Mobile é uma solução de Defesa contra Ameaças Móveis que mantém os dados corporativos seguros, 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

FONTE: CHECKPOINT

POSTS RELACIONADOS