Existem ferramentas para proteger um aplicativo de malware ainda mais do que as permissões concedidas no Android?

59

Suponha que eu queira executar algum programa que solicite muitas permissões. Por exemplo, grave no microfone ou leia IMEI do meu telefone. No entanto, não há explicação prática por que a gravação do número do microfone ou IMEI é necessária para este aplicativo em particular, exceto para mineração de dados.

Quero experimentar este aplicativo, mas restringir suas permissões. Por exemplo, se lê IMEI, deve obter IMEI aleatório (mas sempre o mesmo). Se tentar ler o microfone, deve ficar em silêncio.

Algumas outras permissões interessantes:

  1. Acesso de leitura / gravação da agenda telefônica - retorna zero contatos, finge que a gravação está correta, mas na verdade não faz nada.
  2. Enviar SMS - finja que o SMS foi enviado, mas não faça nada.
  3. Obtenha uma lista de redes Wi-Fi visíveis - retorne zero redes.

Obviamente, a ferramenta deve exigir um telefone enraizado. Existem tais ferramentas?

Denis Nikolaenko
fonte
11
Eu tenho feito esta pergunta no stackexchange, mas foi direcionado aqui, pois este site tem um público Android mais amplo.
Denis Nikolaenko
9
Eu nunca vi nada assim, mas não vejo por que isso não pôde ser feito. É uma boa ideia.
Matt
11
Você poderia usar o emulador no SDK do desenvolvedor para fazer muito disso?
ale
5
Basicamente sim. É possível usar o emulador como uma caixa de areia. Mas e se eu quiser executar um aplicativo no telefone físico, mas manter minha privacidade?
Denis Nikolaenko
Sei que essa pergunta é antiga, mas você pode elaborar qual contexto faz com que você queira testar algum aplicativo mal-intencionado em seu próprio dispositivo físico e responder a dados pessoais falsos? Para mim, a solução atual de cyanogenmod (rejeitar chamadas, não produzir dados falsos) parece suficiente.
Stéphane Gourichon

Respostas:

13

XPrivacyLua é um módulo para o framework Xposed que faz exatamente o que você precisa. É gratuito e de código aberto. Funciona em dispositivos enraizados. É o sucessor do XPrivacy.

Instale o Xposed a partir daqui: https://forum.xda-developers.com/showthread.php?t=3034811

Você pode fazer o download do módulo XPrivacyLua do repositório Xposed através do aplicativo Xposed Manager ou manualmente a partir daqui:

https://repo.xposed.info/module/eu.faircode.xlua

Fonte:

https://github.com/M66B/XPrivacyLua


Se você estiver executando o Android 5 ou inferior, poderá usar o módulo XPrivacy herdado.

Xaqron
fonte
Muito boa ferramenta. Exatamente o que eu estava desejando.
Denis Nikolaenko
19

A Whisper Systems lançou uma ROM personalizada com esse recurso exato: http://www.whispersys.com/permissions.html . Como o DarthNoodles menciona, isso deve ser feito no nível do sistema e não no aplicativo, e é assim que é implementado no WhisperCore. A versão atual não pode bloquear todas as permissões disponíveis no Android, mas elas estão trabalhando para oferecer suporte a mais delas.

Gary Peck
fonte
11
O código fonte está disponível apenas após a compra ...
Denis Nikolaenko
Link está morto. Eles mudaram de nome para OpenWhisper Systems e lançaram o Signal? ou esse é um grupo diferente?
YetAnotherRandomUser
@YetAnotherRandomUser Sim, é mais ou menos o mesmo grupo: signal.org/blog/welcome . A Whisper Systems foi adquirida pelo Twitter. Um pouco mais tarde, Moxie, um dos fundadores da Whisper Systems, deixou o Twitter e lançou alguns dos aplicativos antigos da Whisper Systems em um projeto de código aberto que se tornou Signal.
Gary Peck
16

O CyanogenMod 7.1 possui exatamente esse recurso , mas sem falsificar os dados, apenas falhando, se o aplicativo acessar a API. A proposta de falsificação do IMEI foi rejeitada. Fingir outros dados, como contatos, está atualmente em discussão.

Denis Nikolaenko
fonte
11
Steve Kondik explica por que foi rejeitado nesta postagem: plus.google.com/+SteveKondik/posts/iLrvqH8tbce Extract: " Rejeitei esses patches, pois eles criam um ambiente hostil para aplicativos, e não é nessa direção que desejo que o CM siga (...) desenvolvedores que não desejam que seus aplicativos sejam executados em ambientes imprevisíveis. (...) Eu acho que esses patches são apenas mais segurança e não resolvem realmente um problema. Por que você deseja executar aplicativos maliciosos? de qualquer forma?"
Stéphane Gourichon
9

Não é uma solução absoluta para o seu problema, mas existe um aplicativo no Android Market que atende às suas necessidades. Também requer necessariamente um melhor conhecimento sobre permissões e também um dispositivo enraizado.

Permissões negadas é um aplicativo que permite controlar efetivamente as permissões dos aplicativos instalados no telefone, via mercado ou outra fonte. Lembre-se de que negar a um aplicativo uma permissão solicitada pode resultar no fechamento forçado do aplicativo. (portanto, é necessário ter um melhor conhecimento sobre como usá-lo)

Nota: Este aplicativo requer acesso root. Este aplicativo não funcionará em todos os dispositivos.

Abhirup Manna
fonte
11
CyanogenMod ainda é melhor nesta área, o aplicativo é atualmente esquisito.
Denis Nikolaenko
5

Este não é um aplicativo Sandbox, mas talvez também seja interessante para você, se você ainda não ouviu falar.

Alguns cientistas iniciaram o projeto Taintdroid . Monitoramento de privacidade em tempo real para Android

NES
fonte
4

O MockDroid é outro firmware acadêmico com recursos de falsificação de dados.

Denis Nikolaenko
fonte
4

Existe uma excelente ferramenta PDroid . É um aplicativo e um conjunto de patches de ROM, que permitem solicitações de permissão de interceptação e falsificação. Aqui estão os patches PDroid Jellybean ROM Fork

Denis Nikolaenko
fonte
3

É uma solução lógica para um problema em potencial e uma longa irritação minha.

No entanto, lembre-se de que quaisquer soluções disponíveis para um aplicativo de segurança também estariam disponíveis para um aplicativo de malware. Se um aplicativo de segurança puder bloquear o acesso à rede, um aplicativo de malware também poderá bloqueá-lo, impedindo que um aplicativo de segurança atualize os arquivos de dados, por exemplo.

Ele precisa ser feito no nível do sistema, não como outro aplicativo.

Veja meu post aqui para meus pensamentos.

DarthNoodles
fonte
4
Tais ferramentas exigiriam acesso root ao telefone, se você o conceder, deve ter uma confiança máxima na ferramenta, como "Permissões negadas". Se você conceder acesso root para uma aplicação aleatória do mercado, você só tiro no próprio pé :)
Denis Nikolaenko
3

O LBE Privacy Guard parece ser uma solução muito promissora com recursos interativos para bloquear ou permitir a atividade do aplicativo em tempo real.

Denis Nikolaenko
fonte
3

Uma versão traduzida da versão chinesa do LBE está disponível nos desenvolvedores do XDA e funciona muito bem no Jelly Bean. Aparentemente, a versão chinesa ainda está ativamente desenvolvida.

http://forum.xda-developers.com/showthread.php?t=1422479

Cerberus
fonte
2

Há uma pesquisa em andamento sobre esse assunto. Uma prova de conceito ainda não lançada é implementada para algumas das APIs sensíveis à privacidade exatamente como eu propus. O gerenciador de privacidade é chamado TISSA , abreviação de Domar aplicativos para smartphones que roubam informações.

Denis Nikolaenko
fonte
2

Existem aplicativos bloqueador de privacidade (pago) e inspetor de privacidade (gratuito). O Privacy Blocker faz uma análise estática dos aplicativos para chamadas sensíveis à API e reescreve essas chamadas em stub que retornam dados falsos. Como resultado, um novo .apk com aplicativo reescrito é gerado e instalado. O Inspetor de privacidade é um aplicativo que informa apenas o uso de chamadas sensíveis à API.

Denis Nikolaenko
fonte
1

Marshmallow (Android 6) tem um novo modelo de permissões . Os aplicativos direcionados ao Marshmallow agora podem ser restritos a menos permissões em tempo de execução, e esses aplicativos devem falhar normalmente, em vez do modelo de permissões de tudo ou nada das versões anteriores do Android. No Marshmallow, esse é um recurso do sistema operacional padrão e não requer root ou aplicativos adicionais.

mattm
fonte
11
Oi mattm! Seria bom se você se aprofundar aqui. Por exemplo, o novo modelo de permissão não dá controle sobre as permissões da Internet. Se possível, use capturas de tela para uma maneira melhor de nos fazer entender do que você está falando.
Firelord
-1

Estou bastante certo de que a ferramenta que você procura ainda não existe. Mas sua ideia é ótima. Poucos pontos, porém;

ofc; o aplicativo pode ler e escrever livremente seu próprio diretório de aplicativos

fornecendo acesso de leitura falso: para cada leitura possível (e há muito o que o aplicativo pode tentar ler) deve ser gerada uma resposta padrão; muito trabalho, mas factível

Contudo; conceder acesso de gravação falso é muito mais difícil; e se ele usar cartão SD para armazenar grandes arquivos temporários; como bitmaps. No telefone não rooteado; o único local em que o aplicativo pode escrever é o cartão SD; e usando o provedor de conteúdo (para itens como contatos e calendário). E o aplicativo desiger não espera falhar na gravação de dados; para que o aplicativo possa falhar.

O bom é que o pior que pode acontecer é que o aplicativo possa falhar.

bbaja42
fonte
Por que votar? Em dezembro de 2010, essas ferramentas realmente não existiam.
Denis Nikolaenko