Testes seguranca app: checklist completo
Testar a segurança de um aplicativo não é uma fase isolada, é um filtro que precisa rodar antes de cada release. Este checklist reúne os pontos que mais aparecem em falhas reais, organizados por categoria. Use quando o app está em desenvolvimento avançado, antes de subir para produção, ou quando uma atualização mexe em áreas sensíveis. Ele serve para aplicativos web e mobile, com ajustes pontuais para cada plataforma.
Autenticação e gerenciamento de sessão
1. Senhas são armazenadas com hash forte. Use algoritmos como bcrypt ou argon2. Senha em texto puro ou com hash fraco (MD5, SHA1) é porta aberta.
2. Sessão expira após inatividade. Uma sessão que nunca morre permite que um dispositivo roubado continue acessando. Defina um tempo curto de ociosidade e um limite absoluto de duração.
3. Tokens de recuperação são de uso único. Links de "esqueci minha senha" que reutilizam o mesmo token invalidam a proteção. Cada solicitação deve gerar um novo código com validade curta.
4. Autenticação multifator disponível. Não obrigue em todo login, mas ofereça para ações sensíveis, como troca de senha ou pagamento.
Autorização e controle de acesso
5. Permissões são verificadas no servidor, não só no cliente. Esconder um botão no front-end não impede acesso. Cada requisição à API deve validar se o usuário tem direito àquele recurso.
6. IDs de objetos não são confiáveis. Se o app usa o número do pedido na URL, um usuário pode trocar o valor e ver dados de outro. Valide a propriedade do recurso antes de responder.
7. Privilégio mínimo aplicado. Contas de serviço e usuários internos devem ter só as permissões necessárias para a função.
Dados e armazenamento local
8. Dados sensíveis não ficam no device sem criptografia. Em mobile, informações como token ou CPF precisam estar em armazenamento seguro (Keychain/Keystore), não em preferências simples.
9. Logs não contêm dados pessoais ou credenciais. Erro que imprime a senha no console pode vazar em um crash report. Revise mensagens de log antes de publicar.
10. Dados em trânsito usam TLS obrigatório. Certifique-se de que toda comunicação com o servidor é HTTPS. Configure o app para recusar conexões sem criptografia.
Lógica de negócio e entrada de dados
11. Validação de entrada acontece no servidor. Campos como e-mail, CPF e valores numéricos precisam ser validados novamente no backend. Cliente pode ser manipulado.
12. Limites de taxa em ações críticas. Tentativas de login, recuperação de senha e envio de formulários devem ter limite por IP ou por conta. Sem isso, força bruta é questão de tempo.
13. Fluxos de pagamento e reembolso são testados com valores negativos ou zerados. Lógica de negócio vulnerável permite manipular quantidades e descontos. Teste cenários fora do padrão.
O erro mais comum
O erro mais comum em testes de segurança é tratar como atividade pontual. Um app testado só no lançamento acumula falhas a cada atualização. Segurança é um processo contínuo, integrado ao ciclo de desenvolvimento. Para apps que lidam com dados financeiros ou de saúde, considere também um teste de penetração independente, feito por profissional certificado.
Perguntas frequentes
Qual a diferença entre teste de segurança e teste de penetração?
Teste de segurança é o processo amplo de verificar controles e configurações. Teste de penetração é uma etapa específica, onde um profissional tenta explorar vulnerabilidades de forma ativa. O checklist cobre o primeiro; o pentest aprofunda o segundo.
Com que frequência devo rodar os testes de segurança?
A cada release que altere autenticação, permissões, pagamento ou tratamento de dados. Para apps em produção contínua, um ciclo mensal de varredura automatizada é um bom ponto de partida. Testes manuais profundos podem ser trimestrais ou semestrais.
Preciso de ferramenta paga para testar segurança?
Ferramentas pagas ajudam, mas não substituem critério. O OWASP ZAP, gratuito, cobre boa parte das verificações de aplicações web. Para mobile, o MobSF é uma opção open source. O essencial é saber interpretar os resultados.
O que é OWASP Top 10?
É uma lista publicada pela OWASP (Open Worldwide Application Security Project) com os riscos de segurança mais críticos em aplicações web. Ela serve de referência para priorizar correções. A versão mais recente é de 2021 e inclui falhas como quebra de controle de acesso e injeção.
Testes de segurança atrasam o lançamento?
Se feitos no fim do ciclo, sim. Quando integrados ao desenvolvimento, com testes automatizados rodando a cada commit, o impacto é mínimo. O atraso real acontece quando uma falha grave é descoberta depois de publicada.