Ao analisar os ransomwares móveis entre abril de 2015 e abril de 2016, o Federico Maggi (Pesquisador senhor de ameaças da Trend Micro) notou em sua pesquisa um grande aumento no número de amostras de ransomware Android. Durante esse ano, o número de ransomwares Android aumentou em 140%. Em certas áreas, o ransomware móvel é responsável por até 22% dos malwares móveis em geral! Uma tendência notada durante este período é que isso reflete de forma muito parecida a trajetória dos ransomwares tradicionais: assim como outros tipos de ransomware, o ransomware móvel evolui e cresce constantemente.
Abaixo foram descritos alguns dos aspectos técnicos de variantes proeminentes de ransomwares móveis, juntamente com técnicas de detecção para ajudar a mitigar estas preocupações.
Quais aspectos tornam o ransomware móvel mais complicado? Bloqueios e Medos
Pelo que foi analisado, bloquear telas e assustar vítimas para que estas paguem para retomar o acesso aos seus dispositivos é totalmente eficaz para que um ransomware móvel seja bem-sucedido.
Bloqueio da tela
A família SMSLocker (detectada como ANDROIDOS_SLOCKER ou ANDROIDOS_SMSLOCKER) foi o início do que agora denominamos de ransomware Android. Originalmente esta família não usava criptografia, mas simplesmente escondia os arquivos dos usuários. A variante de 2015 usava criptografia com senhas por dispositivo, o que dificultava criar uma opção genérica para “desbloquear”. A mesma usa principalmente o SMS para se comunicar com o comando e controle (C&C); algumas variantes usam o Tor. A maior contribuição do SLocker para o ransomware móvel foi a exploração do API UI do Android para bloquear a tela do dispositivo. Foi a primeira vez que o Federico viu um malware assumiu o comando de um dispositivo através desta técnica, que pode ser resumida da forma abaixo com base no acionamento do API KeyEvent.Callback:
- Ao vincular as funções de retorno no onKeyDown() e/ou no onBackPressed() ,
- A função de retorno é acionada sempre que a vítima pressiona botões físicos,
- De acordo com a API, ao retornar o próximo retorno da cadeia como “verdadeiro” (o que significa, “não se propague, o evento já foi tratado”), o aplicativo impede de forma eficaz que a atividade atual passe para o plano de fundo.
Figura 1. Documentação da função onKeyDown () na lista de índice de pacotes do Android
Já o ransomware no Android geralmente usa essa técnica para tornar o dispositivo inutilizável para um usuário inexperiente. A reinicialização não necessariamente resolve o problema, especialmente se a família de malware utiliza técnicas de persistência. No entanto, um usuário experiente consegue desinstalar o aplicativo malicioso.
A atual técnica de bloqueio de última geração é baseada na exploração das APIs de administração do dispositivo. O atacante pode potencializá-las para mudar a senha sem ser notado por uma senha gerada aleatoriamente para bloquear o dispositivo. Apesar das APIs de administração do dispositivo terem um uso legítimo (isto é, permitir que as empresas gerenciem os dispositivos de seus funcionários) elas oferecem uma forma interessante de ataque.
Por exemplo, a amostra com o hash a6dedc5f639b2e1f7101d18c08afc66d (detectado como ANDROIDOS_FAKETOKEN.FCA) usa essa técnica. O primeiro lugar que deve ser inspecionado é o manifesto, que deve declarar (e pedir permissão para) o uso dos métodos desejados de API:
Figura 2 e 3. Partes do exemplo app manifesto onde o dispositivo-administração API permissão e política são solicitados.
O manifesto acima é código de exemplo do guia do desenvolvedor Android. Se analisarmos o código (desmontado e compilado) da amostra de malware já mencionada, encontramos o seguinte:
Figuras 4 e 5. Excertos de código do malware
Encontramos um acionamento da função de lockNow() para bloquear o dispositivo, e, por outro método de objeto, um acionamento da função removeActiveAdmin() , que é necessária para “remover” o dispositivo de administração do aplicativo (ou seja, o malware). Antes de acionar o método lockNow() , normalmente amostras de ransomware acionam a função de resetPassword() , o que forçosamente muda a senha. O LockDroid.E usa uma senha gerada aleatoriamente, que é essencialmente a informação secreta que o criminoso envia às vítimas quando recebe o pagamento.
A próxima versão do Android, o Android 7.0 Nougat, tem uma contramedida para isso. Ao analisar o código, fica claro que o Nougat verifica se existe um código de acesso já definido pelo usuário. Se for esse o caso, nenhum aplicativo para administrar o dispositivo — independentemente se for legítimo ou não — pode alterá-lo ou resetá-lo.
Figura 6. Código do Android 7.0 Nougat
As variantes e técnicas acima fornecem uma visão sobre como os desenvolvedores de malware conseguem bloquear dispositivos móveis através de ransomwares modernos. Então, como os atacantes fazem com que as suas vítimas paguem?
Como os Ransomwares Móveis Usam o Medo para Lucrar
Quando falamos sobre como o ransomware utiliza o medo, uma família interessante de se analisar é a Koler (detectada como ANDROIDOS_KOLER). Apesar de ser uma família bem normal do ponto de vista puramente técnico, ela usa uma extensa rede de distribuição com localização para cerca de 60 países. O “alerta” obrigatório de ransomware aparece para a vítima como se fosse realmente proveniente da polícia local. Este esforço na criação de campanhas bem localizadas, é claramente destinada a persuadir as vítimas a pagar o valor solicitado.
Figura 7. Avisos do Ransomware em várias línguas (Imagens fornecidas por Kafeine)
O bilhete de resgate é acompanhado de uma tela de pagamento obrigatório, semelhante ao visto aqui:
Figura 8. Aviso de ransomware em inglês (Imagem fornecida por Kafeine)
Este bilhete de resgate é acompanhado de uma tela de pagamento obrigatório, semelhante ao visto aqui:
Figura 9. Tela de pagamento Ransomware (Imagem fornecida por Kafeine)
Outra família que deve ser mencionada é a Svpeng (detectada como ANDROIDOS_SVPENG). Ele pode ter começado como um Trojan bancário, mas as 2.000 amostras analisadas agora exibem as características clássicas de um ransomware móvel moderno. Por exemplo, veja como funciona a rotina de criptografia:
Figura 10. Obtendo uma Cipher Class
Após a obtenção de uma classe de Cifra , a amostra percorre todos os arquivos encontrados no cartão SD e os criptografa. Este efeito é semelhante ao ransomware na plataforma Windows: os arquivos que foram armazenados no dispositivo ficam agora inacessíveis.
Figura 11. Pesquisando e criptografando arquivos no cartão SD
O ransomware móvel se adaptou as mesmas táticas que fizeram ransomware de computadores uma ameaça tão potente, rendendo milhões de dólares para as pessoas responsáveis.