0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【セキュリティ】Vulnerability Chaining(脆弱性チェーン)とは何か

0
Posted at

はじめに

セキュリティ診断の結果を見ると、こんな分類をよく目にします。

  • 重大(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 対策不備

  • ユーザーが意図しないリクエストを送らされる可能性
  • 単体では「設定変更されるだけ」で終わることも多い

どちらも 単体では致命的ではありません


チェーンすると何が起きるか

  1. 攻撃者は Self-XSS ペイロードを作成する
  2. CSRF 脆弱性を利用し、管理者にそのペイロードを保存させる
  3. 管理者がプロフィールを表示・編集した瞬間、XSS が発火
  4. 管理者セッションで JavaScript 実行が可能になる

結果:

  • 管理者権限の奪取
  • セッションハイジャック
  • 内部機能へのフルアクセス

Self-XSS も CSRF も「低〜中」評価だったにも関わらず、
組み合わせることで完全な権限侵害が成立
します。


現実世界の事例:Capital One(2019)

Vulnerability Chaining が「理論」ではないことを示す有名な事例が
2019 年の Capital One データ侵害です。

攻撃チェーンの流れ

  1. SSRF(Server-Side Request Forgery)
    • サーバーから任意の HTTP リクエストが可能
  2. AWS EC2 Metadata Service へのアクセス
    • 内部から IAM クレデンシャルを取得
  3. 過剰な IAM 権限
    • S3 バケットへのアクセスが可能
  4. 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 の本質はシンプルです。

攻撃者は、あなたの「許容リスク」を積み重ねて侵害を作る

  • 単体で見れば軽微な問題
  • しかし、現実の攻撃は「組み合わせ前提」
  • パッチ単位の修正では不十分

セキュリティとは、バグを直すことではなく、
攻撃の道筋を断ち切ること
です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?