サーバサイド・リクエストフォージェリ(SSRF)とは
サーバサイド・リクエストフォージェリ(SSRF)は、
ウェブアプリケーションの
脆弱性を突き、攻撃者が不正なリクエストを
サーバ自身に送信させ、通常はアクセスできない内部リソースに対し働きかける攻撃手法です。これにより、攻撃者は組織のセキュリティを回避して情報を窃取することが可能になります。
SSRFの概要
SSRFは主に、
ウェブアプリケーションがユーザーから受け取った入力—例えばURLを基にリクエストを生成する際に発生します。この
脆弱性は、外部ネットワークへのアクセスを前提とした機能で、開発者が内部ネットワーク向けのリクエスト制限を不十分に設けた場合に生じます。攻撃者は、公開
サーバを利用し、内部でしかアクセスできないリソース—
データベースや社内システムなど—に不正にリクエストを送信することができます。
SSRFの実行に際しては、しばしば組織の
ファイアウォールを越えて内部環境に侵入することが可能であり、これにより、機密情報の漏洩や内部サービスの不正利用といった重大な損害を引き起こす恐れがあります。また、内部システムの
ポートスキャンにも悪用される可能性があり、さらなる攻撃の足がかりとなります。この攻撃手法は、内部
サーバ間での通信が通常信頼されているため、防御策を容易に迂回できる点に特に注意が必要です。
SSRFとその他の攻撃手法の違い
SSRFは、主にクライアントの認証情報を悪用するクロスサイト・リクエストフォージェリ(CSRF)とよく比較されます。双方はリクエストを偽造する点で共通していますが、SSRFは
サーバサイドの攻撃であり、正規
サーバの権限を利用して不正なリクエストを行うのに対し、CSRFはユーザーの認証情報を悪用し不正な操作を実行させるクライアントサイドの攻撃です。
SSRF攻撃のメカニズム
SSRF攻撃は、
サーバがユーザーからの入力によって動的にリクエストを生成する場合、その入力を厳しく確認せずにリクエスト先へ使用することで成り立ちます。これにより、攻撃者はその入力を操作し、悪意のあるリクエストを内部
サーバへ送信できるようになります。特に、画像取得やファイルダウンロード機能は、こうした
脆弱性を抱えることが多く、外部からのユーザー入力が直接リクエストに反映されるため、注意が必要です。
代表的な攻撃手法
1.
悪用されるURLスキーマ : `file://` スキーマを使用して、
サーバのローカルファイルシステムに直接アクセスすることが可能です。この手法によって、機密性の高いシステムファイルを窃取できます。
2.
リダイレクト機能の利用 : 攻撃者は、公開
サーバが内部ネットワークへのリダイレクトを行うように細工し、間接的に内部リソースにアクセスを試みます。
3.
DNSリバインディング : この手法では、DNS
サーバの応答を悪用して、外部アクセスを経て内部ネットワークに接続させることが可能です。
SSRF攻撃の事例
著名な事例として、2019年のCapital One情報漏洩事件があります。この事件では、誤ったWAF設定が原因でSSRF攻撃を受け、1億人以上の
個人情報が流出しました。攻撃者は、
脆弱性を利用してAWSのデータに不正アクセスし、顧客
データベースへのアクセス権を取得しました。
SSRF脆弱性の対策
最後に、SSRFを防ぐためのいくつかの手法について触れます。まず、リクエストの送信先を厳格に制限する「アローリスト」を実装することが有効です。また、ユーザーからの入力に対して厳しい検証を行い、適切にサニタイズすることも重要です。さらに、Webアプリケーション
ファイアウォール(WAF)の適切な設定や、ネットワーク分離を用いて内部リソースへの不当なアクセスを制御することが求められます。こうした対策を施すことで、SSRF攻撃リスクを軽減し、安全な
ウェブアプリケーションを構築することが可能です。