【初心者向け】脆弱性診断を初めて依頼する企業が最初にやるべき5つのステップ
脆弱性診断を初めて依頼する企業にとって、何から手をつければよいのか分からず不安を感じることは珍しくありません。社内に詳しい人がいない、診断業者とどう会話すればいいか分からない、費用相場も見当がつかない…こうした悩みを抱えている方も多いのではないでしょうか。
脆弱性診断を初めて依頼する企業にとって、何から手をつければよいのか分からず不安を感じることは珍しくありません。社内に詳しい人がいない、診断業者とどう会話すればいいか分からない、費用相場も見当がつかない…こうした悩みを抱えている方も多いのではないでしょうか。しかし、正しい準備と手順を踏めば、専門知識がなくてもスムーズに脆弱性診断を依頼できます。この記事では、初めて脆弱性診断を依頼する企業が押さえるべき5つのステップを、具体的な事例を交えながら分かりやすく解説します。
脆弱性診断を依頼する前に知っておくべき基礎知識
脆弱性診断を依頼する前に、まず基本的な知識を押さえておくことで、その後の準備や業者とのやり取りがスムーズになります。ここでは、脆弱性診断の目的や実施タイミング、診断の種類について解説します。
脆弱性診断とは何か
脆弱性診断とは、企業が運用するWebサイトやシステムに潜むセキュリティ上の弱点(脆弱性)を専門的な技術で発見し、報告するサービスです。攻撃者がシステムに侵入する前に弱点を見つけて対処することで、情報漏洩やサービス停止などの深刻な被害を未然に防ぐことが目的となります。
診断では、実際の攻撃者が使用する手法を模擬的に実行し、システムがどのように反応するかを検証します。例えば、不正なSQL文を送信してデータベースにアクセスできないか、管理者権限を奪取できる設定不備がないかなどを確認します。診断結果は詳細な報告書にまとめられ、発見された脆弱性ごとに危険度と対策方法が提示されます。
診断が必要になるタイミング
脆弱性診断は、以下のような5つのタイミングで実施されることが多いです。
- 新規システムの公開前:Webサイトやアプリケーションを一般公開する前に実施することで、リリース後の脆弱性発覚を防ぎます
- 大規模なシステム改修後:機能追加や仕様変更により、新たな脆弱性が混入する可能性があるため診断が推奨されます
- 取引先からの要請:親会社や大手取引先から、サプライチェーンセキュリティの一環として診断実施を求められるケースが増えています
- 個人情報を扱う際:顧客情報やクレジットカード情報など、重要データを扱うシステムでは定期的な診断が必要です
- インシデント発生後:実際に攻撃を受けた後、再発防止のために全体的な脆弱性を洗い出す必要があります
IPA(独立行政法人情報処理推進機構)の「情報セキュリティ10大脅威 2024」によれば、ランサムウェア攻撃やサプライチェーン攻撃が上位にランクインしており、事前の脆弱性診断による予防が重要視されています。
診断の種類と違い
脆弱性診断には大きく分けてWebアプリケーション診断とプラットフォーム診断の2種類があります。
Webアプリケーション診断は、Webサイトやオンラインサービスのアプリケーション層を対象とした診断です。SQLインジェクションやクロスサイトスクリプティング(XSS)といった、アプリケーション固有の脆弱性を発見します。主に開発したプログラムコードに起因する脆弱性が対象となります。
一方、プラットフォーム診断は、サーバーやネットワーク機器などのインフラ層を対象とした診断です。不要なポートの開放、OSやミドルウェアの古いバージョン使用、不適切なアクセス制御設定などを検出します。システムの基盤部分に潜むリスクを発見することが目的です。
初めて診断を依頼する場合、外部から直接アクセスできるWebサイトを対象としたWebアプリケーション診断から始める企業が多い傾向にあります。予算に応じて、段階的に診断範囲を広げていくアプローチが現実的と言えるでしょう。
ステップ1:診断対象システムの洗い出しと優先順位付け
脆弱性診断を効果的に実施するための第一歩は、自社で運用しているシステムを正確に把握し、診断対象を明確にすることです。ここで対象を適切に選定できるかどうかが、診断の成否を左右します。
診断対象の特定方法
まず、社内で運用している全てのシステムをリスト化することから始めます。具体的には以下のような項目を整理します。
- 公開Webサイト(コーポレートサイト、ECサイト、採用サイトなど)
- 顧客向けWebアプリケーション(会員サイト、予約システムなど)
- 社内システム(業務アプリケーション、グループウェアなど)
- 外部からアクセス可能なサーバーやネットワーク機器
- クラウドサービス上で運用しているシステム
この段階では、システムの名称、URL、管理部署、外部からのアクセス可否などを一覧表にまとめると良いでしょう。思いがけず、把握していなかったシステムが見つかることも珍しくありません。
優先順位の決め方
すべてのシステムを一度に診断するのは予算的にも難しい場合が多いため、重要度と公開状況に基づいて優先順位をつけます。
最優先で診断すべきは、外部からアクセス可能で個人情報や機密情報を扱うシステムです。例えば、顧客の氏名・住所・メールアドレスを管理する会員サイトや、クレジットカード決済機能を持つECサイトなどが該当します。これらは攻撃者の標的になりやすく、情報漏洩時の影響も甚大です。
次に優先度が高いのは、外部公開されているが個人情報を扱わないシステムです。コーポレートサイトや製品紹介サイトなどが該当し、情報漏洩リスクは低いものの、改ざんされると企業の信用に関わります。
社内システムは外部から直接攻撃されるリスクは低いですが、VPN経由でアクセス可能な場合や、取引先とのデータ連携がある場合は診断対象に含めることを検討します。
診断範囲の決定
予算に応じて診断範囲を絞り込む必要がある場合、段階的なアプローチが有効です。例えば、初年度は最も重要な顧客向けWebサイトのみを診断し、翌年度にはECサイトのカート機能、3年目には社内システムへと範囲を広げていく方法です。
また、診断の深さも調整可能です。自動診断ツールによる基本的な脆弱性チェックから始め、予算が許せば専門家による手動診断(マニュアル診断)を追加することで、より高度な脆弱性も発見できるようになります。
よくある失敗パターン
診断対象の洗い出しでよくある失敗は、テスト環境や開発環境の存在を見落とすことです。本番環境だけでなく、外部からアクセス可能なテスト環境も攻撃対象となり得るため、診断対象に含める必要があります。
また、子会社や関連会社が運用するシステムを見落とすケースもあります。グループ全体でのサプライチェーンセキュリティを考える場合、グループ企業のシステムも含めた診断を検討すべきです。
実際にある企業では、診断依頼後に「以前に外注して作った採用サイトの存在を忘れていた」という事例があり、診断範囲の見直しが必要になったことがありました。事前の丁寧な洗い出しが重要です。
ステップ2:社内情報の整理と必要書類の準備
診断対象が決まったら、次に診断業者へ提供する情報や社内で準備すべき書類を整理します。この準備が不十分だと、診断開始が遅れたり、診断品質が低下したりする可能性があります。
収集すべき技術情報
診断業者に提供する技術情報として、以下のような資料を準備します。
- システム構成図:サーバー、ネットワーク機器、データベースなどの配置を示した図
- アプリケーション仕様書:主要な機能、画面遷移、データフローなどを記載した資料
- ログイン情報:会員制サイトなど、ログインが必要なシステムの場合、テストアカウント情報
- 使用技術の一覧:プログラミング言語、フレームワーク、ミドルウェア、OS、データベースなどのバージョン情報
これらの情報があることで、診断業者はより効率的かつ正確に診断を実施できます。特にログイン後の機能を診断する場合、テストアカウントの準備は必須となります。
契約関係の確認事項
見落としがちですが重要なのが、システム開発ベンダーやホスティング事業者との契約内容の確認です。多くのサーバー契約では、脆弱性診断のような負荷テストを実施する際に事前承認が必要と規定されています。
承認なしに診断を実施すると、サーバー会社から攻撃とみなされてアクセス遮断されたり、最悪の場合は契約違反となる可能性があります。診断を依頼する前に、ホスティング事業者やクラウドサービスプロバイダーに診断実施の許可を取得しておくことが重要です。
また、システムを外部ベンダーに開発委託している場合、診断実施について開発ベンダーへの事前通知や、診断結果の共有に関する合意も必要になることがあります。
準備すべき社内資料
診断をスムーズに進めるために、以下の4つの社内資料を準備しておくと良いでしょう。
- 緊急連絡体制表:診断中に問題が発生した場合の連絡先と担当者を明確にした資料
- システム変更履歴:過去6ヶ月程度の主要な変更内容をまとめた資料
- 過去のインシデント記録:以前に発生したセキュリティ関連の問題や障害の記録(あれば)
- 情報資産リスト:システムが扱う情報の種類と重要度を整理した資料
これらの資料は、診断業者が診断計画を立てる際の参考情報となり、より実効性の高い診断につながります。
ステップ3:診断業者の選定と見積もり依頼
必要な情報が揃ったら、いよいよ診断業者の選定と見積もり依頼に進みます。業者選びは診断品質を左右する重要なステップです。
業者選定の3つの基準
診断業者を選ぶ際には、以下の3つの基準で評価することをおすすめします。
1. 実績と専門性
診断実施件数や、自社の業種・システム規模に近い実績があるかを確認します。金融、医療、ECなど、業種によって求められるセキュリティ水準が異なるため、同業種での実績は重要な判断材料です。また、診断員の保有資格(CEH、CISSP、情報処理安全確保支援士など)も専門性を示す指標となります。
2. 診断体制と対応力
診断を実施する技術者の人数や経験年数、診断中のサポート体制を確認します。診断期間中に疑問や問題が生じた際、迅速に対応できる体制が整っているかは重要です。また、報告書の納品後も質問に答えてくれるか、改修後の再診断サービスがあるかなども確認ポイントです。
3. 報告書の品質
診断報告書のサンプル(秘密情報を除いたもの)を見せてもらい、内容の分かりやすさを確認します。技術者ではない経営層にも理解できる記載があるか、発見された脆弱性への対策方法が具体的に記載されているか、優先度が明確かなどをチェックします。
見積もり依頼時の必須情報
診断業者に正確な見積もりを出してもらうには、以下の5つの情報を提供する必要があります。
- 診断対象のURL・IPアドレス:診断対象システムの具体的なアクセス先
- システム規模:画面数、機能数、入力フォーム数など
- 診断種別:Webアプリケーション診断かプラットフォーム診断か、両方か
- 診断方式の希望:自動診断のみか、手動診断も含めるか
- 希望納期:診断実施時期と報告書提出期限
これらの情報が明確でないと、見積もり金額に大きな幅が出たり、後で追加費用が発生したりする可能性があります。
費用相場の目安
脆弱性診断の費用は、診断対象のシステム規模や診断の深さによって大きく変動しますが、一般的な相場は以下の通りです。
- 小規模Webサイト(自動診断中心):10万円〜30万円
- 中規模Webサイト(手動診断含む):30万円〜100万円
- 大規模Webサイト・ECサイト(詳細診断):100万円〜300万円以上
- プラットフォーム診断:50万円〜150万円
初めて診断を依頼する場合、まずは自動診断と簡易的な手動診断を組み合わせた30万円〜50万円程度のプランから始めるのが現実的です。予算が限られる場合は、最も重要な機能(ログイン機能や決済機能など)に絞って診断を受ける方法もあります。
注意すべき業者の特徴
以下のような特徴を持つ業者は避けた方が無難です。
- 極端に安価な見積もり:自動診断ツールを走らせるだけで、専門家の目視確認がない可能性があります
- 実績の提示を拒む:守秘義務を理由に一切の実績開示を拒否する場合、実際の経験が乏しい可能性があります
- 診断範囲が不明確:何をどこまで診断するのか明確に説明できない業者は、後でトラブルになりやすいです
複数社から見積もりを取り、内容と価格を比較検討することをおすすめします。
ステップ4:診断実施前の社内調整と環境準備
診断業者が決まり、契約を締結したら、診断実施前に社内調整と環境準備を行います。この段階での準備不足が、診断の遅延や精度低下につながることがあります。
関係部署への周知方法
脆弱性診断の実施について、社内の関係部署に事前周知することが重要です。特に以下の部門への連絡は必須です。
- 開発チーム:診断期間中のシステム変更禁止について合意を得る
- 運用チーム:診断トラフィックによるアラート発生の可能性を伝え、誤って遮断しないよう依頼
- カスタマーサポート:診断中に顧客からの問い合わせがあった場合の対応方法を共有
- 経営層:診断の目的と期待される成果を報告し、必要に応じて予算承認を得る
実際にある企業では、運用チームへの事前連絡を怠ったため、診断開始直後に「不正アクセスを検知した」として診断業者のIPアドレスを遮断してしまい、診断が中断するトラブルが発生しました。このような事態を避けるため、診断実施日時と診断元IPアドレスを事前に共有しておくことが大切です。
診断期間中の制約事項
脆弱性診断を正確に実施するため、診断期間中は以下のような制約が発生します。関係者に理解を得ておくことが重要です。
- システム変更の禁止:診断開始後にプログラムや設定を変更すると、診断結果の信頼性が損なわれます
- アクセス制限の一時解除:IP制限などのアクセス制御を診断業者のために一時的に緩める必要がある場合があります
- ログ監視の調整:診断トラフィックを攻撃とみなさないよう、監視ルールを調整する必要があります
診断期間は通常1週間〜2週間程度ですが、この間は基本的にシステムの凍結期間と考え、緊急のバグ修正や機能追加は避けるようスケジュールを調整します。
テスト環境の準備
本番環境での診断にはリスクが伴うため、可能であればテスト環境や検証環境での診断も検討します。特に以下のような場合は、テスト環境での診断が推奨されます。
- 24時間365日稼働が求められるサービス
- 診断によるシステム負荷が懸念される場合
- 診断中に万一の障害が発生した際の影響が大きい場合
ただし、テスト環境と本番環境の構成が大きく異なる場合、テスト環境の診断結果が本番環境にそのまま当てはまらない可能性があります。この点は診断業者と相談の上、最適な診断方法を選択します。
本番環境で診断を実施する場合でも、利用者の少ない深夜や休日に診断時間を設定することで、サービスへの影響を最小限に抑えることができます。
ステップ5:診断結果の受領と対応計画の立案
診断が完了すると、診断業者から診断報告書が提出されます。この報告書を正しく理解し、適切な対応計画を立てることが、診断を実施する最大の目的です。
診断報告書の読み方
診断報告書には通常、以下のような情報が記載されています。
- エグゼクティブサマリー:診断結果の概要を経営層向けに要約したセクション
- 発見された脆弱性の一覧:各脆弱性の内容、危険度、該当箇所が詳細に記載されています
- CVSSスコア:脆弱性の深刻度を0〜10の数値で示した国際標準指標
- 対策方法:各脆弱性に対する具体的な修正方法や回避策
- 再現手順:診断員がどのように脆弱性を発見したかの手順(技術的な内容)
CVSSスコアは特に重要な指標で、9.0〜10.0が「緊急(Critical)」、7.0〜8.9が「重要(High)」、4.0〜6.9が「警告(Medium)」、0.1〜3.9が「注意(Low)」と分類されます。このスコアを基に対応の優先順位を判断します。
報告書の内容が技術的で理解しづらい場合は、診断業者に説明会の開催を依頼することができます。多くの業者は報告書提出後、30分〜1時間程度の報告会を実施し、重要な脆弱性について分かりやすく解説してくれます。
対応優先度の決定
発見されたすべての脆弱性を即座に修正するのは現実的ではありません。リスクベースで優先順位をつけることが重要です。
最優先で対応すべきは、CVSSスコアが7.0以上の脆弱性です。これらは攻撃者に悪用されると重大な被害につながる可能性が高く、早急な対処が求められます。特に、外部から直接攻撃可能で、個人情報や機密情報への不正アクセスが可能になる脆弱性は即座に対応すべきです。
次に対応すべきは、CVSSスコアが4.0〜6.9の中程度の脆弱性です。これらは単独では深刻な被害につながりにくいものの、他の脆弱性と組み合わせて悪用される可能性があります。次回のシステムメンテナンス時に修正を計画します。
CVSSスコアが4.0未満の低い脆弱性については、リソースに余裕がある場合に対応を検討します。ただし、「低い脆弱性だから放置してよい」というわけではなく、将来的には対処することが望ましいです。
改修計画の立て方
脆弱性の対応には、以下のような改修計画を立てます。
- 緊急対応(1週間以内):Critical/Highレベルの脆弱性で、即座に攻撃される可能性が高いもの
- 短期対応(1ヶ月以内):Highレベルの脆弱性で、次回の定期メンテナンスで修正可能なもの
- 中期対応(3ヶ月以内):Mediumレベルの脆弱性で、計画的な改修が必要なもの
- 長期対応(6ヶ月以内):Lowレベルの脆弱性や、大規模な改修が必要なもの
各脆弱性について、対応担当者、対応期限、対応方法を明確にした脆弱性対応管理表を作成し、進捗を追跡します。
また、システム改修が困難な場合は、**一時的な回避策(ワークアラウンド)**を実施することもあります。例えば、アプリケーションの修正が間に合わない場合、WAF(Web Application Firewall)で特定の攻撃パターンを遮断するなどの暫定対応を取り、根本的な修正は後日実施する方法です。
対応完了後は、診断業者に再診断を依頼し、脆弱性が適切に修正されたことを確認します。多くの診断業者は、修正後の再診断を無料または割引価格で提供しています。
脆弱性診断でよくある質問と誤解
脆弱性診断を初めて依頼する企業からよく寄せられる質問と、それに対する回答をまとめます。
診断で見つかった問題は必ず修正すべきか
診断で発見された脆弱性すべてを必ず修正しなければならないわけではありません。重要なのはリスクを理解した上で判断することです。
例えば、社内ネットワークからしかアクセスできないシステムの軽微な脆弱性や、攻撃が成功しても実害が限定的な脆弱性については、修正コストと被害リスクを比較し、リスク受容という選択肢もあります。
ただし、リスク受容を選択する場合は、その判断理由と想定されるリスクを文書化し、経営層の承認を得ておくことが重要です。また、将来的には対応することを前提に、定期的に見直す仕組みを作っておくべきです。
診断は1回やれば十分か
脆弱性診断は一度実施すれば終わりではなく、定期的に実施することが重要です。その理由は以下の通りです。
- システムの機能追加や変更により、新たな脆弱性が混入する可能性がある
- 新しい攻撃手法が日々発見されており、以前は問題なかった箇所が脆弱になることがある
- 使用しているソフトウェアやライブラリに新しい脆弱性が発見されることがある
一般的には、年に1回の定期診断が推奨されます。また、大規模なシステム改修後やセキュリティインシデント発生後には、臨時の診断を実施することも検討すべきです。
JPCERT/CC(一般社団法人JPCERTコーディネーションセンター)の報告によれば、新たな脆弱性は毎年数千件規模で発見されており、継続的なセキュリティ対策が不可欠とされています。
診断中にシステムは停止するか
多くの場合、脆弱性診断中もシステムは通常通り稼働します。診断は実際の攻撃とは異なり、システムを破壊したりデータを改ざんしたりすることはありません。
ただし、診断によって以下のような影響が出る可能性はあります。
- 診断トラフィックによる一時的なサーバー負荷の増加
- セキュリティ監視システムによるアラート発生
- 負荷が高い診断を実施する際の一部機能の応答遅延
これらの影響を最小限にするため、診断業者と事前に診断スケジュールや負荷レベルについて相談し、利用者の少ない時間帯に診断を実施するなどの調整を行います。
万一、診断中にシステム障害が発生した場合の連絡体制と対応手順を事前に決めておくことも重要です。
まとめ
この記事では、脆弱性診断を初めて依頼する企業が押さえるべき5つのステップについて解説しました。重要なポイントを再確認しましょう。
- ステップ1:診断対象システムを洗い出し、重要度と公開状況に基づいて優先順位をつける
- ステップ2:システム構成図やログイン情報などの技術情報を整理し、ホスティング事業者への事前承認を取得する
- ステップ3:実績・診断体制・報告書品質の3つの基準で診断業者を選定し、正確な見積もりを取得する
- ステップ4:関係部署に事前周知し、診断期間中のシステム変更を禁止するなど環境を整備する
- ステップ5:診断報告書のCVSSスコアを基に優先順位をつけ、期限と担当者を明確にした改修計画を立てる
脆弱性診断は、攻撃される前にシステムの弱点を発見し、リスクを低減するための予防的な投資です。専門知識がなくても、この記事で紹介した手順に沿って準備を進めれば、スムーズに診断を依頼できます。
サイバー攻撃による被害は年々増加しており、IPA「情報セキュリティ10大脅威 2024」でもランサムウェアやサプライチェーン攻撃が上位にランクインしています。被害が発生してからでは遅く、事前の対策が何より重要です。
まずは自社の最も重要なシステムから、脆弱性診断の第一歩を踏み出してみてはいかがでしょうか。不明な点があれば、専門の診断業者に相談することで、自社に最適な診断方法についてアドバイスを得ることができます。
関連記事
脆弱性診断で相見積もりを取る正しい方法|3社比較で最適な業者を選ぶ
脆弱性診断の発注を検討する際、「複数の業者から見積もりを取ったものの、どう比較すればいいかわからない」という悩みを抱えていませんか。価格が2倍以上違うケースや、診断内容が曖昧で判断できないといった課題は、多くの企業が直面する共通の問題です。
脆弱性診断の費用対効果を計算する方法|投資対効果を数値で示すテクニック
脆弱性診断の導入を検討しているものの、経営層から「その投資に見合う効果はあるのか」と問われて説明に困った経験はないでしょうか。セキュリティ対策は目に見える成果が出にくいため、費用対効果を数値で示すことが難しいと感じる担当者は少なくありません。
脆弱性診断を発注するまでの社内承認手順|スムーズに進める7ステップ
サイバー攻撃が巧妙化する中、脆弱性診断の必要性を感じながらも、社内承認のプロセスで苦労している担当者の方は多いのではないでしょうか。「経営層にどう説明すればいいかわからない」「稟議が通らない」といった悩みは、多くの企業で共通しています。