「ペネトレーションテスト」って何? その仕組みと目的、そしていつ行えばいいの?

会社の業務で、ITシステムを利用していると、「このシステム、もしかして攻撃されて、動かなくなったり情報漏洩なんかしたりしないだろうか…?」なんて不安を感じることはないでしょうか。特にシステム管理者の人なんか、何かあったら全部自分のせいにされしまうんですから。
そういった危険性がないかどうか、あらかじめ実験、調査してみることはとても重要です。「ペネトレーションテスト(侵入テスト)」とは、実際のサイバー攻撃を想定して、組織の情報セキュリティ体制を評価するテスト手法です。
セキュリティ専門のエンジニア(ペンテスター、ホワイトハッカー)が、システムの攻撃者になったつもりで、許可を得たターゲットシステムへの侵入を試み、攻撃に対する耐性を検証します。
このテストを通じて、自社のシステムに潜む「セキュリティホール(脆弱性)」を発見し、悪い人に攻撃される前に、修正する機会を得ることができます。
また「ペネトレーションテスト」は、外部からのサイバー攻撃への備えだけでなく、内部の犯行や、内部ネットワークからの脅威に対する防御力もチェックできる点が特徴です。
ようするに「ペネトレーションテスト(侵入テスト)」は、企業のシステム管理者であれば是非やるべきだ、と言わざるを得ません。今すぐやりましょう!ほら、早く!
目次
「ペネトレーションテスト」の基本的な仕組みとは

「ペネトレーションテスト」では、具体的な攻撃シナリオ(想定される攻撃パターン)を立てて、疑似的に攻撃を実行します。
一般的な進め方として、まずはターゲットに関する偵察・情報収集を行い、その後にシステムへ脆弱性スキャンを実施します。
続いて、判明した「セキュリティホール」を分析・評価し、システムの弱点を見つけ出し、実際にそれらを悪用(エクスプロイト)して侵入できるかを試みます。最後に、テスト結果を詳細に報告するといった段階を踏むことが多いです。よくネットで大量のデータを飛ばしくって、ターゲットのwebのサーバーを落としてやる!…ってな時によく使われる「DDoS攻撃」は、エクスプロイトの一種ですね。
このように「ペネトレーションテスト」には、高度な専門知識と慎重な計画が必要となるため、は多くの場合、内製でやる事はなく、外部の専門エンジニアに依頼して実施されるのが普通です。
お金がかかっちゃいますが、仕方ありませんね!
「ペネトレーションテスト」は、正式な許可のもとで行われる限り、全くもって違法ではありませんし、テスト中に問題が起きないように、事前に綿密な取り決めを交わした上で実行されますのでたぶん安全です。
なお、よく混同される「脆弱性診断(セキュリティ診断)」との違いについても押さえておきましょう。
「脆弱性診断」が、自動ツールなどを用いて、システムに存在する既知の弱点を広く洗い出し、評価するのに対し、「ペネトレーションテスト」は、攻撃者の視点に立ち、実際の攻撃シナリオを「手動で試行」することで、どこまで侵入や被害が及びうるか、そして現在の防御策がどこまで有効に機能するかを具体的に確認する点が異なります。
両者はセキュリティ強化のために、共に補完的に活用されるべきものであると言えるでしょう。
「ペネトレーションテスト」の対象範囲について

「ペネトレーションテスト」は、対象とするシステムや環境に応じて様々な種類があります。
例えば、インターネットに公開されたウェブアプリケーションや、サーバーに対する「外部ペネトレーションテスト」、社内ネットワーク内のシステムに対する「内部ペネトレーションテスト」の二種類があります。
クラウド環境上で稼働するシステムに対して実施するケースも一般的で、「オンプレミス(自社設置)」環境かクラウド環境か、あるいはハイブリッド環境であるかを問わずに、対応することが可能です。
検証の対象は、ネットワーク、OS、データベース、ウェブアプリケーションから無線LAN機器に至るまで、多岐にわたり、ITインフラのあらゆる側面が含まれます。
テストの範囲や手法は対象システムによって異なりますが、いずれの場合も「そのシステムは攻撃に対して十分な耐性を持っているか」どうかを見極めるという目的は、共通しています。というか共通していないと困ります。
「ペネトレーションテスト」の目的について

では、なぜこのような面倒くさい侵入テストを(専門家に任せるにせよ)、わざわざ実施する必要があるのでしょうか。その主な目的をいくつかの観点から整理します。
- 脆弱性や弱点の特定と対策に必要
テストを通じて、攻撃者に悪用されうるシステム上の弱点(脆弱性)を発見できます。
特定した脆弱性に対処することで、サイバー攻撃を受けるリスクを事前に軽減させることが可能です。
万が一の攻撃発生前に弱点を克服できれば、企業の重要な情報資産を守る防衛策を講じることができます。良かった! - 現行のセキュリティ対策の有効性検証に必要
「ペネトレーションテスト」では、擬似的に攻撃を仕掛けることで、現状導入されているセキュリティ対策や検知システム(例えば※侵入検知システムや※SOC)が適切に機能するかどうかを試すことができます。
テスト結果を踏まえれば、防御側の検知精度を評価し、セキュリティ製品や運用プロセスの効果を確認することができます。
※侵入検知システム(intrusion detection system。IDS)…システムやネットワークに発生するイベントを監視し、それを分析する事で、ホストやポートをスキャンするような偵察行為や不正侵入などの「インシデント(重大な事故や事件につながりかねない、一歩手前の状態や出来事)」の兆候を検知し、管理者に通知するシステム。
※SOC(Security Operation Center)…組織内のネットワークやシステムを監視し、脅威分析やインシデント対応を行う専門チームのこと。 - 攻撃を受けた場合の影響把握と備えに必要
テストの結果から、もし実際に攻撃を受けた場合に、どのようなリスクや被害が生じ得るかを具体的に把握できます。
言い換えれば、ビジネス上想定される最悪シナリオ(例えば「個人情報の漏えい」や「業務システムの停止」など)に対し、現状どこまで耐えられるかを検証できるのです。
これにより万が一の際に、事業継続性を確保するための対策を事前に策定でき、被害想定に基づいた効率的なリスク低減策を講じることが可能になります。 - コンプライアンス(規制)への対応に必要
業種や扱う情報によっては、定期的な「ペネトレーションテスト」の実施が法令やガイドラインで要求される場合があります。例えばクレジットカード情報を扱う企業向けの国際基準であるPCI DSSでは、ネットワークやシステムに対する侵入テストを継続的に行うことが求められています。
このように「ペネトレーションテスト」は、自社のセキュリティ水準を対外的に証明し、各種認証基準への準拠性を確保する上でも役立ちます。
以上のように、ペネトレーションテスト」には「脆弱性の洗い出し」から「防御体制の検証」、「被害想定と備え」、「対外的な信頼確保」まで、幅広い目的とメリットがあります。
適切に活用することで、セキュリティインシデント発生の可能性を下げ、仮に発生しても被害を最小限に抑えることが期待できるでしょう。
ペネトレーションテストを実施するタイミング

それでは、どのようなタイミング・場面で「ペネトレーションテスト」を行うのが適切なのでしょうか。
一般的には以下のような場合に実施が検討されます。
- 新しいシステムやWebアプリを本番導入する前
新規にシステムやウェブアプリケーションを開発・導入する際は、本番稼働開始前にペネトレーションテストを行うとよいでしょう。
リリース前にテストを実施することで、潜在的な脆弱性を発見してリスクを低減できます。
新システムが既存のネットワークやデータに悪影響を及ぼさないよう、ネットワーク構成や認証機能、データベース、APIなどについて事前に検証しておくことが望ましいです。 - システムに大幅な変更やアップデートを行った後
既存システムへ機能追加やバージョンアップなど大きな変更を加えた場合、その変更によって新たな脆弱性が生まれていないか確認する必要があります。
変更後に「ペネトレーションテスト」を実施して、新しい機能や改修によってセキュリティ上の問題が発生していないか評価します。
システム更新のたびにテストを行えば、不測のセキュリティリスクを早期に発見できるでしょう。 - 新しいセキュリティ対策やポリシーを導入した後
パスワードポリシーの強化や新たなセキュリティ製品の導入など、セキュリティ方針を変更・追加した後にもテスト実施が有効です。
その対策が実際に意図した通り有効に機能しているか、攻撃者に迂回される抜け道が残っていないかを確認できます。
例えば、認証方式を変更した場合に新方式が適切に運用され、攻撃に耐え得るかどうかをテストで検証します。 - セキュリティインシデント(侵入や情報漏えいなど)が発生した後
もし自社でサイバー攻撃や情報漏えいといったインシデントが起きてしまった場合、その事後対応の一環として「ペネトレーションテスト」を行った方が良いでしょう。
発生した攻撃手口に類似の方法でテストを行い、同様の手口で再度侵入される恐れがないかを確認します。
インシデントの原因となった脆弱性が確実に修正されたか、他に潜在的な弱点が残っていないかを検証し、再発防止策に役立てるのです。 - 定期的なセキュリティ監査・点検として
上記の個別ケース以外に、定期スケジュールで継続的にペネトレーションテストを実施することも推奨されます。
システムは時間の経過とともに新たな脆弱性が見つかったり、攻撃手法が巧妙化したりするため、セキュリティ対策の有効性は常に変化します。
そのため一般的には年に1回程度、定期的に侵入テストを行い現状の安全性をチェックするのが望ましいとされています。
いやあ、お金がかかって仕方ないですね!(涙目)でも、自社のシステムが攻撃されてダウンしたらそれだけじゃ済みませんぜよ。必要経費です、必要経費。虫歯になる前に歯の定期健診に行けということですよ(違うか?)。
まとめ

以上、ペネトレーションテストの概要から目的、適切な実施タイミングについて解説してきました。
セキュリティ対策が万全に機能しているかを 「攻めの視点」 で検証できる「ペネトレーションテスト」は、企業にとって重要なセキュリティ管理手段の一つです。
新人IT管理者の方は、まずは本記事で述べたポイントを踏まえて、自社システムの状況に応じた実施タイミングや目的を検討してみてください。
適切に「ペネトレーションテスト」を行うことで、サイバー攻撃に強い安全なビジネス環境を維持できるようになるでしょう。
※生成AIでまんが投稿始めました
参考文献
LISKUL/「ペネトレーションテスト(侵入テスト)とは?企業の防御策の基本まとめ」Wikipedia/セキュリティホール
Wikipedia/エクスプロイト
codebook/ペネトレーションテストとは?やり方や目的、脆弱性診断との違いについてわかりやすく解説!
株式会社日立ソリューションズ/セキュリティコンサルティング
SHIFT/脆弱性診断(セキュリティ診断)とは?実施する目的や種類、ツールの選び方をわかりやすく解説
CyberDefence/ペネトレーションテスト(侵入テスト)とは?脆弱性診断との違いや方法を解説
Wikipedia/ウェブアプリケーション
Wikipedia/クラウドコンピューティング
Wikipedia/オンプレミス
Index/ペネトレーションテストの目的とは?メリットやデメリットを解説