長い時間と膨大な費用をかけて開発したシステムでも、セキュリティ上の欠陥が原因で、個人情報が漏洩したり、悪用されたりしてしまったら、経済的な損失だけでなく、企業の信頼も失われてしまいます。
開発したシステムのセキュリティ対策が十分であるか、チェックする方法の一つとして「ペネトレーションテスト」があります。実際にシステムに攻撃を試みることで、安全かつ客観的にシステムの脆弱性を確認できるテストのことです。
最近実施する企業が増えているペネトレーションテストですが、その効果について理解されている方は少ないかと思います。そこで今回は、ペネトレーションテストのメリット・デメリットに焦点を当て、詳しくご紹介します。
この記事の目次
ペネトレーションテストとは
ペネトレーションテストとは、インターネットなどのネットワークに接続されているシステムに対して、様々な技術を駆使して侵入を試みることで、システムにセキュリティ上の脆弱性が存在するかどうかテストする手法のことを言います。
日本語では「侵入実験」や「侵入テスト」とも呼ばれることがあります。ペネトレーションテストに特化した無料ツールもあり、簡単なテストを実施することもできます。しかし、しっかりとしたテストを実施するには、ペネトレーションテストに特化したセキュリティ企業などに依頼することも必要です。
ペネトレーションテストのメリット
ペネトレーションテストのメリットについて3つ紹介します。
実際にシステムに侵入できるか安全に調査できる
ペネトレーションテストでは実際にシステムに侵入を試みることで、システムの脆弱性を評価します。侵入すると言っても、テストなので悪意を持っているわけではありません。あくまでもペネトレーションテストの一環として、システムへの侵入を試みます。つまり安全で客観的にテストを実施することが可能です。
システムの開発は開発者視点で行われますが、ペネトレーションテストの実施者は攻撃者視点でテストを行います。開発時には想定もしていなかった脆弱性を明らかになることもあるでしょう。
システムの環境に合わせたテストが実施できる
ペネトレーションテストでは、最初にシステムの環境について調査されます。例えばシステムのネットワークやデータベースの構成、ソフトウェアのバージョンなどを把握し、テストのシナリオを作成します。作成されたシナリオに従って、システムへの侵入を試みます。そのためテスト対象のシステムやネットワーク構成に合わせて、テストの実施ができます。
テスト後に調査結果をまとめた報告書が得られる
ペネトレーションテストの実施後に、テスト実施企業により報告書が作成されます。報告書には検証された脆弱性についての危険度が掲載され、検査対象に応じた脆弱性の評価や、検査対象全体の概要が文書化されます。
また報告書をもとに、検査を実施したメンバーによる報告会が行われることもあります。報告会の規模はペネトレーションテストを実施した企業によって様々ですが、おおよそ60分から90分間程度です。
報告書や報告会によって、明らかになった脆弱性に対する具体的な対策方法が示され、脆弱性を解決に向けて行動をおこすことができます。その後、報告された脆弱性が本当に改善されたのか、再度、ペネトレーションテストを実施して検証することもあります。
ペネトレーションテストのデメリット
ペネトレーションテストは非常に有用ですが、デメリットもあります。
テストの内容によっては膨大なコストがかかる
大規模なシステムのテストや、テストの内容や難易度によっては、膨大なコストがかかることがあります。その場合、テストに要する日数も数日にわたることもあります。
ペネトレーションテストは特定の機能や部署、資産に対して実施することも可能です。費用対効果を考え、システム全体ではなく、重要なシステムの一部にのみに限定してテストを実施することが必要な時もあるでしょう。
テスト実施者のスキルによって、成果が異なる
ペネトレーションテストの実施者はセキュリティに関する高いスキルが要求されます。豊富な知識に加え、テストで使用されるツールの操作方法を熟知していることも求められます。
そのためペネトレーションテストを実施する企業やエンジニアのスキルによって、検証される脆弱性や対策方法が異なることもあります。ペネトレーションテストを依頼する際には、依頼先の企業がペネトレーションテストの豊富な実績や経験を持ち合わせているか、十分に検討する方が良いでしょう。
ペネトレーションテストの方法
ペネトレーションテストを実施する企業や、使用するツールやサービスなどによって、方法は異なりますが、概ね以下のような流れでペネトレーションテストは実施されます。
1.ヒアリング・準備 | テスト対象のシステムのネットワークの構成、個人情報や機密情報の保管状態、アクセスログなどの取得状況などを考慮し、どのような診断・テストを行うかシナリオを作成します。 |
---|---|
2.攻撃・侵入テスト | 作成したシナリオに従って攻撃・侵入を実施して、結果を記録します。 自動的に行われるテストや、手動で行うテストや確認など様々な方法で攻撃・侵入を行います。 |
3.報告書の作成 | テスト結果をまとめ、報告書を作成します。 |
テストにおける攻撃・侵入の方法は大きく分けて4つあります。
ホワイトボックステスト | テスト対象のシステムの内部の構造を把握した上で、顧客に合わせた内容で行うテスト |
---|---|
ブラックボックステスト | テスト対象のシステムの内部構造は考慮せずに、外部から把握できる機能を検証するテスト |
外部ペネトレーションテスト | 攻撃者がシステムの外部から攻撃してくることを想定したテスト |
内部ペネトレーションテスト | システムの内部にすでに攻撃者が侵入していることを想定したテスト |
ヒアリング・準備段階でテストのシナリオを作成し、ホワイトボックステストやブラックボックステストを組み合わせて複合的にテストを実施します。
ペネトレーションテストの実施後に、テスト結果をまとめたレポートや報告書を作成します。攻撃に成功した回数や時間、権限の取得経路などをまとめたものです。明らかになった脆弱性に対して、具体的な対策方法などが提示されます。
ペネトレーションテストの価格
ペネトレーションテストは個人向けの無料で行えるツールもありますが、一般的にはペネトレーションテストを専門で行っている企業に依頼することが多いでしょう。テスト実施者のスキルやシナリオの内容によって、必要な費用は数十万円から数千万円規模になることもあります。
ペネトレーションテストの注意点
ペネトレーションテストを実施する前に、どのような項目をテストし、どの程度まで脆弱性を探るのか、あらかじめ決めておくことが必要です。
またペネトレーションテストを専門で行うツールなどもありますが、ツールで明らかになった結果は、最終的には人間が判断することになります。
ペネトレーションテストはシステムの開発時に一度だけ実施すれば良いというものではありません。システムの改修や、使用しているソフトウェアのバージョンアップなど、システムの環境が変化したタイミングでの再実施も重要です。
またシステムへの攻撃手法も日々進化しています。定期的なペネトレーションテストの実施により、新しい攻撃手法への対策を講じることもできるのです。
まとめ
ペネトレーションテストのメリットとデメリットについて詳しく紹介してきました。インターネットやシステムの発達に応じて、ペネトレーションテストも複雑になってきています。ペネトレーションテストを効果的に実施するためには、実施前にテストの目的や内容を十分に検討しておくことが必要です。
そのためには今回紹介したメリットやデメリットについてしっかり把握しておくことが重要であると言えるでしょう。