Dependências, logs e processo
Segurança não é uma revisão única. Estes itens tratam do código que você não escreveu (suas dependências) e dos hábitos que mantêm uma aplicação segura depois do lançamento.
Checklist
- Fixe e analise as dependências. Commite um lockfile e execute um scanner de vulnerabilidades (e a auditoria da sua plataforma) no CI. Atualize pacotes com vulnerabilidades conhecidas.
- Fique atento a pacotes alucinados. Ferramentas de IA às vezes importam um pacote que não existe, e atacantes registram esses nomes com malware ("slopsquatting"). Confirme que cada dependência é a real e a pretendida antes de instalar.
- Não execute código ou etapas de build não confiáveis às cegas. Um repositório baixado ou um script postinstall gerado pode executar código arbitrário. Revise antes de executar.
- Registre eventos de segurança, nunca segredos. Registre logins, falhas, acionamentos de rate limit e ações de administrador para auditoria. Nunca registre senhas, tokens, chaves ou números completos de cartão.
- Trate erros sem vazar informações. Capture exceções, retorne uma mensagem genérica e mantenha stack traces e consultas apenas nos logs do servidor.
- Mantenha uma análise estática no CI. Ferramentas como o Semgrep detectam erros de injeção e de autorização antes que sejam mesclados.
- Teste como um atacante. Sua suíte de testes deve incluir casos de entrada inválida e de acesso não autorizado, não apenas o caminho feliz. Depois que a suíte passar, execute um scanner de caixa-preta (por exemplo, OWASP ZAP) contra a URL implantada.
- Obtenha uma revisão independente. Uma auto-auditoria deixa escapar coisas, especialmente os pontos cegos do próprio autor. Antes de um lançamento mais amplo, contrate um teste de penetração externo e considere mapear contra um padrão como o OWASP ASVS.
- Para recursos de IA, teste a camada do modelo. Se a sua aplicação coloca conteúdo não confiável em um prompt, faça red team para prompt injection e para vazamento de dados entre usuários ou tenants. Mantenha a segurança real no código (limite cada ferramenta e consulta ao usuário atual), nunca nas instruções do prompt.
- Tenha um caminho de volta. Mantenha backups dos quais você já tenha restaurado de fato, e um plano para rotacionar segredos e revogar sessões caso algo vaze.
Como testar
- Execute sua auditoria de dependências e um scan de segredos no CI e leia a saída.
- Aponte um scanner de caixa-preta para o ambiente de staging.
- Peça a alguém que não escreveu o código para tentar quebrá-lo.