セキュリティ対策として取り入れたい ペネトレーションテスト
ペネトレーションテスト(Penetration test)とは、ネットワークに接続されているシステムに対して、既知の技術を用いて侵入を試みることで、システムにセキュリティ上の脆弱性がないかどうかテストする手法のことをいいます。
日本語では「侵入テスト」とも呼ばれます。
また「ペンテスト」「ペンテス」と略されることもあります。
本記事ではペネトレーションテストの概要から、脆弱性診断の違い、テスト方法、導入のメリット・デメリットについて解説していきます。
ペネトレーションテストと脆弱性診断の違い
ペネトレーションテストと近しい用語として耳にするものに「脆弱性診断」があります。
「ペネトレーションテスト」と「脆弱性診断」はどのように違うのでしょうか。
脆弱性診断
脆弱性診断は一般的に、システム内の脆弱性からセキュリティ面の機能不足までを網羅的に調査します。
ガイドラインなどを用いて定型的に調査は行われ、アプリケーションやファイアウォール、ルーターやサーバー・IoT機器などの、システムやネットワーク内に潜む脆弱性の特定が目的となります。
診断結果によって、発見された脆弱性やセキュリティ面の機能不足が可視化されます。
ペネトレーションテスト
ペネトレーションテストは特定の意図を持った攻撃者にその目的が達成されてしまうかを検証するためのテストです。
検証対象のシステム構成などに対応したシナリオを作成し、実際に攻撃者が使用しているツールや脆弱性、ソーシャルエンジニアリングなどを利用して一定期間内で目的を達成できるかの調査を行います。
脆弱性診断と大きく異なる点は、システムのみを対象にするのではなく、SOCといったモニタリング体制やインシデント対応体制、導入しているセキュリティ機器の検知・防御能力など、攻撃への対応体制を含むセキュリティ対策全体を評価するために実施される点です。
また広義のペネトレーションテストでは、物理的な侵入など含めて評価が実施されます。
調査結果は目的達成までの侵入経路やシナリオの提供という形で共有されます。
違いのまとめ
ペネトレーションテストと脆弱性診断の違いについてまとめると、以下のようになります。
脆弱性診断 |
ペネトレーションテスト |
|
---|---|---|
目的 |
問題点の列挙 |
対策全体の評価 |
やること |
調査 |
擬似攻撃 |
スコープ |
システム |
システム全体/組織 |
レポート |
脆弱性一覧 |
攻撃シナリオとその結果 |
ペネトレーションテストの流れ
企業やサービスによって若干異なりますが、ペネトレーションテストは概ね以下の流れで実施されます。
ヒアリングと診断準備
検証対象のシステム構成、個人情報や機密情報などの情報資産、アクセスログの取得状況などをヒアリングした上で、実施企業は検証対象に適した攻撃シナリオを作成します。
擬似攻撃を行う範囲や攻撃時の環境(インターネットから内部から等)、実施時間や禁止事項などテスト時のルールなど、テストに関する条件はこの段階で策定されます。
攻撃・侵入テスト
作成したシナリオに沿って攻撃・侵入を実施し、結果を記録していきます。
ツールを使いつつ、状況に応じて知見を活かして手動にてセキュリティの問題点を探し出し、その利用を行います。
実際に行われることはシナリオにより異なりますが、多くの場合は脆弱性・問題となる設定を探す作業が大半を占めます。
データ分析
診断結果と環境ログをもとに攻撃に対する問題点を分析し、評価がなされます。
報告
テスト結果が報告書として共有されます。
報告会という形で共有される場合もあります。
サービスによってはアフターサポートを実施しているものも存在します。
アフターサポートの実施有無や内容はサービスや企業によって異なるので、必要な場合は事前に確認してみることをおすすめします。
導入のメリット・デメリット
ここまでペネトレーションテストの概要からテストの流れまでを解説してきました。
続いてはペネトレーションテストを導入することのメリット・デメリットについて解説していきます。
ペネトレーションテストのメリット
システムの環境に合わせてテストができる
ペネトレーションテストは調査対象の環境に合わせてシナリオが作成されます。
調査対象のシステムやネットワーク構成、組織のインシデントに対する対応などを総合的にテストするため、定型的なテストよりも具体性のある問題点を得ることができます。
システムへの侵入調査を安全な環境で調査できる
ペネトレーションテストは実際にシステムへ侵入して調査を行いますが、これはあくまでテストなので安全な状態で客観的なデータを得ることができます。
しかし、脆弱性診断同様、万が一の問題が発生した際に、それを復旧するプラン・バックアップなどを用意しておくことは必須となります。
検証結果を具体的な報告書として受け取れる
テスト実施後には、脆弱性の評価や調査対象の概要が文書化された報告書を受け取ることができます。
具体的な対策方法が示されるため、脆弱性の解決に向けての行動が起こしやすくなります。
ペネトレーションテストのデメリット
コストがかかる
テスト対象の規模や内容、テスト項目の数によっては膨大なコストがかかる場合もあります。
また、ペネトレーションテストができるエンジニアは非常に限られているため、費用は高くなりがちです。
こちらはサービスによっても異なりますので実施前に問い合わせなどで確認することをおすすめします。
テスト実施者のスキルにより成果に差が出る
ペネトレーションテストの実施には高度なスキルが求められます。
テストを実施する側のスキルによって、検証される脆弱性や対策方法などの、テスト成果に差が出ることがあります。
誰がペネトレーションテストを利用するべきか
ペネトレーションテストが明らかにする問題は、攻撃の実現可否を軸としたセキュリティ対策全般に関するものです。
それには、攻撃を検知する機器の能力、各種ログやシステムの以上から攻撃を検知して中断させるための対応能力など、幅広い対策が含まれています。
そのため、ペネトレーションテストは、一定程度セキュリティ成熟度が高い企業が実施される方がより効果が高いと考えます。
以下は、yamoryが考える一定程度のセキュリティ成熟度の指標です。
- 情報資産が何か、どこにあるかを把握している
- 最低限、セキュリティ対策ソリューションを2つ以上導入している
- セキュリティ対応手順が存在している
- CSIRTまたはそれに準ずる組織がある
なお、現状セキュリティ対策ソリューションを導入していない、ないしは導入予定がない場合、まずはアプリケーションやプラットフォームに対する脆弱性診断を徹底して行うことをお勧めします。
さいごに
ペネトレーションテストは、受ける側も調整や準備、想定脅威の洗い出しなど、低くはない負荷が発生しますが、脆弱性診断と比べると具体性の高い情報が得られるためシステムのセキュリティ対策としてぜひ取り入れたい方法です。
開発したシステムの目的や性質に応じて、最適なペネトレーションテストを実行することをおすすめします。
yamoryでは、Webアプリケーションの約9割を占めると言われているオープンソースソフトウェアの脆弱性と、その脆弱性に関連する攻撃情報をモニタリングし、アプリケーションのセキュア化を支援いたします。
インターネットの安全性を高めるためにも、ぜひ一度お試しいただければ幸いです。