見えるセキュリティ

SSRF

SERVER-SIDE REQUEST FORGERY

この概念とは?

SSRFは、攻撃者が入力を悪用し、Webサーバーに本来の用途とは違う宛先へリクエストを送らせる問題です。サーバーが別のサービスから情報を取得する機能などで起こります。ここでは、取得先の指定がどのように通信へつながるかを見ていきます。

注目するのは、誰がリクエストを送るかです。攻撃者からの依頼を受けたWebサーバーが、自分の通信経路で別の宛先へアクセスします。

THEME
web-vuln
KIND
attack
REVIEW
self-reviewed ·

取得先の確認が不十分な場合に、内部の情報取得へつながる流れ

この例では、内部サービスの認証・認可が不十分で、Webサーバーが取得内容を呼び出し元へ返します。

図の読み方

時間は上から下へ ↓ /「次へ」で1 STEPずつ表示

ここでは、取得先をあらかじめ決められる機能を例に、HTTPによる情報取得を扱います。登場するサービスとデータは説明用です。

攻撃者

取得先を指定

Webサーバー

依頼を受けて取得

内部サービス

今回の用途では対象外

  1. STEP 1サーバーが資料を取り寄せる機能

    用途の紹介・通信はまだ行わない

    本来の取得先:資料配信サービス

この図について

表示は概念図です。実際の通信や取得処理は行いません。取得依頼と、Webサーバーが送る取得要求は別の通信です。

STEP 01 / 6

サーバーが資料を取り寄せる機能

STEP 1 / 6: サーバーが資料を取り寄せる機能

現在のSTEP 1STEP 2STEP 3STEP 4STEP 5STEP 6

このサイトには、Webサーバーが資料を取り寄せる機能があります。本来は、決められた資料配信サービスを利用します。

技術的な詳細を見る

サーバーによる情報取得そのものが問題なのではありません。通信先に影響する入力を、取得処理がどう扱うかが重要です。この教材では取得先の指定を短いラベルで示します。

パネルの開閉ではSTEPは変わりません。

この概念の要点

  • 要点

    依頼と取得は別の通信

    攻撃者がWebサーバーへ送る依頼と、Webサーバーが別のサービスへ送る要求を分けて考えます。

  • 要点

    サーバーの到達範囲が関係する

    攻撃者が直接は届かない相手にも、サーバーからは通信できる場合があります。

  • 要点

    到達と情報の取得は別

    読める情報や実行できる処理は、通信先の認証・認可などの条件によって変わります。

  • 要点

    返答が見えなくても起こる

    呼び出し元へ取得結果を返さないBlind SSRFもあります。

理解確認

この例で、内部サービスへ実際に取得要求を送っているのは誰でしょうか?

参考資料

RELATED CONCEPTS