SDN
← 概念一覧へ
セキュリティ

サーバサイドリクエストフォージェリ(SSRF)

Server-Side Request Forgery (SSRF)

サーバに任意のURLへリクエストを送らせる攻撃。特にクラウドのメタデータエンドポイント(169.254.169.254)を叩かせて認証情報を盗むのが典型。OWASP A10(2021新設)。防御は宛先allowlistと内部IP遮断、IMDSv2。

キーポイント
  • 正体: 外部から渡したURLを、サーバ自身に取りに行かせる。サーバの内側からのアクセスを悪用。
  • 典型: クラウドのメタデータエンドポイント(IMDS, 169.254.169.254)を叩かせ、一時認証情報を窃取。
  • 狙われやすい機能: 『画像URLを渡すと取得して表示する』『Webhook』『URLプレビュー』など。
  • 防御: 宛先のallowlist、内部/プライベートIP帯への到達遮断、リダイレクト追従の制限。
  • クラウド側対策: IMDSv2(トークン必須化)。OWASP分類: A10(2021新設)。
トレードオフ

宛先allowlistは堅いが、正当に『任意のURLを取りに行く』必要がある機能(URLプレビュー等)では運用が窮屈になる。逆にblocklist(内部IPだけ弾く)はDNSリバインディングやIPv6・短縮形などの抜け穴が多く破られやすい。利便性(任意URL対応) と 安全性(到達先の制限) のトレードオフを、機能の必要性に応じて判断する。

SSRFとは(なぜ危険か)

**SSRF(Server-Side Request Forgery)**は、攻撃者が指定したURLを、サーバ自身に取りに行かせる攻撃です。

なぜこれが危険なのか? カギは『サーバの立ち位置』です。サーバは社内ネットワークやクラウドの内側にいて、外部からは直接アクセスできない内部サービスにも手が届きます。攻撃者は自分では届かない内部リソースに、サーバを踏み台にして到達するのです。

たとえ話: あなた(攻撃者)は会社の建物に入れません。でも『この住所に荷物を取りに行って』と社内の配達員(サーバ)に頼めるとしたら? 配達員に『社長室の金庫(内部の認証情報)を取ってきて』と頼めてしまう——これがSSRFの構図です。

図を描画中...

典型例: クラウドのメタデータ窃取

AWS等のクラウドでは、各サーバが http://169.254.169.254/ という特別なアドレス(メタデータエンドポイント / IMDS)から、自分の設定や**一時的な認証情報(クラウドの鍵)**を取得できます。これは便利な仕組みですが、SSRFと組み合わさると最悪です。

攻撃者が『画像を取得する』機能に http://169.254.169.254/latest/meta-data/... を渡すと、サーバがそこへアクセスしてクラウドの認証情報を取得し、攻撃者に返してしまう。その鍵があれば、攻撃者はクラウド全体を乗っ取れる可能性があります。これが2021年に SSRF が OWASP Top 10 に A10 として新設された大きな理由です。

狙われやすい機能

  • 『画像URLを渡すと取得して表示する』 機能(アバター取得、OGP取得)
  • URLプレビュー(SlackやチャットでURLを貼ると中身を展開するアレ)
  • Webhook(指定URLにサーバが通知を送る)
  • PDF生成・スクリーンショット(URLを渡すとサーバがそのページを開く)

共通点は『ユーザーが指定したURLに、サーバがアクセスしに行く』こと。

防御

図を描画中...
  • 宛先allowlist: 『取りに行ってよいドメイン/IP』を限定する。最も堅い。
  • 内部・プライベートIP帯への到達遮断: 169.254.x.x(メタデータ)、10.x 192.168.x 127.0.0.1(内部)への接続を禁止。
  • リダイレクト追従の制限: 最初は外部URLでも、リダイレクトで内部に誘導される手口を防ぐ。
  • IMDSv2: クラウド側の対策。メタデータ取得に事前のトークン取得を必須化し、単純なGETでは認証情報を取れなくする。

つまずきポイント

  • **SSRFは『サーバを内側からの攻撃者にする』**点が、外から殴るタイプの攻撃と違う。だからファイアウォール(外からの遮断)では防げない——内部への発信を絞る発想が要る。
  • blocklist(内部IPだけ弾く)は抜けやすいhttp://0x7f000001(127.0.0.1の別表記)、DNSを内部IPに向けるDNSリバインディング等、回避手段が多い。可能ならallowlist方式が安全。
  • 面接の鉄板質問: 『画像URLを取得して表示するAPIの危険は?』→『SSRFで内部メタデータを盗まれうる。allowlistと内部IP遮断、IMDSv2で守る』。

関連する概念

この概念で腕試し

関連する 1 問のクイズに挑戦できます。

クイズを解く