【えすえすあーるえふ】

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

最終更新:
💡 サーバーの通信機能を、意図しない宛先への踏み台に

サーバー側の通信機能を悪用し、本来意図しない宛先へリクエストを送らせる攻撃。内部サービスやクラウドのメタデータなどが対象になり、被害は到達先や権限に左右される。

📌 このページのポイント
サーバーの通信機能を悪用 攻撃者 入力を細工 脆弱なサーバー 通信機能を実行 入力 意図しない宛先 内部・自身・外部 サービス等 サーバーから 届く場所へ 要求を送らせる 被害は到達先と権限・設定に左右される
宛先の例を示す概念図。ファイアウォールの有無だけで、到達や情報取得が決まるわけではない。
ひよこ ひよこ
SSRFってなに?サーバーが攻撃されるの?
ペンギン先生 ペンギン先生
サーバー側の通信機能を悪用して、意図しない相手へ要求を送らせる攻撃だよ。画像のURLからデータを取得する機能やWebhookなどで、入力と宛先の扱いが不適切な場合に起こり得るんだ。
ひよこ ひよこ
内部ネットワークだけが狙われるの?
ペンギン先生 ペンギン先生
内部サービスやサーバー自身、外部の宛先も対象になるよ。サーバーから届く場所や使える通信方式が悪用される。HTTPがよく使われるけれど、SSRFはHTTPだけに限らないんだ。
ひよこ ひよこ
内部へ届けば、何でも盗める?
ペンギン先生 ペンギン先生
到達先の機能や認証、サーバーの権限によるよ。非公開の情報を読んだり、内部機能を操作したりする被害がある。クラウドのメタデータから認証情報を狙う例もあるけれど、到達だけで必ず取得できるわけではないんだ。
ひよこ ひよこ
CSRFとどう違うの?
ペンギン先生 ペンギン先生
CSRFは、ログインしている利用者に意図しない操作の要求を送らせ、認証情報を悪用する攻撃だよ。SSRFはサーバー側の通信を悪用する。入口と、利用される立場が違うんだね。
ひよこ ひよこ
URLをチェックすれば防げる?
ペンギン先生 ペンギン先生
許可した宛先・プロトコル・ポートだけへ送る設計と、送信側の通信制限を組み合わせよう。DNSで解決した接続先やリダイレクト先にも検証が必要だよ。AWSではトークンを要求するIMDSv2の利用とIMDSv1の無効化も防御になるけれど、すべてのSSRFを解消するものではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SSRF」って出てきたら「サーバーに意図しない宛先への通信をさせる攻撃」と思えればだいたいOK!
📖 おまけ:英語の意味
「Server-Side Request Forgery」 = サーバー側のリクエスト偽造
💬 Server-Sideはサーバー側、Requestは要求、Forgeryは偽造という意味。その頭文字を取った名前だよ。

参考資料

← 用語集にもどる