ナレッジ

ペネトレーションテストと脆弱性診断の違い。それぞれのやり方や費用の点から違いを解説

ペネトレーションテストと脆弱性診断の違い。それぞれのやり方や費用の点から違いを解説

セキュリティが保たれているかどうかを確認するために、ペネトレーションテストや脆弱性診断サービスを利用される方も多いでしょう。

しかし、この2つは似ているようで、その効果や用途が思いの外異なります。そして、このことを知らないばかりに、せっかくペネトレーションテストや脆弱性診断を実施しても、思うような検証ができなかったというケースも散見されます。

本記事では、いまさら聞けないペネトレーションテストと脆弱性診断の違いを費用や診断ツールなども含めて分かりやすく説明します。

ペネトレーションテストと脆弱性診断(セキュリティ診断)の基本的な違い

ペネトレーションテストと脆弱性診断(セキュリティ診断)は、そのシステムがセキュアかどうかを確認するためのサービスという意味では同じですが、目的や手法に大きな差があります。

ペネトレーションテストは、攻撃者と同様の侵入や改ざんといった実際に発生している攻撃手法を駆使して、当該システムに疑似的にサイバー攻撃を実施するもので、すでに導入しているセキュリティ対策が効果を発揮できているかを確認できることが特徴です。

一方、脆弱性診断はWebサイトやシステム、ソフトウェア自体の脆弱性の有無の確認に主眼を置いており、重要なことは網羅的に調査する点です。なぜなら、脆弱性がある状態で放置されていると、攻撃者にとって格好のターゲットになるからです。さらに、その脆弱性がクリティカルなものであれば、その企業や組織のネットワークやシステムに侵入した攻撃者は、機密情報の窃取やランサムウェアに感染させるといったさまざまな被害を当該企業や組織にとどまらず、エンドユーザーを含め広範囲にもたらしてしまうのです。

つまり、脆弱性診断は、脆弱性を放置していないことの確認であり証明と言えます。ペネトレーションテストは、より実戦的な疑似的な攻撃によって、セキュリティ対策の有効性(強度)を評価するための手法、という違いがあります。

このように目的やテスト方法が異なるため、どちらか一方ではなく双方に実施すると、セキュリティ対策の状況が把握しやすくなります。

ペネトレーションテストとは?

ペネトレーションテストとは、Webサイトやシステムのセキュリティ対策が機能しているかどうかを確認する目的で実施するテストです。また、そのテストにおいて実際に攻撃を仕掛けて侵入することから、侵入テストと呼ばれることもあります。

図表1:社会に深く浸透している現在のサイバー攻撃のイメージ
図表1:社会に深く浸透している現在のサイバー攻撃のイメージ

図表1のような社会のあらゆる場に深く浸透している現在のサイバー攻撃を想定し、テスト内容は、攻撃者が実際に行ったサイバー攻撃の手法に沿って行われる場合が多く、ペネトレーションテストを実施するエンジニアには、攻撃者が実施しているさまざまな攻撃手法やそのトレンドなどの知識や高度な技術が求められます。

脆弱性診断(セキュリティ診断)とは?

脆弱性診断(セキュリティ診断)とは、webサイトやネットワーク、OS、ミドルウェアなど(図表2)の脆弱性の有無を調査するサービスです。

図表2:攻撃者が狙うシステムの一般例
図表2:攻撃者が狙うシステムの一般例

脆弱性を放置しておくと、どれだけ堅固なセキュリティ対策をしていたとしても、攻撃者にたやすく侵入されてしまいます。そのため、セキュリティ対策や公開された脆弱性の対応をきっちりしている企業などでも、定期的に診断を実施する必要があります。

また、脆弱性診断はある程度決まった診断項目があり、情報処理推進機構(IPA)やその他の公益団体などで作成・公開されたガイドラインを基準とすることがほとんどです。診断の対象、期間、項目、内容などもそれらに準拠して実施されます。

診断の対象として、かつてはネットワークやサーバー、PCなどのいわゆるITシステムがほとんどでしたが、スマートホームや情報家電などのIoTや制御システムなど一般的なITシステム以外の脆弱性診断も一般的になっています。

脆弱性診断(セキュリティ診断)の診断項目は?

脆弱性診断の項目や内容は、「攻撃者の攻撃手法へのセキュリティ対策」という大前提があることから、どんどん複雑化していると言えるでしょう。

具体的には、以下の診断項目などがあります。

  • 各種インジェクション系攻撃に対する脆弱性の有無
  • 不適切な認証に利用される脆弱性の有無
  • 不適切なアクセス制御の有無
  • 機密情報の暴露の有無
  • セキュリティ設定ミスの有無
  • 不十分なログ記録

しかし、攻撃者の手法が巧妙化していることもあって、5~10年前と同じ項目や内容で実施していては、診断の機能を果たせなくなります。

そのため、脆弱性診断を行っている多くのセキュリティベンダーは、OWASP TOP10 やIPAの公開している情報などに沿って、常にアップデートを続けています。

ペネトレーションテストと脆弱性診断(セキュリティ診断)の「やり方」の違い

脆弱性診断は、当該システムにどのような脆弱性が存在するかを調査することが主眼です。そのため、やり方は、決まった診断対象や基準に合致しているかという点が重要で、ある意味できっちりとしたテンプレートに沿った作業を行います。

一方、ペネトレーションテスト(略してペンテスト)のやり方は、最新の攻撃手法の知識を持つペンテスターたちがその技術力を駆使して、数多くの製品やサービスによって守られたシステムを突破するという、ある意味で職人的な技術による作業です。

従って、ペネトレーションテストとは異なり、脆弱性診断はツールなどによる自動化を行ってシステムのセキュリティ対策の状況をリアルタイムに近い形で把握する方法も可能です。

特に、エンジニアによる作業だとコストや時間がかかる大規模システムなどの場合、脆弱性診断の自動化は有効な手段だと言えます。システムの範囲は拡大を続けており、大規模システムにおいて脆弱性診断の自動化が必須になる時代が、将来的にやってくるかもしれません。

ペネトレーションテストのやり方

ペネトレーションテストは、ネットワークやサーバー、PCなどのシステムがサイバー攻撃に耐えられるかをテストすることです。テストの内容はいろいろありますが、ほとんどの場合で事前にシナリオを作成した上で、そのシナリオに沿って実際に攻撃者がどこまで侵入できるのかを調べます。

具体的には、以下のようなプロセスで進められることが多いと言えるでしょう。

  1. ペネトレーションテストのシナリオ作成
  2. シナリオに沿って調査対象への攻撃を実施
  3. ペネトレーションテスト結果を報告書にまとめる

また、脆弱性診断が攻撃の侵入口となるシステムの脆弱性を網羅的に調査するのに対し、ペネトレーションテストの対象は脆弱性に限定されません。攻撃手法のトレンドなどに詳しい専門的なエンジニアによって行われる、より実践的なセキュリティ強度を評価するテストなのです。

脆弱性診断(セキュリティ診断)のやり方

脆弱性診断の種類は、セキュリティベンダーによって異なりますが、多くの場合は以下の3つに分類できます。

  1. Webアプリケーション/ソースコード診断
  2. プラットフォーム診断
  3. 特殊な環境・OS(iOS/Andorid)向けの診断

これまでのIT向けの脆弱性診断は1、2がほとんどでした。具体的に1で例を挙げると、図表3のような脆弱性が検出できる診断を行います。

しかし、最近では市場の拡大もあり、3のようなそれ以外のスマートフォン等の機器、制御システム、IoT機器といった、これまでになかった分野のニーズが増大しています。

大分類

分類

脆弱性の例

(A)Webアプリの仕様に起因する脆弱性

(A-1)固有のビジネスロジックに依存するもの

ID連携の不備により他のユーザーになりすましができる等

(A-2)一般的な仕様上の不具合

他人のデータを読み書きできる、管理者権限の機能を誰でも利用できる、パスワードリセット機能の悪用、認証の回避等

(B)Webアプリの実装に起因する脆弱性

(B-1)実装のメカニズムに対する高度な理解が要求されるもの

レースコンディションによるデータの不整合、Office ファイルの投稿機能におけるXML外部エンティティ参照(XXE)、電子署名の迂回等

(B-2)一般的な実装の不備

SQLインジェクション、ディレクトリトラバーサル、クロスサイトスクリプティング等

(C)利用する Webアプリミドルウェア固有の脆弱性

ログ出力や画像変換ライブラリ等における既知の脆弱性の悪用、CMS(Content Management System)や Web アプリケーションフレームワークの誤用に起因する脆弱性等

図表3:Web アプリ診断で検出される脆弱性 (※3)

ペネトレーションテストと脆弱性診断(セキュリティ診断)の「費用」の違い

ペネトレーションと脆弱性診断のコストは、セキュリティベンダーやサービスによってまちまちです。

ただし、傾向としてはペネトレーションテストが高額で、脆弱性診断は相対的に廉価なことが多いと言えます。

そのようなコスト差が出てしまう主な理由は、ペネトレーションテストを実施できるスキルを持った技術者の絶対数が足りないためです。

実際、セキュリティ人材育成のための教育プログラムとして脆弱性診断は以前からあり、人材育成方法も確立していますが、ペネトレーションテストは職人技に近い性質があるため、育成が難しく、絶対数が少ないと言えます。

また、脆弱性診断も実施する作業にかなり差があることが少なくありません。特に、同じ脆弱性診断サービスでも、診断ツールで済ませる割合が多ければ多いほど廉価になります。

ただし、ツールで検知できる脆弱性は基本的なものが多いので、高い技術と経験を持ったエンジニアによる脆弱性診断サービスと比較すると、結果はまだまだ及ばないのが現状です。それでも、診断ツールの進化もあって、時間や技術者が足りない場合などは非常に有効な場合もあります。

ペネトレーションテストにかかる費用

ペネトレーションテストの費用は、サービスやセキュリティベンダーごとに非常に大きな差があります。

なぜなら、ペネトレーションテストを行うエンジニアの技術力(攻撃力)に差があるからです。サービスによっては、1件当たり1,000万円を超えるコストがかかることもあります。

脆弱性診断(セキュリティ診断)にかかる費用

脆弱性診断の価格は、システムの規模(画面数など)で決まることが多いようです 。

そのため、1システム当たりの相場感などを明示することは難しいものの、一般的な企業が管理するシステムでは、1回当たりで数百万円のコストがかかることが多いようです。

ペネトレーションテストツールと脆弱性診断(セキュリティ診断)ツールの選び方

脆弱性診断やペネトレーションテストのツール類も多くの選択肢を選べるようになりました。ただし、どちらもツールありきの導入ではうまくいかないことは珍しくありません。

脆弱性診断やペネトレーションテストの目的や対象範囲を明確にする必要があります。必要なツールや診断・テストの範囲を絞ることや優先順位を明確に定めた実施など、目的が明確になることによるメリットは多くあります。

また、ツールがあることで属人的になりがちな診断・テストの粒度やアウトプットが一定レベルに均一化されます。これは、実施した診断・テストが標準化されるという意味であり、対象の全てのシステムのセキュリティ対策がなされていることを証明しやすくなります。

ペネトレーションテストツールの選び方

ペネトレーションは高度な技術を必要とするセキュリティ対策の状況を確認する方法で、ツール選定には以下のようなポイントがあります。これらを明確にした上で、どのようなツールが良いかを検討するべきでしょう。

  1. 目的と対象を明確にする
  2. 対象システムの規模や重要性を把握する
  3. 予算規模や運用体制を定め、それに沿った運用を実施する

この3つ以外に重要なのは、ツールを選ぶ際に、自動化されたものだけでなく手動のものも組み合わせるように検討することです。自動化ツールだけではあらかじめ決められたパターンだけになることが多いからです。

攻撃者は従来の攻撃手法を繰り返すばかりではありません。より効率的で有効な新しい手法で攻撃してくるため、なるべく手動のものでも確認できるように検討する必要があります。

無料のペネトレーションテストツールでもよい?

また、ペネトレーションテストツールには有料と無料のものが存在します。どちらを選ぶかは、ペネトレーションの目的で選ぶべきでしょう。例えば、基本的な脆弱性を検出するだけというようなシンプルな目的の場合は、無料ツールで十分かもしれません。

無料ツールの代表的なものに、OWASPが提供するOSSのペネトレーションツール「OWASP ZAP」や、Debianベースのディストリビューションで数多くのペネトレーションのツール類を含む「Kali Linux」などがあります。

ただし、無料ツールには機能の制限やサポートが期待できないものも多いため、あまり多くを期待すると困る状況が生じるかもしれません。

一方で、しっかりした開発元が提供する有料のツールであれば、ほとんどの場合そのような心配はいりません。

ペネトレーションの目的がより高度に脆弱性を網羅的に検出することであれば、有料ツールがお勧めです。数多くの機能はもちろん、利用する上でのサポートも大抵充実しています。

また、最新の脆弱性や攻撃手法にも対応しており、高度な攻撃手法を駆使する攻撃者によるサイバー攻撃に近い形で、システムがセキュアかどうかを試せます。

脆弱性診断(セキュリティ診断)ツールの選び方

脆弱性診断(セキュリティ診断)ツールは、アプリケーション(主にwebアプリケーション)を対象にしたもの、システムプラットフォーム(システム基盤)を対象にしたもの、スマートフォン(iOSやAndorid等)やその他の端末やそのアプリケーションを対象にしたもの、といった大きく3つに分類できます。

そして、この脆弱性診断(セキュリティ診断)ツールも有料と無料のものがあります。無料のツールは、「Vuls」やペネトレーションの無料ツールでも紹介した「OWASP ZAP」があり、他に著名なものだけでも4~5つあります。有料のツールは「Vex」を筆頭に「WEBセキュリティ診断くん」「Aeyeスキャン」などがあります。

また、それらのツールには、ほとんどの場合でその製造元や取り扱いをしているセキュリティベンダーなどでサービスを含めて対応してくれるため、安心して利用できるでしょう。

より確実なペネトレーションテストと脆弱性診断をするために

このように、脆弱性診断(セキュリティ診断)やペネトレーションテストを実施するには数多くの選択肢があります。

しかし、そのどちらもセキュリティ知識はもちろん、攻撃手法のトレンドや対象となるシステム基盤や機器などについての知識も必要になることが少なくないため、経験値もなくできるものではありません。

そのため、脆弱性診断(セキュリティ診断)やペネトレーションテストの経験値と実績を持つベンダー企業に依頼するほうが、より確実なケースも少なくありません。

それに該当する企業はたくさんありますが、ベリサーブという選択肢はいかがでしょうか。当社は、ソフトウェア品質を向上させるということに特化したテスト領域の専門家集団です。

私たちにとって、脆弱性診断(セキュリティ診断)やペネトレーションテストとは、システム品質を高めるためのテストであり、たまたまそれが、セキュリティ分野のものというだけです。私たちの40年以上のテスト分野の専門知識によって、お客様に安心して利用できるサービスをご提供いたします。

セキュリティ対策|ソフトウェアテスト・第三者検証のベリサーブ

■関連サービス■

Webアプリケーション 脆弱性診断サービス

ネットワーク脆弱性診断サービス

スマートフォンアプリケーション脆弱性診断サービス

車載機器脆弱性診断サービス

 

■参考■

(※1) 独立行政法人 情報処理推進機構 セキュリティセンター 制御システムのセキュリティリスク分析ガイド補足資料 2020年3月より引用

(※2)(※3) デジタル社会推進実践ガイドブック DS-221 政府情報システムにおける脆弱性診断導入ガイドライン 2024(令和6)年2月6日 デジタル庁より引用

SNSシェア

この記事は面白かったですか?

今後の改善の参考にさせていただきます!

Ranking

ランキング

もっと見る