>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
JavaScript

Como Fazer a IA Encontrar Vulnerabilidades Reais em Código Sem Muitos Falsos Positivos

Se você já tentou apontar um LLM para código-fonte com um prompt de "encontrar vulnerabilidades", provavelmente lembra do resultado. O modelo tipicamente produz uma parede de observações teóricas: validação de checklist OWASP faltando aqui, outra camada de sanitização poderia ser adicionada ali, e esta variável tem um nome suspeito. Na prática, 90% dessas descobertas se revelam ruído que simplesmente desperdiça o tempo dos desenvolvedores.

A equipe da Cloudflare open-sourceou o security-audit-skill. É um conjunto de instruções e pipeline para agentes de codificação, que eles usaram para construir seu harness interno para auditoria contínua de repositórios.

Qual é o Principal Problema com Auditoria de IA Regular

A maioria dos analisadores estáticos e prompts simples de rede neural sofre de dois problemas: eles não verificam explorabilidade e alucinam contexto. A rede neural vê uma função perigosa, mas não percebe que os dados de entrada já estão filtrados por três camadas acima.

A Cloudflare adotou a abordagem oposta e construiu o skill com base em princípios rigorosos:

  • Relatórios são gerados apenas para o que é realmente explorável. Frases como "teoricamente um atacante poderia" são imediatamente filtradas.
  • A pessoa que encontrou o bug não tem o direito de validá-lo. Um agente independente separado atua como advogado do diabo para verificação.
  • A ausência de uma segunda camada de proteção não é considerada vulnerabilidade se a primeira camada bloqueia de forma confiável o vetor de ataque.
  • A avaliação de criticidade é baseada em impacto real, não em correspondências formais de checklist.

Como Funciona o Pipeline de Seis Fases

Em vez de um único prompt longo, a ferramenta divide o trabalho em seis estágios sequenciais. Sub-agentes paralelos trabalham dentro de cada um, cada um com uma tarefa rigorosamente definida.

+-------------------------------------------------------------+
| 1. Recon       -> Карта архитектуры и точек входа           |
| 2. Hunt        -> Параллельные атаки по разным векторам     |
| 3. Validate    -> Попытка опровергнуть каждую находку       |
| 4. Report      -> Формирование читаемых отчетов             |
| 5. Structured  -> Генерация findings.json со схемой         |
| 6. Verify      -> Сверка фактов со свежими агентами         |
+-------------------------------------------------------------+

1. Recon

Agentes investigam o projeto, definem limites de confiança, identificam pontos de entrada e mapeiam a arquitetura geral. O resultado é um arquivo architecture.md que serve como mapa para os agentes de ataque.

2. Hunt

Múltiplos agentes testam a base de código em paralelo de diferentes ângulos. O projeto é dividido em arquivos separados com prompts para diferentes classes de ataque:

  • Injeções, controle de acesso e lógica de negócio.
  • Especificidades de protocolos web, cache e autenticação (WEB-PROTOCOL-AND-AUTH.md).
  • Ameaças do lado do cliente como injeções DOM e poluição de protótipo (CLIENT-SIDE.md).
  • Segurança de memória e vulnerabilidades binárias para código nativo (MEMORY-SAFETY-AND-BINARY.md).
  • Problemas de sistemas LLM: injeção de prompt, vazamento de contexto e manipulação de chamadas de ferramentas (AI-AND-LLM.md).

Cada agente de caça pode gerar processos adicionais para investigar mais profundamente cadeias de chamadas suspeitas.

3. Validação Adversária

O estágio mais útil. Agentes novos recebem uma lista de bugs potenciais e deliberadamente tentam provar que um ataque não funcionará. Se houver proteção no lugar ou o vetor estiver bloqueado por um módulo vizinho, a descoberta é impiedosamente riscada.

4. Relatório e Saída Estruturada

Os arquivos REPORT.md e FINDINGS-DETAIL.md são gerados com traces detalhados para vulnerabilidades de nível Médio e superior, junto com findings.json. O JSON estruturado é validado pelo script validate-findings.cjs baseado em Node.js sem dependências externas.

5. Verificação Independente

Controle de qualidade final. Agentes com contexto limpo verificam linha por linha as afirmações no relatório contra o código real para eliminar alucinações em números de linha ou nomes de funções.

Instalação e Execução

O pacote se conecta via Skills CLI a qualquer agente de codificação que suporte chamadas de ferramentas e sub-agentes paralelos.

Instalação do projeto:

npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit

Instalação global para todo o sistema:

npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit --global

Depois disso, basta abrir a base de código no seu agente e escrever em texto simples:

security audit this codebase

ou especificar um diretório específico e caminho do relatório:

do a security review, output to ~/audits/my-project

Detalhe interessante: execuções podem ser acumuladas. Os autores descobriram durante os testes que uma execução encontra aproximadamente metade dos problemas reais devido à aleatoriedade nos caminhos de travessia. O skill pode ler execuções anteriores findings.json, pular bugs já conhecidos e explorar branches de código não visitados.

Para Quem Isso Serve

A ferramenta requer um modelo capaz com suporte a chamadas de ferramentas paralelas, então executá-la em configurações locais fracas provavelmente não funcionará.

Mas se você já está usando agentes para refatoração ou escrita de testes, adicionar um papel como auditor de segurança meticuloso é uma ótima ideia antes de um release ou merge importante. A abordagem de dividir papéis entre "atacante" e "cético" reduz notavelmente o esforço manual de lidar com falsos positivos.

Projetos relacionados