MASTG-TEST-0048: Teste de Detecção de Ferramentas de Reverse Engineering
Avaliação de Eficácia¶
Inicie o aplicativo com várias ferramentas e frameworks de engenharia reversa instalados em seu dispositivo de teste. Inclua pelo menos os seguintes: Frida, Xposed.
O aplicativo deve responder de alguma forma à presença dessas ferramentas. Por exemplo:
- Alertando o usuário e solicitando aceitação de responsabilidade.
- Impedindo a execução por meio de encerramento gracioso.
- Apagando com segurança quaisquer dados sensíveis armazenados no dispositivo.
- Reportando a um servidor backend, por exemplo, para detecção de fraudes.
Em seguida, trabalhe na contornação da detecção das ferramentas de engenharia reversa e responda às seguintes perguntas:
- Os mecanismos podem ser contornados trivialmente (por exemplo, por meio do hooking de uma única função de API)?
- Qual é o nível de dificuldade para identificar o código de anti-engenharia reversa por meio de análise estática e dinâmica?
- Foi necessário escrever código personalizado para desativar as defesas? Quanto tempo foi necessário?
- Qual é a sua avaliação sobre a dificuldade de contornar os mecanismos?
As seguintes etapas devem orientá-lo ao contornar a detecção de ferramentas de engenharia reversa:
- Aplique patch na funcionalidade de anti-engenharia reversa. Desative o comportamento indesejado simplesmente substituindo o bytecode ou código nativo associado por instruções NOP.
- Use Frida ou Xposed para fazer hooking de APIs do sistema de arquivos nas camadas Java e nativa. Retorne um handle para o arquivo original, não o 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.