
この記事では、脆弱性管理が「終わらない」と言われる理由を構造的な観点から整理します。
ソフトウェアの巨大化、発見され続ける脆弱性、そして攻撃者が実際に利用できる脆弱性との違いを踏まえ、脆弱性管理の本質的な課題を考えます。
情報システム関連の方々から脆弱性管理について、こんな声を聞くことがあります。
脆弱性は、いったいいつまで増え続けるのだろうか。
この作業に「終わり」は来るのだろうか。
多くの企業ではすでに、脆弱性スキャンや診断を定期的に実施しています。
公開された脆弱性情報を確認し、自社で利用している製品やコンポーネントに影響がないかを個別に照合している、といった形で管理しているケースもあります。
診断結果の報告書も確認し、パッチ適用も行い、必要な対応は進めているはずです。
しかし、次の診断ではまた新しい脆弱性が見つかります。
似たような指摘が繰り返し現れることもあります。
共通のライブラリやコンポーネントに関する脆弱性が、複数の製品に影響するケースも少なくありません。
こうした現場での対応が続く一方で、世の中では新たに見つかる脆弱性件数もなかなか減っていません。
この状況について疑問を感じたことのある方も、少なくないのではないでしょうか。
実は、複数の専門家の指摘を総合すると、新たに見つかる脆弱性が減らないことには、いくつか構造的な理由があります。
ソフトウェアは巨大で、しかも長い歴史を持っている
現在広く利用されているOSや主要ソフトウェアの多くは、数千万行規模のコードで構成されていると言われています。
これらの多くはゼロから設計されたものではありません。
多くのプラットフォームでは、過去のアプリケーションとの互換性を維持するため、数十年前の設計思想やコードが残っていることも珍しくありません。
種類によってはネットワーク利用が想定されるより前の時代に「何かを実現する」ことを主眼で設計され、セキュリティは考慮されていなかったと指摘されるものもあります。
つまり現在も使用されているソフトウェアの一部は、
- 新しい機能
- 古い設計
- 長年の改修
が混在する「継ぎ足し構造」の上に成り立っています。
このような巨大で複雑なソフトウェアにおいて、潜在的な不具合や設計上の問題が完全になくなることを期待するのは、現実的には難しいと言えるでしょう。
脆弱性は増えているのではなく、見つかり続けている
IT製品の脆弱性を識別する共通番号として管理されているCVE(Common Vulnerabilities and Exposures)の単位では、近年は年間4万件に及ぶペースで公開されています(NVD統計より)。
この数字だけを見ると、「ソフトウェアはどんどん危険になっている」と感じるかもしれません。
しかし実際には、ソフトウェアの機能や構成が大規模化しているという「母数」の増加に加え、
- セキュリティ研究者の数の増加
- 脆弱性報告制度の整備
といった理由により、脆弱性が発見され、公開される仕組みが進化してきた側面もあります。
一つの脆弱性が発見されると、同じソフトウェアの周辺部分に類似の問題がないか調査され、関連する脆弱性が追加で見つかることもあります。
関連記事: SmarterMailの複数のCVEが実際に悪用されている事例
すべての脆弱性が同じ意味を持つわけではない
もう一つ重要な点があります。
公開される脆弱性の中でも、実際の攻撃で利用されるものには偏りがあります。
実際の攻撃では、
- 遠隔からコードを実行できる
- 権限を奪取できる
といった攻撃価値の高い弱点が重点的に狙われる傾向があります。
さらに近年の攻撃では、一つの致命的な脆弱性だけで侵入が成立するケースよりも、複数の弱点や設定不備を組み合わせて侵害を成立させるケースが多いと言われています。
また、深刻度が高いと評価されるものが、常にそれ以下のものを上回って悪用されるとも限らない点も留意すべき点です。

図:脆弱性は段階的に絞り込まれ、実際に対処すべき対象は限られる
脆弱性管理の課題は「数」ではない理由
ここまで見てくると、「脆弱性が多い」という事実そのものよりも、何が実際に攻撃につながるのかを見極めることの方が重要であることが分かります。
すべての脆弱性を同じ優先度で扱うことは、現実的ではありません。
しかし実際の運用では、多くの組織で
- 検出件数
- Severity(深刻度)
- パッチ適用状況
といった指標を手がかりに、脆弱性管理を進めているのが実情です。
もちろんこれらは重要な情報ですが、それだけでは「攻撃として成立するリスク」を必ずしも表しているとは限りません。
「数を減らす」から「攻撃を成立させない」へ
脆弱性管理に「完了」があるのかという問いに対して、明確な答えはありません。
しかし一つ確かなことがあります。
それは、IT環境から脆弱性そのものが完全になくなる期待は現実的ではありません。
だからこそ重要になるのは、脆弱性の数そのものではなく、
- 攻撃者が実際に利用できる弱点は何か
- どの組み合わせが侵害につながるのか
といった視点です。
脆弱性管理は、単に検出される問題の数を減らすことを目的とした取り組みではありません。
近年では、このような「攻撃が成立する条件」を実際の攻撃シナリオとして検証するアプローチも注目されています。
脆弱性管理とは、攻撃が成立する条件を理解し、それを崩していく取り組みと考える方が、本来あるべき姿と言えるのかもしれません。
まとめ
- 脆弱性は今後も発見され続ける
- すべての脆弱性を解決することは現実的ではない
- 重要なのは攻撃に利用されるリスクを把握すること
- 脆弱性管理では優先順位付けが重要になる
実際のセキュリティ運用では、重要なのは脆弱性の数ではなく、実際の攻撃につながるリスクを見極めることです。
攻撃シナリオを実際に検証するアプローチとして、
RidgeBot®によるセキュリティ検証の仕組みもご覧ください。