システムの安全性を検証する手法のひとつに、擬似的なサイバー攻撃によってセキュリティホールを可視化する「ペネトレーションテスト」があります。この記事ではペネトレーションテストを実施するメリットやデメリット、具体的な実施の流れについて説明します。
ペネトレーションテストとは
ペネトレーションテストとは、外部からの疑似攻撃によってコンピュータシステムの安全性を調べるテストです。たとえば企業のシステムがDos攻撃などのサイバー攻撃を受けることを想定し、攻撃者目線でそれらの攻撃を擬似的に実施してシステムの不備や脆弱性を発見します。
なお英語のペネトレーション(Penetration)とは「侵入」を意味する言葉です。このためペネトレーションテストは「侵入テスト」や「疑似アタックテスト」、あるいはペネトレーションを略して「ペンテスト(PenTest)」とも呼ばれます。
ペネトレーションテストが必要な理由
システムにとってのセキュリティリスクは、既知のものばかりではありません。サイバー攻撃の手法は常に進化していますし、システムのアップデートによって新たな脆弱性が発生する可能性もあります。
このため設計段階や実装においてシステムが既知の脅威に対応していたとしても、公開前にペネトレーションテストを実施し、公開後も定期的に実施することが重要です。
ペネトレーションテストの種類
ペネトレーションテストの種類は大きく分けて以下の4つです。これらのテストは組み合わせて行われることもあります。
外部ペネトレーションテスト | 攻撃者が外部からシステム内部への侵入を試みるテスト |
内部ペネトレーションテスト | 攻撃者がシステム内に侵入していることを前提としたテスト |
ホワイトボックステスト | システムに関する情報(設計書やソースコード)を把握したうえで脆弱性を探るテスト |
ブラックボックステスト | システムに関する情報を伏せたまま脆弱性を探るテスト |
ペネトレーションテストのメリット・デメリット
ペネトレーションテストはシステムの安全性を確保する上で大きなメリットがあります。一方で、テストの実施には多少のデメリットも伴います。ペネトレーションテストの実施を検討する際は、メリット・デメリットそれぞれをしっかり把握しておくようにしましょう。
メリット | デメリット |
システムに侵入可能かどうか安全に確認できる | テストの手法によってはコストがかかる |
システム固有の脆弱性と対応策が明確になる | 実施者や使用ツールによって結果が左右される |
メリット① システムに侵入可能かどうか安全に確認できる
ペネトレーションテストでは外部から模擬攻撃を行い、脆弱性が見つかれば実際に内部に侵入します。このように実際の攻撃に限りなく近い状態で実施されるテストですが、あくまで安全な環境で行われるためシステムへの危険はありません。
メリット② システム固有の脆弱性と対応策が明確になる
ペネトレーションテストは対象となるシステムごとにシナリオを作成して行われます。このためシステム固有の脆弱性や未知の脆弱性を発見し、具体的で有効な対策を検討できるのがメリットです。なおテストの結果は報告書としてまとめられます。
デメリット① テストの手法によってはコストがかかる
ペネトレーションテストの手法によっては、専門家の人件費などで数百万円ものコストが発生することもあります。テストを実施する際は規模や手法をよく検討し、特に業者に依頼する場合は事前に見積もりをとるなどして確認してください。
デメリット② 実施者や使用ツールによって結果が左右される
ペネトレーションテストは誰が実施しても同じ、ではありません。実施者のスキルや使用するツールによって結果がばらつくことも少なくないため、できるだけ正確な結果を得るためにも、実績やノウハウが豊富なサイバーセキュリティ会社に依頼することをお勧めします。
ペネトレーションテストの流れ
ペネトレーションテストは一般的に、以下の流れで行われます。
①準備
準備とは、具体的には情報収集とシナリオの作成です。
まずテストの実施者は関係者にヒアリングを行い、システムのログを取得してシステムやネットワーク環境、データの保管状況などを把握します。その後システムの状況に応じてテストの範囲や攻撃の種類を検討し、最も効率的なシナリオを作成します。
②テスト
作成したシナリオに基づいて疑似攻撃を行います。
ペネトレーションテストは原則として外部からの疑似攻として開始しますが、もし脆弱性が見つかればシステム内部への侵入(テスト内容によっては内部からの攻撃)まで行います。
③報告書
テストの結果を報告書にします。
発見された脆弱性やシステムの不備、攻撃の内容やその結果は文書にまとめられ、関係者に提出されます(サイバーセキュリティ会社によっては「報告会」を実施したり、再検査などのアフターフォローを行うところもあります)。
まとめ
ペネトレーションテストは実際の攻撃に極めて近い手法で行われるため、システムが抱える「リアルな脆弱性」を明らかにできます。サイバー攻撃の手法は日々進化しているため、未知のリスクに対応するためにもペネトレーションテストの実施を検討してみてください。