
OWASP Mobile Top 10

É a framework pela qual, normalmente, tanto pentesters como gestores de vulnerabilidades se guiam para testar falhas que possam eventualmente existir em aplicações mobile. São enumeradas, de seguida, as diversas categorias que compõem esta framework
M1: Improper Credential Usage (Uso Indevido de Credenciais)
Acontece quando a aplicação lida mal com credenciais de utilizador, por exemplo, guardando-as fixas no código (hardcoded) ou de forma insegura. Isto permite a um atacante obter acesso não autorizado a contas. É um problema mais comum do que se pensa nos dias de hoje.
M2: Inadequate Supply Chain Security (Segurança Insuficiente da Cadeia de Fornecimento)
Categoria nova, focada em vulnerabilidades introduzidas por bibliotecas e componentes de terceiros desatualizados ou nunca revistos durante o desenvolvimento.
M3: Insecure Authentication/Authorization (Autenticação/Autorização Insegura)
Mecanismos fracos de autenticação permitem o acesso não autorizado a funcionalidades críticas ou a dados sensíveis. Inclui políticas de palavra-passe fracas, má gestão de sessão e ausência de autenticação multifator.
M4: Insufficient Input/Output Validation (Validação Insuficiente de Input/Output)
A falta de sanitização de dados de entrada e saída abre a porta a ataques de injeção e manipulação de dados. Um atacante pode explorar campos não validados para executar código arbitrário ou aceder diretamente à base de dados.
M5: Insecure Communication (Comunicação Insegura)
O atacante pode ter acesso a dados que não foram encriptados de forma apropriada ou pode existir algum malware a agir em nome desse mesmo atacante. Os problemas mais comuns são o uso de protocolos não encriptados e a ausência de validação de certificados, em que a mitigação passa por usar TLS atualizado e implementar certificate pinning.
M6: Lack of Privacy Controls (Falta de Controlos de Privacidade)
Categoria nova, que reflete a crescente preocupação com dados pessoais. Ocorre quando a aplicação recolhe informação pessoal sem consentimento adequado, sem armazenamento seguro, ou guarda dados durante mais tempo do que o necessário. A recomendação é aplicar princípios de "privacy by design", ou seja, recolher o mínimo indispensável e encriptar o que for guardado.
M7: Insufficient Binary Protections (Proteções Insuficientes do Binário)
A ausência de ofuscação de código, deteção de tampering ou verificações de integridade facilita a engenharia reversa da aplicação, permitindo a um atacante extrair chaves de API escondidas no código ou modificar o comportamento da app instalada.
M8: Security Misconfiguration (Configuração Insegura)
Configurações por defeito fracas ou erros no processo de deployment levam a fugas de dados, incluindo-se aqui a título de exemplo flags de debug esquecidas em produção ou permissões de ficheiros mal definidas.
M9: Insecure Data Storage (Armazenamento de Dados Inseguro)
Dados sensíveis guardados de forma insegura no dispositivo podem ser lidos por quem tiver acesso físico ao aparelho ou por malware instalado. Guardar informação em texto simples ou usar métodos de encriptação inadequados são os erros mais comuns, sendo a alternativa correta usar mecanismos próprios da plataforma, como o Android Keystore ou o iOS Keychain.
M10: Insufficient Cryptography (Criptografia Insuficiente)
Diz respeito ao uso de algoritmos criptográficos fracos, desatualizados ou mal implementados, o que compromete a confidencialidade e a integridade dos dados. A recomendação é usar sempre algoritmos padrão e reconhecidos como seguros (AES, RSA, ECDSA), com geração de números aleatórios verdadeiramente segura.
Owasp TOP 10: project: https://owasp.org/www-project-mobile-top-10/