脆弱性診断とは、Webサイトやサーバー、ネットワーク機器などに、攻撃者に悪用されうる弱点(脆弱性)がないかを専門的な手法で調べることです。ただし、本当に考えるべきなのは「診断を受けるかどうか」ではなく、「脆弱性が悪用されるまでの時間」に対して、自社の確認の頻度が追いついているかという点です。
Google Cloud(Mandiant)の分析によると、脆弱性が公開されてから悪用されるまでの平均日数(Time-to-Exploit)は、2018〜2019年の63日から、2023年には5日まで短くなりました(外れ値を除いた平均。除かない場合は47日)。年に1回の診断だけでは、その間に公開された脆弱性への備えに大きな「空白」が残ります。本記事では、この攻撃者の時間軸という視点から、脆弱性診断の種類、選び方、頻度の組み立て方を解説します。
脆弱性が悪用されるまでの時間は短くなっている

Mandiantは、2023年に公開され、実際に悪用が確認された138件の脆弱性を分析しています。
| 項目 | 内容(Mandiantの分析) |
|---|---|
| 平均Time-to-Exploit | 2018〜19年:63日 → 2020〜21年初:44日 → 2021〜22年:32日 → 2023年:5日 |
| 2023年の注意点 | 5日は統計的な外れ値15件を除いた平均。除かない場合は47日 |
| 分析対象 | 2023年に公開され、悪用が確認された138件 |
| 内訳 | ゼロデイ(修正前に悪用)97件、Nデイ(修正公開後に悪用)41件 |
この数字が示すのは、「脆弱性が公開されたら、数日から数週間のうちに悪用される可能性がある」という現実です。年に1回の診断で問題がなかったとしても、その翌週に利用しているソフトウェアの脆弱性が公開されれば、次の診断までの約1年間、その脆弱性は残り続けるかもしれません。
脆弱性診断の種類
脆弱性診断にはいくつかの種類があり、調べる対象と方法が異なります。
| 種類 | 対象 | 主に見つかるもの |
|---|---|---|
| Webアプリケーション診断 | Webサイト、Webシステム、API | SQLインジェクション、クロスサイトスクリプティング、認証・認可の不備など |
| プラットフォーム(ネットワーク)診断 | サーバー、ネットワーク機器、OS、ミドルウェア | 古いバージョンのソフトウェア、不要な公開ポート、設定の不備 |
| クラウド設定診断 | クラウドサービスの設定 | 公開設定の誤り、過剰な権限、ログの未設定 |
| スマートフォンアプリ診断 | iOS・Androidアプリ | 通信の暗号化の不備、端末内のデータの保存方法 |
| ソースコード診断 | プログラムのソースコード | 実装上の脆弱性(動かさずにコードから検出) |
| ペネトレーションテスト | 組織のシステム全体(目的を決めて実施) | 実際に侵入できるか、どこまで到達できるか |
脆弱性診断とペネトレーションテストの違い
脆弱性診断は、決められた範囲を網羅的に調べ、脆弱性の一覧を作ることが目的です。ペネトレーションテストは、「顧客情報にたどり着けるか」といった目的を設定し、攻撃者の視点で実際に侵入を試みるものです。網羅性の脆弱性診断、実際の被害の可能性を確かめるペネトレーションテスト、という役割の違いがあります。中小企業の場合、まずは公開しているWebサイトやシステムの脆弱性診断から始めるのが現実的です。
ツール診断と手動診断
| 方法 | 特徴 | 向いている場面 |
|---|---|---|
| ツール診断 | 自動ツールで広く速く確認。既知のパターンの検出が得意 | 定期的・頻繁な確認、変更後の簡易確認 |
| 手動診断 | 専門家が操作し、業務の流れや権限の不備を確認 | 重要なシステム、ログインや決済などの機能 |
ツールが見つけにくいのは、「他人の注文情報が見えてしまう」「一般ユーザーが管理者の機能を使える」といった、業務のロジックや権限に関わる脆弱性です。こうした脆弱性は被害が大きくなりやすいため、重要なシステムでは手動診断を組み合わせることが重要です。
診断を「常時・変更時・定期」の3層で組み立てる

攻撃者の時間軸に対応するには、年に1回の診断だけに頼るのではなく、頻度の異なる確認を組み合わせることが有効です。
| 層 | 頻度 | 内容 | 主な担い手 |
|---|---|---|---|
| 常時 | 毎日〜毎週 | 外部に公開している資産の把握、既知の脆弱性の自動スキャン、悪用情報の確認 | 社内またはツール・委託先 |
| 変更時 | リリースのたび | 新機能や大きな改修の前に、変更した範囲を診断 | 開発チーム・委託先 |
| 定期 | 年1回など | 専門家による手動の診断で、設計上の弱点を洗い出す | 診断の専門事業者 |
| 必要時 | 重要システムで | 目的を決めたペネトレーションテスト | 診断の専門事業者 |
最初の一歩は「公開資産の棚卸し」
診断の前にやるべきことは、インターネットに公開しているものを把握することです。担当者が把握していない古いキャンペーンサイト、検証用のサーバー、退職者が作った管理画面などは、診断の対象から漏れやすく、攻撃の入口になりがちです。
- 自社のドメインとサブドメインの一覧がある
- 公開しているWebサイト・システム・管理画面の一覧と担当者が決まっている
- 利用しているCMS・ミドルウェア・プラグインとバージョンを把握している
- 使っていないサイトやサーバーを停止する手順がある
- クラウドサービスの公開設定を確認する担当者がいる
委託先の選び方
診断を外部に委託する場合、品質の目安になるのが、経済産業省の「情報セキュリティサービス基準」です。IPAは、この基準に適合すると審査登録機関が認めたサービスを「情報セキュリティサービス基準適合サービスリスト」として公開しています。リストは、情報セキュリティ監査、脆弱性診断、デジタルフォレンジック、セキュリティ監視・運用のカテゴリに分かれています。掲載期間には期限があるため、最新の掲載状況を確認しましょう。
| 確認する点 | 見るべきポイント |
|---|---|
| 診断の範囲 | 画面・機能・API・サーバーのどこまでを対象にするか |
| 方法 | ツールのみか、手動診断を含むか |
| 診断員の体制 | 担当者の経験、品質の確認の体制 |
| 報告書 | 再現手順、危険度の根拠、修正方法の具体性 |
| 再診断 | 修正後の確認が含まれるか、追加の費用はどうか |
| 本番環境への影響 | 診断の時間帯、負荷、データへの影響の扱い |
費用は、対象の規模(画面数やリクエスト数、サーバーの台数)や手動診断の有無で大きく変わります。複数の事業者から、同じ範囲で見積もりを取って比較することをおすすめします。
報告書の読み方:「深刻度」と「悪用の可能性」を分けて考える
診断の報告書には、多くの場合、脆弱性ごとに深刻度(高・中・低など)が記載されています。ただし、深刻度が高いものから機械的に対応すると、本当に危ないものの対応が遅れることがあります。
| 観点 | 確認すること |
|---|---|
| 深刻度 | 悪用された場合の影響の大きさ(CVSSなど) |
| 悪用の状況 | すでに悪用が確認されているか(CISAのKEVカタログなど) |
| 到達しやすさ | インターネットから直接到達できるか、ログインが必要か |
| 守るべき情報 | 個人情報や決済情報など、重要な情報に関わるか |
深刻度と悪用状況を組み合わせた優先順位のつけ方は、CVEとは?脆弱性への対応と優先順位のつけ方で詳しく解説しています。修正が終わったら、必ず再診断で修正が有効かを確認しましょう。
中小企業が最初に取り組む順番
| 順番 | 取り組み |
|---|---|
| 1 | 公開資産の棚卸しと、使っていないサイトの停止 |
| 2 | CMS・プラグイン・OSの更新を定期的に行う仕組み |
| 3 | 問い合わせフォームや会員機能など、重要な画面の脆弱性診断 |
| 4 | 診断結果の修正と再診断 |
| 5 | 新機能のリリース前の確認を開発の手順に組み込む |
セキュリティ対策の全体像は中小企業のセキュリティ対策の基本、生成AIに関わるリスクは生成AIの情報漏えいリスクと対策もご覧ください。
FlowStack Labsの見解:脆弱性診断は「イベント」ではなく「仕組み」にする
多くの企業では、脆弱性診断が「年に1回のイベント」になっています。報告書を受け取り、修正して、また1年後に診断する。しかし、脆弱性が数日で悪用されうる時代には、このリズムでは追いつけません。
私たちがおすすめしているのは、診断を開発と運用の流れの中に組み込むことです。公開資産の一覧を常に最新に保ち、既知の脆弱性は自動で検知し、リリースのたびに変更範囲を確認する。そのうえで、年に1回の専門家による手動診断で、ツールでは見つからない設計上の弱点を洗い出す。この組み合わせによって、診断は「点」から「線」になります。
また、AIを使った開発が広がるほど、短期間で多くのコードが書かれるようになります。生成AIが書いたコードの脆弱性についてはAIが書いたコードの脆弱性で解説しています。開発のスピードが上がった分、確認の仕組みも同じスピードで回すことが、これからの脆弱性対策の前提だと考えています。
よくある質問
Q脆弱性診断はどのくらいの頻度で受けるべきですか?
専門家による手動診断は年に1回を目安にしつつ、新機能のリリース時や大きな改修時にも実施することをおすすめします。加えて、既知の脆弱性の自動スキャンや、利用しているソフトウェアの脆弱性情報の確認を日常的に行うことが重要です。
Q小さな会社のホームページでも脆弱性診断は必要ですか?
問い合わせフォームや会員機能など、個人情報を扱う機能がある場合は特に重要です。まずはCMSやプラグインを最新に保ち、使っていないサイトを停止することから始め、重要な機能について診断を検討しましょう。
Q脆弱性診断とペネトレーションテストはどちらを選べばよいですか?
網羅的に脆弱性を洗い出したい場合は脆弱性診断、特定の目的(重要な情報に到達できるかなど)について実際の被害の可能性を確かめたい場合はペネトレーションテストが向いています。多くの中小企業では、脆弱性診断から始めるのが現実的です。
Q委託先はどのように選べばよいですか?
IPAが公開している「情報セキュリティサービス基準適合サービスリスト」は、品質の目安の1つになります。そのうえで、診断の範囲、手動診断の有無、報告書の具体性、再診断の有無を比較して選びましょう。
Q無料の診断ツールだけで十分ですか?
既知の脆弱性の検出には役立ちますが、業務のロジックや権限に関わる脆弱性は見つけにくい傾向があります。重要なシステムでは、専門家による手動診断を組み合わせることをおすすめします。また、自社が管理していないシステムには使わないでください。
まとめ
- 脆弱性診断は、攻撃者に悪用されうる弱点を専門的な手法で調べることです。
- Mandiantの分析では、脆弱性が悪用されるまでの平均日数は2023年に5日(外れ値を除いた平均)まで短くなっています。
- 年に1回の診断だけでなく、常時・変更時・定期・必要時の4つの頻度で組み立てることが有効です。
- 委託先は、IPAの基準適合サービスリストを目安に、範囲、方法、報告書、再診断で比較しましょう。
- 報告書は、深刻度と悪用の状況を分けて読み、修正後は再診断で確認します。
公開資産の棚卸し、脆弱性への対応を開発・運用の流れに組み込む仕組みづくりは、FlowStack Labsの無料相談でご相談いただけます。

