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¶
- 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.
- 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.
- 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¶
- Recupere os dados do dispositivo.
- 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?