Noir é uma ferramenta SAST que lê o código-fonte e extrai os endpoints que uma aplicação expõe — caminhos, métodos, parâmetros, cabeçalhos, cookies e os arquivos-fonte por trás deles. Shadow APIs, rotas obsoletas e handlers não documentados fazem parte do mesmo inventário; não são um modo separado.
O inventário atende três públicos:
Revisores humanos. Engenheiros de segurança e auditores de código recebem uma lista focada de pontos de entrada alcançáveis por atacantes — caminhos, parâmetros, arquivos-fonte, tags — em vez de vasculhar o repositório inteiro.
Auditores de IA. Agentes SAST baseados em LLM recebem a mesma lista focada, além de contexto de revisão por endpoint (--include callee para callees de 1 salto, --ai-context para guards, sinks, validadores e sinais).
Ferramentas DAST. ZAP, Burp Suite, Caido e Gori recebem uma lista real de rotas para escanear, incluindo caminhos que nunca alcançariam por crawling.
O que o Noir faz
Extração de endpoints. Análise estática em 261 frameworks. Retorna endpoints, parâmetros, cabeçalhos, cookies e os arquivos-fonte de onde vieram.
Fallback para LLM. Entregue frameworks não suportados (ou roteamento customizado pontual) para OpenAI / Ollama / etc. quando as regras estáticas não se aplicam.
Saída para a próxima etapa. JSON, YAML, OpenAPI, SARIF, cURL, Postman, HTML — o formato que a próxima ferramenta do pipeline lê.
Integração com DAST. Envie diretamente para ZAP, Burp Suite, Caido ou Gori como alvo de proxy, ou exporte OpenAPI para que eles importem.
Contexto para IA SAST. O inventário de endpoints (e, com --include callee, as funções de 1 salto que cada handler invoca) é o contexto focado de que um auditor LLM precisa para encontrar bugs alcançáveis por atacantes. --ai-context vai além e anexa contexto de revisão agregado por endpoint — guards, callees, sinks, validadores e sinais — para que o LLM não precise redescobri-los.
CI/CD. GitHub Action, saída SARIF, códigos de saída — encaixa no pipeline que você já tem.
Uso
noir -h
Exemplo
noir scan <source_dir>
Se você usá-lo com o Github Action, consulte este documento .
Para mais detalhes, visite nossa página de documentação.
Roteiro
O Noir começou como um auxiliar de testes WhiteBox: extrair endpoints do código-fonte para que o DAST possa escaneá-los com mais precisão. A tarefa cresceu — o mesmo inventário agora também alimenta auditores humanos e agentes de SAST com IA. O objetivo a partir daqui é atender igualmente bem os três consumidores: humanos revisando o código, LLMs auditando-o e ferramentas DAST escaneando-o.
A partir daqui:
Ampliar a cobertura de linguagens e frameworks; manter a precisão honesta com fixtures por framework.
Apoiar-se mais fortemente em LLMs para os casos que a análise estática não consegue alcançar.
Enriquecer o contexto de revisão por endpoint (guards, callees, sinks, validadores, sinais) para que revisores humanos e auditores de IA compartilhem a mesma visão focada de cada handler.
Manter a integração com DAST como prioridade — OpenAPI, alvos de proxy e transferências diretas para ZAP / Burp / Caido / Gori.
Projeto OWASP
O OWASP Noir juntou-se à OWASP Foundation em junho de 2024.
Maio de 2026: Lançada a v1.0.0 — introduzindo uma linha 1.x estável em todos os analisadores, taggers, passive-scan e uma estrutura de CLI totalmente nova centrada em verbos.
Maio de 2026: Roteiro atualizado — o objetivo do Noir agora é atender igualmente humanos, auditores de IA e ferramentas DAST como consumidores do mesmo inventário de endpoints.
Novembro de 2023: Movido o repositório do Noir para a organização noir-cr no GitHub.
Agosto de 2023: Iniciado como projeto pessoal de @hahwul.
Equipe Principal
Contribuindo
O Noir é um projeto de código aberto feito com ❤️.
Se você gostaria de contribuir, consulte CONTRIBUTING.md e envie um Pull Request.
Mascote
Nosso mascote é Hak (학), um grou que simboliza elegância e precisão na identificação de falhas ocultas. Em coreano, "학" significa "grou", representando um aliado perspicaz que mergulha fundo para descobrir vulnerabilidades e superfícies de ataque no seu código.