Todos os posts tagados root

Segurança na plataforma Android

web-android

Olá a todos. O WebSegura lançou-me o desafio de falar um pouco sobre segurança na plataforma Android.

Os comentários seguintes vou baseá-los na minha experiência profissional enquanto Penetration Tester na Integrity S.A, onde muito frequentemente faço análise de aplicações mobile, bem como enquanto power user, dado que é a minha plataforma de eleição nos meus dispositivos móveis.

Confio na plataforma, considero que tem implementado um conjunto de mecanismos que garantem um bom nível de segurança para o utilizador, dos quais destaco o Application Sandboxing.

Imaginemos o cenário em que uma aplicação maliciosa tem como objectivo extrair informação do utilizador para o exterior. Sem o mecanismo de sandboxing, essa aplicação poderia facilmente navegar pelo sistema de ficheiros de outras aplicações e extrair essa informação sem o utilizador ter qualquer noção. Passo a detalhar o mecanismo.

O sistema automaticamente associa um user ID (UID) a cada nova aplicação no momento da sua instalação e a execução da aplicação é feita num processo dedicado associado ao seu UID. É também atribuída uma directoria dedicada no sistema de ficheiros onde apenas a aplicação em causa tem permissões de leitura e escrita. Cada directoria é criada com o nome do package da aplicação em notação reverse domain name, por exemplo: com.android.email. Podemos encontrar cada uma dessas directorias no sistema de ficheiros em /data/data/.

data_data

Com estes dois mecanismos as aplicações estão isoladas tanto ao nível do processo (cada aplicação é executada no seu processo) bem como ao nível do sistema de ficheiros (cada aplicação possui uma directoria própria), fazendo com que desta maneira uma aplicação maliciosa não possa interagir com outras aplicações ou aceder aos seus dados directamente.

android

Mas nem tudo são coisas boas.

Existem claro excepções à regra, quando por exemplo, aplicações mal desenhadas expõem métodos sem as devidas restrições, que permitem outras aplicações acederem ás suas funcionalidades e dados, invalidando o modelo de sandboxing. Outro exemplo serão também aplicações maliciosas que exploram falhas no sistema e que lhes permite escalar privilégios para root e aí têm capacidade de fazer bypass ao modelo de sandboxing, dado que o utilizador root terá privilégios sobre todo o sistema de ficheiros.

Existe a questão da fragmentação das versões dos sistemas operativos, na qual os fabricantes têm a sua quota parte de responsabilidade, fazendo com que versões de sistema operativos mais recentes não cheguem a certos equipamentos, apesar de a nível de hardware serem capazes de suportar versões mais recentes, fazendo com que milhares de equipamentos estejam vulneráveis a certo tipo de falhas que foram corrigidas em versões superiores. O controlo / validação por parte da Store no momento em que novas apps são submetidas necessita de ser melhorado e mais eficaz, de modo a que o número de apps maliciosas reduza. Dado esse controlo por vezes não ser eficaz, o utilizador tem um papel muito importante.

Para além de todas as seguranças que o fabricante possa implementar, o utilizador deve utilizar outro mecanismo de segurança que se chama Bom Senso.
Antes da instalação de qualquer tipo de app, há que analisar o tipo de permissões que são necessárias para a mesma, o tipo de reviews, perceber quem é a entidade que está responsável pela app e até uma pesquisa rápida por vulnerabilidades que possam ser conhecidas naquela app e depois dessa análise usar o bom senso e decidir se a relação risco / benefício é aceitável.É preciso bastante cuidado também com as fontes de onde são instaladas estas aplicações. Instalação de apps provenientes de outras apps stores onde possa não haver controlo e validação do seu conteúdo bem como de apps de fontes desconhecidas é bastante perigoso.

Espero que tenha ajudado a compreender um pouco mais como funciona a plataforma. Nunca é de mais repetir que independentemente de todas os mecanismos de segurança que possam existir, há que haver uma análise cuidada da nossa parte antes de qualquer instalação.

Para todos os que gostariam de aprofundar conhecimento na plataforma Android e em especial no tema da segurança, aconselho a leitura dos livros Android Hacker’s Handbook e Android Security Internals. À data da escrita deste artigo estamos a dias da disponibilização de outro livro, o The Mobile Application Hacker’s Handbook, que pelo conteúdo e pelos colaboradores no livro será sem dúvida obrigatório.