Segurança em Aplicativos Móveis
Ao desenvolvermos aplicações precisamos tomar cuidado com segurança.
O Open Web Application Security Project® (OWASP) é uma fundação sem fins lucrativos que trabalha para melhorar a segurança do software.
Eles fazem um documento, chamado de OWASP Top 10, para conscientização de desenvolvedores com relação a segurança de aplicativos da web.
E para o mundo de aplicações móveis eles também tem um documento equivalente e também existe um documento de padrões de segurança o OWASP MASVS (Mobile Application Security Verification Standard) que possui as seguintes categorias:
- MASVS-ARMAZENAMENTO: Armazenamento seguro de dados sensíveis em um dispositivo (data-at-rest).
- MASVS-CRIPTO: Funcionalidades criptográficas utilizadas para proteger dados sensíveis.
- MASVS-AUTENTICACAO: Mecanismos de autenticação e autorização utilizados pelo aplicativo móvel.
- MASVS-REDE: Comunicação segura em rede entre o aplicativo móvel e endpoints remotos (data-in-transit).
- MASVS-PLATAFORMA: Interação segura com a plataforma móvel subjacente e outros aplicativos instalados.
- MASVS-CODIGO: Melhores práticas de segurança para processamento de dados e manutenção do aplicativo atualizado.
- MASVS-RESILIENCIA: Resiliência a engenharia reversa e tentativas de adulteração.
Ok, mas como podemos analisar essas vulnerabilidades em nossas aplicações?
O Mobile Security Framework (MobSF) é um framework automatizado e completo para aplicativos móveis (Android/iOS/Windows) para teste de vunerabilidades, análise de malware e estrutura de avaliação de segurança capaz de realizar análises estáticas e dinâmicas.
Você pode instalar ele em sua máquina e colocar o APK ou IPA de seus aplicativos para rodar os testes:
No final ele dá um relatório com as vulnerabilidades:
Um ponto importante são credenciais que as vezes deixamos expostos ou arquivos de testes que as vezes são colocados no nosso aplicativos. Por exemplo, no React Native é possível excluir alguns arquivos do bundle de nosso app:
const exclusionList = require('metro-config/src/defaults/exclusionList');
// exclusionList is a function that takes an array of regexes and combines
// them with the default exclusions to return a single regex.
module.exports = {
resolver: {
blacklistRE: exclusionList([/dist\/.*/])
}
};
Também existe um kit de ferramentas de instrumentação dinâmica para desenvolvedores, engenheiros reversos e pesquisadores de segurança chamado Frida que pode te auxiliar a rodar testes de segurança.
Busque formas de sempre protejer seus aplicativos.
Embedded content: https://docs.google.com/presentation/d/1jVQCL2h-xKEypVAPo-MU_LGoQS-CsYYXhAC9RNOpJ94/edit?usp=sharing