Skip to content

MASTG-TEST-0047: Verificação de Integridade de Arquivos

Bypass de Verificações de Integridade de Arquivos

Bypass das verificações de integridade da fonte do aplicativo

  1. Faça um patch na funcionalidade anti-debug. Desative o comportamento indesejado simplesmente sobrescrevendo o bytecode ou código nativo associado com instruções NOP.
  2. Use Frida ou Xposed para interceptar APIs do sistema de arquivos nas camadas Java e nativa. Retorne um handle para o arquivo original em vez do arquivo modificado.
  3. Use um módulo do kernel para interceptar chamadas de sistema relacionadas a arquivos. Quando o processo tentar abrir o arquivo modificado, retorne um descritor de arquivo para a versão não modificada do arquivo.

Consulte o capítulo "Method Hooking" para exemplos de patching, injeção de código e módulos do kernel.

Bypass das verificações de integridade do armazenamento

  1. Recupere os dados do dispositivo.
  2. Alterar os dados recuperados e depois colocá-los de volta no armazenamento.

Avaliação de Eficácia

Verificações de integridade da fonte do aplicativo:

Execute o aplicativo em estado não modificado e certifique-se de que tudo funciona. Aplique patches simples no classes.dex e em quaisquer bibliotecas .so no pacote do aplicativo. Reempacote e reassine o aplicativo conforme descrito no capítulo "Basic Security Testing", então execute o aplicativo. O aplicativo deve detectar a modificação e responder de alguma forma. No mínimo, o aplicativo deve alertar o usuário e/ou terminar. Trabalhe no bypass das defesas e responda às seguintes perguntas:

  • Os mecanismos podem ser contornados trivialmente (ex.: interceptando uma única função de API)?
  • Qual é a dificuldade de identificar o código anti-debug através de análise estática e dinâmica?
  • Você precisou escrever código personalizado para desativar as defesas? Quanto tempo você precisou?
  • Qual é sua avaliação da dificuldade de contornar os mecanismos?

Verificações de integridade do armazenamento:

Uma abordagem similar à das verificações de integridade da fonte do aplicativo se aplica. Responda às seguintes perguntas:

  • Os mecanismos podem ser contornados trivialmente (ex.: alterando o conteúdo de um arquivo ou par chave-valor)?
  • Qual é a dificuldade de obter a chave HMAC ou a chave privada assimétrica?
  • Você precisou escrever código personalizado para desativar as defesas? Quanto tempo você precisou?
  • Qual é sua avaliação da dificuldade de contornar os mecanismos?