はじめに
セキュリティ診断の結果を見ると、こんな分類をよく目にします。
- 重大(Critical)
- 高(High)
- 中(Medium)
- 低(Low)
- 情報(Info)
多くの開発チームは、Critical や High だけを優先的に修正し、
Low や Info は「余裕があれば対応」と判断しがちです。
しかし、現実の攻撃はこの前提を完全に裏切ります。
実際の攻撃者は「一撃必殺の致命的脆弱性」を探しているわけではありません。
彼らがやっているのは――
複数の小さな脆弱性をつなぎ合わせ、
単体では不可能な攻撃を成立させること
これが Vulnerability Chaining(脆弱性チェーン) です。
Vulnerability Chaining とは
Vulnerability Chaining(脆弱性チェーン) とは、
複数の個別の脆弱性を組み合わせることで、
単体では実現できない、より重大な攻撃を成立させる手法
を指します。
イメージとしては「階段」です。
- 1段目だけでは壁は越えられない
- 2段目でもまだ足りない
- しかし段を重ねると、最終的に越えられてしまう
各脆弱性は「踏み台」 にすぎません。
具体例:Self-XSS × CSRF のチェーン
まず、よくある Web アプリの例を考えてみましょう。
単体では危険性が低いケース
① Self-XSS
- 自分のブラウザでしか実行されない XSS
- 他ユーザーを攻撃できない
- 一般的には「低リスク」と評価される
② CSRF 対策不備
- ユーザーが意図しないリクエストを送らされる可能性
- 単体では「設定変更されるだけ」で終わることも多い
どちらも 単体では致命的ではありません。
チェーンすると何が起きるか
- 攻撃者は Self-XSS ペイロードを作成する
- CSRF 脆弱性を利用し、管理者にそのペイロードを保存させる
- 管理者がプロフィールを表示・編集した瞬間、XSS が発火
- 管理者セッションで JavaScript 実行が可能になる
結果:
- 管理者権限の奪取
- セッションハイジャック
- 内部機能へのフルアクセス
Self-XSS も CSRF も「低〜中」評価だったにも関わらず、
組み合わせることで完全な権限侵害が成立します。
現実世界の事例:Capital One(2019)
Vulnerability Chaining が「理論」ではないことを示す有名な事例が
2019 年の Capital One データ侵害です。
攻撃チェーンの流れ
-
SSRF(Server-Side Request Forgery)
- サーバーから任意の HTTP リクエストが可能
-
AWS EC2 Metadata Service へのアクセス
- 内部から IAM クレデンシャルを取得
-
過剰な IAM 権限
- S3 バケットへのアクセスが可能
-
S3 に保存された機密データ
- 数千万件規模の情報流出
ここで重要なのは:
- SSRF 単体では「外部リクエストできるだけ」
- IAM 設定も「よくある構成ミス」
- S3 も「正規のストレージ」
どれも単体では“ありがち”な問題です。
しかし、チェーンした結果、史上最大級の侵害に至りました。
よくある Web アプリの脆弱性チェーン例
例1:認証突破からのデータ漏洩
ユーザー名の存在確認が可能
↓
ログイン試行回数制限なし
↓
弱いパスワードでログイン成功
↓
ログイン後の SQL Injection
↓
全データダンプ or 権限昇格
どの問題も「単体では致命的ではない」と判断されがちです。
しかし、攻撃者にとっては一直線の攻撃ルートです。
例2:ファイルアップロード × XSS × 権限設計不備
- ファイルアップロード制限が甘い
- SVG 内スクリプト実行可能
- 管理画面で自動プレビューされる
→ 管理者 XSS → 内部操作全権取得
なぜ Patch-by-Patch 修正では不十分なのか
多くの組織では、次のような対応が行われます。
- SQLi を修正する
- XSS を 1 箇所直す
- CSRF を一部ページだけ入れる
しかしこれは 「点の修正」 です。
攻撃者は 線で考えます。
「このバグがあるなら、次に何ができるか?」
Patch-by-Patch の問題点
- 脆弱性を 孤立した問題として扱う
- 攻撃フロー全体を見ない
- 結果として「別ルート」が必ず残る
防御側が持つべき視点
1. 脆弱性ではなく「攻撃経路」を考える
- この脆弱性で どの権限境界が崩れるか
- 次に どの機能に到達できるか
2. Severity を文脈で評価する
- Low severity ≠ 低リスク
- 組み合わせ前提で再評価する
3. 実装ではなく「設計」を直す
- 入力検証の一貫性
- 認可の中央管理
- CSRF・認証・権限の共通基盤化
まとめ
Vulnerability Chaining の本質はシンプルです。
攻撃者は、あなたの「許容リスク」を積み重ねて侵害を作る
- 単体で見れば軽微な問題
- しかし、現実の攻撃は「組み合わせ前提」
- パッチ単位の修正では不十分
セキュリティとは、バグを直すことではなく、
攻撃の道筋を断ち切ることです。