
noir v1.2.1
コード内のすべてのエンドポイントをハントし、シャドウAPIを暴露し、攻撃対象領域をマッピングします。
コード内のすべてのエンドポイントを追跡し、シャドウAPIを露呈させ、攻撃対象領域をマッピングします。
ドキュメント • インストール • 使い方 • コントリビュート • 変更履歴
Noir は SAST ツールで、ソースコードを読み取り、アプリケーションが公開するエンドポイント(パス、メソッド、パラメータ、ヘッダー、クッキー、それらの背後にあるソースファイル)を抽出します。シャドウ API、非推奨のルート、文書化されていないハンドラーもすべて同じインベントリの一部として出力されます。別モードは不要です。
このインベントリは3つの対象者に役立ちます:
- 人間のレビュアー. セキュリティエンジニアやコード監査者は、リポジトリ全体をざっと読む代わりに、攻撃者が到達可能なエントリポイント(パス、パラメータ、ソースファイル、タグ)の焦点を絞ったリストを得られます。
- AI 監査者. LLM ベースの SAST エージェントは、同じ焦点を絞ったリストに加え、エンドポイントごとのレビューコンテキスト(
--include calleeで1ホップの呼び出し先、--ai-contextでガード、シンク、バリデーター、シグナル)を取得できます。 - DAST ツール. ZAP、Burp Suite、Caido、Gori は、スキャンすべき実際のルートリストを取得でき、クローリングでは決して到達できなかったパスも含まれます。
Noir の機能
- エンドポイント抽出. 50以上のフレームワークに対応した静的解析。エンドポイント、パラメータ、ヘッダー、クッキー、およびそれらが由来するソースファイルを返します。
- LLM フォールバック. 静的ルールが適用できない場合、未対応のフレームワーク(またはカスタムルーティング)を OpenAI / Ollama などに処理させます。
- 次の段階への出力. JSON、YAML、OpenAPI、SARIF、cURL、Postman、HTML — パイプラインの次のツールが読み取る形式を選べます。
- DAST 統合. プロキシターゲットとして ZAP、Burp Suite、Caido、Gori に直接パイプするか、OpenAPI をエクスポートしてインポートさせます。
- AI SAST コンテキスト. エンドポイントインベントリ(および
--include calleeを使用した各ハンドラーが呼び出す1ホップの関数)は、LLM 監査者が攻撃者が到達可能なバグを見つけるために必要な焦点を絞ったコンテキストです。--ai-contextはさらに進んで、エンドポイントごとに集約されたレビューコンテキスト(ガード、呼び出し先、シンク、バリデーター、シグナル)を添付するため、LLM がそれらを再発見する必要がありません。 - CI/CD. GitHub Action、SARIF 出力、終了コード — 既存のパイプラインに適合します。
使い方
noir -h
例
noir -b <source_dir>
GitHub Action で使用する場合は、こちらのドキュメントを参照してください。

詳細はドキュメントページをご覧ください。
ロードマップ
Noir は WhiteBox テストの補助として始まりました。ソースからエンドポイントを抽出し、DAST がより正確にスキャンできるようにするためです。この仕事は拡大し、同じインベントリが今では人間の監査者や AI SAST エージェントにも利用されています。ここからの目標は、3つの対象者すべてに等しく役立つことです。つまり、コードをレビューする人間、監査する LLM、そしてスキャンする DAST ツールです。
今後:
- 言語とフレームワークのカバレッジを拡大し、フレームワークごとのフィクスチャで正確性を維持します。
- 静的解析では到達できないケースに対して、LLM をさらに活用します。
- エンドポイントごとのレビューコンテキスト(ガード、呼び出し先、シンク、バリデーター、シグナル)を充実させ、人間のレビュアーと AI 監査者が各ハンドラーを同じ焦点で見られるようにします。
- DAST 統合をファーストクラスに維持します。OpenAPI、プロキシターゲット、ZAP / Burp / Caido への直接連携を継続します。
OWASP プロジェクト
OWASP Noir は 2024年6月 に OWASP Foundation に加わりました。
- 公式プロジェクトページ: https://owasp.org/www-project-noir/
- OWASP Nest: https://nest.owasp.org/projects/noir
ニュース & アップデート
- 2026年5月: v1.0.0 リリース — すべてのアナライザー、タガー、パッシブスキャンに安定した 1.x ラインを導入し、新しい動詞中心の CLI 構造を採用。
- 2026年5月: ロードマップを刷新 — Noir の目標は、人間、AI 監査者、DAST ツールが同じエンドポイントインベントリを消費者として等しく活用できるようにすること。
- 2025年8月: OWASP Seoul Meetup で発表。 (Open Source Gardening)
- 2024年11月: ゲストブログ記事 "Powering Up DAST with ZAP and Noir" を ZAP ブログに公開。
- 2024年6月: OWASP Noir として OWASP に参加
- GitHub 組織を noir-cr から owasp-noir に名称変更
- @ksg97031 との共同リーダーシップに移行
- 2023年11月: Noir リポジトリを noir-cr GitHub 組織に移動。
- 2023年8月: @hahwul の個人プロジェクトとして開始。
コントリビュート
Noir は ❤️ で作られたオープンソースプロジェクトです。 コントリビュートをご希望の場合は、CONTRIBUTING.md をご確認の上、プルリクエストを送信してください。
マスコット
![]() | 私たちのマスコットは Hak(학)です。鶴を象徴し、隠れた欠陥を見つける優雅さと正確さを表します。韓国語で「학」は「鶴」を意味し、コード内の脆弱性や攻撃対象領域を深く掘り下げて明らかにする鋭い味方を表現しています。 Hak に関する追加のアートワークやリソースについては、noir-artwork リポジトリ をご覧ください。 |
|---|
