OWASP Noir:オープンソースの静的解析ツール

OWASP Noirは、アプリケーションのソースコードを読み取り、公開されているエンドポイントを一覧化するオープンソースの静的解析ツールです。パス、HTTPメソッド、パラメーター、ヘッダー、Cookieを洗い出し、それぞれについて由来するファイルと行番号を紐づけます。

Image

ここからが実用的なポイントです。コードには存在するのにドキュメントへ記載されなかったエンドポイント、いわゆるシャドーAPIも、Noirのインベントリには他のエンドポイントと並んで表示されます。非推奨のルートや未文書化のハンドラーも同様です。

動的スキャナーの仕組みと比べてみましょう。ZAPやBurp SuiteなどのDASTツールは、稼働中のアプリを外部から調べ、クロールによって多くのルートを見つけ出します。クローラーがあるルートにたどり着けなければ、スキャナーはそのルートをテストしません。それでも、パスを知った人物にはアプリケーションが応答してしまいます。

1つのバイナリで205のフレームワークに対応

Noirは、1つのバイナリだけで29の言語と205のフレームワークに対応します。プラグインや言語ごとの設定は不要です。言語、フレームワーク、ルーティングの規約は自動で検出します。静的ルールでフレームワークを判別できない場合や、アプリが独自のカスタムルーティングを使っている場合には、OpenAIやOllamaなどのプロバイダー経由でコードをLLMに渡して解析できます。開発者は、フレームワークごとのフィクスチャーを使って静的ルールの精度を検証しています。一方、LLM経由で得られたルートは、利用する前に手作業で確認したほうがよいでしょう。

Noirは、重大度別に分類されたパッシブスキャンのルールも実行し、ハードコードされたキー、トークン、認証情報を検出します。17種類のタガーが、jwt、payment、admin、file_uploadといった特性をエンドポイントに付与します。レビュー担当者は、決済や管理者向けのハンドラーを最優先で確認できます。

3種類の利用者を想定

Noirの開発者は、3種類の利用者を想定してインベントリを設計しました。人間のレビュー担当者には、攻撃者が到達可能なエントリーポイントの一覧を提供します。LLMベースのレビューエージェントであるAIコード監査ツールにも、同じ一覧を渡します。–ai-contextフラグを使うと、各エンドポイントの周辺にあるガード、シンク、バリデーター、シグナルが付加されるため、モデルはハンドラーを1つずつ読み進められます。ZAP、Burp Suite、Caido、GoriといったDASTツールには、プロキシの対象またはOpenAPIのインポートとしてルートを渡します。

Noirは、JSON、SARIF、OpenAPI、Postman、cURLなど22種類の形式で結果を出力できます。CIパイプライン向けにGitHub Actionとしても提供されています。

OWASP NoirはGitHubから無料で入手できます。

翻訳元: https://www.helpnetsecurity.com/2026/09/30/owasp-noir-open-source-static-analysis-tool/

本記事は helpnetsecurity.com の記事を翻訳・要約したものです。