A pedra no meio do caminho
Em 21 de setembro, o desenvolvedor indiano
Ravi Borgaonkar realizou uma palestra intitulada “O abuso de códigos
USSD em redes móveis” durante a conferência de segurança Ekoparty, em
Buenos Aires. Para demonstrar os graves problemas de segurança
associados a esta questão, ele apagou um Samsung Galaxy S2 visitando um
site malicioso através do dispositivo.
Como isso aconteceu?
Borgaonkar demonstrou o código USSD *2767*3855# no Galaxy S2, que redefine o telefone para as configurações de fábrica, um processo que é realizado de maneira diferente em diferentes modelos Android. Em alguns, como o HTC One X, o dispositivo pergunta se deseja ou não excluir todos os seus aplicativos e restaurar o seu telefone para as configurações de fábrica, ou se você quer fazer isso e apagar todas as suas fotos, músicas e arquivos pessoais guardados para o cartão SD. No Galaxy S3, o processo (apenas) elimina todos os seus aplicativos, dados de aplicativos do sistema e configurações.O que é um código USSD?
Códigos USSD fazem com que o telefone execute ações. Eles são usados principalmente pelas operadoras de rede para fornecer aos clientes acesso fácil a serviços pré-configurados: encaminhamento de chamada, consulta de saldos, multifunções SIM - tudo controlado facilmente pelo usuário através do telefone (uma combinação de números e letras, por exemplo, *111#) e basta pressionar o botão "Ligar" no meio do processo.Estes atalhos também são usados por muitos fabricantes, afim de controlar as funções do sistema. Mas eles são destinados principalmente para uso interno e, por isso, raramente são comunicadas para o exterior.
Onde está a violação de segurança?
Para executar um código USSD, você deve inseri-lo no teclado do seu telefone e pressionar “Ligar”. O que Borgaonkar descobriu é que este código executa automaticamente em segundo plano, sem que o usuário note que a ação está acontecendo.Para isso, ele usou um recurso que pertence ao repertório padrão dos smartphones: o link do navegador com o aplicativo de telefone (o discador). Isto é: Se eu digitar no navegador um número de telefone irá abrir diretamente o aplicativo de telefone com o número e só precisamos clicar em “Ligar” para que execute o processo. Para isso, é preciso um código HTML:
<a href="tel:xyz">Clique aqui para ligar diretamente</a>
Agora podemos substituir perfeitamente o número do telefone "xyz" pelo código USSD como *2767*3855#, facilmente. Usando nosso exemplo ficaria assim:
<a href="tel:*2767*3855#">Clique aqui para ligar diretamente</a>
O comando acima assume, no entanto, que o usuário clicou em um link, de modo que o aplicativo de telefone dá início. Borgaonkar incorporou este comando em um frame, que se parece com a estrutura abaixo:
<frameset><frame src=“tel:*2767*3855#" /></frameset>
Se esta estrutura for colocada em um site na Internet, qualquer telefone que acesse esta página ligará imediatamente para este número, sem mais investigação de segurança. Porém, este não é o problema, porque quando vou a um site do tipo malicioso com meu smartphone, o aplicativo de telefone abre, mas tenho explicitamente que toque em "Ligar" para que algo aconteça e execute uma ação.
A falha de segurança é que alguns smartphones não requerem certas interações com o usuário. Em vez disso, a chamada é imediatamente executada no fundo. E se esta chamada de fundo esconde um atalho correspondente para um código USSD, aí é que mora o problema. Na demonstração de Borgaonkar isso significa que o Galaxy S2 pode visitar um site malicioso e começar imediatamente o reset de fábrica sem o usuário sabe o que está acontecendo.
Portanto, não é um problema de segurança exclusivo da Samsung, mas sim do Android?
Sim. Ao executar o código USSD em segundo plano, através de um site malicioso, este parece ser um problema entre fornecedores. A Samsung só teve a infelicidade de ter um de seus dispositivos usados para fins de demonstração. Até o momento, este problema já foi demonstrado nos aparelhos da Motorola e da HTC também.Existem outros pontos de entrada?
Sim, todos os aplicativos que tem acesso ao seu navegador podem executar isso automaticamente via website. Estes incluem os QR codes, NFC tags e mensagens WAP Push.
Dois Galaxy S3 depois de visitar o
local de teste http://www.isk.kth.se/ ~ rbbo / testussd.html. O modelo
da esquerda roda o mais recente firmware da Samsung (Android 4.1); o da
direita executa com o CM9 (Android 4.0.4) / (c) AndroidPIT
O telefones são afetados?
Até o agora, notamos que o fabricante e a versão do Android são importantes para decidir se o seu dispositivo está ou não está em risco. Dispositivos que funcionar com Android 4.1 Jelly Bean parecem não ser afetados. No entanto, dispositivos que funcionam com Android 4.0.1 e 4.0.3 apresentaram risco. Se o código USSD é acessado via Chrome ou pelo browser nativo do Android estes dispositivos correm sérios riscos de serem afetados.Os seguintes modelos foram afetados até o momento:
- Samsung Galaxy S3 running Android 4.0.4
- Samsung Galaxy S2
- Samsung Galaxy Ace, Beam and S Advance
- HTC One W
- HTC One X
- HTC Sensation (XE) rodando Android 4.0.3
- HTC Desire HD
- HTC Legend
- HTC Desire Z
- Motorola Milestone
- Motorola Atrix 4G
- Motorola Razr rodando Android 2.3.6
- Huawei Ideos
Para saber se o seu celular pode ser afetado (sem colocar em perigo o seu aparelho), basta visitar o site identificado por Borgaonkar: http://www.isk.kth.se/ ~ rbbo / testussd.html. Se o seu telefone exibir imediatamente o número de IMEI, então o modelo executa comandos USSD no fundo sem avisá-lo. Pois é!
Como posso proteger meu telefone?
Se você instalou um discador alternativo, você deveria sempre receber uma mensagem perguntando sobre qual aplicativo de telefone você quer usar para executar a chamada. Você deve ter cuidado para não definir qualquer discador como um padrão, assim, a caixa de diálogo sempre vai aparecer.Além disso, o desenvolvedor e membro da comunidade do AndroidPIT, Joerg Voss também criou uma pequena ferramenta que emula como um discador e faz com que o código pare de trabalhar automaticamente, assim você pode se proteger contra estes ataques sem ter que baixar um discador completo. Você pode o NoTelURL instalado diretamente na loja Google Play.
Em todos os casos, antes de cada chamada uma caixa de diálogo alternativa aparece. Por enquanto, não existem soluções mais interessantes. Os fabricantes devem fornecer atualizações. Por isso, a Samsung já anunciou um patch para estes modelos até o momento afetados.
Nenhum comentário:
Postar um comentário