SSRF(サーバーサイドリクエストフォージェリ) えすえすあーるえふ
サーバーサイドリクエストフォージェリ内部ネットワーククラウドメタデータOWASPファイアウォール回避不正アクセス
SSRFについて教えて
簡単に言うとこんな感じ!
「サーバーを使い走りにする攻撃」だよ!攻撃者が「このURLの情報を取ってきて〜」とWebサーバーに命令して、本来は外から見えないはずの社内システムや秘密の設定情報を盗み出す手口なんだ!
SSRFとは
SSRF(Server-Side Request Forgery/サーバーサイドリクエストフォージェリ) とは、攻撃者がWebサーバーに「特定のURLへアクセスせよ」という細工したリクエストを送り込み、サーバー自身に内部ネットワークや外部サービスへの通信を行わせる攻撃手法です。「フォージェリ(Forgery)」は「偽造・詐称」の意味で、リクエストの発信元をサーバーに成りすまさせることが名前の由来です。
ポイントはサーバーが踏み台になる点です。ファイアウォールや認証で外部からは守られているはずの社内システムも、Webサーバー経由でアクセスすると「内部からの通信」として通ってしまいます。たとえば「SNSのOGP取得機能」「画像変換サービス」「WebフックURL」など、ユーザーが指定したURLにサーバーが接続する機能はすべてSSRFのリスクを持ちます。
2021年にOWASP(Webセキュリティの国際標準団体)が発表した「OWASP Top 10」で独立したカテゴリとして新設されるほど、クラウド時代に急増している深刻な脅威です。AWSやGCPなどのクラウド環境ではメタデータエンドポイント(169.254.169.254)から認証情報が丸ごと取得できる事例が多発しています。
SSRFの仕組みと攻撃フロー
攻撃がどのように進むか、ステップで整理します。
| ステップ | 攻撃者の行動 | サーバーの動作 |
|---|---|---|
| ① 脆弱な機能を発見 | URLを受け付けるフォームやAPIを見つける | 通常どおり外部URLに接続する機能を持つ |
| ② 細工したURLを送信 | http://169.254.169.254/latest/meta-data/ など内部向けURLを指定 | 攻撃者の指定したURLへリクエストを送る |
| ③ 内部リソースへアクセス | — | ファイアウォールを迂回して内部サーバーに到達 |
| ④ 情報が返ってくる | レスポンスを受け取る | 取得した内部情報を攻撃者に返してしまう |
攻撃者が狙う主なターゲット
[ 攻撃者 ]
|
| ① 細工したURLをPOST
v
[ Webサーバー(踏み台) ] ←←← ファイアウォールがここを守っていても内側は素通り!
|
|--- ② http://192.168.0.1/admin → 社内管理画面
|--- ③ http://169.254.169.254/... → クラウドの認証情報
|--- ④ http://localhost:6379/ → Redisなど内部DB
`--- ⑤ file:///etc/passwd → サーバー自身のファイル
よく悪用される機能
- 画像・OGP取得機能:「URLを入力するとサムネイルを生成」するもの
- Webhook設定:外部サービスが通知を送るURLをユーザーが指定できるもの
- PDFレンダリング:HTMLやURLからPDFを生成するサービス
- プロキシ機能:URLを受け取って中継するAPI
歴史と背景
- 2010年代前半:SSRF自体は古くから知られていたが、社内サーバーへの限定的な攻撃に留まり注目度は低かった
- 2014年頃〜:クラウドサービス(AWS・GCP・Azure)の普及により、メタデータエンドポイントを狙ったSSRFが急増。クラウドの認証キーが一発で盗める危険性が認識されはじめる
- 2019年:Capital One(米大手銀行)でSSRFを利用したクラウド侵害事故が発生。1億件超の顧客データが流出し、世界的に注目を集める
- 2021年:OWASPが「OWASP Top 10 2021」でSSRFを独立カテゴリ(A10)として新設。Webアプリの10大リスクに公式ランクイン
- 現在:バグバウンティ(脆弱性報奨金制度)でも高額報奨の対象となることが多く、攻撃者・研究者双方から注目されている
関連する攻撃・防御手法との比較
SSRFとよく混同される攻撃手法を整理します。
| 攻撃手法 | 誰がリクエストを送るか | 主な目的 |
|---|---|---|
| SSRF | サーバー(踏み台にされる) | 内部ネットワークへの不正アクセス |
| CSRF | 被害者のブラウザ(罠を踏ませる) | 被害者の権限でサービスを不正操作 |
| XSS | 被害者のブラウザ(スクリプト実行) | Cookie窃取・フィッシング |
| オープンリダイレクト | ブラウザ(転送させる) | フィッシングサイトへの誘導 |
SSRF vs CSRF の対比図
SSRFの主な対策
| 対策 | 内容 | 効果 |
|---|---|---|
| 許可リスト(Allowlist)方式 | 接続先URLを事前に登録したものだけ許可 | ◎ 最も確実 |
| プライベートIPブロック | 10.x 192.168.x 169.254.x等へのアクセスを禁止 | ○ 一般的な対策 |
| DNSリバインディング対策 | DNS解決後のIPを再検証する | ○ 迂回攻撃への対策 |
| レスポンスの検証 | 取得したコンテンツのContent-Typeを確認 | △ 補助的 |
| IMDSv2の利用(AWS) | メタデータへのアクセスにトークン認証を要求 | ◎ クラウド環境では必須 |
| URLスキームの制限 | file:// gopher:// など危険なスキームを禁止 | ○ 攻撃の幅を狭める |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| OWASP Top 10 2021 A10 | SSRFが独立カテゴリとして新設。判定基準と対策指針を定義 |
| CWE-918 | SSRFの共通脆弱性列挙。「Server-Side Request Forgery」として登録 |
| RFC 1918 | プライベートIPアドレス空間の定義(ブロック対象の基準) |
| RFC 3986 | URIの構文仕様。URLパース処理の統一基準として対策実装に参照される |
関連用語
- CSRF(クロスサイトリクエストフォージェリ) — ブラウザを踏み台にしてユーザーの意図しないリクエストを送らせる攻撃
- XSS(クロスサイトスクリプティング) — Webページに悪意あるスクリプトを埋め込む攻撃手法
- OWASP Top 10 — Webアプリケーションの重大リスクを10項目にまとめた国際的な指標
- ファイアウォール — ネットワーク通信の許可・遮断を制御するセキュリティの境界線
- クラウドメタデータ — クラウドインスタンスの設定・認証情報を提供する内部エンドポイント
- ゼロトラスト — 「内部だから安全」という前提を捨てたセキュリティモデル