Menu Close

Hardening do código

Hardening do código

Proteja seus aplicativos contra engenharia reversa

Aplicativos Android, iOS e SDKs podem sofrer engenharia reversa a qualquer momento. Usando descompiladores facilmente disponíveis online, hackers podem acessar e analisar o código-fonte de seus aplicativos. Isso abre possibilidades para uma ampla gama de abusos: os hackers podem roubar o seu código ou clonar seus aplicativos, eles podem extrair informações confidenciais, como chaves de API e coletar credenciais, eles também podem adicionar códigos maliciosos aos seus aplicativos e empacotá-los novamente.

O hardening do código é uma maneira eficaz de proteger seus APKs e SDKs Android e iOS de engenharia reversa e hacking. Consiste em fazer o hardening do código em vários níveis através da aplicação de múltiplas camadas de ofuscação e criptografia. Com hardening o código se torna resistente a análises automáticas e manuais.

Hackers complementam a informação coletada por análise de código estático com técnicas de análise dinâmica. Para evitar que seus aplicativos sejam analisados em tempo de execução, é essencial implementar mecanismos de autoproteção em tempo de execução (RASP).

Ofuscação e criptografia

Ofuscação refere-se a fazer o código ilegível sem afetar sua funcionalidade. As técnicas utilizadas para obscurecer o código dessa maneira variam consideravelmente. Elas variam desde a substituição de nomes legíveis no código por alternativas difíceis de decifrar (ofuscação de nome) até a modificação da estrutura lógica do código para torná-lo menos previsível e rastreável (ofuscação do fluxo de controle). Outra técnica de ofuscação consiste na conversão de simples expressões aritméticas e lógicas em expressões equivalentes complexas (ofuscação aritmética).

A criptografia garante que o código e os dados do aplicativo não possam ser acessados enquanto o aplicativo está em repouso. O código criptografado é decifrado imediatamente quando o aplicativo é executado garantindo que ele funcione como previsto. Para ser eficaz, a criptografia deve ser aplicada em várias camadas. As técnicas de criptografia essenciais incluem criptografia de string, criptografia de classe, criptografia de asset e criptografia de recursos.