アジアのビジネス環境が変化するなか、ペネトレーションテスト(ペンテスト)はアプリケーションセキュリティにおける基本的なチェック項目として定着しつつあります。前向きな傾向が見られる一方で、セキュリティに「絶対」という概念はなく、単一のペンテストだけに依存しても把握できる範囲には限界があります。
真のレジリエンス(耐久力)を実現するには多様な評価手法を組み合わせ、脆弱性検出における視野と即応性を高める包括的な戦略が必要です。本書では、多層防御(Defense in Depth)の考え方を踏まえ、多層的ペンテストという高度な枠組みを提示します。
まず押さえるべき事項としては、ペンテストは重要ではありますが、システムセキュリティを保証する万能策ではないという点です。「リリース前にペンテストを実施したから完全に安全だ」という前提は成り立ちません。実際、リリース後のシステムは、侵入につながり得る多様なリスクにさらされ続けます。
具体的には、ペンテスト実施時と本番環境の差異、組織の統制が及ばないアプリケーション版本の変更、システム設定・サーバ設定の不備、さらにゼロデイ脆弱性や隣接システムを起点とする権限昇格攻撃などが挙げられます。
1. ペンテストとは
ペネトレーションテスト(ペンテスト)とは、実際の攻撃者の手口を模擬し、システムやインフラのセキュリティ水準を評価する手法である。ペンテストの目的は、悪意ある攻撃者に悪用される前に、悪用可能な脆弱性を特定することにある。
システム防御における多層防御と同様に、ペンテストも複数レイヤーの観点や手段を組み合わせ、相互に補完させることを目指すべきである。とりわけ、次の2点の強化が重要となる。
•レジリエンスの強化:セキュリティにおいては「絶対に信頼できるものはない」という前提が基本であり、既存対策が破られる可能性を見込んだ追加の備えが必要となる。
•視点の拡大:完全なるセキュリティへの到達はならず、評価は常に「把握できている範囲」に依存する。したがって、評価の観点を増やすことは、見落としの低減につながり、脆弱性への迅速な対処と外部攻撃の回避を通じて、より高い安全性の水準へと近づくことに繋がる。
なぜペンテストが必要なのか
問題として認識できないものは修正できない。ペンテストは、自動スキャンでは拾いきれない脆弱性を洗い出す。
金融・医療などで一般的に厳格とされるな要件(例:PCI-DSS、HIPAA、SOC 2)に対応可能。
セキュリティへ主体的に取り組む姿勢を示すことは、競争市場における大きな差別化要因となる。
予防的な評価への投資は、大規模侵害の事後対応に伴う甚大なコストよりも遥かにとなる。
ペンテストを理解する:宝飾店のストーリー
ペンテストを理解するために高級宝飾店のオーナーを想像してほしい。鍵、監視カメラ、金庫を備え、「安全だ」と思っている。しかし、自分はプロの窃盗犯ではないため、本当に安全かどうかの確信は持てない。
ペンテストは、プロの「セキュリティ監査者」に侵入者役を依頼し、実際に侵入を試みてもらうことに近い。窃盗する訳ではないが、監視をどう回避したか、鍵をどう突破したかの具体的な説明が受けられる。
ペンテストの3つの段階
対象に関する公開情報の収集、侵入口の特定、外部境界(外周)の特徴把握を行う。

デジタルの「鍵」を破る、実装上の欠陥を突くなどにより、アクセス獲得や攻撃成立の可能性を能動的に検証する。

発見事項の文書化、重大度の分類、開発者が脆弱性を解消できるよう具体的かつ実行可能な是正手順の提示を行う。

ペンテストと脆弱性スキャン:広さより深さ
技術リーダーは、自動スキャンと人の手で深掘りするペンテストを明確に区別することが極めて重要である。
例:スキャンが「低リスク」の情報露出を検出したとする。専門家はその情報を足掛かりにユーザー名を特定し、さらにブルートフォースでログインを突破し、最終的にシステム全体の掌握に至る可能性を実証することができる。スキャンは「穴の存在」を示す一方、ペンテストは「その穴がどれほどの被害につながるか」を実証する。
自動ツールが既知の弱点を大量に高速検査する。範囲は広いが浅く、誤検知(False Positive)も起こりやすい。弱点の「存在可能性」を洗い出すことには長けている。
専門家が発見事項を実際に悪用し、場合によっては複数の所見を連鎖(チェーン)させて攻撃を成立させる。範囲は絞られるが深く、想定される事業への影響を示すことができるほか、悪用可能性と被害の現実性を検証することも可能である。
初学者が意識すべき理由
攻撃者は継続的に攻撃手法を磨き、常にシステムを狙っている。
些細な実装不備が、データベース全体の露出につながり得る。
テストの透明性は信頼の醸成につながる。
押さえておくべき用語
- エシカルハッカー
問題発見のために雇用される「善意」の攻撃者役。
- 脆弱性
セキュリティ上の弱点、または「セキュリティホール」。
- ペイロード
侵入できたことを示すために用いるウイルス/ツール。
- リメディエーション
指摘事項の修正・是正。
実施方式:ブラック/グレー/ホワイトボックス
実施方式の選定は、スコープと想定する攻撃者の視点を定め、コストと発見の深さに直接影響する。 効率とカバレッジの両立という点では、グレーボックスが業界標準である。
| 項目 | ブラックボックス(外部) | グレーボックス(バランス) | ホワイトボックス(内部) |
| 提供情報 | なし(外部IP/URLのみ) | 一部(ユーザーログイン、手順書等) | 全て(ソースコード、管理者権限等) |
| 想定攻撃者 | 外部の初級攻撃者〜熟練者 | 不満を持つ従業員/パートナー等 | 高度なスキルを持つ内部関係者/シニア開発者級 |
| コスト | 低〜中 | 中(費用対効果が高い) | 高(工数が多い) |
| 効率 | 低(偵察に時間を要する) | 高(投資対効果が高い) | 中(データの精査が多い) |
| 発見の深さ | 外周中心/比較的見つけやすい弱点 | ロジック不備や権限不備まで掘り下げやすい | 構造・コードレベルの欠陥まで特定しやすい |
| 適用例 | 外部ファイアウォール/公開サーバの確認 | Webアプリ/APIでの標準的な評価 | 重要システム/新製品ローンチ時 |
グレーボックスを推奨:機能面の網羅性と準備の迅速さを両立しやすく、モダンアプリケーションに対して最も価値を創出しやすい。
どの方式を選ぶか



・インターネット上の不特定多数の人間から、自社がどう見えているかを知りたい場合。
・インシデント対応をテストしたい場合(侵入しようとする「ハッカー」にチームが気付けるか?)。
・予算が限られており、外部ファイアウォールと公開サーバーのチェックのみが必要な場合。
・業界標準の手法であり、SaaS、Webアプリ、モバイルアプリで最も一般的な選択肢となる。
・顧客のアカウントが侵害された場合にこる事象を知りたい場合(他の顧客のデータが見えてしまうか?など)。
・「費用対効果」を最大限高めたい場合(テスターはログインページの推測に時間を浪費せず、真のバグ発見に時間を使える)
・高度なセキュリティが求められる分野(防衛、銀行、重要インフラ)に属している場合。
・新規の独自ソフトウェアをローンチする直前で、コード自体が「内側から」安全であることを確認したい場合。
・「完全なソースコードレビュー」を求める厳格なコンプライアンス要件を満たす必要がある場合。
グレーボックスを推奨:網羅性と迅速性のバランスが良く、モダンアプリケーションに最適であることが多い。
購買行動フレームワーク
効果的なペンテストは、明確な目的設定と正確なスコープ定義から始まる。 これらのフェーズにより、評価が適切かつ費用対効果の高いものとなり、組織による最も重大なリスクへの対処が保証される。
フェーズ1:内部目的(なぜ)
規制当局(MAS、ISO 27001など)の要件を満たす必要がある。標準化されたレポートと特定の手法が求められる。
新製品のローンチや市場参入。セキュリティ体制を検証するために、詳細な手動テストと創造的なエクスプロイトの連鎖が必要である。
エンタープライズ顧客が契約締結前にクリーンなレポートを要求している場合、評判の高い企業による実施と明確なエグゼクティブサマリーが必要である。
フェーズ2:スコーピング(何を)
スコープを定義することで予算の無駄を防ぎ、正しい資産がテストされることを保証する。
スコープが狭すぎる、あるいは広すぎるといったよくある間違いを避ける必要がある。
URL、IP範囲、API、アプリのバージョンをリスト化する。
PII(個人情報)、カード情報、独自コードの場所をマークする。
ブラック、グレー、ホワイトボックステストから選択する。
資産ごとの発生可能性と影響度を評価する。
対象範囲(インスコープ)と対象外(アウトオブスコープ)を定義する。
機密性と露出度に基づいて資産をランク付けする。
フェーズ3:ベンダー選定(誰に頼むか)
適切なベンダー選定は極めて重要である。コスト、認定、方法論、担当者の技能を評価する。(参考として、よくある質問とその最適な答えを以下に示す。)
| カテゴリ | 質問すべき事項 | 「良い」回答の例 |
| 認定 | 「貴社はペネトレーションテストに関してCREST認定を受けていますか?」 | 「はい、当社はCRESTのメンバー企業です。メンバーディレクトリでご確認いただけます。」 |
| 個人のスキル | 「実際に作業を行う方々は具体的に何の資格をお持ちですか?」 | 「テストリーダーはCRT(CREST登録者)またはOSCP認定を受けており、少なくとも3年の経験があります。」 |
| 手動&自動 | 「テストのうち、手動エクスプロイトと自動スキャンの割合はどのくらいですか?」 | 「初期発見には自動ツールを使用しますが、時間の80%は手動テストとカスタムエクスプロイトの連鎖に費やしています。」 |
| 手法(メソドロジー) | 「テストプロセスはどの業界フレームワークに従っていますか?」 | 「WebアプリはOWASP、その他はNIST SP 800-115、またはPTES(ペネトレーションテスト実行基準)に従って います。」 |
| 再テスト | 「修正を確認するための再テストは料金に含まれていますか?」 | 「はい。最終報告から30〜60日以内の無料再テストが1回含まれています。」 |
| レポーティング | 「編集済みのサンプルレポートを提供していただけますか?」 | レポートには、エグゼクティブサマリーと開発者向けのステップバイステップの実証(Proof of Concepts:スクリーンショット付き)が含まれています。 |
| データの安全性 | 「最終レポートや発見事項に関して、安全性を維持すべくどのように共有されていますか?」 | 「レポートをメールで送ることは一切ありません。多要素認証(MFA)を備えた暗号化ポータルを使用しています。」 |
| ビジネスへの影響 | 「発見事項の深刻度をどのように分類されていますか?」 | 「CVSSスコアを使用していますが、貴社の具体的なビジネスリスクに基づいて調整させていただきます。」 |
フェーズ4:実行とエンゲージメントルール
システムへの影響を防ぐため、テスト開始前に重要な運用条件を確定しておく必要がある。
•実施時間帯:検知力を試すためピーク時間に実施する、または停止リスクを下げるため営業時間外に実施するなど。
•緊急連絡:重大な脆弱性が判明した場合に即時連絡できる、24/7の明確な連絡経路を構築する。
•除外事項:高負荷DDoSや特定のブルートフォースなど、禁止する攻撃を明確に列挙する。
フェーズ5:事後の対応(次に何を)
ペンテストは指摘事項を修正して初めて価値を持つため、契約には次を含めるべきである。
1.技術デブリーフ:テスターと開発者が「どう成立したか」を共有するミーティング。
2.是正期間:修正・パッチ適用を行う30〜90日間の期間。
3.再テスト:修正が実際に有効であることを確認するために必須なフォローアップ。

多層防御と同様に、ペンテストも複数レイヤーの取り組みを組み合わせ、相互補完を図ることが望ましい。その際、特に次の2点に注力する必要がある。
1.レジリエンスの強化:絶対に何も信頼できないという前提のもと、既存対策の限界を補う手段を講じる。
2.視点の拡大:評価は把握できている範囲に依存するため、観点を増やすほど見落としは減少する。結果として、脆弱性に対して迅速に対処でき、外部攻撃の脅威を回避しやすくなる。