Modern Web Application
OWASP ZAPで「Modern Web Application」というアラートが報告された場合、それは一般的に、サイトがモダンなWebアプリケーションとして認識されていることを示します。このアラートは、特定の脆弱性を示すものではなく、サイトがJavaScriptを多用してクライアントサイドで動的にコンテンツを生成していることを指しています。これにより、スキャニングツールがすべてのコンテンツを正確に解析できない可能性があるという意味です。
このアラートを解消する、あるいは適切に対応するためには、以下の手段が考えられます:
1. サイトのスキャン範囲を拡大する
モダンなWebアプリケーションでは、ページのコンテンツがクライアントサイドで動的に生成されることが多いため、通常のスキャンではすべてのコンテンツにアクセスできないことがあります。以下の方法でスキャン範囲を拡大します。
a. Ajaxスパイダリング
Ajaxスパイダリングは、JavaScriptで動的に生成されたコンテンツをクロールするための方法です。OWASP ZAPには、この機能が組み込まれているため、これを有効にします。
- ZAPのメニューから「スキャンポリシー」を選択し、「Ajaxスパイダー」を有効にします。
- 「Ajaxスパイダー」の設定を調整し、サイトの動的な部分を十分にスキャンできるようにします。
b. スキャン設定の調整
スキャン設定を調整し、スキャンの深度を増やすことで、より多くのコンテンツをカバーします。
- スキャンポリシーで「深度」を増やし、より多くのリンクやリソースをクロールするように設定します。
2. 認証の設定
ログインが必要なページがある場合、スキャンツールがこれらのページにアクセスできるように認証を設定します。
- ZAPで「認証設定」を行い、ログイン後の状態をシミュレートすることで、より多くのコンテンツをスキャンします。
- 認証トークンやセッションIDを設定し、セッションが切れないようにします。
3. スキャンポリシーのカスタマイズ
ZAPのスキャンポリシーをカスタマイズし、特定のテストを有効または無効にします。
- 特定のセキュリティチェックを有効にすることで、モダンなWebアプリケーション特有の脆弱性をより正確に検出します。
- スキャンポリシーで「動的コンテンツ」や「クライアントサイドセキュリティ」のチェックを強化します。
4. 動的コンテンツのテスト
JavaScriptで生成された動的コンテンツに対して、手動でテストを行うことも検討します。
- 開発者ツールを使用して、動的に生成されるリソースやデータを確認し、それらをZAPに追加してスキャンします。
- 特定のAPIエンドポイントやAjaxリクエストを手動でテストし、脆弱性がないか確認します。
5. 他のツールとの併用
OWASP ZAP以外のツールも併用して、モダンなWebアプリケーションの脆弱性を包括的に検出します。
- Burp Suite:より詳細なクライアントサイドテストが可能です。
- Google Chrome Developer Tools:動的コンテンツの解析に役立ちます。
まとめ
「Modern Web Application」というアラートは、サイトがクライアントサイドで動的にコンテンツを生成するモダンなWebアプリケーションであることを示しています。このアラートに対処するためには、Ajaxスパイダリングの有効化、スキャン設定の調整、認証の設定、スキャンポリシーのカスタマイズ、手動テストの実施、他のツールの併用などの手段が考えられます。これらの手段を組み合わせて、サイトのセキュリティを強化することが重要です。