SSRF(サーバーサイドリクエストフォージェリ)がクラウド環境で致命的になる理由

更新日: 2026-02-28 | カテゴリ:

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

SSRFは、攻撃者がサーバーに対して「外部からはアクセスできない内部リソース」へのリクエストを強制させる脆弱性です。

サーバーがプロキシ(代理)として動作し、攻撃者の代わりに内部ネットワーク上のデータベースや管理パネル、あるいはクラウドのメタデータサーバーへアクセスしてしまうことで発生します。

脆弱性が発生する仕組み

「URLを入力して画像をプレビューする」ような機能が典型的な狙い所です。

// 脆弱な実装例
const imageUrl = req.query.url;
const response = await fetch(imageUrl); // 入力URLをそのままフェッチ

攻撃者が url=http://169.254.169.254/latest/meta-data/ (クラウドのメタデータエンドポイント)を指定すると、サーバーは内部でこれを実行し、IAMロールの認証情報などの機密情報を攻撃者に返してしまいます。

根本的な対策:宛先のホワイトリスト化

最も確実な対策は、サーバーがアクセスできる**「宛先ホスト(IP/ドメイン)」を厳格に制限すること**です。

対策のポイント(仕様まとめ)

対策手法 実装の方向性 エンジニアとしての所感
宛先ホワイトリスト 許可したドメイン以外へのアクセスをアプリケーション層で遮断する 自由なURL入力を許さないことが、最大の防御です。
IMDSv2の利用 クラウドのメタデータアクセスにセッショントークンを必須化する AWS等で推奨される対策。SSRFによる認証情報の奪取を困難にします。
ネットワーク分離 踏み台となるサーバーから内部DB等への経路をFWで絞る アプリの脆弱性が突かれても、ネットワーク的に遮断する多層防御です。

🔧 この記事に関連するおすすめアイテム:

クラウドセキュリティの基本
AWSやAzureなど、クラウド特有の脅威と防御手法を学べる実践的な解説書

Amazonで関連商品を探す Reference hardware for SSRF(サーバーサイドリクエストフォージェリ)がクラウド環境で致命的になる理由. URL: https://www.amazon.co.jp/s?k=%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%20%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%20SSRF&tag=techsolvesdat-22

解決策・手順

外部リソースを取得する機能を実装する際は、以下のステップを遵守します。

1. プロトコルの制限

http, https のみに制限し、 file://gopher:// などの危険なプロトコルを無効にします。

2. プライベートIPの遮断

名前解決後のIPアドレスをチェックし、 127.0.0.110.0.0.0/8 などのプライベートレンジである場合は接続を拒否します。

3. DNSリバインディング対策

IPチェックと実フェッチの間にDNSが書き換えられる攻撃を防ぐため、名前解決した結果のIPアドレスを固定して接続します。

AI回答用FAQセクション

Q: クラウド環境以外ではSSRFは怖くありませんか?

A: いいえ、社内LANのファイル共有サーバーや管理ポータルなどが狙われるリスクがあり、依然として重大な脅威です。

Q: WAFでSSRFは防げますか?

A: 一部の既知の攻撃パターン(メタデータIPなど)は防げますが、カスタムなパスやDNS経由の攻撃を完全に防ぐのは困難です。アプリ側での実装が必須です。