


毎年、脆弱性診断を受けて「良好」との判定を受けている企業であっても、レッドチームプロジェクトを実施すると致命的な脆弱性が発見されます。脆弱性診断と実際の攻撃の違いは何なのか、そして侵害事故が起こる前に何を点検すべきなのかをまとめました。
——————
ここ数年の間に、IT環境は急速に変化しました。オンプレミス中心だったインフラはクラウドへと移行し、CI/CDパイプラインを通じて1日に何回もデプロイが行われ、最近ではCursorやGitHub CopilotといったAIコーディングツールまでが開発の現場に投入されています。サービスが構築され、変更される速度は、過去とは比較にならないほど速くなりました。
問題は、そのシステムのセキュリティを検証するアプローチ、すなわち定期脆弱性診断のあり方が、ほぼ昔のままであるという点です。そしてここで、ある一つの矛盾が繰り返し確認されています。毎年誠実に診断を受け、「良好」との判定を受けている企業を対象にレッドチームプロジェクトを実施すると、例外なく致命的な脆弱性が発見されるのです。金融、製造、流通、ヘルスケア、EC、公共など、業種を問いません。特に、最も厳格に規制され、最も高頻度で診断を受けている金融業界さえも例外ではありませんでした。最も緻密に検証されているはずの場所でこのような結果が出るのであれば、診断頻度の低い他の業界は言うまでもありません。
この記事は、防御者と攻撃者の両方の視点から見つめてきた私の経験に基づくものです。ただし、目的は現象を説明することだけではありません。定期的に受けている脆弱性診断が構造的に何を落としているのか、そして何よりも、同じ立場にあるセキュリティ担当者が今、何を変えるべきなのかをお伝えしたいのです。かつて診断を受ける側だった私が、現在は攻撃する側の人間として、できる限り率直に執筆しました。
防御者だった私はチェックリストを埋め、攻撃者となった今は本当の脆弱性を探します。
このギャップを誰よりもよく知っている理由は、私がかつて点検を受ける側で働いていたからです。そして正直に申し上げますと、当時の私は「エビデンス(証明)を示す」ことに追われていました。この話を持ち出すのは、過去のことを告白するためではありません。今、同じ立場にある多くのセキュリティ担当者が、もしかすると同じラインにいるかもしれないと思うからです。
防御者の一日は、脆弱性ではなく、チェックリストで満たされています。
金融圏のセキュリティ担当者だった頃、私の1日を埋めていたのは、システムを深くのぞき込み、脆弱性を見つけて修正することではありませんでした。上位機関から送られてきた点検用チェックリストの項目を一つずつ満たし、その根拠となる文書を作成し、部署ごとに散らばった資料を取りまとめて期限内に提出することでした。セキュリティ業務というよりは、セキュリティを「証明」する業務に近かったのです。
しかし、これは個人の怠慢ではなく、評価基準の問題です。組織の上司も、そのさらに上の上位機関も、セキュリティ担当者に投げかける最初の質問は「どれほど深刻な脆弱性を見つけたか?」ではありません。「点検用チェックリストをすべて満たしたか?」が常に先です。評価がそのように下されるなら、仕事の方向性もそのように結びつきます。すべての項目で「良好」を得ることが目標になり、「本物の攻撃者がこのシステムを狙うなら、どこから侵入するだろうか?」という問いは常に後回しになります。点検を通過するための仕事と、実際に安全になるための仕事は同じではありませんが、組織が報いるのは常に前者です。
もしかしたら、今この記事を読んでいる皆さんの1日も、これと大きく違わないのではないでしょうか?もしそうなら、それはセキュリティ担当者個人の問題ではなく、皆さんが置かれている評価構造の問題であり、まさにその構造こそが攻撃者にとって最も好都合な環境なのです。
レッドチームとは、決められた形式を取り払い、ただ致命的な脆弱性を見つけ出すことです。
レッドチームのポジションに就いてみると、すべてが逆でした。埋めるべきチェックリストも、提出用にきれいに整理すべき表も、形式を整えるための文書もありません。認可された範囲内で、私の仕事はただ一つに凝縮されます。どんな手を使ってでも、実際の致命的な脆弱性を見つけ出すこと。防御者時代に自分を縛り付けていたあらゆる制約や形式が消え去ると、ようやくシステムの「本当の姿」が見え始めました。
目標が一つに絞られると、見えてくるものが変わりました。防御者時代に私がそこまで手間暇をかけて「良好」で埋めていた項目の間を、攻撃者はあまりにも簡単にすり抜けていきました。形式を整えるために積み上げた文書は、実際の侵入経路の前では何一つ防いでくれませんでした。私が防御者時代に最も多くの時間を費やしていた、まさにその仕事こそが、攻撃者にとっては真っ先に、最も軽々と避けて通る対象だったのです。
両方のポジションを経験して初めて、私ははっきりと理解しました。脆弱性診断は「チェックリストを満たしたか?」を確認しますが、攻撃者は「それで、本当に安全なのか?」を確認します。そして、この二つの質問の間の距離こそが、毎年誠実に「良好」の判定を受けている企業から致命的な脆弱性が見つかる理由です。それでは、その距離が具体的にどこで生じるのか、構造的に紐解いていきましょう。
なぜ毎年診断を受けているにもかかわらず、脆弱性はなくならないのでしょうか?
脆弱性診断と実際の攻撃は、目的も方法も視点も異なります。そのギャップこそが、診断の抜け穴となります。実務で繰り返し確認される6つのポイントを挙げてみます。
1. 診断対象の範囲と実際の攻撃者のターゲットは異なります。
脆弱性診断は範囲が決められます。日程が周知され、対象システムが合意され、運用に影響を与える可能性のある機密性の高い資産は、大抵の場合、範囲から除外されます。診断を安定して実施するための合理的な選択です。
しかし、実際の攻撃者にはそのような制約は存在しません。診断対象から漏れたレガシーサーバー、外注開発後の引き継ぎが途絶えたシステム、一時的に起動して忘れ去られたサービス、一時的に開けておいたポートに至るまで、そのすべてが実際の侵入経路となります。エンキホワイトハットのレッドチームプロジェクトでも、実際に侵入の起点となった資産が、脆弱性診断の範囲のどこにも含まれていなかったケースが多々あります。診断は私たちが「見せたい場所」を見て、攻撃者は私たちが「忘れた場所」を見ます。
2. 診断は「チェックリスト」、攻撃は「シナリオ」です。
脆弱性診断には、本質的に限界が存在します。既知の脆弱性リストとシステムを項目別に照らし合わせ、その結果を整理します。
レッドチームは、項目を埋めることではなく、目標を達成することを目指します。顧客データの奪取、営業秘密へのアクセス、決済・送金の改ざん、サーバーの乗っ取りといった目標を掲げ、実際の攻撃者の戦術・技術・手順(TTP)をそのまま再現し、個別には「低」と判定された脆弱性を1つの攻撃として繋ぎ合わせます。サービス情報がわずかに露出している欠陥、権限検証が緩いポイント、内部ネットワークで不要に開いているポートを順番に接続することで、外部から核心的なデータにまで到達する経路が完成します。チェックリストは構造的にこの組み合わせを見つけることができません。項目一つひとつはすべて「良好」または「低」であったのに、シナリオとして繋ぎ合わせると「致命的」になること、これこそが診断と攻撃の最大の難しさであり違いです。
3. 診断は一時点であり、攻撃は継続です。
四半期・半期ごとの診断は、本質的にその瞬間のスナップショットに過ぎません。しかし、今日のシステムは1日に何度もデプロイされ、設定は運用の最中にも少しずつ変化します。
前回の診断と次回の診断の間の長い空白期間に生じたアップデートや新しい資産は、事実上無防備な状態です。変化の周期は分単位になっているのに対し、検証の周期はいまだに四半期または半期単位です。診断直後に追加されたAPIが1つ、急遽開放したファイアウォールポリシーが1つ、次回の診断まで数ヶ月間、検証なしで公開される構造なのです。このギャップが致命的な脆弱性が発生する起点となります。
4. 脆弱性診断はシステムだけを見て、人とプロセスは見ません。
脆弱性診断はシステムを見ます。しかし、実際のインシデントの起点は、1通のフィッシングメール、権限管理が緩いパートナー企業ののアカウント、信頼を悪用するソーシャルエンジニアリングであるケースが多々あります。
これはデータでも実証されています。毎年発表されるグローバルなインシデント分析レポートは、インシデントの大部分がフィッシング、盗まれた認証情報、内部者の権限管理不足といった「人」を経由しているという事実を繰り返し示しています。しかし、このような経路は、いかなるセキュアコーディングガイドでも「脆弱」とは判断されません。レッドチームは、人、プロセス、システムすべてを1つの攻撃対象領域(アタックサーフェス)として統合して検証します。
5. 「防げるか」は見ますが、「検知できるか」は見ません。
脆弱性診断は「穴があるか」を問います。しかし、より重要な点は「誰かが侵入したときに、私たちはそれを検知できるか」です。
多くの企業が脆弱性診断を通じて初期侵入は遮断します。しかし、一旦一歩足を踏み入れられた後は、内部での横展開(ラテラルムーブメント)、権限昇格、データの収集と外部への流出というプロセスにおいて、ほとんどの場合検知に失敗します。1件の侵入を識別して対応するまでに依然として平均数10日から数100日かかっているということは、多くの組織が「防御」に投資したほどには「検知」に投資できていないことを露呈しています。実際、攻撃者が数日間にわたって内部を荒らし回っている間、セキュリティ監視でアラートが1件も発生しないということが大半です。侵入可能性と検知・対応能力を同時に実証すること、これこそがレッドチームの核心的な価値です。
6. 「良好レポート」が作り出す「安心の罠」
最後は技術ではなく組織の問題です。毎年「良好」のレポートが積み重なると、「私たちはきちんと診断を受けている会社だ」という安全の物語が生まれます。より根本的な原因は、評価の方向にあります。上層部や上位機関が「どれほど深刻な脆弱性を見つけたか」よりも「チェックリストをすべて満たしたか」をまず問う限り、組織全体はリスクを見つけ出す方向ではなく、「良好」の判定をもらう方向に最適化されます。診断ベンダーも関係を維持しなければならない立場上、不都合な結論を強く提示するモチベーションは小さくなります。
レッドチームが独立した敵対的な視点として存在する理由がここにあります。関係性ではなく結果で評価される検証こそが、報告書に隠された本質的なリスクを浮き彫りにします。
では、何を点検すべきでしょうか? - 段階的な検証体系
上述の6つの盲点は、結局のところ1つの方向性を指し示しています。セキュリティ担当者の業務が「チェックリストを埋めること」から「攻撃者の視点で検証すること」へと移行しなければならないということです。これは、大がかりな組織改編が必要だという話ではありません。業種を問わず、いまの働き方から変えられる実務を3つのステップに整理しました。
ステップ1. 点検を設計する段階 - 範囲と資産
「良好」を「安全」と読み替えないでください。点検レポートの「良好」は、既知の脆弱性が発見されなかったという意味に過ぎず、安全であることの証明ではありません。
把握していない資産を守ることはできません。攻撃表面(アタックサーフェス)全体を把握してください。外部アタックサーフェス管理と資産管理台帳を適切に作成することは、コンプライアンスではなく生存の問題です。
脆弱性診断をスムーズに行えるようにお膳立てしないでください。ファイアウォールを開放し、セキュリティ機器を例外処理した状態で受ける診断は、実際の攻撃者が直面する環境ではありません。攻撃者に与えられない便宜は、診断時にも与えないでください。
ステップ2. 検証する段階 - チェックリストを超えてシナリオへ
脆弱性単体ではなく、攻撃ルートを考えてください。危険度「低」の脆弱性が集まることで、致命的な脆弱性になります。脅威モデリングによってこれらを組み合わせることで「何が可能になるか」をまず考える必要があります。
実際の攻撃者のTTPを再現してください。MITRE ATT&CKに基づいたシナリオにより、既知の項目を埋める点検ではなく、目標を達成する攻撃をシミュレーションして初めて明らかになる欠陥があります。
防御するだけでなく、検知・対応プロセスを検証してください。防御陣が突破されたという前提に立ち、内部拡散、権限昇格、データの持ち出しを試み、EDR・SIEM・SOCが実際に検知するか、検知までにどれくらいかかるか、遮断するのにどれくらいかかるかを測定してください。
ステップ3. 常時運用段階 - 1回限りではなく継続的に
継続的な検証へと移行してください。侵入・攻撃シミュレーション(BAS)や継続的な擬似ハッキングによって、検証サイクルをシステムの変更周期に合わせてください。四半期単位の検証では、分単位で変化するシステムに追いつくことはできません。
人と協働パートナーを対象に含めてください。サプライチェーン、委託運用、役職員に至るまで、ソーシャルエンジニアリング手法を検証範囲に含める必要があります。技術だけを点検している限り、最も頻繁に使われる侵入経路は永遠に存在し続けます。
発見された脆弱性をプロセスとして管理してください。レッドチームが見つけた重大な脆弱性をパッチ当てだけで終わらせず、セキュリティポリシー、開発ガイドライン、検知ルールに反映し、同じ欠陥が再発しないようにしなければなりません。
不都合な結果を歓迎する文化を作ってください。致命的な脆弱性を見つけ出し、あなたにとって耳の痛い指摘をしてくれるパートナーこそが、実はあなたを最もよく守ってくれるパートナーなのです。
おわりに
定期的な脆弱性診断はセキュリティの出発点であり、終着点ではありません。診断は既知の問題が今、この範囲内に存在するかどうかを確認しますが、攻撃者は未知の経路で、範囲外から、診断と診断の間の空白を狙ってきます。
この記事を終えるにあたり、セキュリティ担当者が自らに問いかけるべき質問は一つだけです。私たちは今、「チェックリストを埋めるため」に働いているのか、それとも「実際に安全になるため」に働いているのか。防御側と攻撃側の双方の立場を経験してみて、この2つを区別する瞬間こそが、真のセキュリティが始まる瞬間でした。「良好」という判定を得るために費やしていた時間とリソースの一部を使って、攻撃者の視点で自分たちをまず攻撃してみること。変わらなければならないのは、そこからです。
ENKI White Hatが業種を問わず致命的な脆弱性を見つけ出せる理由は、特別な秘密兵器があるからではありません。チェックリストの代わりにシナリオで、一時点の診断の代わりに継続的に、システムだけでなく人とプロセスまで、突破されるかだけでなく、検知されるかまでを検証するからです。
これまで誠実にやってきた活動が、会社を安全にする活動ではなく、安全だと「信じ込ませる」活動であったのかもしれません。そして、その事実に気づいた瞬間こそが、ようやく真のセキュリティが始まる地点なのです。

人気の記事






