はじめに
情報セキュリティの分野では、システムやネットワークの脆弱性を事前に検出し、セキュリティインシデントを未然に防ぐことが重要である。
その手法の一つに、「ペネトレーションテスト(Penetration Testing)」がある。
本記事では、基本情報技術者試験(令和6年)科目A 問9 の問題を例に、ペネトレーションテストの概要や関連技術について詳しく解説する。
基本情報技術者試験(科目A)問9の問題
試験問題
ペネトレーションテストに該当するものはどれか。
ア. 検査対象の実行プログラムの設計書,ソースコードに着目し,開発プロセスの各工程にセキュリティ上の問題がないかどうかをツールや目視で確認する。
イ. 公開Webサーバの各コンテンツファイルのハッシュ値を管理し,定期的に各ファイルから生成したハッシュ値と一致するかどうかを確認する。
ウ. 公開Webサーバや組織のネットワークの脆弱性を探索し,サーバに実際に侵入できるかどうかを確認する。
エ. 内部ネットワークのサーバやネットワーク機器のIPFIX情報から,各PCの通信に異常な振る舞いがないかどうかを確認する。
解答と解説
この問題の正解は 「ウ」 である。では、それぞれの選択肢が何を意味するのか詳しく見ていこう。
1. ペネトレーションテスト(Penetration Testing)
ペネトレーションテスト(Penetration Test、略称:ペンテスト) は、攻撃者の視点に立ち、システムやネットワークに対して 実際に攻撃を試みることで、脆弱性を検出する手法 である。
ペネトレーションテストの目的
- システムやネットワークの実際の脆弱性を発見する
- 攻撃者がどのように侵入し得るのかをシミュレーションする
- 脆弱性が悪用される前に、修正・強化策を講じる
ペネトレーションテストの種類
- ネットワークペネトレーションテスト
- 企業ネットワークやWebサーバの外部から侵入を試みる
- ファイアウォールやVPNなどのセキュリティ対策を検証
- Webアプリケーションペネトレーションテスト
- Webアプリの脆弱性(SQLインジェクション、XSSなど)を検出
- ソーシャルエンジニアリングテスト
- 人的要因を狙った攻撃(フィッシングメール、なりすましなど)の実験
問題文の「公開Webサーバや組織のネットワークの脆弱性を探索し,サーバに実際に侵入できるかどうかを確認する。」という記述は、このペネトレーションテストの定義に該当するため、「ウ」が正解 となる。
2. 各選択肢の説明
ア. セキュリティレビュー(Security Review)
「検査対象の実行プログラムの設計書,ソースコードに着目し,開発プロセスの各工程にセキュリティ上の問題がないかどうかをツールや目視で確認する。」
この手法は、「セキュリティレビュー」 と呼ばれる。
セキュリティレビューの特徴
- ソースコードや設計書をチェックし、脆弱性が含まれていないかを静的に検査 する。
- 例えば、開発段階でコードの脆弱性(バッファオーバーフロー、SQLインジェクション)をチェックする。
- 攻撃のシミュレーションは行わない。
ペネトレーションテストは 実際に攻撃を試みる手法 であり、ソースコードの静的チェックを行うセキュリティレビューとは異なるため、誤り である。
イ. ファイル改ざん検知
「公開Webサーバの各コンテンツファイルのハッシュ値を管理し,定期的に各ファイルから生成したハッシュ値と一致するかどうかを確認する。」
この手法は、ファイルの改ざん検知(Integrity Checking) に該当する。
ファイル改ざん検知の特徴
- ハッシュ値を管理し、定期的に一致を確認することで、ファイルの改ざんを検出する。
- 例えば、WebサイトのHTMLやJavaScriptファイルが攻撃者によって書き換えられた場合に検出する。
- 脆弱性の検証ではなく、改ざんの監視 が目的である。
ペネトレーションテストは 脆弱性を探すために攻撃を試みる手法 であり、改ざん検知とは異なるため、誤り である。
エ. ネットワーク監視(Network Monitoring)
「内部ネットワークのサーバやネットワーク機器のIPFIX情報から,各PCの通信に異常な振る舞いがないかどうかを確認する。」
この手法は、ネットワーク監視(Network Monitoring) に該当する。
ネットワーク監視の特徴
- ネットワークトラフィックを監視し、不審な通信を検出する。
- IPFIX(IP Flow Information Export)やNetFlowなどの技術を利用する。
- 例えば、社内PCがマルウェアに感染し、不審な外部通信をしているかどうかを検出する。
ペネトレーションテストは 実際に攻撃を試みる手法 であり、ネットワーク監視とは異なるため、誤り である。
ペネトレーションテストの関連技術
ペネトレーションテストは、他のセキュリティ手法と組み合わせて活用されることが多い。
手法名 | 目的 | 主なツール・技術 |
---|---|---|
ペネトレーションテスト | 実際に攻撃を試み、脆弱性を検証する | Metasploit、Kali Linux |
セキュリティレビュー | ソースコードの静的解析で脆弱性を発見 | SonarQube、Fortify |
改ざん検知 | ファイルの改ざんを検出 | Tripwire、OSSEC |
ネットワーク監視 | 異常な通信をリアルタイムで検知 | Wireshark、Snort |
まとめ
今回の試験問題では、「ペネトレーションテストに該当するもの」として、「公開Webサーバや組織のネットワークの脆弱性を探索し,サーバに実際に侵入できるかどうかを確認する。」(ウ) が正解だった。
ペネトレーションテストは、実際に攻撃を試みることで脆弱性を検出し、修正につなげる手法である。
セキュリティを強化するために、他の手法と組み合わせて活用することが望ましい。
今後、システム開発やネットワーク管理に携わる際には、これらのセキュリティ技術を適切に活用できるようにしておこう。
コメント