Agradecemos a AndrewT, que postou um link no chat , tendo este artigo de pesquisa como referência em uma das respostas . Esta resposta é inteiramente baseada neste documento (maio de 2015) e destaca aspectos compreensíveis do usuário comum (possui muito material relacionado à segurança para os interessados)
Quais são os prós e os contras, além dos mencionados acima?
Se um dispositivo tiver as duas opções - root baseado em aplicativo e root por métodos pelos desenvolvedores, qual devo optar?
Resposta: É tudo sobre vulnerabilidade de malware. O uso de explorações de raiz é um enorme risco de segurança e supera qualquer outra vantagem
O que é raiz suave e raiz rígida?
Raiz suave: a raiz é obtida diretamente executando um software (ou seja, explorações de raiz) - instalando diretamente no dispositivo ou exigindo adb
shell através de uma conexão de PC
Raiz rígida: a raiz é obtida piscando o binário externo externamente através de um pacote de atualização ou ROM
Ameaça de malware - em geral
Embora legítimos, muitos métodos convenientes de raiz com um clique funcionam explorando vulnerabilidades no sistema Android. Se não for cuidadosamente controlado, essas explorações podem ser abusadas pelo autor do malware para obter privilégios de root não autorizados.
Conforme descrito no Android Malware Genome Project , 36,7% (de 1260) amostras de malware incorporaram pelo menos uma exploração raiz.
Essas explorações bem projetadas não são bem protegidas, é extremamente perigoso se elas caírem nas mãos erradas.
Quem são os principais provedores de raiz e, em geral, como isso funciona?
Quais são os tipos de expolits de raiz?
O artigo cobre 78 façanhas estudadas. Em geral, a ordem do impacto (do mais alto para o mais baixo ):
Explorações do kernel: devido à sua posição privilegiada, segmentar o Linux Kernel é natural para obter controle total sobre um dispositivo Android - por exemplo, TowelRoot
Explorações de bibliotecas: explorações direcionadas a bibliotecas usadas pelos processos do sistema Android ou bibliotecas externas usadas para dar suporte a aplicativos diferentes, por exemplo, exploração ZergRush, libsysutils usados pelo daemon do Volume Manager
Aplicativo e estrutura de aplicativos Explorações de raiz da camada de aplicativos: explora os aplicativos ou serviços do sistema, principalmente incluem lógicas vulneráveis introduzidas por setuid
utilitários, aplicativos ou serviços do sistema. O exemplo é um setuid
utilitário vulnerável que está presente apenas em dispositivos XoomFE que possui uma vulnerabilidade de injeção de comando
Kernel ou drivers específicos do fornecedor : os fornecedores personalizam o kernel (por exemplo, a filial personalizada do kernel do Linux da Qualcomm) ou fornecem drivers de dispositivo específicos do fornecedor para vários periféricos (por exemplo, câmera, som). Esse código é executado dentro do espaço do kernel e o comprometimento também pode levar ao controle total do dispositivo.
Em termos de número , as explorações são como na figura abaixo
Quão difícil é colocar as mãos no Exploit (fonte ou binário)?
Muito fácil. Facilmente disponível na pesquisa do Google, tornando fácil para os autores de malware aproveitar essas explorações. Pesquisando 73 explorações no Google, 68 delas estão disponíveis - 46 com código-fonte e 22 com binários
Como essas explorações funcionam?
Principais requisitos para que as explorações funcionem (ordenadas do mais difícil para o menos ) (a tag de malware possui muitas dessas instâncias)
Exigindo interações do usuário: (6 de 78 estudados)
- Solicitando ao usuário que baixe um aplicativo e interrompa manualmente a instalação
- Solicitando ao usuário que inicie a recuperação pelo menos uma vez.
- Solicitando ao usuário que coloque manualmente o dispositivo no modo de economia de bateria.
- Solicitando que o usuário abra um aplicativo específico do fornecedor e pressione um botão
Exigindo adb
shell através de uma conexão de PC: (17 de 78 estudados). Para algumas explorações, a adb
conexão do shell é necessária devido aos seguintes motivos mais comuns:
A exploração pode modificar com êxito uma configuração na local.prop
qual permite raiz adb
apenas para shell.
A exploração precisa gravar em um arquivo pertencente ao shell do grupo e gravável em grupo (não gravável em todo o mundo)
A exploração visa o processo adb daemon que requer que o processo de ataque seja executado com o usuário do shell. Por exemplo, a exploração Rage Against the Cage visa a vulnerabilidade do valor de retorno de verificação do adb daemon ausente nosetuid()
Reinicialização: (6 de 78 estudadas) Geralmente, muitas explorações de raiz exigem pelo menos uma reinicialização. Por exemplo, um ataque de link simbólico permitiria que um invasor exclua um arquivo de propriedade do sistema com permissão fraca, para configurar um link no mesmo local para um arquivo protegido. Após uma reinicialização, os scripts init correspondentes tentariam alterar a permissão do arquivo original para gravável em todo o mundo, o que, na realidade, altera a permissão do arquivo vinculado
Nenhuma ou permissão: (44 de 78 estudadas) As explorações nesta categoria não têm requisitos rígidos, no entanto, algumas podem exigir certas permissões do Android, como READ LOGS
para que o proprietário do processo seja colocado em determinado grupo de usuários.
Essas explorações podem ser detectadas pelo antivírus?
Como as explorações de raiz são altamente sensíveis e podem ser aproveitadas por vários malwares do Android, é esperado que o software antivírus na plataforma Android possa identificar a maioria deles, incluindo os implementados pelos provedores de raiz. No geral, o resultado mostra que os produtos de segurança de ponta na plataforma Android ainda não conseguem lidar com explorações de raiz de maneira eficaz
4 produtos antivírus Android representativos foram usados para testar o maior provedor (nome não revelado) com 167 explorações. Como as explorações originalmente baixadas do banco de dados dos fornecedores empacotaram o código de exploração real e empregaram um mecanismo de detecção de violação, o estudo criou três versões diferentes para cada exploração:
Exploração original buscada diretamente nos servidores de provedores, com empacotamento e detecção de violação.
Exploração descompactada, que exporá toda a lógica de exploração real a produtos antivírus.
Exploração empacotada novamente com a detecção de violação desativada.
Os binários de exploração projetados por grandes provedores de raiz são surpreendentemente "limpos", pois todos os principais softwares antivírus têm dificuldade em detectá-los, como mostra a tabela abaixo
Conclusão
Simples. Afaste-se dos métodos Soft Root, a menos que seja capaz de lidar com as consequências