在代码中搜索每一个端点,暴露影子 API,绘制攻击面地图。
文档 •
安装 •
使用方法 •
贡献指南 •
更新日志
Noir 是一款 SAST 工具,可以读取源代码并提取应用程序暴露的端点——路径、方法、参数、请求头、Cookie 以及它们背后的源文件。影子 API、已弃用的路由和未记录的处理器都会作为同一份清单的一部分出现,而不需要额外切换到其他模式。
这份清单服务于三类受众:
- 人工审查者。 安全工程师和代码审计人员可以获得一份聚焦的攻击者可到达入口点列表——路径、参数、源文件、标签——而无需通读整个仓库。
- AI 审计者。 基于 LLM 的 SAST 智能体可以获得同样的聚焦列表,外加每个端点的审查上下文(
--include callee 获取单跳被调用函数,--ai-context 获取守卫、接收器、校验器和信号)。
- DAST 工具。 ZAP、Burp Suite、Caido 和 Gori 可以获得一份真实的路由列表进行扫描,包括它们通过爬取永远无法到达的路径。
Noir 的功能
- 端点提取。 跨 50 多个框架 进行静态分析。返回端点、参数、请求头、Cookie 以及它们所属的源文件。
- LLM 回退。 当静态规则无法应用时,将不支持的框架(或一次性自定义路由)交给 OpenAI / Ollama 等处理。
- 为下一阶段输出。 JSON、YAML、OpenAPI、SARIF、cURL、Postman、HTML——流水线中下一个工具所需的任何格式。
- DAST 集成。 直接作为代理目标注入 ZAP、Burp Suite、Caido 或 Gori,或者导出 OpenAPI 供它们导入。
- AI SAST 上下文。 端点清单(以及使用
--include callee 时每个处理器调用的单跳函数)是 LLM 审计器发现攻击者可到达漏洞所需的聚焦上下文。--ai-context 更进一步,为每个端点附加聚合的审查上下文——守卫、被调用函数、接收器、校验器和信号——这样 LLM 就不必重新发现它们。
- CI/CD。 GitHub Action、SARIF 输出、退出码——与你已有的流水线完美契合。
使用方法
示例
如果与 GitHub Action 一起使用,请参考此文档。

更多详情,请访问我们的文档页面。
路线图
Noir 最初是作为白盒测试辅助工具诞生的:从源代码中提取端点,以便 DAST 更准确地扫描。如今这项任务已经扩展——同一份清单现在也能服务于人工审计者和 AI SAST 智能体。接下来的目标是让三类消费者——审查代码的人员、审计代码的 LLM 以及扫描代码的 DAST 工具——都能平等地受益。
接下来的规划:
- 扩大语言和框架覆盖范围;通过每个框架的固定测试集确保准确性。
- 在静态分析无法触及的情况下,更多地依赖 LLM。
- 丰富每个端点的审查上下文(守卫、被调用函数、接收器、校验器、信号),使人工审查者和 AI 审计者都能看到每个处理器的统一聚焦视图。
- 保持 DAST 集成的一流体验——OpenAPI、代理目标以及直接传递给 ZAP / Burp / Caido。
OWASP 项目
OWASP Noir 于 2024 年 6 月 加入 OWASP 基金会。
新闻与更新
- 2026 年 5 月:发布 v1.0.0——在所有分析器、标记器、被动扫描以及全新的以动词为核心的 CLI 结构中引入稳定的 1.x 系列。
- 2026 年 5 月:更新路线图——Noir 现在的目标是让人类、AI 审计者和 DAST 工具作为同一端点清单的消费者,获得平等的服务。
- 2025 年 8 月:在 OWASP 首尔聚会上进行展示。(开源园艺)
- 2024 年 11 月:在 ZAP 博客上发表客座博文 "Powering Up DAST with ZAP and Noir"。
- 2024 年 6 月:作为 OWASP Noir 加入 OWASP
- 将 GitHub 组织从 noir-cr 重命名为 owasp-noir
- 与 @ksg97031 共同领导
- 2023 年 11 月:将 Noir 仓库迁移至 noir-cr GitHub 组织。
- 2023 年 8 月:作为 @hahwul 的个人项目启动。
贡献指南
Noir 是一个用 ❤️ 打造的开源项目。
如果你愿意贡献,请查看 CONTRIBUTING.md 并提交 Pull Request。

吉祥物
 | 我们的吉祥物是 Hak(학),一只象征优雅与精准发现隐藏缺陷的仙鹤。在韩语中,“학”意为“鹤”,代表着一位深入代码挖掘漏洞和攻击面的精锐盟友。
更多关于 Hak 的艺术作品和资源,请查看 noir-artwork 仓库。 |
|---|