Após revelarem que malwares usavam o atributo “target_sdk” para contornar recursos de segurança da versão Marshmallow (6.0) do Android, a Symantec está apresentando agora detalhes técnicos sobre outros dois métodos utilizados para contornar características defensivas do Android.
Como antes, os responsáveis são os trojans Android.Bankosy e Android.Cepsohord, cujos autores estão utilizando alguns projetos do GitHub, modificando-os para obter uma lista de processos ativos (running tasks).
Descobrir a lista de tarefas ativas é fundamental para os criadores de malwares, uma vez que permite-lhes verificar aplicações atuais do usuário e realizar uma sobreposição com uma imagem falsa, de um aplicativo usado recentemente, para recolher credenciais de login, senhas, etc.
Em versões anteriores ao Lollipop (5.0), o hacking era realizado utilizando a API getRunningTasks(), que foi removido no Lollipop e versões posteriores.
Método 1: Utilizando a pasta “/proc/”
O primeiro método descoberto pela Symantec foi retirado do projeto AndroidProcesses desenvolvido por Jared Rummler. Sua aplicação não possui nada que venha a prejudicar seu Android, mas parte de seu código e está sendo usado para obter uma lista dos aplicativos atuais do dispositivo.
O projeto de Rummler realiza a leitura dos arquivos da pasta “/proc/” para listar todos os processos em execução. O malware lê a saída deste arquivo para encontrar os aplicativos que estão executando em primeiro plano do telefone.
A
Symantec informou que esta técnica funciona nas versões Lollipop e Marshmallow, mas não no novo sistema Android N.
Método 2: Utilizando a API UsageStatsManager
O segundo método utiliza o projeto anterior, mas também utiliza o projeto desenvolvido pela GeeksOnSecurity, chamado
Android Malware Example, que é um exemplo do funcionamento de um malware em um Android.
O método usa a API UsageStatsManager para obter uma lista de processos em execução. Essa API fornece dados detalhados do histórico de utilização do dispositivo, incluindo os últimos aplicativos usados.
Os malwares Android.Bankosy e Android.Cepsohord utilizam essa API para consultar os aplicativos usados,?? observando os dois últimos segundos e com base em como eles determinam o aplicativo em execução.
Felizmente, a API UsageStatsManager requer que os usuários deem privilégios especiais para que a API possa funcionar corretamente.
Para entender melhor, o malware utiliza uma sobreposição falsa para solicitar a permissão, disfarçando nome e o ícone do seu aplicativo como Chrome, como na imagem abaixo. Esta sobreposição é criada usando o código encontrado no malware de exemplo da GeeksOnSecurity.
Mas esta técnica não funciona em determinados OEMs do Android, como os da Samsung.