C10: サーバーサイドリクエストフォージェリを阻止する (Stop Server Side Request Forgery)

説明

インジェクション攻撃は一般的に被害者のサーバー自体をターゲットにしますが、サーバーサイドリクエストフォージェリ (SSRF) 攻撃は攻撃者に代わってサーバーにリクエストを強制的に実行させようとします。SSRF は、攻撃者がサーバーを騙して内部または外部のサービスに意図しないリクエストをさせ、セキュリティコントロールをバイパスする可能性がある場合に発生します。

これはなぜ攻撃者にとって有益なのでしょうか?送信リクエストは被害者サーバーの ID で実行されるため、攻撃者は昇格した操作でオペレーションを実行する可能性があります。

脅威

この例には以下があります。

  • SSRF 攻撃が DMZ 内のサーバーで可能である場合、攻撃者は境界ファイアウォールを通さずに DMZ 内の他のサーバーにアクセスできるかもしれません。

  • 多くのサーバーは localhost 上で動作するローカルサービスを持ち、多くの場合、localhost として認証/認可はありません。これは SSRF 攻撃によって悪用される可能性があります。

  • SSO が使用されている場合、SSRF を使用してサーバーなどからトークン/チケット/ハッシュを抽出できます。

実装

SSRF を防ぐ方法は複数あります。

  • 入力バリデーション

  • 送信リクエストを作成する必要がある場合、ターゲットを許可リストと照合します

  • XML を使用する場合、XEE を防ぐためにパーサーを安全に構成します

入力バリデーションを実行する際には Unicode およびその他の文字変換 に注意してください。

防止される脆弱性

参考情報

ツール

Last updated