サーバーサイドリクエストフォージェリ (Server-Side Request Forgery/SSRF)とは何か | OWASP 2021

2021年に改訂されたOWASP Top 10:2021の中で、10位の項目として挙げられたのが、「Server-Side Request Forgery(SSRF)」です。
日本語では、「サーバーサイドリクエストフォージェリ 」と呼ばれます。

 

前回の改定時の2017年度版では、TOP10含まれていませんでしたが、問題の発生率は比較的低いものの、問題が起きた場合の影響が大きいことから、2021年度版で10位となったと考えられます。

 

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

企業のアプリケーションは一般的に複数台のサーバーを使用しています。
SSRFの欠陥がウェブアプリケーションに存在する場合、攻撃者はターゲットのサーバーになりすましながら、別のサーバーにリクエストが送信できるようになります。

外部公開サーバーに対し、想定されていない操作を行うことで、内部のサーバー通しの通信をとして不正な処理を実行する攻撃が、サーバーサイドリクエストフォージェリと呼ばれます。

CSRF(クロスサイト・リクエストフォージェリ)との違い

CSRFは攻撃者が被害者となるユーザーに意図しないリクエストを送信される一方、
SSRFでは、ユーザではなくターゲットとなるサーバに意図しないリクエストを送信させ、外部に公開していないサーバに処理を実行させてしまうという点です。

 

対策

SSRFを防ぐには、ネットワーク層においてはアクセス許可リストの設定が必要です。

基本的にはデフォルト拒否のファイアウォールポリシー/ネットワークアクセス性g長を行い、適切な外部リソースが特定の場所からのアクセスが分かっている場合は、そのIPアドレスまたはホスト名のみを許可します。

アプリケーション層については、入力データのサニタイズやHTTPリダイレクトの無効か、生のレスポンスをクライアントに送信しないなどの対策が有効です。