Skip to content

MASTG-TEST-0045: Testando Root Detection

Bypass da Detecção de Root

Execute rastreamentos de execução com jdb, DDMS, strace e/ou módulos do kernel para descobrir o que o aplicativo está fazendo. Normalmente, você verá todos os tipos de interações suspeitas com o sistema operacional, como a abertura do binário su para leitura e a obtenção de uma lista de processos. Essas interações são sinais inequívocos de detecção de root. Identifique e desative os mecanismos de detecção de root, um por vez. Se você estiver realizando uma avaliação de resiliência em caixa preta, desativar os mecanismos de detecção de root é o seu primeiro passo.

Para contornar essas verificações, você pode usar várias técnicas, a maioria das quais foi apresentada no capítulo "Engenharia Reversa e Manipulação":

  • Renomear binários. Por exemplo, em alguns casos, simplesmente renomear o binário su é suficiente para derrotar a detecção de root (mas tome cuidado para não prejudicar seu ambiente!).
  • Desmontar /proc para evitar a leitura de listas de processos. Às vezes, a indisponibilidade de /proc é suficiente para contornar essas verificações.
  • Usar Frida ou Xposed para fazer hook de APIs nas camadas Java e nativa. Isso oculta arquivos e processos, esconde o conteúdo de arquivos e retorna todos os tipos de valores falsos que o aplicativo solicita.
  • Fazer hook de APIs de baixo nível usando módulos do kernel.
  • Aplicar patches no aplicativo para remover as verificações.

Avaliação de Eficácia

Verifique a presença de mecanismos de detecção de root, incluindo os seguintes critérios:

  • Múltiplos métodos de detecção estão espalhados pelo aplicativo (em oposição a concentrar tudo em um único método).
  • Os mecanismos de detecção de root operam em múltiplas camadas de API (APIs Java, funções de bibliotecas nativas, chamadas de sistema/assembler).
  • Os mecanismos são de alguma forma originais (não são copiados e colados do StackOverflow ou de outras fontes).

Desenvolva métodos de bypass para os mecanismos de detecção de root e responda às seguintes perguntas:

  • Os mecanismos podem ser facilmente contornados com ferramentas padrão, como Choicy?
  • É necessária análise estática/dinâmica para lidar com a detecção de root?
  • Você precisa escrever código personalizado?
  • Quanto tempo levou para contornar os mecanismos com sucesso?
  • Qual é a sua avaliação da dificuldade de contornar os mecanismos?

Se a detecção de root estiver ausente ou for muito fácil de contornar, faça sugestões alinhadas com os critérios de eficácia listados acima. Essas sugestões podem incluir mais mecanismos de detecção e uma melhor integração dos mecanismos existentes com outras defesas.