コンテンツにスキップ

2026年のオープンソース Web アプリケーションスキャン:ZAP、Nuclei、Wapiti、および DAST スタック

· 13 min read · default
cybersecuritydastweb-securityappsecdevsecopsscanning

すべてのWebアプリケーションは攻撃サーフェスであり、不快な真実は、テストしていないものを保護することはできないということです。静的解析はソースを読み疑わしいパターンをフラグしますが、デプロイされたアプリケーションが実際にデータをリーク、注入ペイロードを受け入れる、または認可されていない管理パネルを公開するかどうかは判断できません。これには攻撃者がするように、実行中のアプリケーションを外部からポークが必要です — 動的アプリケーションセキュリティテスト、または DAST です。2026年の朗報は、オープンソース DAST エコシステムが成熟し、機能的で無料であり、高速の既知CVEチェックから完全クロール攻撃スキャンまでをカバーしていることです。ただし、1つのツールがすべてを適切に行うことはなく、必要な場所で1つを使用すると、ギャップが残ります。

このガイドは DAST がどのように機能するか、オープンソースツールが競争的ではなく補完的である理由、およびそれらをレイヤード走査パイプラインに組み立ててCI/CDに適合させる方法を説明します。主なキャラクターは ZAP、完全機能のプロキシとスキャナー;Nuclei、高速テンプレートベース脆弱性スキャナー;Wapiti、コマンドラインファジングスキャナー;および Nikto、ベテランのサーバー設定チェッカーです。各が何のためであるかを理解することは、冗長性ではなくカバレッジを構築する方法です。

DAST は実際に何をするのか

動的テストはアプリケーションをブラックボックスとして扱います。コードを読む代わりに、DAST ツールは HTTP 経由で実行中のアプリに相互作用します — ページをクロール、フォームを送信、API を呼び出す — 通常および悪質な入力への応答を観察します。パラメータで ' OR 1=1-- を送信することがクエリの実行を示唆する方法で応答を変更すると、SQL インジェクションの信号です。反射されたスクリプトタグがページ内で解析されていない状態で戻る場合、それはクロスサイトスクリプティングです。DAST はランタイムでのみ存在する脆弱性をキャッチします:インジェクション欠陥、認証およびセッション問題、設定ミス、公開エンドポイント、およびデプロイされたときにコンポーネントが相互作用する方法から生じる問題。

DAST の大きな強さは、それが現実をテストすることです — 実行中の実際のシステム、その構成、およびランタイム動作、ソースの抽象的なモデルではなく。対応する弱さは、到達できるものだけをテストすることです:クローラーがページを見つけられない、または認証できない、または単一ページアプリケーションのクライアント側ルーティングを理解しない場合、そのサーフェスはテストされません。これは、クロール品質および認証サポートがそれほど重要である理由であり、ツールがアプリケーションの真のサーフェスをどれだけよく検出するかに有意に異なります。また、DAST が静的分析および依存性スキャンを置き換えるのではなく補完する理由でもあります — 各は他が盲目である何かを見ます。

ZAP:完全機能ワーホース

ZAP (Zed Attack Proxy)、Checkmarx が管理し、長期の OWASP 旗艦プロジェクトの後、最も完全なオープンソース DAST ツールであり、多くのチームにはそれ自体で全スタックです。その基盤はインターセプトプロキシです:ブラウザ (または自動クローラー) を ZAP 経由でルーティングすると、すべてのリクエストと応答を記録し、アプリケーションのマップを構築します。そのトラフィックから、それはパッシブスキャン(攻撃なしで観測された応答から問題をフラグ) およびオンデマンドアクティブスキャン(脆弱性を確認するために攻撃ペイロードを送信) を実行します。その周りに、JavaScript が多いアプリケーション用のスパイダーと Ajax スパイダー、ファザー、WebSocket サポート、REST、GraphQL、SOAP の API スキャンを追加します。

2026年の ZAP の決定的な利点はオートメーションです。パッケージスキャンスクリプト — ベースライン (パッシブ) スキャン、フル (アクティブ) スキャン、OpenAPI 仕様によって駆動されるAPI スキャン — はコンテナ内でヘッドレスで実行するように設計されており、ZAP を CI/CD に自然にフィットさせます。ステージングデプロイメントに対するベースラインスキャンをすべてのプルリクエストで指すと、ほぼセットアップなしで継続的な低ノイズ DAST が得られます。その Automation Framework と完全 HTTP API により、任意に複雑なスキャンをスクリプト化でき、その context および認証処理により、ログインユーザーとしてテストでき、これは興味深い脆弱性が通常住むところです。人々が「1つのオープンソース DAST ツール」を求める場合、ZAP は答えであり、ZAP チートシートはそのスキャンモードと API をカバーします。

トレードオフは、ZAP の幅広さが重みを伴うことです:それは実質的なツール実装の学習曲線を伴い、大きなアプリケーションの完全なアクティブスキャンは時間がかかります。これはそのカバレッジのための合理的なコストですが、軽い高速ツールがそれと並んでまだ場所を持つ理由です。

Nuclei:高速、テンプレート駆動検出

Nuclei、ProjectDiscovery から、問題の別の部分を攻撃します:スピードおよび既知脆弱性カバレッジ。クロールおよびファジングの代わりに、Nuclei は大きなコミュニティメンテナンスYAML テンプレート ライブラリに対して、各テンプレートが特定の問題を検出する方法を説明 — 既知の CVE、デフォルト認証情報、公開設定ファイル、設定ミス — に対して実行されます。テンプレートは宣言的であり Nuclei のエンジンは高速で並行であるため、数分内に多くのホスト全体で数千の既知問題をチェックできます、決定論的に。

これは Nuclei を理想的な最初のパスおよび理想的な継続的なチェックにします。「このターゲットは既知の何かに脆弱か」に回答するのに優れています — 公開された .git ディレクトリ、未パッチの CVE、遺棄された管理パネル、デフォルトログイン。12,000+ コミュニティテンプレートは、セキュリティコミュニティの集合的な知識が符号化され再利用可能であることを意味し、新しいテンプレートは新しい脆弱性が開示されるたびに表示されます。パイプラインでは、Nuclei はすべてのデプロイで実行するのに十分安く、注意を持って本番環境に対しても実行でき、回帰をキャッチして新しく開示された問題をすぐにキャッチします。Nuclei チートシートはテンプレート選択およびスキャンをカバーします。

Nuclei が行わないことは、アプリケーションロジックの新規 脆弱性を発見することです。既知のパターンのカタログに対してチェックします;それはZAP またはWapiti が行うようにアプリケーションをクロールおよびそのユニークなパラメータをファズするのではありません。これは欠陥ではありません — これは設計です — しかし、クロールするスキャナーではなくNucleí とペアである理由は正確にこれです。

Wapiti と Nikto:焦点化されたスペシャリスト

2つの軽いツールが オープンソーススタックを丸めます。Wapitiは、ファザーとして機能するコマンドラインブラックボックススキャナーです:URL およびフォームを列挙するために、アプリケーションをクロールし、次にすべてのパラメータにペイロードを注入し、脆弱性の兆候のための応答を検査します — SQL インジェクション、XSS、ファイル開示、コマンド注入、SSRF などが含まれます。ZAP より軽く、より スクリプト可能で、GPL ライセンスで、pip インストール可能で、ZAP の完全なフットプリントなしでアクティブファジングが必要な場合に CI ジョブにドロップするのは簡単です。その2026年のリリースは新しい攻撃クラスのペースを保ち、Wapiti チートシートはそのモジュールシステムをカバーします。

Nikto はグループの獣で、狭いが有用なニッチを占めます:サーバーレベル チェック。危険なファイルおよび CGI、時代遅れのサーバーソフトウェア、一般的な設定ミスのための Webサーバーをスキャンします — アプリケーション のビジネスロジックではなくサーバー自体に対する数千のチェック。高速、シンプル、補完的です:Nikto はサーバーが設定ミスまたは危険なものを実行していることを示し、ZAP および Wapiti は実行中のアプリケーションロジックをテストします。クイックサーバー衛生パス用には、実行し続ける価値があります。

レイヤード パイプラインの組み立て

ツールは補完的です。なぜなら、それらが異なる軸 — 既知脆弱性の幅、アプリケーションロジックの深さ、およびサーバー設定 — をカバーし、最強の姿勢はそれらをコストおよびカバレッジでレイヤーするため。実用的な2026年パイプラインは次のようになります。ステージングへのすべてのデプロイで、Nuclei を実行して既知の CVE および公開の高速で広いスイープを行い、ZAP ベースライン(パッシブ) スキャンを低ノイズアプリケーション検出のために — 両方ともプルリクエストをゲートするのに十分高速です。スケジュール (毎晩またはリリース単位) に、より重いアクティブスキャンを実行します:ZAP フルスキャンおよび/またはWapiti はアプリケーションのパラメータおよびフォームを新規インジェクションおよびロジック欠陥に対してファズし、さらにNikto パスをサーバー衛生のために。すべてを同じレポートにフィードし、検出結果は一緒にトリアージされます。

このレイヤリングは、アクティブスキャン遅く既知CVEチェック高速であるという現実を尊重し、高価な深いチェックは定期的に実行できるため、安価な広いチェックを継続的に実行します。また、各ツールが他方がカバーする盲点があるという現実を尊重します:Nuclei は ZAP/Wapiti ファジングがキャッチする新規アプリロジックバグを見逃し;ZAP/Wapiti は Nuclei の新鮮なテンプレートがキャッチする新しく開示された CVE を見逃し;両方ともNiktoがフラグする設定ミスサーバーを見逃します。1つを実行してセキュリティの誤った感覚を持つ;レイヤード設定を実行しており、本物のカバレッジを持っています。チームが最も一般的な誤りは、単一スキャナーを採用し、それが包括的であると仮定することです — オープンソーススキャナーはなく、それらは明確に相互補完するために設計されています。

認証およびスコープ:スキャンが成功または失敗する場所

スキャンが機能するかどうかを決定する点:DAST は到達できるものだけをテストするため、認証およびスコープ構成がスキャンが静かに成功または失敗する場所です。最も深刻な脆弱性は通常ログインの後ろに住んでいます — 認証されたアプリケーションで、管理機能、ユーザー固有データ。公開、認可されていないページのみをテストするスキャナーは、攻撃サーフェスの最も興味深くない部分をテストしています。すべての真剣な DAST ツールは認証スキャンをサポートします (ZAP の context およびセッション管理は特に機能が豊富)、しかし、設定が必要です:スキャナーにログイン方法、有効なセッションの認識方法、およびログアウトを避ける方法を教えます。その設定に投資することが、実際の問題を検出するスキャンを、誤解を招くようにクリーンレポートを生成する1つから分離するものです。

スコープは反対方向で同じくらい重要です。アクティブスキャナーは実際の攻撃ペイロードを送信し、データを作成、アクションをトリガー、またはシステムを強調できます。許可されたターゲット — 独自のステージングまたは明確に許可された環境 — にスキャンを限定する必要があります。また、本番環境に対してアクティブスキャンを実行することを控えめにしてください。所有しない、またはテスト権限があるシステムをスキャンすることは違法であり、防御に対して貴重なものを行うパワーは、悪用されれば危険です。スコープを定義し、認可を取得し、積極的なスキャンはステージングを優先します。

最新アプリケーション処理:SPA および API

古い DAST モデルが予期しなかった課題は、2026年の Web アプリケーションの大きなシェアが、クローラーがリンクをフォローして歩くことができるサーバーレンダリングページではないということです。これらは単一ページアプリケーション (SPA) であり、ブラウザは JavaScript を実行インターフェースを構築し、API からデータを取得し、ヘッド API なしで HTML フロントエンドなしで API です。両方とも素朴なスパイダーを破棄します:フォローする <a href> リンクはなく、実際の攻撃サーフェスは、クライアント側コードによって呼び出される API エンドポイントのセットです。Web アプリケーションマップの大部分は HTML クロールのみを理解するスキャナーが、安心して空で、完全に誤解を招く結果を報告します。

ツールは適応し、正しいモードの使用は重要です。SPA の場合、ZAP のAjax Spider は実際のブラウザを駆動し、JavaScript を実行し、素朴なスパイダーが見逃すアプリが実際に行う要求を観察し、API 呼び出しを検出します。API の場合、より優れたパスはクロールを完全にスキップし、スキャナーに仕様を与えることです:ZAP の API スキャンは OpenAPI (Swagger)、SOAP、または GraphQL 定義を使用し、すべてのドキュメント化されたエンドポイントおよびパラメータを体系的にテストします。これは多くの場合、クロールより包括的です。なぜなら、仕様は発見に依存するのではなく完全なサーフェスを列挙するためです。実用的なルールは、1つがある場合にスキャナーにマップを提供することです — OpenAPI ファイル、Postman コレクション、GraphQL スキーマ — その完全カバレッジにクロールすることを願う代わりに。

これはまた DAST がどこに現代的な開発に適合するかを再フレーミングします。アプリケーション API ファーストの場合、DAST は API セキュリティテストになり、API 仕様をスキャンパイプラインに統合することは最高レバレッジ構成ステップです。REST またはGraphQL API を配信するチームは、その OpenAPI/スキーマを CI の ZAP API スキャンに接続する必要があり、すべてのエンドポイントは毎回テストされます。仕様をレンダリングされたUIではなくスキャンターゲットとして扱うことは、アプリケーションがサーバーレンダリング HTML から離れる際に DAST がどのように機能的なままであるかです。

まとめ

動的アプリケーションセキュリティテストは、アプリケーションが実行中である場合にのみ存在する脆弱性をキャッチし、2026年にはオープンソース DAST スタックは、1つのツールでなく レイヤード セットとして使用した場合、全範囲を無料でカバーします。Nuclei を高速継続的な既知CVE および公開検出のために実行;ZAP を完全機能クロール-アンド-アクティブスキャンワーホースとして CI オートメーション第1級で実行;軽いコマンドラインファジング用に Wapiti を追加し、サーバー設定衛生のために Nikto を追加します。デプロイごとの高速チェックをレイヤーし、スケジュール内の深いスキャンを、すべてを同じレポートに供給し、認証スキャンに投資して、テストするサーフェスがタッチアクティブスキャンが許可されたターゲットに限定され、「アプリはセキュアであることを望む」から「実際の攻撃に対して継続的にテストする」に変更します。

参考資料とリソース

ツール

背景および分析

関連1337skills チートシート