~/VibeHandbook
PDF grátis

Capítulo 18 · 07

O portão de revisão de segurança

Aqui está o hábito único que transforma tudo isso, de uma preocupação, em um processo: antes de lançar, faça a IA atacar o próprio código. O modelo que escreveu a funcionalidade geralmente consegue encontrar os buracos nela — só que não vai fazer isso a menos que você peça. Vire a chave dele de construtor para adversário:

Você escreveu este endpoint. Agora aja como um atacante tentando quebrá-lo.
Liste todas as formas pelas quais um usuário malicioso poderia:
  - ler ou modificar dados que não deveria (falhas de autorização)
  - injetar código via entrada (injeção de SQL, XSS, injeção de comando)
  - abusar de validação ausente ou limites de taxa
Para cada uma, mostre a requisição exata que explora isso, depois a correção.
Não me tranquilize — assuma que EXISTE uma vulnerabilidade e a encontre.

Essa última linha importa: deixado neutro, a IA tende a dizer "parece seguro!". Instruída a assumir que existe uma falha, ela de fato vai procurar. Combine a passagem adversarial com uma checklist curta de pré-lançamento que você roda em qualquer coisa voltada ao usuário:

  • Todo verifica autorização, não apenas se o usuário está logado
  • Todas as consultas ao banco de dados são parametrizadas — sem montado por string
  • A entrada do usuário renderizada na página passa por escaping (sem injeção de HTML bruto)
  • Nenhum segredo no código do cliente, e nenhum commitado no repositório
  • .env está fora do ; qualquer chave vazada já foi rotacionada
  • Uploads de arquivo validam tipo e tamanho e usam nomes gerados
  • Novas dependências foram checadas quanto à existência real e reputação

Imagine o portão como uma sequência que nada passa sem cumprir. A IA troca de chapéu de construtor para atacante, e depois as varreduras automatizadas cobrem o que uma passagem humana pode deixar passar:

  código da funcionalidade
       │
       ▼
 ┌──────────────────┐   "assuma que EXISTE um bug, encontre-o"
 │ PASSAGEM         │   falhas de autorização · injeção · validação
 │ ADVERSARIAL      │
 │ (IA como atacante)│
 └────────┬─────────┘
          │ problemas encontrados? ── sim ──▶ corrigir ──┐
          │ não                                          │
          ▼                                              │
 ┌──────────────────┐ ◀───────────────────────────────── ┘
 │ PORTÕES          │   varredura de segredos (gitleaks) · npm audit
 │ AUTOMATIZADOS    │   parametrizado? · segredos fora do cliente?
 │ (CI, todo push)  │
 └────────┬─────────┘
          │ tudo verde
          ▼
      LANÇAR ✓     ── qualquer coisa vermelha bloqueia o push ──

E rode um scanner de segredos antes de fazer push — uma ferramenta como o gitleaks (ou a varredura embutida da sua plataforma) vasculha seu código e histórico atrás de coisas com a forma de chaves. É uma rede de segurança de um único comando para o erro mais caro da lista, e você pode pedir para a IA integrá-la ao (Continuous Integration — o robô que roda suas verificações automaticamente a cada push de código) para que ela rode a cada push.

Quer offline?

Baixe o livro inteiro em PDF ou EPUB — grátis.