Um novo malware bancário para Android chamado SoumniBot está usando uma abordagem de ofuscação menos comum, explorando pontos fracos no procedimento de extração e análise de manifestos do Android. O método permite que o SoumniBot evite medidas de segurança padrão encontradas em telefones Android e execute operações de roubo de informações.
O malware SoumniBot
O malware foi descoberto e analisado por pesquisadores da Kaspersky, que fornecem detalhes técnicos sobre os métodos que o malware usa para aproveitar a rotina do Android para analisar e extrair manifestos do APK. Os arquivos de manifesto (‘AndroidManifest.xml’) estão presentes no diretório raiz de cada aplicativo e contêm detalhes sobre componentes (serviços, receptores de transmissão, provedores de conteúdo), permissões e dados do aplicativo.
Embora existam vários truques de compactação do Zimperium que APKs maliciosos podem usar para enganar as ferramentas de segurança e escapar da análise, os analistas da Kaspersky descobriram que o SoumniBot usa três métodos diferentes que envolvem a manipulação da compactação e do tamanho do arquivo de manifesto, para ignorar as verificações do analisador. Primeiro, SoumniBot usa um valor de compactação inválido ao descompactar o arquivo de manifesto do APK, que diverge dos valores padrão (0 ou 8) esperados pela biblioteca ‘libziparchive’ do Android encarregada da função.
Em vez de tratar esses valores como inaceitáveis, o analisador APK do Android reconhece os dados como descompactados devido a um bug, permitindo que o APK ignore as verificações de segurança e continue a execução no dispositivo.
O segundo método envolve informar incorretamente o tamanho do arquivo de manifesto no APK, fornecendo um valor maior do que o valor real. Como o arquivo foi marcado como descompactado na etapa anterior, ele é copiado diretamente do arquivo, com dados de “sobreposição” indesejados preenchendo a diferença.
De acordo com a Kaspersky, embora esses dados extras não prejudiquem diretamente o dispositivo, já que o Android está configurado para ignorá-los, eles desempenham um papel crucial na confusão das ferramentas de análise de código.
A terceira técnica de evasão é usar strings muito longas para os nomes dos namespaces XML no arquivo de manifesto, tornando muito difícil a verificação por ferramentas de análise automatizadas, que muitas vezes não têm memória suficiente para processá-los. A Kaspersky informou ao Google sobre a incapacidade do APK Analyzer, o utilitário de análise oficial do Android, de lidar com arquivos usando os métodos de evasão acima.
A ameaça SoumniBot no Android
Após a inicialização, o SoumniBot solicita seus parâmetros de configuração de um endereço de servidor codificado e envia informações de perfil do dispositivo infectado, incluindo número, operadora, etc. Em seguida, ele inicia um serviço malicioso que reinicia a cada 16 minutos se for interrompido e transmite dados roubados da vítima a cada 15 segundos.
Os detalhes exfiltrados incluem endereços IP, listas de contatos, detalhes de contas, mensagens SMS, fotos, vídeos e certificados digitais de bancos online. A exfiltração de dados é controlada por comandos que o malware recebe por meio de um servidor MQTT. Esses comandos também ordenam funções como: exclusão de contatos existentes ou adicionando novos contatos; envio de uma mensagem SMS (encaminhamento); definir níveis de volume do toque; ativar ou desativar o modo silencioso e; ativar ou desativar o modo de depuração no dispositivo
Não está claro como o SoumniBot chega aos dispositivos, mas os métodos podem variar, desde a distribuição em lojas Android de terceiros e sites inseguros até a atualização com código malicioso de aplicativos legítimos em repositórios confiáveis. Ele tem como alvo usuários coreanos e, como muitos aplicativos Android maliciosos, oculta seu ícone após a instalação para dificultar sua remoção. Porém, ele permanece ativo em segundo plano, carregando dados da vítima.