脆弱性診断とは、Webサイトやサーバー、ネットワーク機器などに、攻撃者に悪用されうる弱点(脆弱性)がないかを専門的な手法で調べることです。ただし、本当に考えるべきなのは「診断を受けるかどうか」ではなく、「脆弱性が悪用されるまでの時間」に対して、自社の確認の頻度が追いついているかという点です。

Google Cloud(Mandiant)の分析によると、脆弱性が公開されてから悪用されるまでの平均日数(Time-to-Exploit)は、2018〜2019年の63日から、2023年には5日まで短くなりました(外れ値を除いた平均。除かない場合は47日)。年に1回の診断だけでは、その間に公開された脆弱性への備えに大きな「空白」が残ります。本記事では、この攻撃者の時間軸という視点から、脆弱性診断の種類、選び方、頻度の組み立て方を解説します。

脆弱性が悪用されるまでの時間は短くなっている

脆弱性が悪用されるまでの平均日数(Mandiantの分析)
脆弱性が悪用されるまでの平均日数(Mandiantの分析)

Mandiantは、2023年に公開され、実際に悪用が確認された138件の脆弱性を分析しています。

項目内容(Mandiantの分析)
平均Time-to-Exploit2018〜19年:63日 → 2020〜21年初:44日 → 2021〜22年:32日 → 2023年:5日
2023年の注意点5日は統計的な外れ値15件を除いた平均。除かない場合は47日
分析対象2023年に公開され、悪用が確認された138件
内訳ゼロデイ(修正前に悪用)97件、Nデイ(修正公開後に悪用)41件

この数字が示すのは、「脆弱性が公開されたら、数日から数週間のうちに悪用される可能性がある」という現実です。年に1回の診断で問題がなかったとしても、その翌週に利用しているソフトウェアの脆弱性が公開されれば、次の診断までの約1年間、その脆弱性は残り続けるかもしれません。

脆弱性診断の種類

脆弱性診断にはいくつかの種類があり、調べる対象と方法が異なります。

種類対象主に見つかるもの
Webアプリケーション診断Webサイト、Webシステム、APISQLインジェクション、クロスサイトスクリプティング、認証・認可の不備など
プラットフォーム(ネットワーク)診断サーバー、ネットワーク機器、OS、ミドルウェア古いバージョンのソフトウェア、不要な公開ポート、設定の不備
クラウド設定診断クラウドサービスの設定公開設定の誤り、過剰な権限、ログの未設定
スマートフォンアプリ診断iOS・Androidアプリ通信の暗号化の不備、端末内のデータの保存方法
ソースコード診断プログラムのソースコード実装上の脆弱性(動かさずにコードから検出)
ペネトレーションテスト組織のシステム全体(目的を決めて実施)実際に侵入できるか、どこまで到達できるか

脆弱性診断とペネトレーションテストの違い

脆弱性診断は、決められた範囲を網羅的に調べ、脆弱性の一覧を作ることが目的です。ペネトレーションテストは、「顧客情報にたどり着けるか」といった目的を設定し、攻撃者の視点で実際に侵入を試みるものです。網羅性の脆弱性診断、実際の被害の可能性を確かめるペネトレーションテスト、という役割の違いがあります。中小企業の場合、まずは公開しているWebサイトやシステムの脆弱性診断から始めるのが現実的です。

ツール診断と手動診断

方法特徴向いている場面
ツール診断自動ツールで広く速く確認。既知のパターンの検出が得意定期的・頻繁な確認、変更後の簡易確認
手動診断専門家が操作し、業務の流れや権限の不備を確認重要なシステム、ログインや決済などの機能

ツールが見つけにくいのは、「他人の注文情報が見えてしまう」「一般ユーザーが管理者の機能を使える」といった、業務のロジックや権限に関わる脆弱性です。こうした脆弱性は被害が大きくなりやすいため、重要なシステムでは手動診断を組み合わせることが重要です。

診断を「常時・変更時・定期」の3層で組み立てる

脆弱性診断を「3層」で組み立てる
脆弱性診断を「3層」で組み立てる

攻撃者の時間軸に対応するには、年に1回の診断だけに頼るのではなく、頻度の異なる確認を組み合わせることが有効です。

層頻度内容主な担い手
常時毎日〜毎週外部に公開している資産の把握、既知の脆弱性の自動スキャン、悪用情報の確認社内またはツール・委託先
変更時リリースのたび新機能や大きな改修の前に、変更した範囲を診断開発チーム・委託先
定期年1回など専門家による手動の診断で、設計上の弱点を洗い出す診断の専門事業者
必要時重要システムで目的を決めたペネトレーションテスト診断の専門事業者

最初の一歩は「公開資産の棚卸し」

診断の前にやるべきことは、インターネットに公開しているものを把握することです。担当者が把握していない古いキャンペーンサイト、検証用のサーバー、退職者が作った管理画面などは、診断の対象から漏れやすく、攻撃の入口になりがちです。

  • 自社のドメインとサブドメインの一覧がある
  • 公開しているWebサイト・システム・管理画面の一覧と担当者が決まっている
  • 利用しているCMS・ミドルウェア・プラグインとバージョンを把握している
  • 使っていないサイトやサーバーを停止する手順がある
  • クラウドサービスの公開設定を確認する担当者がいる

委託先の選び方

診断を外部に委託する場合、品質の目安になるのが、経済産業省の「情報セキュリティサービス基準」です。IPAは、この基準に適合すると審査登録機関が認めたサービスを「情報セキュリティサービス基準適合サービスリスト」として公開しています。リストは、情報セキュリティ監査、脆弱性診断、デジタルフォレンジック、セキュリティ監視・運用のカテゴリに分かれています。掲載期間には期限があるため、最新の掲載状況を確認しましょう。

確認する点見るべきポイント
診断の範囲画面・機能・API・サーバーのどこまでを対象にするか
方法ツールのみか、手動診断を含むか
診断員の体制担当者の経験、品質の確認の体制
報告書再現手順、危険度の根拠、修正方法の具体性
再診断修正後の確認が含まれるか、追加の費用はどうか
本番環境への影響診断の時間帯、負荷、データへの影響の扱い

費用は、対象の規模(画面数やリクエスト数、サーバーの台数)や手動診断の有無で大きく変わります。複数の事業者から、同じ範囲で見積もりを取って比較することをおすすめします。

報告書の読み方:「深刻度」と「悪用の可能性」を分けて考える

診断の報告書には、多くの場合、脆弱性ごとに深刻度(高・中・低など)が記載されています。ただし、深刻度が高いものから機械的に対応すると、本当に危ないものの対応が遅れることがあります。

観点確認すること
深刻度悪用された場合の影響の大きさ(CVSSなど)
悪用の状況すでに悪用が確認されているか(CISAのKEVカタログなど)
到達しやすさインターネットから直接到達できるか、ログインが必要か
守るべき情報個人情報や決済情報など、重要な情報に関わるか

深刻度と悪用状況を組み合わせた優先順位のつけ方は、CVEとは?脆弱性への対応と優先順位のつけ方で詳しく解説しています。修正が終わったら、必ず再診断で修正が有効かを確認しましょう。

無料相談受付中

「自社の場合はどうすればいい?」を、専門スタッフと一緒に整理できます。

対象業務の洗い出しからツール選定・実装まで。初回のご相談は無料です。

中小企業が最初に取り組む順番

順番取り組み
1公開資産の棚卸しと、使っていないサイトの停止
2CMS・プラグイン・OSの更新を定期的に行う仕組み
3問い合わせフォームや会員機能など、重要な画面の脆弱性診断
4診断結果の修正と再診断
5新機能のリリース前の確認を開発の手順に組み込む

セキュリティ対策の全体像は中小企業のセキュリティ対策の基本、生成AIに関わるリスクは生成AIの情報漏えいリスクと対策もご覧ください。

FlowStack Labsの見解:脆弱性診断は「イベント」ではなく「仕組み」にする

多くの企業では、脆弱性診断が「年に1回のイベント」になっています。報告書を受け取り、修正して、また1年後に診断する。しかし、脆弱性が数日で悪用されうる時代には、このリズムでは追いつけません。

私たちがおすすめしているのは、診断を開発と運用の流れの中に組み込むことです。公開資産の一覧を常に最新に保ち、既知の脆弱性は自動で検知し、リリースのたびに変更範囲を確認する。そのうえで、年に1回の専門家による手動診断で、ツールでは見つからない設計上の弱点を洗い出す。この組み合わせによって、診断は「点」から「線」になります。

また、AIを使った開発が広がるほど、短期間で多くのコードが書かれるようになります。生成AIが書いたコードの脆弱性についてはAIが書いたコードの脆弱性で解説しています。開発のスピードが上がった分、確認の仕組みも同じスピードで回すことが、これからの脆弱性対策の前提だと考えています。

よくある質問

Q脆弱性診断はどのくらいの頻度で受けるべきですか?
A

専門家による手動診断は年に1回を目安にしつつ、新機能のリリース時や大きな改修時にも実施することをおすすめします。加えて、既知の脆弱性の自動スキャンや、利用しているソフトウェアの脆弱性情報の確認を日常的に行うことが重要です。

Q小さな会社のホームページでも脆弱性診断は必要ですか?
A

問い合わせフォームや会員機能など、個人情報を扱う機能がある場合は特に重要です。まずはCMSやプラグインを最新に保ち、使っていないサイトを停止することから始め、重要な機能について診断を検討しましょう。

Q脆弱性診断とペネトレーションテストはどちらを選べばよいですか?
A

網羅的に脆弱性を洗い出したい場合は脆弱性診断、特定の目的(重要な情報に到達できるかなど)について実際の被害の可能性を確かめたい場合はペネトレーションテストが向いています。多くの中小企業では、脆弱性診断から始めるのが現実的です。

Q委託先はどのように選べばよいですか?
A

IPAが公開している「情報セキュリティサービス基準適合サービスリスト」は、品質の目安の1つになります。そのうえで、診断の範囲、手動診断の有無、報告書の具体性、再診断の有無を比較して選びましょう。

Q無料の診断ツールだけで十分ですか?
A

既知の脆弱性の検出には役立ちますが、業務のロジックや権限に関わる脆弱性は見つけにくい傾向があります。重要なシステムでは、専門家による手動診断を組み合わせることをおすすめします。また、自社が管理していないシステムには使わないでください。

まとめ

  • 脆弱性診断は、攻撃者に悪用されうる弱点を専門的な手法で調べることです。
  • Mandiantの分析では、脆弱性が悪用されるまでの平均日数は2023年に5日(外れ値を除いた平均)まで短くなっています。
  • 年に1回の診断だけでなく、常時・変更時・定期・必要時の4つの頻度で組み立てることが有効です。
  • 委託先は、IPAの基準適合サービスリストを目安に、範囲、方法、報告書、再診断で比較しましょう。
  • 報告書は、深刻度と悪用の状況を分けて読み、修正後は再診断で確認します。

公開資産の棚卸し、脆弱性への対応を開発・運用の流れに組み込む仕組みづくりは、FlowStack Labsの無料相談でご相談いただけます。

参考資料