脆弱性診断とペネトレーションテストの違いは?成果が異なります


脆弱性診断やペネトレーションテストは、サイバー攻撃の被害に遭う前にセキュリティ上の問題を特定し、早期に対策をとるために実施されます。しかし、それぞれの得られる成果は異なります。
本記事では、脆弱性診断とペネトレーションテスト、それぞれの特性をご紹介した上で、それぞれの手法の選び方について解説します。セキュリティ向上の計画を立てる際に参考にしてみてください。

脆弱性診断とペネトレーションテストの違いは?

サイバー攻撃に対する備えの検証

サイバー攻撃の巧妙化・多様化が進み、企業は総合的な対策が求められています。
例えば、ウィルス対策ソフトの導入をしていたとしても、既知のマルウェアの特徴に似たパターンを検出する方式をとっている対策ソフトは、未知のマルウェアについては検知が難しいという課題があります。
他にも、メールを介して社内に侵入してマルウェアの感染が広がるリスクがあります。サーバーやネットワークへの対策に留まらず、従業員のセキュリティ意識を向上させる施策が求められています。
サイバー攻撃によって企業は、甚大な被害を受けるリスクがあります。
個人情報や機密情報が漏えいしてしまうと、補償や罰金が生じてしまうかもしれません。
なりすましやサイトの改ざんによって、ユーザーが損害を被る可能性も考えられます。
社外に公開している法人サイト、Webアプリケーション、ECサイトは誰でもアクセスできるので、悪意のある攻撃者から狙われるリスクが高いと言えるでしょう。
また、社内のみでの利用が想定される、機密情報を保存したサーバーやネットワークも攻撃対象となり得ます。セキュリティ人材が不足している中小企業でも、サイバー攻撃を受けるリスクは無視できなくなってきています。
サイバー攻撃に対する備えを検証するため、脆弱性診断やペネトレーションテストといった手法が採用されつつあります。

次章からは、これらの手法によって、セキュリティリスクの高い要素を特定し、対策を講じる取り組みについて解説します。

脆弱性診断とは?

「ガイドラインに基づき、網羅性を重視して問題を洗い出す」手法

脆弱性診断(または、セキュリティ診断という)は特定のサーバーやネットワーク、Webアプリケーション等に対し、セキュリティ上の問題点がないかを検証する手法です。
設定ミスをしていたり、オペレーティングシステムやソフトウェアの修正パッチを最新化していなかったという理由でサイバー攻撃の対象になってしまうケースが頻繁に発生しています。担当者が十分に確認していても新たに発見されたマルウェアによって、セキュリティリスクが追加されているかもしれません。
定期的な検証によって、問題を早期に発見するのが脆弱性診断の役割です。

それでは、次の段落で脆弱性診断の特徴を挙げていきます。

ガイドラインに従って検証を進める

脆弱性診断では、網羅的に問題を発見できるようガイドラインに従って検証を進めます。
例えば検索フォームのようなユーザーが任意の文字列をサーバーに送信できる場合、サーバー側のデータベースが不正に操作されてしまうSQLインジェクションと呼ばれる脆弱性が知られています。この場合、OWASPアプリケーションセキュリティ標準のような業界標準に準拠しているかを確認し、セキュリティ上の品質保証を行います。

自動化ツールと手動検証を組み合わせる

脆弱性診断は、自動化したツールによる検証とセキュリティの専門家による手動での検証を組み合わせて行われます。
自社固有のロジックに関しての脆弱性を確認するため、設計書や実装方法を理解した上で実施されるホワイトボックス型の診断も有効です。
脆弱性診断のレポート結果としては、発見された脆弱性や不足しているセキュリティ機能がリスク別に通知されます。

脆弱性診断は様々なシステムが対象

脆弱性診断は様々なシステムが対象範囲となります。
まず、Webアプリケーションは、ファイアウォールを破った不正侵入や個人情報の漏えいのリスクが高いです。そのため、サーバーの設定やアプリケーションの設計について診断を行う必要があります。また、社内イントラネットについても、不正アクセスによって機密情報が盗み出される可能性を考慮し、暗号化通信等の設定を検証します。
近年は、モバイル端末を業務利用したり、スマートフォン向けアプリを介してサービスを展開したりするケースが増えています。モバイル端末も不適切な設定によって、情報漏えいのリスクがあるため、脆弱性診断の対象となり得ます。同様に、センサーを搭載したIoTデバイスもサイバー攻撃の対象となることが知られているので、セキュリティ対策が講じられている点を確認するべきです。

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

「セキュリティ上の脅威が発生し得るか確認する」手法

ペネトレーションテスト(または、侵入テストという)は、悪意のある攻撃者の立場に立った上で、仮想的なサイバー攻撃を仕掛けることで、セキュリティ上の問題を特定する手法です。外部の攻撃から社内の機密情報が盗まれるとしたらどのような経路があり得るのか、社内に侵入した攻撃者がどこまで被害を与えられるか、といったシナリオを考えてテストの対象を選び、テストを行います。
ペネトレーションテストの対象は、企業が抱える個人情報や機密情報のリスクに応じて選定します。例えば、標的型攻撃のように、特定の企業に属する従業員に対し、それとは見破られにくいように偽装したメールを送信し、コンピュータウイルスに感染させるといった手法が知られています。
このような巧妙なサイバー攻撃に、どのくらい対応できるかを検証するのがペネトレーションテストです。ペネトレーションテストのレポート結果には、実施された攻撃シナリオと、その検証結果が含まれるので、その後に実施するべきセキュリティ施策が立案できます。

ペネトレーションテストの分類

ペネトレーションテストは、外部からの脅威と内部からの脅威を検証する方法があります。
まず、外部ペネトレーションテストでは、外部からのアクセスによるサーバーの乗っ取りやサービス停止に対して対策が講じられているかを検証します。過剰な負荷をかけてサービス停止に追い込むDoS攻撃等に耐えられるかどうかも確認対象です。外部ペネトレーションテストは、既知のセキュリティ問題を主に取り扱うため、ツールによる検証も行われています。
内部ペネトレーションテストは、システムの内部に悪意のある攻撃者が侵入したケースを想定します。例えば、ある部門で働いている従業員のコンピュータで、USBドライブを接続した際に、マルウェアに感染してしまったと考えてみましょう。マルウェアへの感染を検知し、機密情報を保存したサーバーを社内ネットワークから即座に隔離できなければ、機密情報が破壊・漏えいされる被害が生じてしまいます。このようなシナリオへの対応状況を検証するのが内部ペネトレーションテストです。

ペネトレーションテストの分類

目的を整理すると?

これまで見てきたように、脆弱性診断とペネトレーションテストは、その目的が異なります。

脆弱性診断は「網羅性」を重視しており、基準となるガイドラインへの遵守を確認し、セキュリティの問題点を洗い出します。
設定の不備など、考え得るリスクを幅広く理解できるのが利点です。一方で、発見されたセキュリティリスクが自社にとってどれほどの影響があるのかを確認するのには向いていません。多様な情報資産、サーバー、ネットワーク、端末を運用している企業は、まず、脆弱性診断によってセキュリティリスクを特定すると良いでしょう。

ペネトレーションテストは、個人情報や機密情報といった高いリスクのある資産を守れるかどうかを検証するために実施されます。
特定の業界・運用・アプリケーションに特化した「専門性」を重視しており、セキュリティの知識が豊富な研究者によるペネトレーションテストも実施されます。ただし、想定された攻撃シナリオに沿っている脆弱性は検証できる一方で、そのシナリオに関係がない脆弱性は検証結果に含まれない可能性があります。個人情報や金融資産を取り扱うような、情報漏えいが重大な被害になる企業はペネトレーションテストの実施が推奨されます。

まとめ

脆弱性診断とペネトレーションテストは、検証結果から導き出されるポイントが異なります。企業が抱えるシステムやデータの種類・状況に合わせ、それぞれ組み合わせて実施するべきものです。サイバー攻撃の新しい手法は常に生まれ、社内のシステム環境も変化し続けていくため、どちらを選んでも一度実施して終わりというものではありません。計画的にセキュリティ対策を講じ、脆弱性診断及びペネトレーションテストを定期的に実施するようにしましょう。