脆弱性診断の対象は動的ページが中心
Webアプリケーション(Webサイト)には、静的ページと動的ページの2種類が存在します。静的ページは、誰がアクセスしても同じ内容が表示される企業の「会社概要」や「事業紹介」などを指します。
動的ページは会員ページやショッピングカート、決済ページなど、ユーザーの操作やデータベースの内容によって表示が変わるページを指します。また、これらの機能をまとめてECサイトのようなパッケージ化したCMS(コンテンツマネジメントシステム)で作られたサイトは、サイト全体が動的ページとなります。

動的ページはユーザーからの入力を受け付けたり、データベースとの連携によって内容が変化するため、SQLインジェクションやクロスサイトスクリプティングなどの脆弱性を含みやすい特徴があります。これらの脆弱性が悪用されると、個人情報や顧客データ、社内の機密情報などの重要データが外部に漏えいする可能性があります。そのため、脆弱性診断では動的ページを中心に診断を行うことが必要不可欠です。
動的ページの把握がなぜ重要?
動的ページは、「セキュリティ」と「脆弱性診断の見積もり」両方の観点から把握しておくことが重要です。
セキュリティの観点では、個人情報や決済情報などの機密データのやり取りをどこで行っているか把握しておく必要があります。例えば「どのページでクレジットカード情報を入力するのか」「会員情報はどのページで扱われるのか」といった点です。万が一情報流出が起こってしまった際には、この把握が早期解決のカギとなります。管理画面へのログイン画面や会員登録ページ、決済情報入力フォームなどは特に重点的なチェックが必要です。
また、内閣サイバーセキュリティセンター(NISC)も、Webサイト公開時には必要に応じて脆弱性診断を実施すべきであると述べており、動的ページを含めた診断範囲の把握が求められています。
動的ページが堅牢に作られていないと、例えば「通常は管理者しか知らないはずの顧客リストのURLが漏れてしまい、誰でも閲覧できてしまう」というようなケースが起こり得ます。そのため、動的ページが安全に作られているかを確認することが、脆弱性診断の重要な目的です。
脆弱性診断の見積もりの観点では、ほとんどの脆弱性診断サービスは動的ページの数に応じて料金が決まります。診断対象となる動的ページの数をあらかじめ把握しておかないと、概算見積もり金額と実際の費用が大きく違ってくる可能性があります。「思ったより動的ページが多かった」となると、想定外の費用が発生することもあります。
動的ページの基本的なカウント方法
「動的ページの数え方」については明確な基準が示されていないことも多く、見積もりの時点で混乱してしまうケースがあります。ここでは基本的なカウント方法をご紹介します。なお、「同じ機能や構造を持つページ群」を、「単一のページ」と区別するため、当記事では「動的な1ページ」と表現します。
例えば、ECサイトであれば以下のようなページは「動的な1ページ」としてカウントします。
・「/products/123」と「/products/456」のような、IDだけが異なる同じ構造のページ
・検索結果ページ(検索条件が異なっても同じ構造であれば1つ)
・ページネーション(1ページ目、2ページ目など)を持つページ一覧
・商品カテゴリ別の一覧ページ(カテゴリが異なっても同じ構造であれば1つ)
一方で、以下のようなケースは別の動的ページとしてカウントします。
・管理者用ページと一般ユーザー用ページ(同じような機能でも権限が異なる場合)
・表示するフォームの種類が異なるページ(会員登録フォームとお問い合わせフォームなど)
脆弱性診断サービスによってカウント方法の細かい基準が異なることもあるため、見積もり依頼時には「どのようにページをカウントするのか」も確認しておくとよいでしょう。特に、大規模なWebアプリケーションでは、動的ページの数え方によって見積もり金額が大きく変わることがあります。
また、自社で事前にカウントする際は、後述のURLのパターンを整理したリストを作成しておくと、見積もり依頼時の説明がスムーズになります。例えば、「会員管理系:動的な5ページ」「商品管理系:動的な3ページ」というように機能ごとにまとめておくと、診断範囲の整理もしやすくなります。
見積もり範囲の決め方と注意点
脆弱性診断の予算が限られている場合は、診断範囲や優先順位を適切に設定することが重要です。
まず優先すべきは、個人情報や決済情報などの重要なデータを扱うページです。これらのページはセキュリティ上の脆弱性が発見された場合の影響が大きく、情報漏えいした際のリスクが高いためです。具体的には以下のようなページを優先して診断範囲に含めるとよいでしょう。
・クレジットカード情報などの決済情報を扱うページ
・個人情報を入力・表示するページ
・ログインページや会員登録ページ
・ファイルのアップロード・ダウンロード機能があるページ
次に注意すべき点として、内部向けページや管理画面も診断対象に含めることを検討しましょう。外部からアクセスできないからといって安全とは限りません。内部向けページは設計上のセキュリティ対策が甘くなりがちで、一度不正アクセスされると被害が拡大しやすい傾向があります。
また、新規開発したページや大幅な機能追加があったページは特に脆弱性が含まれやすいため、優先度を高くするとよいです。
予算に制約がある場合は、脆弱性診断サービス会社と相談しながら、最も重要な部分だけを診断対象とするスモールスタートも検討できます。その場合、対象から外したページはリスクが残ることになるので、将来的には範囲を広げる計画をしておくことをお勧めします。
見積もり範囲を決める際は、脆弱性診断サービスの提供会社と十分にコミュニケーションを取り、自社のリスク評価に基づいた適切な診断範囲を設定することが、効果的かつ効率的な脆弱性診断につながります。
脆弱性診断の費用について詳しくはこちら:「脆弱性診断の費用はどのくらい?差が出るポイントも解説!」
見積もり依頼時に必要なものとは?
脆弱性診断サービスの見積もりを依頼する際には、適切な資料を提供することで、診断対象の範囲を明確にし、見積もり精度を向上させることができます。
診断対象となるWebアプリケーションの構造を説明する資料としては、主に「ページ遷移図」や「URLリスト」が有効です。これらはシステム内でページがどのように連携し移動するかを定義する重要な資料であり、診断サービス提供会社が動的ページを正確に把握するために役立ちます。特に「特定の条件を満たした場合のみ表示されるページ」や「管理者のみがアクセスできる非公開機能」など、内部者しか知り得ない「はず」の機能ももれなく検査するために、これらの資料は不可欠となります。
ページ遷移図
Webアプリケーション内の各ページの関連性と遷移の流れを視覚的に表したものが「ページ遷移図」です。ログイン後のフローや、ショッピングカートから決済完了までの流れなど、ユーザーの動線に沿ったページの繋がりを示すことで、診断対象となるページの全体像を把握しやすくなります。
ページ遷移図はシステムベンダーが作成している場合が多いため、既存のシステムであれば開発を担当したベンダーに問い合わせてみるとよいでしょう。もし社内で管理されていない場合は、システム構築時の設計書や仕様書に含まれていることもあります。
ページ遷移図を作成する際のポイントとしては、単にページの繋がりだけでなく、各ページでどのような操作が可能か、どのような条件で次のページに進めるのかといった情報も含めると、より詳細な診断が可能になります。例えば「会員登録完了後のみアクセス可能」「管理者権限保持者のみ表示」といった条件も記載しておくとよいでしょう。
複雑なWebアプリケーションでは、機能別にページ遷移図を作成すると理解しやすくなります。例えば「会員登録・ログイン系」「商品検索・購入系」「管理画面系」など、機能ごとに分けて作成するとよいでしょう。また、図が大きくなりすぎる場合は、主要な機能に絞った簡易版と詳細版を用意する方法もあります。
URLリスト
ページ遷移図資料がない場合は、実際のURLから全ページを一覧にした「URLリスト」を作成する必要があります。URLの一覧はWebアプリケーションの開発者や運用担当者に確認するのが最も確実です。システムの設計書やAPI仕様書にURLパターンが記載されていることもあります。脆弱性診断サービスではこの作業の代行を行っているケースもあります。
URLリストには、診断対象となるすべての動的ページのURLパターンを記載します。単純にURLを羅列するだけでなく、以下のような情報も含めると、より詳細な見積もりが可能になります。
・URLパターン(例:/products/{product_id}、/admin/users/{user_id}/edit)
・ページの機能や役割の簡単な説明(商品詳細表示、ユーザー情報編集など)
・アクセス権限(一般ユーザー向け、管理者向けなど)
・取り扱う重要データの種類(個人情報、決済情報、機密情報など)
このリストを作成することで、同じ構造を持つページを「動的な○ページ」としてまとめやすくなります。
URLリストは完璧である必要はありません。把握している範囲でリストを作成し、脆弱性診断サービスの提供会社と相談しながら、必要に応じて追加・修正していくことも一般的です。
資料なしでも見積もりは可能?
一般的に、資料がない状態での正確な脆弱性診断の見積もりは非常に困難です。資料なしで見積もりを依頼した場合、多くの診断サービス会社は「現時点では正確な見積もりができない」と回答する可能性が高いでしょう。
動的ページの数や構造、機能の複雑さを把握せずに見積もりを出すことは、実際の作業量を大幅に誤って見積もるリスクがあるためです。これは発注側にとっても、予算計画や診断スケジュールに影響を及ぼす可能性があります。
Figma、Adobe XDなどのページが一覧になっているデザインデータがある場合、見積もりが可能な場合があります。どちらの資料もない場合は、URLのリストを作成する必要があります。
一般的に確認できないようなページ・機能が存在する場合は、診断対象候補が正しくリストアップできない可能性があり、対応ができない場合もあります。
脆弱性診断サービスなら「サイバーセキュリティクラウド脆弱性診断サービス」
サイバーセキュリティクラウドの脆弱性診断サービスは、お客様の状況に合わせたきめ細かなサポートを提供します。特に見積もりの段階からの対応が可能であることが特徴で、必要な資料の助言から診断範囲の適切な選定まで、セキュリティ専門家のアドバイスを受けることができます。
サイバーセキュリティクラウドでは、セキュリティ専門家による手動診断とツール診断を組み合わせたハイブリッド診断で、高品質な診断を提供しています。25年以上の豊富な診断実績をもとにしたノウハウがあります。
以下、サイバーセキュリティクラウド脆弱性診断サービスの2つの特長を説明します。
特長①:資料を基に診断が必要なページの洗い出しをしてくれる
サイバーセキュリティクラウドの脆弱性診断サービスの大きな特長の一つは、提供された資料を基に診断が必要なページをセキュリティ専門家が精査してくれる点です。
前述のとおり、脆弱性診断では動的ページの把握が重要ですが、どのページを診断対象とすべきか判断するのは容易ではありません。サイバーセキュリティクラウドでは、お客様から提供されたページ遷移図やURLリストを基に、ビジネスロジックを加味しながらセキュリティ専門家が診断すべきページを洗い出します。
提供された資料が不十分な場合でも、セキュリティ専門家がヒアリングを通じてWebアプリケーションの構造を理解し、必要な診断対象を特定します。特に、セキュリティリスクの高いページや重要な機能を持つページを見落とさないよう、経験豊富なセキュリティ専門家が詳細に分析します。
特長②:予算に合わせた診断対象の最適化を提案してくれる
セキュリティの専門家がページの重要性を見極めてくれるため、コストを抑えながらも効果的な診断が可能になります。重要性の低いページは対象から外し、逆にリスクの高いページはしっかりと診断するというバランスの良さが、サイバーセキュリティクラウドの強みです。
脆弱性診断の費用は動的なページ数でほぼ決まるため、予算内でどのページを優先するかが重要です。ほとんどのお客様は、診断にかけられる予算をあらかじめ決めていらっしゃると思います。サイバーセキュリティクラウドでは、「なぜ診断をしたいのか」という目的をしっかりとヒアリングし、予算内で最大の効果を得られるよう対象ページの選び方をアドバイスします。また、契約後には診断計画書を提示したうえで診断してくれるので、実稼働しているサイトの負荷にも配慮されていて安心です。
このような診断対象の最適化により、限られた予算の中でも効果的なセキュリティ対策が可能になります。
サイバーセキュリティクラウド脆弱性診断サービスの見積もりはこちらからご依頼ください。