• Nenhum resultado encontrado

Análise de permissões em aplicativos instalados no dispositivo

4.2 Primeiro cenário Emulador Nexus 5, Versão do Android 4.0.3

4.2.1 Análise de permissões em aplicativos instalados no dispositivo

Depois de determinar as variáveis da Figura 4.18, a primeira análise a ser feita é com relação às permissões dos aplicativos presentes no momento do dump da memória do dispositivo. Cada aplicação requer permissões no dispositivo, estas são adicionadas ao arquivo AndroidManifest.xml presente em qualquer aplicativo instalado. O gerenciamento destas permissões pode ser feito analisando-se o arquivo packages.xml, presente em todos os dispositivos Android [Sylve].

Estas permissões podem ser analisadas com o plugin linux_find_file do Volatility Framework. Este, usualmente, é utilizado em duas etapas. Na primeira, é necessário encontrar o inode do

arquivo. O inode é uma estrutura responsável por obter as informações básicas do arquivo, como permissões de acesso ao mesmo, dados referentes ao último acesso, alterações, tamanho do arquivo e também os ponteiros para o arquivo em si. Em resumo, pode-se considerar o inode como a identidade do arquivo, sendo esta uma identificação única. Para encontrar esta identificação, utiliza-se o plugin como está descrito na Figura 4.19.

Figura 4.19: Uso do plugin linux_find_file

A partir da Figura 4.19 infere-se que o inode do arquivo packages.xml é 0xf34c4d08. Esta identificação será importante para o próximo passo, em que será possível exportar o arquivo com as informações sobre os aplicativos. Para isso, é preciso que se faça uso do parâmetro -i/–inode para que os arquivos em cache na memória sejam exportados. O parâmetro -O também é utilizado e especifica onde os resultados do arquivo serão salvos. No caso da Figura 4.19, o final do comando utilizado, packages.xml, é o nome do arquivo em que serão salvas as informações coletadas do dispositivo.

O arquivo packages.xml, como explicado, tem o papel de armazenar as permissões dadas por cada aplicativo do dispositivo. Ao analisar o arquivo salvo, percebe-se que, primeiramente, são informados alguns dados gerais do dispositivo, como o número da plataforma (que determina a versão do Android instalada no mesmo) e também seu código de verificação. Após estas informações gerais, apresentam-se as permissões que estão presentes no dispositivo, tanto aquelas que são nativas do próprio Android, como as específicas de certos aplicativos instalados. A Figura 4.20 mostra um exemplo de como estas permissões gerais são informadas.

Figura 4.20: Identificação das permissões do dispositivo

Na Figura 4.20 identificam-se duas permissões do sistema Android, a CLEAR_APP_CACHE e CHANGE_WIFI_MULTICAST_STATE e, além destas, também identificam-se duas permissões especiais dos aplicativos Mozilla Firefox e Facebook. No final da linha de cada item de permissão, existe a opção protection, que é identificada por um número de 1 a 4, que apresentará o nível de proteção de uma permissão específica. Estes níveis foram apresentados no Capítulo 2.

pudessem ser considerados como tipos de malware. Isto pode ser feito vendo as permissões que cada um destes requisitou ao dispositivo. Para exemplificar esta situação de risco, foram utilizadas duas amostras de aplicativos que atuaram como malware [Parkour].

Foram escolhidos para análise os apps Angry Birds, que é um jogo, e o do Banco do Brasil, ambos modificados para agirem de forma maliciosa no dispositivo. Na Figura 4.21 pode-se observar que o ícone dos dois aplicativos passam despercebidos como se fossem originais. No caso do jogo, o original apresenta um símbolo no canto superior direito do ícone da empresa que o desenvolve e distribui, a Rovio. E no caso do Banco do Brasil, além do original ter uma leve diferença de cor, o nome original é a abreviatura do nome do banco, BB. Como é possível perceber na imagem a seguir, os apps maliciosos estão destacados em vermelho.

Figura 4.21: Comparação entre os ícones dos aplicativos

No arquivo packages.xml coletado com o plugin, pode-se identificar os tipos de permissões que foram concedidas aos aplicativos para, então, serem confirmados quais deles terão chances de apresentarem caráter malicioso. A Figura 4.22 mostra as permissões do aplicativo falso do Banco do Brasil. O primeiro item estranho nas informações do app é o nome que foi dado, appinventor.ai_funayamajogos.Bancodo-Brasil. Além disso, como visto no Capítulo 2, uma das permissões concedidas ao app foi a de ter acesso à função de modificar ou deletar conteúdos do cartão de memória (WRITE_EXTERNAL_ STORAGE ), que faz parte do grupo de permissões perigosas.

A Figura 4.23 mostra as permissões concedidas ao app falso do jogo Angry Birds. Diferente- mente do app do banco, este não apresenta um nome suspeito, pelo contrário, mostra, inclusive, a empresa responsável por fazer o jogo, a Rovio. Com relação às permissões, apresenta duas de caráter perigoso, a mesma do exemplo anterior e também a permissão que faz com que o app leia vários arquivos de log do sistema (READ_LOGS ), o que possibilita que se descubram informações gerais sobre o que o usuário faz com o dispositivo, o que, potencialmente, pode incluir informações pessoais ou privadas.

Figura 4.23: Identificação das permissões do aplicativo Angry Birds

Outro fator que pode ser observado em ambos os casos, é que nenhum dos dois apps possuía um tipo de permissão específica destinada somente para eles, como usualmente acontece nos aplicativos. A partir das informações encontradas acima, já é possível passar a investigar de maneira mais específica as atividades do app que está instalado no dispositivo. Para tanto, o investigador pode procurar pelo arquivo .apk do aplicativo, com o auxílio do mesmo plugin, linux_find_file, e então testar o aplicativo em alguma ferramenta de análise de malware. A Figura 4.24 mostra como obter o arquivo .apk do jogo analisado. Pode-se utilizar, por exemplo, o MobSF ou, de maneira mais rápida, o site VirusTotal que é um serviço gratuito que analisa arquivos e URLs suspeitas e facilita a rápida detecção de vírus, worms, trojans, e todos os tipos de malwares [VirusTotal].

Figura 4.24: Captura do arquivo .apk do aplicativo de jogo analisado