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?

【セキュリティ】SSRF は「何段階」あるのか?― 実務で使える 5 レベル分解と攻撃・防御の全体像

0
Posted at

はじめに

Web セキュリティにおいて SSRF(Server-Side Request Forgery)は、
「ある/ない」では語れない脆弱性です。

同じ SSRF でも、

  • ほぼ影響のないもの
  • 内部ネットワークを完全に突破できるもの

では 危険度が桁違い です。

本記事では、SSRF を 実務で判断できる 5 つのレベル に分解し、

  • 各レベルの具体例
  • 攻撃視点での意味
  • 防御(Blue Team)視点での必須対策

1 本のモデルとして整理します。


結論:SSRF は「段階的に能力が解放される」

Level 0 → Level 1 → Level 2 → Level 3 → Level 4

SSRF はスイッチではなく、能力ツリーです。
上位レベルに行くほど、被害は指数関数的に拡大します。


SSRF 5 レベル全体像(Mermaid 攻撃パス)


Level 0:パラメータ可制御(疑似 SSRF)

定義

URL パラメータは操作できるが、
サーバが実際にリクエストしている証拠がない

/preview.php?url=https://example.com
  • 表示は変わる
  • しかし以下は不明:
    • サーバ通信か?
    • フロントエンド fetch か?
    • キャッシュか?

評価

  • 重大度:Info / Low
  • SSRF 未確定

Level 1:外部 SSRF(確認済み)

定義

攻撃者が管理するドメインに、サーバからの通信を確認できる。

/preview.php?url=http://xxx.burpcollaborator.net

ログで以下を確認:

  • DNS lookup
  • HTTP GET
  • Source IP / User-Agent

できること

  • SSRF の存在証明
  • Blind SSRF
  • ネットワーク出口の把握

評価

  • 重大度:Medium
  • 攻撃チェーンの起点

Level 2:内部 SSRF(境界突破)

定義

サーバが 内部アドレス / localhost にアクセス可能。

/preview.php?url=http://127.0.0.1:8080
/preview.php?url=http://169.254.169.254/latest/meta-data/

リスク

  • 内部管理画面
  • クラウドメタデータ(IAM 認証情報)
  • 内部 API

評価

  • 重大度:High
  • 防御境界の崩壊

Level 3:プロトコル SSRF(非 HTTP)

定義

gopher:// などを利用し、
内部 TCP サービスに任意バイト列を送信可能。

/preview.php?url=gopher://127.0.0.1:6379/_PING%0D%0A

特徴

  • HTTP の枠を超える
  • Redis / FastCGI / SMTP 等に直接命令
  • SSRF が「通信代理」になる

評価

  • 重大度:Critical
  • Red Team レベル

Level 4:状態変更・実行(SSRF → RCE)

定義

SSRF により 不可逆な状態変更 が可能。

典型チェーン

  • SSRF → Redis → cron 書き込み → RCE
  • SSRF → Cloud Metadata → IAM Token → クラウド制御
  • SSRF → 内部管理 API → 管理者作成

評価

  • 重大度:Critical+
  • 完全侵害

実例:gopher 転送スクリプトはどこに位置するか?

以前示した以下のようなスクリプトは:

  • ローカルで HTTP を受信
  • リクエストを gopher payload に変換
  • SSRF を通じて内部 TCP サービスへ送信

👉 Level 3(プロトコル SSRF)を「対話可能な通路」に昇格させるツール

前提条件:

  • Level 1(外部 SSRF 確認済み)
  • Level 2(内部到達可能)
  • gopher:// 許可

Level 4 に到達するかは
内部サービス側の設計次第


Blue Team 視点:各レベルの必須対策(要点)

レベル 必須対策
L0 URL 機能の設計制限(白リスト前提)
L1 scheme 白リスト(http/https のみ)+リダイレクト制御
L2 出口通信制御 + 私有 IP / localhost の完全遮断
L3 gopher/file 等のプロトコル完全無効化
L4 Fetch サービスの完全分離(無権限・無内部アクセス)

重要な判断基準(覚えておくべき)

「SSRF があるか」ではなく
「最大でどのレベルまで到達できるか」を問う

同じ SSRF でも、

  • Level 1 と Level 4 では
    被害規模が 100 倍以上違う

まとめ

  • SSRF は段階的に危険度が上がる
  • 真に危険なのは Level 2 以降
  • gopher:// が許されている時点で 設計ミス
  • 防御は「入力検証」ではなく ネットワークと権限設計
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?