UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA
GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Detecção vs Evasão: Uma avaliação do cenário de detecção do
root no Android
Aluno: Vinicius Μοraes ([email protected])
Orientadora: Jéssyka Flavyanne Ferreira Vilela ([email protected]) Área: Segurança da Informação
RECIFE 2020
Sumário
1. Resumo 3 2. Introdução 4 3. Objetivos 6 4. Cronograma 7 5. Possíveis Avaliadores 8 6. Referências 9 21. Resumo
O Android é hoje o sistema operacional mais utilizado do mundo. Esse grande número de usuários faz dele um alvo muito visado por criminosos digitais, gerando cada vez mais desafios para os desenvolvedores de aplicativos móveis manterem a segurança de seus usuários.
Um dos desafios aparece quando aplicações são executadas em aparelhos rooteados, isto é, que possuam acesso root. Root é o nome do usuário que possui as maiores permissões no Android, contudo se mal utilizado ele permite com que todo o aparelho seja comprometido por atacantes. Além disso, existem ferramentas para auxiliar hackers na exploração de aplicativos, que requerem dispositivos rooteados. Assim, realizar a detecção do acesso root se tornou uma medida de segurança adotada por alguns aplicativos.
Dessa forma, o foco deste trabalho é avaliar a eficácia de técnicas para detecção de root contra métodos de evasão e propor possíveis melhorias para o lado das detecções. Então, para atingir esse objetivo as seguintes medidas foram realizadas: uma investigação da literatura sobre o assunto, um questionário com usuários e desenvolvedores do Android, uma análise da eficácia dos aplicativos que tem o objetivo de detectar o root, e também dos aplicativos mais baixados na Google Play, e por fim, a sugestão de abordagens que atualmente podem ser utilizadas para melhorar a detecção do root.
Espera-se que este projeto ajude na compreensão da briga entre detecção e evasão, e permita com que aplicações cada vez mais seguras possam ser desenvolvidas.
2. Introdução
Estima-se que hoje existam mais de 3.5 bilhões de pessoas usando smartphones ao redor do mundo [1], desse total, aproximadamente 74% [2] utiliza o Android como seu sistema operacional. Entretanto, esse alto número de usuários torna o sistema não só visado na hora de desenvolver novos aplicativos e jogos, como também para a criação de novos softwares maliciosos, do inglês malware (malicious software)[3].
Existem malwares com os mais diversos objetivos. Algumas das metas são: roubar informações do usuário, fornecer acesso remoto a um hacker, permanecer no dispositivo tentando infectar outros usuários da mesma rede, minerar criptomoedas no aparelho, exibir anúncios indesejados que geram lucro ao atacante [9].
No sistema operacional Android, um malware pode se disfarçar de um aplicativo inofensivo, como um jogo ou um explorador de arquivos, e em segundo plano executar ações maliciosas. Como o acesso root permite que um programa obtenha privilégios muito elevados no sistema, um grande risco é o de vazamento de dados, pois se torna possível realizar a leitura de arquivos privados de outros aplicativos, além do acesso a dados da memória e de rede deles. Dessa forma, um malware consegue obter tokens de sessão de diversos aplicativos e realizar operações indesejadas neles, como roubar mensagens privadas de redes sociais ou ainda realizar operações financeiras sem a autorização do usuário [5].
Dentre os motivos que levam os usuários a desejarem o acesso root estão: utilizar um determinado aplicativo, personalizar mais o sistema operacional ou ainda trocar a versão do Android do fabricante por um mais popular da comunidade que algumas vezes tem mais suportes e atualizações. É calculado que na Indonésia o número de dispositivos rooteados chega a ser de 12%, esse número cresce quando olhamos para a Moldávia com 15% ou ainda para a Venezuela com 26% [4].
Por conta das ameaças adicionais que aparelhos rooteados estão expostos, alguns aplicativos como por exemplo o Pokémon GO [10], desenvolveram sistemas de detecção de root, que alertam ao usuário sobre o risco de serem executados nesses sistemas e em muitos casos bloqueiam a utilização do aplicativo. Essa detecção é eficaz para diversos usuários que não tem noção dos perigos de estarem com o acesso root disponível, porém existem outros usuários que aceitam o risco e querem que seus dispositivos rooteados possam continuar executando tudo normalmente.
Nesse contexto, surgiram métodos para realizar a evasão, isto é, burlar, essas detecções, que variam de acordo com o modo como elas foram implementadas, desde técnicas simples como renomear o binário su [6], que é um programa instalado no Android quando se obtém o root, para ser executado por um
aplicativo que deseja ter os privilégios de root, até outras mais avançadas como fazer o hooking [11], que é interceptar e modificar os dados de um sistema, das funções de detecção [7] [8], assim gerando uma disputa entre os dois lados (detecção vs evasão).
3. Objetivos
Este trabalho tem como objetivo realizar uma investigação do estado da arte e da prática das técnicas para detecção de root, bem como avaliar a eficácia delas em relação às técnicas de evasão. Para alcançar esse objetivo, os seguintes objetivos específicos foram definidos:
1. Revisar a literatura em busca de técnicas de evasão e detecção de
root existentes;
2. Conduzir questionários com desenvolvedores profissionais para identificar técnicas usadas na prática;
3. Conduzir questionários com usuários para identificar seus hábitos e ferramentas utilizadas para obter e esconder o root;
4. Analisar a eficácia das técnicas de detecção utilizadas atualmente nos aplicativos contra as formas de evasão encontradas;
4. Cronograma
Maio Junho Julho Agosto Setembro Outubro Revisão da literatura e busca de técnicas de evasão e detecção Criação e divulgação de questionário s Análise das respostas dos questionário s Análise de eficácia dos aplicativos de detecção Análise de eficácia dos aplicativos mais baixados Escrita da Monografia Preparação da Defesa Ajustes na monografia
5. Possíveis Avaliadores
Leopoldo Motta Teixeira ([email protected]) Vinicius Cardoso Garcia ([email protected])
6. Referências
[1] Statista. Smartphone users worldwide 2020. Disponível em < https://www.statista.com/statistics/330695/number-of-smartphone-users-worldwide/ >. Acessado em 29 de março de 2020.
[2] Statista. Mobile OS market share 2019. Disponível em < https://www.statista.com/statistics/272698/global-market-share-held-by-mobile-opera ting-systems-since-2009/ >. Acessado em 29 de março de 2020.
[3] Statista. Global Android malware volume 2018. Disponível em < https://www.statista.com/statistics/680705/global-android-malware-volume/ >. Acessado em 29 de março de 2020.
[4] Kaspersky Lab. Rooting your Android: Advantages, disadvantages, and
snags. Disponível em < https://www.kaspersky.com/blog/android-root-faq/17135/ >. Acessado em 29 de março de 2020.
[5] CASATI, Luca; VISCONTI, Andrea. The Dangers of Rooting: Data Leakage
Detection in Android Applications. Mobile Information Systems, 2018.
[6] EVANS, Nathan; BENAMEUR, Azzedine; SHEN, Yun.All your Root Checks are
Belong to Us: The Sad State of Root Detection . Proceedings of the 13th ACM International Symposium on Mobility Management and Wireless Access, p. 81-88. 2015.
[7] acpm. Inspeckage. Disponível em < https://github.com/ac-pm/Inspeckage >. Acessado em 29 de março de 2020.
[8] SensePost. objection. Disponível em < https://github.com/sensepost/objection >. Acessado em 29 de março de 2020.
[9] Kaspersky Lab. Classificações de malware. Disponível em < https://www.kaspersky.com.br/resource-center/threats/malware-classifications >. Acessado em 2 de abril de 2020.
[10] WRIGHT, Arol. Pokémon GO’s aggressive root checking now looks for the
existence of a TWRP and Titanium Backup folder. Disponível em <
https://www.xda-developers.com/pokemon-go-aggressive-root-checking-twrp-folder/ >. Acessado em 2 de abril de 2020.
[11] Wikipédia. Hooking. Disponível em < https://en.wikipedia.org/wiki/Hooking >. Acessado em 2 de abril de 2020.