Skip to content

脆弱性診断進化論:変化する攻撃者と開発サイクルにどう挑むか

脆弱性診断進化論:変化する攻撃者と開発サイクルにどう挑むか

脆弱性診断とは(概要)

脆弱性診断とは、システムやアプリケーションに潜むセキュリティ上の弱点を発見し、攻撃や情報漏えいを未然に防ぐための取り組みです。もともとは、システムリスク管理の一環としてサーバやネットワーク機器などの脆弱性を把握し、対策の実施状況を確認する目的で行われてきました。年1回あるいは定期的に診断を実施し、パッチの適用漏れや設定不備を洗い出すことでリスクを低減する――これが従来の考え方でした。
しかし近年、攻撃者の行動や開発スタイルの進化によって、こうした枠組みは大きな転換点を迎えています。攻撃者は自動化ツールを用いて全世界のIPアドレスを継続的に探索し、わずかな設定ミスを即座に突くようになりました。一方で、企業のシステムはクラウドやマイクロサービス、アジャイル開発などによって構成が日々変化し、従来の年次診断ではリスクを把握しきれなくなっています。
このような環境変化のなかで、脆弱性診断は「静的な点検」から「継続的なリスク可視化」へと進化しつつあります。もはや一度の診断で安心できる時代ではなく、変化に即応できる診断サイクルと仕組みづくりが求められているのです。

脆弱性診断の基礎

脆弱性診断は、対象となるシステム層によって大きく三つに分類できます。ネットワーク層・プラットフォーム/ミドルウェア層・Webアプリケーション層です。

ネットワーク層
ネットワーク上の通信口(ポート)や稼働サービスを調査し、不適切なポートやサービスの開放がないか調査することで攻撃経路を把握します。外部(インターネットに公開しているゾーン)は攻撃対象となりやすいため、月次〜四半期で診断を実施することが望まれます。内部ネットワークは半期〜年次を目安とし、構成変更時にも再診断を行います。
プラットフォーム/ミドルウェア層
OSやWebサーバなどのパッチ適用状況を確認し、既知の脆弱性が残存していないかを検証します。診断方式としては、リモート・ログイン・エージェントの3種類があります。 リモート方式は対象機器に擬似的な攻撃通信を送信して脆弱性の有無を確認します。ログイン方式は対象機器にログインし構成ファイルやバージョン情報等を参照することで診断を行います。パッチ未適用の確認だけでなくインストールされているソフトウェアやライブラリ等の構成情報を取得することが可能です。エージェント方式は診断プログラムを常駐させ、リアルタイムに脆弱性情報を収集します。ログイン方式と同様にパッチ未適用の確認だけでなくインストールされているソフトウェアやライブラリ等の構成情報を取得することが可能です。 診断サイクルは、外部ゾーンで月次〜四半期、内部は半期〜年次が一般的です。
Webアプリケーション層
入力値検証、認証、セッション管理、エラーハンドリングなど、Webアプリケーション特有の脆弱性を確認します。診断はリモートからツールや手動によって行われ、主にリリース前に実施されますが、改修や新機能追加のたびに診断を行うことも推奨されます。

国際・国内ガイドラインに見る制度的要求

脆弱性診断は、法規制や業界ガイドラインにおいても明確に求められているプロセスです。ISMS(Information Security Management System:情報セキュリティマネジメントシステム)の国際規格であるISO/IEC 27002:2022では、管理策A.8.8「技術的脆弱性管理」において、システムやソフトウェアの脆弱性を特定し、評価し、適切な是正措置を講じることを求めています。ここでは定期的なスキャンの実施や、修正後の再評価を推奨しており、継続的な管理サイクルを前提としています。また、A.8.25「セキュリティテスト」において、システムやアプリケーションがリリースされる前に、セキュリティ要件を満たすことを確認するためのテストを実施することを求めています。
そのため、多くのISMS取得企業では、ネットワークとプラットフォーム/ミドルウェアの診断を年次で、Webアプリケーション診断をリリース前に実施しています。

リスクマネジメントとしての脆弱性診断

脆弱性診断は、単なる技術的作業ではなく、組織のサイバーリスクマネジメントを支える重要な経営プロセスです。診断によって明らかになったリスクを、経営判断のための定量的な情報として活用することが求められます。

重要なのは、診断結果を「発見して終わり」にしないことです。リスクの深刻度や影響範囲をもとに優先順位をつけ、対応策を明確化したうえで、改善計画に反映させる体制を整えることが不可欠です。特に、経営層が診断結果のサマリーを把握し、リソース配分や予算措置を迅速に決定できる仕組みを持つことは、サイバーリスクの抑制効果を大きく高めます。
また、定期診断やガイドライン遵守といった“義務的対応”だけでなく、リスクトレンドや新たな脅威の変化を踏まえて診断サイクルを柔軟に見直すことも重要です。脆弱性診断を経営のPDCAサイクルに組み込み、技術部門と経営層が共通のリスク認識を持つことで、組織全体としてのレジリエンスを高めることができます。

変化する攻撃動向と開発スタイル ― 新たな課題と解決策

近年のサイバー攻撃は、かつてないスピードで進化しています。攻撃者は自動化ツールやボットを使い、世界中のIPアドレスを常時スキャンして脆弱なシステムを探索しています。そのため、以下のようなことが起こり得るのです。

  • ファイヤーウォールの設定ミスから数日以内に攻撃通信が届く
  • ミドルウェアの脆弱性が公表されてから数日以内に攻撃通信が届く
  • Webアプリケーションをリリースしてから数日以内に攻撃通信が届く

こうした状況下では、ネットワーク層やプラットフォーム層において、外部ゾーンの診断サイクルを短期化し、常時監視へ移行する動きが強まっています。また、ASM(Attack Surface Management:攻撃面管理)と呼ばれる仕組みを用いて、インターネット上の自社資産を自動探索し、攻撃面の脆弱性に加え、想定外のサーバやサービス(Shadow IT)を検出・管理する取り組みも広がっています。ちなみに、ASMについては以前の記事「攻撃者を一歩先んじ、セキュリティガバナンスを強化するAttack Surface Management (ASM)」にて解説しています。

一方、Webアプリケーション層では、アジャイル開発やマイクロサービス化により、従来の「リリース前診断」では追いつかない状況が生まれています。これに対応する手法としてDevSecOps(デブセックオプス)が注目されています。DevSecOpsは、開発(Development)と運用(Operations)のプロセスにセキュリティ(Security)を統合し、診断を継続的に行う考え方です。具体的には、SAST(Static Application Security Testing)でソースコードを静的解析し、開発初期段階で脆弱性を発見する一方、DAST(Dynamic Application Security Testing)で実行環境の挙動を検証します。これらをCI/CD(Continuous Integration / Continuous Delivery)と呼ばれる自動化パイプラインに組み込むことで、コード変更ごとに診断を自動実行できます。

このように、ネットワーク層とプラットフォーム層では外部からの診断の常時化、アプリケーション層では開発工程への統合という形で、脆弱性診断のあり方は大きく変わりつつあります。

おわりに

脆弱性診断は、攻撃の多様化やシステムの複雑化に対応するうえで欠かせないプロセスです。重要なのは、診断を単発のイベントとして終わらせず、経営・開発・運用が連携して継続的に改善できる仕組みを持つことです。診断結果を正しく評価し、優先順位をつけ、再発防止策を計画的に実行する。その一つひとつの積み重ねが、組織全体の防御力を高めます。

そして今、脆弱性診断は大きな転換点を迎えています。攻撃者は、わずかな設定ミスを即座に狙うようになり、システムは絶えず変化しています。こうした環境下では、外部ゾーンに対する恒常的な診断や継続的なリスク可視化の導入など、脆弱性診断を進化させていくことが求められているのです。


サイバーセキュリティコンサルタント。三菱UFJ銀行で12年間サイバーセキュリティに従事し、2022年4月にフリーランスとして独立。現在はサイバーセキュリティに関するコンサルティングやアドバイザー業務を行うとともに、国土交通省最高セキュリティアドバイザーや日本シーサート協議会専門委員、⾦融ISAC個⼈賛助会員として活動している。