Quando, em março de 2019, o Google restringiu o uso de permissões de SMS e registo de chamadas em aplicativos Android, um dos efeitos positivos foi que os aplicativos que roubam dados de acesso perderam a opção de usar estas permissões para enganar os mecanismos de autenticação de dois fatores baseados em SMS.

No entanto, descobrimos recentemente apps maliciosos capazes de aceder a senhas de uso único (OTP, por sua sigla em inglês) em mensagens SMS de autenticação de dois fatores, sem utilizar as permissões de SMS, enganando as recentes restrições do Google. Como se não fosse suficiente, esta técnica também funciona para obter senhas de uso único de alguns sistemas de autenticação de dois fatores baseados em e-mail.

Na expetativa de roubar as credenciais de início de sessão do serviço, os aplicativos se fazem passar pela plataforma de exchange de criptomoedas turca BtcTurk. Em vez de intercetar SMS para enganar a proteção de autenticação de dois fatores nas contas e transações dos usuários, estes aplicativos maliciosos usam a senha de uso único das notificações que aparecem na tela do dispositivo comprometido. Além de ler as notificações de autenticação de dois fatores, os aplicativos podem também descartá-las para evitar que as vítimas percebam a ocorrência de transações fraudulentas.

O malware, que em todas as suas formas é detetado pelos produtos da ESET como Android/FakeApp.KP, é o primeiro que se conhece com a capacidade de enganar as novas restrições de permissões de SMS.

Os aplicativos maliciosos

O primeiro dos apps maliciosos que analisamos foi enviada para o Google Play em 7 de junho de 2019 como “BTCTurk Pro Beta” e com o nome do desenvolvedor “BTCTurk Pro Beta”. Foi instalado por mais de 50 usuários antes da ESET informar as equipes de segurança do Google. O BtcTurk é uma exchange de criptomoedas turca, o link para o app móvel oficial está no seu site web oficial e apenas está disponível para usuários na Turquia.

O segundo app ficou disponível em 11 de junho de 2019 como “BtcTurk Pro Beta” com o nome do desenvolvedor “BtSoft”. Embora os dois aplicativos tenham uma aparência muito semelhante, parecem ser trabalho de diferentes atacantes. Informamos sobre este aplicativo em 12 de junho de 2019, quando havia sido instalado por menos de 50 usuários.

Depois de ter sido eliminado este segundo app, os mesmos atacantes carregaram outro aplicativo com idêntica funcionalidade, desta vez chamada de “BTCTURK PRO” e usando o mesmo nome de desenvolvedor, ícone e capturas de tela. Informamos sobre este aplicativo em 13 de junho de 2019.

A figura 1 mostra os dois primeiros apps maliciosos tal como apareceram na Google Play.

Figura 1. O app falso BtcTurk na Google Play.

A nova técnica para enganar a autenticação de dois fatores

Após a instalação, os dois aplicativos descritos na secção anterior seguem um procedimento similar. Nesta secção do post, vamos descrever a nova técnica para enganar a autenticação de dois fatores usada pela primeira aplicativo “BTCTurk Pro Beta”, como exemplo.

Uma vez iniciado, o aplicativo solicita uma permissão denominada de “Notification access”, como se pode ver na Figura 2. Esta permissão permite ao aplicativo ler as notificações mostradas por outros apps instalados no dispositivo, descartar essas notificações ou clicar nos botões disponíveis.

Figura 2. O app falso solicitando “acceso às notificações”.

A permissão de Acesso às Notificações foi introduzida na versão 4.3 do Android (Jelly Bean), o que significa que quase todos os dispositivos Android ativos são suscetíveis a esta nova técnica. Ambos aplicativos BtcTurk falsos requerem a versão Android 5.0 (KitKat) ou superior para funcionar, pelo que poderiam afetar cerca de 90% dos dispositivos Android.

Depois do usuário conceder essa permissão, o aplicativo mostra um formulário de início de sessão falso que solicita credenciais para BtcTurk, como se pode ver na Figura 3.

Figura 3. O formulário de início de sessão falso do app malicioso.

Depois de introduzir as credenciais, é mostrada uma falsa mensagem de erro em turco, como se vê na Figura 4. A tradução dessa mensagem é: “Upss! Devido a uma alteração realizada no sistema de verificação de SMS é temporariamente impossível de aceder ao nosso app móvel. Você será notificado através do app logo que seja possível. Obrigado pela compreensão”.

Em segundo plano, as credenciais introduzidas são enviadas para o servidor do atacante.

Figura 4. A mensagem de erro falsa apresentada pelo app malicioso.

Graças à permissão de acesso às notificações, o aplicativo malicioso é capaz de ler as notificações provenientes de outros aplicativos, onde se incluem os apps de SMS e e-mail. O app conta com filtros para se dirigir apenas a notificações de aplicativos cujos nomes contém as palavras-chave “gm, yandex, mail, k9, Outlook, sms, mensagem”, como se pode ver na Figura 5.

Figura 5. Nomes e tipos de aplicativos.

O conteúdo mostrado por todas as notificações dos apps marcados como alvo é enviado para o servidor do atacante. Os atacantes podem acessar ao conteúdo, independentemente da configuração que usada pela vítima para mostrar notificações na tela bloqueada. Os atacantes por trás deste app também podem descartar notificações recebidas e configurar o modo do dispositivo em silencioso, evitando que as vítimas percebam transações fraudulentas.

Quando à eficácia para escapar da autenticação de dois fatores, a técnica tem as suas limitações: os atacantes podem apenas acessar ao texto que se ajusta ao campo de texto da notificação e, como tal, não é garantido que inclua a senha de uso único. Os nomes dos apps direcionados nos mostram que tanto a autenticação de dois fatores baseada em SMS ou em e-mail é de interesse para os operadores por trás deste malware. Na autenticação de dois fatores através de SMS, as mensagens são geralmente curtas e é provável que as senhas de uso único encaixem na mensagem de notificação. No entanto, no caso da autenticação de dois fatores através do e-mail, a dimensão e o formato das mensagens são muito mais variados, o que poderia afetar o acesso do atacante à senha de uso único.

Uma técnica que evolui rapidamente

Anteriormente, analisamos um app malicioso que simulava ser a exchange de criptomoedas turca Koineks (agradecemos ao @DjoNn35 por nos avisar acerca deste aplicativo). É interessante que o app Koinesk falso usa a mesma técnica maliciosa para enganar a autenticação de dois fatores baseada em e-mail e SMS, mas não tem a capacidade de descartar e silenciar as notificações.

Segundo a nossa análise, foi criado pelo mesmo atacante que o app “BTCTurk Pro Beta” analisado neste mesmo post, o que demonstra que os atacantes estão trabalhando nesta técnica para conseguir os “melhores resultados” no seu objetivo de roubar mensagens SMS.

Figura 6. Informação sobre o app Koineks falso na Google Play.

Como estar protegido

Se você desconfia que pode ter instalado e usado um destes aplicativos maliciosos, recomendamos que o desinstale imediatamente. Verifique as suas contas para detetar atividades suspeitas e altere as suas senhas.

No mês passado, alertamos sobre o crescente preço do bitcoin e como isso levou a uma nova onda de malware de criptomoeda na Google Play. Esta última descoberta mostra que os criminosos estão procurando ativamente métodos para enganar as medidas de segurança e assim aumentar a possibilidade de atingir os seus objetivos.

Para se manter a salvo desta nova técnica, assim como do malware financeiro para Android em geral, recomendamos:

  • Confiar apenas em aplicativos relacionados com a criptomoeda e outras aplicativos financeiros apenas quando vinculados ao site oficial do serviço;
  • Introduza as suas informações confidenciais em formulários on-line apenas se estiver seguro da legitimidade do mesmo;
  • Mantenha o seu dispositivo atualizado;
  • Use uma solução de segurança móvel confiável para bloquear e eliminar ameaças. Os sistemas da ESET detetam e bloqueiam estes aplicativos maliciosos como Android/ FakeApp.KP;
  • Sempre que possível, use geradores de senhas de uso único (OTP) baseados em software ou hardware em vez de SMS ou e-mail;
  • Use apenas aplicativos que considere confiáveis e, mesmo assim, apenas permita o acesso às notificações aquelas que tenham uma razão legítima para solicitação.

Indicadores de Comprometimento (IoCs)

Package name Hash ESET detection name
btcturk.pro.beta 8C93CF8859E3ED350B7C8722E4A8F9A3 Android/FakeApp.KP
com.app.btsoft.app 843368F274898B9EF9CD3E952EEB16C4 Android/FakeApp.KP
com.app.elipticsoft.app 336CE9CDF788228A71A3757558FAA012 Android/FakeApp.KP
com.koinks.mobilpro 4C0B9A665A5A1F5DCCB67CC7EC18DA54 Android/FakeApp.KP

Técnicas de MITRE ATT&CK

Tactic ID Name Description
Initial Access T1475 Deliver Malicious App via Authorized App Store The malware impersonates legitimate services on Google Play.
Credential Access T1411 User Interface Spoofing The malware displays phishing activity and requests users to log in.