BadPack é um arquivo APK malicioso alterado intencionalmente para explorar a estrutura de arquivos do sistema operacional Android.
Tipicamente, os invasores modificam maliciosamente as informações do cabeçalho no formato de arquivo compactado dos APKs para dificultar os esforços de engenharia reversa. Esses cabeçalhos adulterados são uma marca registrada do BadPack, apresentando desafios significativos para as ferramentas de engenharia reversa do Android. Esta técnica é comumente usada por Trojans bancários baseados em Android, como o BianLian, Cerberus, e TeaBot.
Essas descobertas foram relatado ao Google por Palo Alto Networks, que confirmou que nenhum aplicativo contém isso malwares estão atualmente no Google Play. Os usuários do Android são protegidos automaticamente contra versões conhecidas deste malware pelo Google Play Protect, que é habilitado por padrão em dispositivos com Google Play Services. O Google Play Protect pode alertar os usuários ou bloquear aplicativos que exibem comportamento malicioso, mesmo que esses aplicativos venham de fontes fora do Google Play.
Como funciona o malware BadPack?
Arquivos APK, essencial para aplicativos Android, use o formato de arquivo ZIP e contenha um arquivo crítico chamado AndroidManifest.xml. Este arquivo armazena dados e instruções vitais para a operação do aplicativo. Em BadPack APKs, os invasores adulteram os dados do cabeçalho ZIP, dificultando que ferramentas como Apktool e Jadx extraiam e analisem o conteúdo. Por exemplo, O Apktool frequentemente falha ao extrair AndroidManifest.xml de amostras do BadPack.
Palo Alto Networks’ Telemetria avançada de detecção de incêndios florestais a partir de junho 2023 para junho 2024 identificado quase 9,200 Amostras BadPack, indicando uma ameaça significativa. Figura 1 ilustra as tendências mensais dessas detecções, com um aumento notável em maio 2024.
Compreendendo o arquivo de manifesto do Android
O arquivo de manifesto do Android, AndroidManifest.xml, é um arquivo de configuração crucial em amostras de APK, fornecendo informações essenciais sobre o aplicativo móvel para o sistema operacional Android. Isso inclui detalhes sobre atividades, Serviços, permissões, e versões Android compatíveis. Extrair e processar este arquivo é o primeiro passo na análise estática de uma amostra de APK. Autores de malware frequentemente adulteram os cabeçalhos ZIP para impedir que analistas de segurança realizem essa análise.
Estrutura do arquivo ZIP
O formato ZIP compacta e arquiva o conteúdo em um único arquivo, compreendendo dois tipos principais de cabeçalhos: Cabeçalhos de arquivo local e cabeçalhos de arquivo de diretório central. Os autores de malware podem alterar campos dentro desses cabeçalhos para impedir que analistas extraiam o conteúdo de um arquivo APK, ao mesmo tempo em que permite que o APK seja executado em um dispositivo Android.
Cabeçalhos de arquivo local
Cabeçalhos de arquivo local representam arquivos individuais em um arquivo ZIP. O arquivo começa com um cabeçalho de arquivo local, repetido para cada arquivo. Esses cabeçalhos começam com uma assinatura de 4 bytes (PK, para Phillip Katz, o criador do formato ZIP). O campo de compressão, localizado nos deslocamentos de bytes 0x08 e 0x09, indica o método de compressão, comumente DESINFLADO (0x0800). O cabeçalho também inclui campos para tamanhos e nomes de arquivos compactados e descompactados.
Cabeçalhos de arquivo do diretório central
Os cabeçalhos de arquivo do diretório central aparecem após o último cabeçalho de arquivo local em um diretório de arquivo ZIP. Eles resumem o conteúdo do arquivo e podem incluir um bloco de assinatura de APK opcional. Esses cabeçalhos também contêm campos para o método de compressão, tamanhos, e nomes de arquivos, localizado em diferentes deslocamentos de bytes do que nos cabeçalhos de arquivo local.
Analisando a técnica BadPack
Em amostras BadPack, os atacantes manipulam os cabeçalhos da estrutura ZIP, impedindo a extração do APK e a decodificação do AndroidManifest.xml, causando falha nas ferramentas de análise estática. Essa manipulação pode incluir valores incompatíveis entre os cabeçalhos de arquivo do diretório local e central. Por exemplo, especificando um método de compressão incorreto ou tamanhos inválidos.
Embora ferramentas de análise como Apktool e Jadx exijam adesão estrita às especificações do formato ZIP, O tempo de execução do Android em dispositivos é mais tolerante, inspecionando apenas o cabeçalho do diretório central. portanto, APKs do BadPack podem ser executados em dispositivos Android, mas falham em ferramentas de análise. Revertendo essas alterações e restaurando os valores originais do cabeçalho da estrutura ZIP, os analistas podem analisar com sucesso amostras do BadPack.
Conclusão
O número crescente de dispositivos Android representa um alvo crescente e um desafio significativo no combate a ataques de malware na plataforma. Arquivos APK usando BadPack refletem a crescente sofisticação de amostras de malware APK, apresentando desafios formidáveis para analistas de segurança.
Os usuários devem ter cuidado com Aplicativos Android que solicitam permissões incomuns não alinhado com a funcionalidade anunciada, como um aplicativo de lanterna solicitando acesso à agenda telefônica do dispositivo. Além disso, é aconselhável evitar instalar aplicativos de fontes de terceiros para manter a segurança do dispositivo.
Se você suspeita de um comprometimento ou tem um assunto urgente, entre em contato com a Unidade 42 Equipe de resposta a incidentes para assistência.