PixPirate: Itaú e Caixa na mira do novo Trojan bancário brasileiro

Pixpirate trojan bancário brasileiro

Pixpirate trojan bancário brasileiro

O PixPirate esconde seus propósitos maliciosos com nomes e ícones familiares, fazendo-se passar por um aplicativo legítimo para as vítimas. No final de 2022, foi interceptado os seguintes apps, que parecem bastante consolidados pelos TAs por entregarem suas amostras maliciosas:
Compartilhe

Pontos chave

  • Entre o final de 2022 e o início de 2023, um novo trojan bancário Android foi descoberto pela equipe Cleafy TIR. Devido à falta de informações e à ausência de uma nomenclatura adequada para essa família de malware, decidimos batizá-la de PixPirate, para melhor rastrear essa família dentro de nossa taxonomia interna de Threat Intelligence.
  • O PixPirate pertence à mais nova geração de trojan bancário Android, pois pode executar ATS (Automatic Transfer System), permitindo que invasores automatizem a inserção de uma transferência de dinheiro maliciosa na plataforma de pagamento instantâneo Pix, adotada por vários bancos brasileiros.
  • O PixPirate parece ter os seguintes recursos, obtidos principalmente pelo abuso dos Serviços de Acessibilidade, como:
    – Capacidade de interceptar credenciais bancárias válidas e realizar ataques ATS em vários bancos brasileiros por meio de pagamentos Pix
    – Capacidade de interceptar/excluir mensagens SMS
    – Impedindo a desinstalação
    – Malvertising

O malware foi encontrado e documentado por pesquisadores de segurança da Cleafy.

Introdução

No primeiro semestre de 2020, a América Latina registrou a maior taxa de ataques cibernéticos do mundo, com 3x mais ataques a navegadores móveis do que a média global[ 1 ]. De acordo com várias observações do TA, os ataques de phishing têm uma alta taxa de sucesso e são utilizados por hackers motivados financeiramente para roubar informações confidenciais, como logins bancários. Em 2022, vários trojans bancários baseados em dispositivos móveis reapareceram após períodos inativos, e novos surgiram disfarçados de aplicativos móveis legítimos (por exemplo, Vultur, SOVA, TeaBot ). Os ataques cibernéticos continuaram a aumentar na segunda metade de 2021 e 2022, não apenas em quantidade, mas também em impacto. Os grupos financeiros estão expandindo seu alcance, visando organizações em todo o mundo principalmente por meio de ransomware, mas também aumentando o alcance de suas atividades.


Dito isto, para além desta evolução, um dos elementos mais cruciais que têm perturbado o atual estado da arte dos departamentos antifraude são os Pagamentos Instantâneos. Instant Payments são transferências eletrônicas de dinheiro que disponibilizam fundos transferidos em tempo real de uma conta para outra, trazendo agilidade às transferências de dinheiro e aumentando o risco acentuado de fraudes não tratadas e, conseqüentemente, perdas monetárias. Nos últimos anos, a adoção de Instant Payments vem crescendo rapidamente na Europa, América e, mais recentemente, também no Brasil, com a introdução do Pix, plataforma de pagamentos instantâneos criada e administrada pela autoridade monetária do Brasil, o Banco Central do Brasil (BCB), que permite a rápida execução de pagamentos e transferências e já conta com mais de 100 milhões de contas cadastradas .


Uma dessas ameaças recentemente descoberta na natureza é um novo malware móvel direcionado aos países da América Latina, especificamente o Brasil. O principal objetivo desse malware é roubar informações confidenciais e realizar fraudes em usuários que usam regularmente a plataforma Pix. Este relatório fornecerá uma análise detalhada desse malware nos capítulos seguintes.

[1] https://www.interpol.int/en/News-and-Events/News/2022/INTERPOL-Working-Group-highlights-cyber-threats-across-the-Americas

Análise Técnica: Visão Geral

O PixPirate esconde seus propósitos maliciosos com nomes e ícones familiares, fazendo-se passar por um aplicativo legítimo para as vítimas. No final de 2022, interceptamos os seguintes chamarizes, que parecem bastante consolidados pelos TAs por entregarem suas amostras maliciosas:

Figura 1 - Principais nomes/ícones utilizados pelo PixPirate
Figura 1 – Principais nomes/ícones utilizados pelo PixPirate

O PixPirate geralmente é entregue usando um aplicativo dropper, usado para baixar (ou em alguns casos apenas para descompactar) e instalar o trojan bancário. Durante sua instalação, o PixPirate tenta imediatamente habilitar os Serviços de Acessibilidade que continuam sendo solicitados persistentemente com falsos pop-ups até que a vítima aceite.

Figura 2 - Permissões usadas pelo aplicativo conta-gotas
Figura 2 – Permissões usadas pelo aplicativo conta-gotas
Figura 3 - Fases de instalação do PixPirate
Figura 3 – Fases de instalação do PixPirate

Abusar dos Serviços de Acessibilidade é uma rotina padrão para trojans bancários, pois eles fornecem recursos para interagir com outros aplicativos. Depois que a vítima der as permissões, o PixPirate ativará todas as suas funcionalidades maliciosas.

Após inspecionar o código do PixPirate, identificamos algumas referências relacionadas a um framework chamado Auto.js [ 2 ]. Esta é uma ferramenta de código aberto para automatizar tarefas em dispositivos Android usando JavaScript. Ele permite que os desenvolvedores escrevam scripts que podem interagir com a interface do usuário do dispositivo e realizar ações como localizar e interagir com elementos da interface do usuário, inserir texto, percorrer listas, simular eventos de toque etc. O Auto.js também fornece um interpretador JavaScript integrado, que permite que os scripts sejam executados no próprio dispositivo sem a necessidade de um tempo de execução externo. A lista a seguir é um exemplo das funções integradas disponíveis no Auto.js:

  • sleep () : pausa a execução
  • toast (): mostra uma notificação de brinde
  • swipe(): executa um gesto de deslizar
  • click(): cliques na tela
  • device.width: obtém a largura da tela do dispositivo
  • dispositivo. height: obtenha a altura da tela do dispositivo
Figura 4 - Página inicial do Auto.js
Figura 4 – Página inicial do Auto.js

Como o Auto.js representa uma nova estrutura para trojan bancário móvel, queríamos entender o motivo dessa escolha. Ao inspecionar as capacidades do framework, foi possível identificar algumas funcionalidades que podem agilizar a fase de desenvolvimento:

  • Os codificadores não Android podem escrever scripts de automação usando código JavaScript e criar aplicativos independentes.
  • Gestão da comunicação web dentro da aplicação.
  • Mecanismo integrado para criptografar/ofuscar o código .

Os TAs foram capazes de adaptar essa estrutura legítima e criar todas as rotinas maliciosas em JavaScript, executadas no topo da pilha Auto.js. Para desacelerar os analistas, os TAs adotam uma camada pesada de ofuscação de código, incluindo várias técnicas, como codificação de matriz de strings, lisonjeiro de fluxo de controle, etc.

As seguintes características foram observadas:

  • Impedindo a desinstalação
  • Desativando o Google Play Protect
  • Interceptação de mensagens SMS
  • Interceptação de credenciais bancárias
  • Monitoramento das atividades financeiras da vítima
  • Malvertising via notificações push
  • Realize ataques ATS via pagamentos PIX
Figura 5 - Visão geral das rotinas JavaScript maliciosas
Figura 5 – Visão geral das rotinas JavaScript maliciosas

Os capítulos seguintes exploram e discutem todas as principais características do PixPirate.

[2] https://pro.autojs.org/

ladrão de senha

Um dos módulos JavaScript do PixPirate é usado para roubar a senha do banco com a ajuda dos conhecidos serviços de acessibilidade do Android. Dentro deste módulo foi criada uma função específica para cada banco alvo, pois cada aplicação bancária possui um layout diferente.

De facto, através dos Serviços de Acessibilidade, o PixPirate consegue reconhecer os diferentes elementos UI da atividade do banco [3] e o elemento password apresentado no ecrã. Se detectar algumas alterações no texto de entrada da senha, ele pega a senha do usuário (se ainda não tiver sido roubada anteriormente).

Figura 6 - Exemplo de trecho de código usado para roubar a senha do banco visado
Figura 6 – Exemplo de trecho de código usado para roubar a senha do banco visado

[3] Uma atividade no Android representa uma única tela com uma interface de usuário e é usada para exibir e interagir com o conteúdo.

ATS pousou no Sistema Pix

O Banco Central do Brasil (BCB) criou o Pix, um meio de pagamento instantâneo que permite que usuários como pessoas físicas, jurídicas e órgãos governamentais enviem ou recebam transferências de pagamento em poucos segundos a qualquer hora, inclusive em dias não úteis. Além disso, as transações do Pix podem ser realizadas entre quaisquer instituições de pagamento ou instituições financeiras aderentes a esse ecossistema.

Nos últimos anos, diferentes trojans bancários Android foram criados para realizar transações fraudulentas neste ecossistema, como PixStealer ou o mais recente BrasDex.

Os TAs da PixPirate criaram um arquivo javascript específico para cada banco alvo para gerenciar as diferentes fases da transação fraudulenta, que podem ser resumidas com os seguintes passos:

  • A identificação dos elementos da interface do usuário do aplicativo de destino, como botões, textos ou entradas, para estabelecer qual atividade é exibida no dispositivo da vítima.
Figura 7 - Exemplo de código utilizado para identificar os elementos do banco alvo
Figura 7 – Exemplo de código utilizado para identificar os elementos do banco alvo
  • A descoberta de saldo da conta, utilizada para definir a quantia de dinheiro a roubar (saldo disponível *0,95) ou descartar contas consideradas inválidas. Seguido pelas etapas individuais para realizar a transação.
Figura 8 - Parte do código usado para identificar o saldo do banco visado
Figura 8 – Parte do código usado para identificar o saldo do banco visado

Seqüestro de SMS

O PixPirate também contém um script projetado para excluir mensagens SMS com conteúdo de texto específico. Para executar esta ação, o malware pode observar e detectar quando o aplicativo de SMS padrão está em primeiro plano e executar ações como clicar longamente, clicar no botão excluir e confirmar a exclusão. Para ocultar essas atividades do usuário, o PixPirate pode exibir uma janela de carregamento e silenciar o dispositivo durante a exclusão das mensagens.

Esse tipo de recurso também está presente em outros trojans bancários do Android e tem a dupla função de ocultar ações suspeitas realizadas pelo malware e remover detalhes específicos de analistas que realizam operações de RI.

Figura 9 - Parte do código usado no método de sequestro de sms
Figura 9 – Parte do código usado no método de sequestro de sms

Proteção de código

Entre as principais contramedidas adotadas pelo PixPirate para desacelerar a análise estão a ofuscação e a criptografia de código, além das funcionalidades clássicas que tentam evitar a remoção do aplicativo em tempo de execução. Falando em ofuscação, ela foi implementada com sabedoria, tornando o código bastante desafiador para ser analisado diretamente. Na verdade, antes de prosseguir com a análise, foi necessário remover funções de lixo e renomear variáveis, além de prosseguir com várias etapas de desofuscação. Ao final desse processo, foi possível ter um entendimento mais claro do código.

Figura 10 - Comparação da mesma função ofuscada (à esquerda) e parcialmente desofuscada (à direita)
Figura 10 – Comparação da mesma função ofuscada (à esquerda) e parcialmente desofuscada (à direita)

Além disso, os TAs adotaram uma rotina de criptografia fornecida pelo Auto.js usando o mecanismo Rhino e o método Common Encryption. Por meio desse método, a maioria das strings do código foi criptografada por meio de uma operação xor. Um exemplo do código é dado na figura a seguir:

Figura 11 - Criptografia de string com rotina Common Encryption
Figura 11 – Criptografia de string com rotina Common Encryption

Como o leitor pode inferir do código acima, a função decrypt usa arrays de dois bytes como entrada e executa a operação xor entre esses valores. De acordo com as informações recuperadas por meio de nossa análise, os antigos parâmetros da função descriptografar representam o texto cifrado; em vez disso, o último é usado como uma chave. Depois que a operação xor é concluída, ela retorna uma string contendo o valor de texto sem formatação. O código abaixo mostra o resultado desta operação.

 Figura 12 - String descriptografada
Figura 12 – String descriptografada

C2 Infraestrutura e Comunicação

Observou-se que o PixPirate e seu servidor C2 usam o protocolo HTTP para comunicação, e os dados trocados usam o formato JSON. Além disso, os TAs adotaram a pinagem de certificado, uma técnica comum para evitar ataques man-in-the-middle e proteger as comunicações.

Identificamos dois tipos diferentes de comunicação, como segue:

  • Comunicações relacionadas a bancos que abrangem o status atual do PixPirate (por exemplo, permissões e também arquivos de configuração para instruí-lo durante ataques ATS), bem como bancos direcionados abertos pela vítima. Um exemplo é dado na figura:
Figura 13 - Arquivo de configuração inicial
Figura 13 – Arquivo de configuração inicial
  • Comunicação de depuração, incluindo vários logs de erros específicos durante a execução, rastreamentos de pilha, etc.

Durante nossa análise, foi possível encontrar o web panel (mostrado na imagem abaixo) hospedado em múltiplas infraestruturas C2, altamente correlacionadas com as operações da PixPirate.

Figura 14 - Painel de login
Figura 14 – Painel de login

A página de login informa o texto “Sistema de gerenciamento de plano de fundo” (escrito em chinês) e parece ser baseado em um projeto de código aberto escrito em Vue.js, uma estrutura JavaScript para criar interfaces de usuário e aplicativos de página única.

A rotação de impressões digitais C2 por meio de mecanismos de busca na Internet, como o Shodan, pode fornecer excelentes informações e, nesse caso, confirma que a tendência de crescimento começou no segundo semestre de 2022:

Figura 15 - Impressão digital C2 ao longo do tempo (fonte: Shodan Trends)
Figura 15 – Impressão digital C2 ao longo do tempo (fonte: Shodan Trends)

Conclusão

O PixPirate representa um dos malwares emergentes que tentará alavancar o mecanismo de lâmina dupla relacionado a pagamentos instantâneos.

A introdução de capacidades ATS aliadas a frameworks que vão ajudar o desenvolvimento de aplicações móveis, utilizando linguagens flexíveis e mais difundidas (diminuindo a curva de aprendizagem e o tempo de desenvolvimento), poderá levar a malwares mais sofisticados que, no futuro, poderão ser comparados com os seus contrapartes da estação de trabalho. Além disso, observou-se que o PixPirate tem como alvo a plataforma de pagamento instantâneo Pix, adotada por vários bancos brasileiros.

Embora o PixPirate pareça ainda estar em estágios iniciais de desenvolvimento por causa dos IOCs observados (por exemplo, logs enviados para C2, comentários no código e mais variantes com pouquíssimas diferenças), não é possível excluir que no futuro próximo, haverá haverá ainda mais ameaças que seguirão o exemplo do PixPirate, visando outros países da LATAM ou mesmo direcionando seus olhos para diferentes regiões.