O ficheiro de uma aplicação Android é chamado de Android Package (apk), e não é mais que um ficheiro Zone Information Protocol (ZIP) comprimido.
Começamos com algumas breves questões:
- É possível descomprimir um apk? Sim.
- Então, também é possível ler o código-fonte de um apk? Sim.
- Os apks são reversíveis através de engenharia reversa? Sim.
- Isso quer dizer que, é possível encontrar dados sensíveis como, por exemplo, palavras-passe e Application Programming Interface (API) keys, ao longo do código? Sim.
- É possível construir um apk totalmente seguro — à prova de bala?
Este artigo tem o objetivo de passar alguns procedimentos de forma a que qualquer developer, ou fulano com conhecimentos básicos sobre Android, consiga auditar sua própria aplicação antes que esta seja publicada e maliciosamente explorada.
E respondendo à última questão: -”Nim”.
Caça aos Dados Sensíveis
Não existe uma aplicação, sistema, infraestrutura ou até ecossistema à prova de bala e totalmente seguro. Isso deve-se a muitos fatores, p.ex., um desenho deficiente da arquitetura, bugs cometidos em sede de desenvolvimento, software desatualizado, vulnerabilidades zero-day attack, fuga de informação, entre outros. Quantos mais parâmetros são mencionados maior se torna o horizonte de ataque. Dito de uma forma mais jocosa, o objetivo da segurança da informação é então dificultar o processo de obtenção de determinado valor no seu estado mais cru. Nesse caso, qualquer fulano que tente explorar e obter informação do sistema, em vez de demorar 30 minutos vai demorar, dias, semanas, talvez anos, extingue-se o sol e o bisneto do bisneto do terceiro filho tenta alcançar o objetivo do tataravô. Confuso? É o objetivo!
[...]