サイバーインシデントの要因として、筆頭に挙げられるのはシステム上の脆弱性やセキュリティ対策の未整備です。しかし、ガバナンスの不足や人的ミスの発生しやすいオペレーションなど運用面の瑕疵が原因である場合も少なくありません。また、完全な防御は不可能であることを前提とするゼロトラストセキュリティにおいて、侵入を受けた後の対応は侵入を防ぐことと同様に重視すべきです。
そこで実践したいのが「ペネトレーションテスト」です。本記事ではペネトレーションテストとは何か、脆弱性診断とは何が違うのかなど気になる疑問にお答えしてまいります。
ペネトレーションテストとは、悪意ある攻撃者の視点から企業や公的機関のシステム、ネットワーク、アプリケーションなどに対する攻撃シミュレーションを行うテストです。ペネトレーションテストと脆弱性診断の違いは、その目的やカバーする範囲にあります。
脆弱性診断はシステムの不具合やバグなどの脆弱性を明らかにするテストであり、セキュリティリスクアセスメントにおいてリスクを特定して分析する第一段階に該当する取り組みです。 一方、ペネトレーションテストは単に脆弱性を見つけるだけでなく、攻撃者が実際に行うであろう攻撃手法を想定し、攻撃に成功するかどうかを検証する段階まで含みます。網羅性高くシステムを検証するため、脆弱性診断では見つけ出せないような深くまで、オペレーション上の問題点や課題を追求するのがペネトレーションテストといえるでしょう。
例えば、標的型メール攻撃やソーシャルエンジニアリングなど、システムの脆弱性ではなく人間の脆弱性を対象とした攻撃への対応などは、脆弱性診断の対象ではありません。
そのため、多くの場合脆弱診断を行った後にペネトレーションテストが実施されることになります。
ここからは、ペネトレーションテストを実際に行う方法を見ていきましょう。
ペネトレーションテストは大きく分けて、ツールを使う方法と、サービスを使う方法に分けられます。 ツールを用いる方法は無料のツールもありコストを抑えやすい、自動的にレポートが作成されるといったメリットがある一方で、適切な対策を講じるためには専門のセキュリティエンジニアによるテスト結果の分析が欠かせません。また、未検知・誤検知の可能性も完全には否定できないため、「ツールに任せておけば安心」とはいえないことは意識しておきましょう。
一方、サービスを利用する場合は、知識や技術を専門家から提供してもらい、準備、テスト環境の構築、情報収集から、レポートの作成まで実施できるため、社内の工数を削減できるとともに、信頼度の高い結果が期待できます。ただし、テストを外部に依頼することで質のばらつきが生じたり、コストが高まったりするため、適切な事業者の選定や社内調整には向き合わねばならないことは押さえておきましょう。
サービスを利用する場合の実際にペネトレーションテストを進める手順は、以下の通りです。
また、ペネトレーションテストの実施方式にはホワイトボックス・ブラックボックス・グレーボックスの3種類が存在し、それぞれ以下のように定義されます。
内部構造を把握しているからこそ見つかるバグ、外部の視点からだからこそ行えるシミュレーションの両方が存在するため、実際は複数の方法を合わせて用いられることも少なくありません。
ペネトレーションテストを実施するにあたって重要な要素に「シナリオ」があります。
ペネトレーションテストにおける「シナリオ」とは、攻撃者が実際に行うであろう攻撃手法を想定したテストの計画書を指します。その内容はテストのゴールや起点、攻撃者像、目的、スコープなどで構成されており、ペネトレーションテストの再現性を高めたり、脆弱性の評価を正確に行うにあたって必要不可欠といえるでしょう。
昨今金融機関などの重要機関における実施が推奨されている「TLPT(Threat-Led Penetration Test:脅威ベースのペネトレーションテスト)」は、脅威インテリジェンスなどを活用した実践的な演習により想定外の気付きを促すという利点を持ち、テスト実施後、脆弱性のみならずレジリエンスも含めた包括的な評価を行うにあたって「攻撃シナリオ(脅威シナリオ)」が重要な材料となります。
サイバー攻撃手法が多様化するにつれて重要性を高める「ペネトレーションテスト」について解説してまいりました。ペネトレーションテスト、脆弱性診断ともにITシステムの脆弱性を明らかにするという点では共通していますが、前述の通りカバーする範囲には明確な違いがあります。企業や組織が適切なサイバーセキュリティ対策を講じるためには、両方のテストを実施することが求められるでしょう。