脆弱性診断と脆弱性管理の違い メリット・デメリット
2022年8月に脆弱性診断サービスを新たにリリースしました。
以前より提供しているソフトウェア脆弱性管理サービスに加えて、脆弱性診断(セキュリティ診断)サービスの提供により、yamoryで幅広いセキュリティ対策が可能となりました。
脆弱性診断と脆弱性管理サービスはどちらもシステムの脆弱性を検出するものですがそれぞれ違いがあります。
今回は、脆弱性診断と脆弱性管理の違いとそれぞれのメリット・デメリットについて2022年6月にデジタル庁より公開された「政府情報システムにおける脆弱性診断導入ガイドライン」を参考に紹介します。
脆弱性診断とは
脆弱性診断とは、システムにおけるセキュリティ上の弱点を検出するものです。
システムにおける脆弱性が発生する箇所は多くあるため、それぞれ検出・対応する必要があり、脆弱性診断が提供されています。
主に3つの診断があり、それぞれ異なる箇所のセキュリティ上の弱点(脆弱性)を検出することができます。
- プラットフォーム診断(クラウド診断)
- Webアプリ診断
- スマートフォンアプリ診断
プラットフォーム診断(クラウド診断)
プラットフォーム診断は、対象となるサーバやネットワーク機器に対して疑似的な攻撃の通信を行い、脆弱性を検出します。
診断によって検出される脆弱性の例としては、「不要なポートの開放」「脆弱なソフトウェアの利用」「設定の不備」「プロトコル固有の脆弱性」があります。
「政府情報システムにおける脆弱性診断導入ガイドライン」では触れられていませんが、クラウド側の設定不備などを検出するクラウド診断もあります。
Webアプリ診断
Webアプリ診断では、対象となるWebアプリ・APIに対して疑似的な攻撃の通信を行い、脆弱性を検出します。
診断によって検出される脆弱性は、大きく分けて以下の3つに分類できます。
- Webアプリの仕様に起因する脆弱性:固有のビジネスロジックに依存するもの、一般的な使用上の不具合
- Webアプリの実装に起因する脆弱性:外部エンティティ参照(XXE)、SQLインジェクション、クロスサイトスクリプティング(XSS)
- 利用するWebアプリ・ミドルウェア固有の脆弱性:CMSやWebアプリケーションフレームに含まれる既知の脆弱性や設定の不備
スマートフォンアプリ診断
スマートフォンアプリ診断では、AndroidやiOS/iPadOS端末上で動作するアプリ本体、アプリとサーバとの通信等に対して、リバースエンジニアリングやアプリとサーバ間の通信内容から脆弱性検出する方法などがあります。
診断によって検出される脆弱性は、大きく分けて以下の3つに分類できます。
- アプリ本体:他のアプリから機密情報の参照、WebView上で悪意のあるページの表示
- 通信路:サーバ証明書の検証不備、平文による機密情報の送受信
- 外部サービス:ハードコードされた認証情報
診断方法の違い
診断を実施するための手段として、診断員による手動による診断(手動診断)とツールを使った診断(ツール診断)があります。
それぞれ以外のようなメリット・デメリットがあります。
手動診断
メリット
- ツールでは見つけることができない仕様に起因する脆弱性を見つけることができる
- 実際に影響があるもののみ検出される
デメリット
- 費用が高い
- 診断結果までの時間がかかる
ツール診断
メリット
- 費用が比較的安い
- 広範囲を漏れなく検出できる
デメリット
- 仕様に起因する脆弱性など検出できない脆弱性がある
- 誤検知がある
手動診断とツール診断を組み合わせて診断することで、効率良く幅広い脆弱性を検出する方法もあります。
脆弱性管理とは
脆弱性管理(パッチマネジメント)とは、組織内のITリソースのインベントリ(利用しているソフトウェア名とそのバージョン等)を作成し、その対象にある脆弱性を特定、優先順位付けや影響などの判断、対応までのプロセスです。
脆弱性管理をするためには以下の5つのステップがあります。
- インベントリの作成
- 脆弱性情報の収集
- 脆弱性の特定
- 対応の判断
- 脆弱性への対応
脆弱性管理サービスを使うことで、「インベントリの作成」「脆弱性情報の収集」「脆弱性の特定」まで自動で行うことができます。
手動で行う場合には、インベントリ情報が最新のものになっているか、脆弱性情報の収集方法の確立、日々の情報収集など多くの手間がかかります。
(脆弱性管理サービスによって機能・脆弱性検知方法が異なりますので今回は我々が提供しているyamoryのソフトウェア脆弱性管理サービスを例に紹介しています。)
脆弱性診断と脆弱性管理サービスの違い
脆弱性診断と脆弱性管理サービスともに脆弱性を検出するという点では同じですが、どのような違いがあるのでしょうか。
主に以下の2つの違いがあります。
- 対象となるレイヤーの違い
- 脆弱性の検出方法の違い
対象となるレイヤーの違い
3つの脆弱性診断と脆弱性管理サービスの対象となる箇所をレイヤー毎にみると以下のようになります。
脆弱性診断と脆弱性管理サービスの対象となるレイヤー
Webアプリ診断、スマートフォンアプリ診断、クラウド診断と脆弱性管理サービスを比較すると対象となるレイヤーが異なります。
プラットフォーム診断と脆弱性管理サービスでは、レイヤーが同じ部分がありますが、次のような違いがあります。
プラットフォーム診断では、「不要なポートの開放」「設定の不備」「プロトコル固有の脆弱性」などの検出ができますが、脆弱性管理では検出することができません。
脆弱性管理サービスでは、「脆弱なソフトウェアの利用」をより精度高くできますが、プラットフォーム診断では一部しか検出できません。
同じレイヤーの脆弱性検出ができる場合でも上記のような違いがあり、この違いは次の「脆弱性の検出方法の違い」によって生まれています。
脆弱性の検出方法の違い
脆弱性診断と脆弱性管理サービスでは、脆弱性の検出方法が以下のように異なります。
脆弱性診断は、攻撃者と同様に外部から疑似的な攻撃の通信を行うことによって脆弱性の検出をします(ブラックボックステスト)。
脆弱性管理サービスは、開発環境やサーバなどの対象システムの内部から利用しているソフトウェア情報を収集して脆弱性を検出します(ホワイトボックステスト)。
(クラウド診断では、設定情報などクラウドサービス内部の情報を収集して脆弱性を検出することもあります。)
ブラックボックステスト・ホワイトボックステストによる脆弱性検出のメリット・デメリットは以下のようになります。
ブラックボックステスト(脆弱性診断)
メリット
- 攻撃者と同じ視点で影響が大きい脆弱性を検出できる
デメリット
- 外部からではわかりにく脆弱性の検出ができない
ホワイトボックステスト(脆弱性管理サービス)
メリット
- 利用しているソフトウェアの脆弱性を網羅的に検出できる
デメリット
- 実際に影響を受けるかどうかの判断が必要
脆弱性診断と脆弱性管理サービスの併用
脆弱性診断と脆弱性管理サービスでは、対象となる箇所の違いと脆弱性の検出方法の違いによって、それぞれメリット・デメリットがあることを紹介しました。
攻撃者に視点で深刻な脆弱性を見つけるためには脆弱性診断を行うことは重要です。
しかし、手動による脆弱性診断は金銭的コストが高いため何度も実施することが難しいことも多く、また脆弱性診断だけで全ての脆弱性を洗い出すことはできません。
デジタル庁より公開された「政府情報システムにおける脆弱性診断導入ガイドライン」の「2脆弱性診断概要」にも以下のように記述されています。
脆弱性診断はシステムにおけるセキュリティ上の弱点を特定するものであるが、診断のみでシステムのセキュリティリスクを防ぐことはできない。
また、脆弱性診断は既に作り込まれた脆弱性を検出するものであるが、それ以前に脆弱性の発生を未然に防ぐことが肝要である。
こうした背景から、脆弱性診断は他のセキュリティプロセス(パッチマネジメントやセキュアコーディング、セキュリティレビュー等)と組み合わせて実施することが望ましい。
それぞれ役割が違うため、脆弱性診断・脆弱性管理サービスを組み合わせて利用することをお勧めします。
おわりに
今回は、脆弱性管理と脆弱性診断の違いとそれぞれのメリット・デメリットについて紹介しました。
脆弱性診断では、攻撃者に近い視点・方法で脆弱性を検出し、脆弱性管理サービスではシステム内部の情報を使って網羅的にソフトウェアの脆弱性を検出することができます。
それぞれ役割も異なるため、脆弱性診断と脆弱性管理サービスを併用することをお勧めします。
yamoryでは、ソフトウェア脆弱性管理サービスに加えて、脆弱性診断(セキュリティ診断)サービスの提供も開始しました。
脆弱性診断と脆弱性管理サービスのセットでの提供もありますのでご興味がある方は資料請求またはお問い合わせください。
セミナーも定期的に開催していますのでこちらのページよりご参加ください。