ペネトレーションテストとは?システムの脆弱性を明らかに!

ざっくりと

  • システムの脆弱性を診断
  • 攻撃の視点でテスト
  • セキュリティ強化の手法

ペネトレーションテストとは、脆弱性を探すテストです。

概要説明

ペネトレーションテストとはシステムの脆弱性を探すテストである。なぜならば、実際の攻撃手法を用いてシステムを試すことで、安全なシステムを作るための参考になるからだ。

例えば、不正なアクセスを検知できるかどうかの検証がある。そして、これらの結果を基にセキュリティを強化する。

つまり、予期せぬ危険からシステムを守るための重要な工程である。だから、開発の初期段階から実施することが推奨される。

職業職種

  • セキュリティエンジニア
    セキュリティエンジニアは、ペネトレーションテストを頻繁に使用する。なぜなら、システムのセキュリティ状態を正確に把握し、改善策を提案するため。例えば、新しいセキュリティ対策の効果を検証する場面である。
  • システム開発者
    システム開発者は、開発の初期段階からペネトレーションテストを利用する。なぜなら、開発中にセキュリティの問題を発見し、早期に対処することが重要だからだ。例えば、新しい機能を追加する前にセキュリティのチェックを行う場面である。
  • ITマネージャー
    ITマネージャーは、ペネトレーションテストを計画・監督する。なぜなら、企業の情報資産を守る責任があるからだ。例えば、外部の専門家にペネトレーションテストを依頼し、結果を元にセキュリティ方針を決定する場面である。

ペネトレーションテストは、名前の由来は「ペネトレート(Penetrate)」です。これは英語で「侵入する」という意味で、システムに侵入して脆弱性を見つけ出す検査の性質を反映しています。

手順例

以下は、ペネトレーションテストを実施する手順です。
  1. 目的と範囲の設定
    目的と範囲を明確に設定する。なぜなら、テストの方向性と限界を明示し、無駄なリソースを使わないため。例えば、特定のシステムの脆弱性を探る。
  2. 情報収集
    ターゲットの情報を収集する。なぜなら、攻撃の準備と計画を立てるため。例えば、ターゲットシステムのIPアドレスやドメイン情報。
  3. 脆弱性の分析
    収集した情報をもとに脆弱性を分析する。なぜなら、攻撃ポイントを特定するため。例えば、セキュリティパッチが適用されていない部分を見つける。
  4. 攻撃の実施
    実際にシステムに攻撃を仕掛ける。なぜなら、脆弱性が本当に存在するのかを確認するため。例えば、SQLインジェクションを試す。
  5. 報告と改善
    テストの結果を報告し、改善策を立案する。なぜなら、発見した脆弱性を修復し、セキュリティを強化するため。例えば、詳細なテスト報告を作成し、修正作業を開始する。

類似語

  • セキュリティ監査
    セキュリティ監査は、ペネトレーションテストの類似語である。なぜなら、システムやネットワークのセキュリティ状態を評価するためのプロセスであるから。例えば、セキュリティポリシーの遵守を確認する。
  • 脆弱性診断
    脆弱性診断は、ペネトレーションテストの類似語である。なぜなら、システムに存在する脆弱性を発見し、評価する作業であるから。例えば、自動化ツールを使って脆弱性をスキャンする。
  • エチカルハッキング
    エチカルハッキングは、ペネトレーションテストの類似語である。なぜなら、悪意のない目的でシステムを攻撃し、セキュリティの弱点を明らかにする活動であるから。例えば、企業が自社のシステムの安全性を確認するために専門家に依頼する。

反対語

  • セキュリティ保証テスト
    セキュリティ保証テストは、ペネトレーションテストの反対語である。なぜなら、ペネトレーションテストはシステムの脆弱性を探すのに対し、セキュリティ保証テストはシステムの安全性を確認する目的で行うからだ。例えば、正常な操作しか許可されない状況でテストを行う。
  • ホワイトボックステスト
    ホワイトボックステストは、ペネトレーションテストの反対語である。なぜなら、ホワイトボックステストは内部の動作を確認しながらテストを行うのに対し、ペネトレーションテストは外部からシステムを攻撃して脆弱性を探るからだ。例えば、ソースコードを直接確認しながらテストを実行する。
  • 受け入れテスト
    受け入れテストは、ペネトレーションテストの反対語である。なぜなら、受け入れテストはクライアントやユーザーの要求に合っているかを確認するテストで、攻撃シナリオを使わないからだ。例えば、エンドユーザーが実際にシステムを使用する場面をシミュレートする。

会話例

  • セキュリティチームの会議で
    「新しいシステムのペネトレーションテストは誰が担当するんだ?」
    「それは私が担当するよ。攻撃シナリオもすでに作成中だ。」
  • 開発者とセキュリティ専門家の対話で
    「このコードはペネトレーションテストで安全だと証明できるの?」
    「うん、テストでそのコードの脆弱性は一つも見つからなかったよ。」
  • クライアントとの契約交渉で
    「ペネトレーションテストの結果を私たちに報告してもらえる?」
    「もちろん、テスト結果と改善提案も一緒に報告書として提供するよ。」

注意点

ペネトレーションテストを行う時の注意点は許可を取ることである。なぜならば、許可なしにテストを行うと違法行為になる可能性があるからだ。

例えば、クライアントやシステムオーナーから明確な許可を得る文書が必要である。そして、テストの範囲や時間も明確にする。だから、事前のコミュニケーションが重要。

ペネトレーションテストとバルクテストは、間違えやすいので注意しましょう。

ペネトレーションテストは、システムの脆弱性を突くような攻撃シナリオを使用してセキュリティを評価します。

一方、バルクテストは、システムが大量のリクエストやデータを処理できるかを確認するテストです。

記事を書いてる人

ガラケー時代からWEB開発やってる自宅SE です。

「○○を知りたい!!」「○○が分からない!!」などありましたら、Twitterでもブログでもコメントいただければ、ご期待に添えるように頑張ります!

ネット事件簿チャンネルを運営しているので、YouTubeもぜひ覗いてみてください!!

雨おやじのSNSを覗く!!
IT用語辞典
雨おやじのSNSを覗く!!
ITkagyo

コメント