Microsoftのオープンソースライブラリ「AntiSSRF」——SSRFリスクをブロック

AntiSSRFは、Webアプリケーションにおけるサーバーサイドリクエストフォージェリ(SSRF)のリスクを低減するため、URLとネットワーク接続を検証するMicrosoftのオープンソースコードライブラリです。.NETおよびNode.jsアプリケーションに対応しており、MITライセンスのもとで配布されています。このライブラリはドロップイン型コンポーネントとして機能し、アプリケーションが外部リクエストを送信する前に、信頼できない入力値を検証する手段を開発者に提供します。

Image

ライブラリが対象とする脅威

サーバーサイドリクエストフォージェリは、攻撃者がサーバーサイドアプリケーションを操作し、任意のエンドポイントへネットワークリクエストを送信させるWebセキュリティ脆弱性です。攻撃に成功した場合、標的サーバーを内部ネットワークへ接続させたり、インターネット上の信頼されていないエンドポイントへ機密データを送信させたりすることが可能になります。想定される被害としては、内部サービスの露出、機密データの漏洩、サービス障害、そしてリモートコード実行が挙げられます。

こうした脆弱性が生まれる一般的な経路は、URLを構成または生成するユーザー指定の文字列です。それらの文字列が検証されないままにされると、SSRFが引き起こされ、結果としてトークンの窃取につながる可能性があります。このプロジェクトでは、ユーザー指定のURLや識別子、外部APIやWebhookからのデータ、ユーザーが影響を与えられる設定値、サービス自身のバックエンドコンポーネントからのリクエストなど、すべての受信HTTPリクエストを信頼できないものとして扱います。ワークスペース名を連結して生成された文字列のように、一見URLに見えないデータであっても、同様に検証が求められます。

動作の仕組み

AntiSSRFはURLとネットワーク接続を自動的に検証し、安全でないと判断した入力を拒否します。内部IPアドレスや機密性の高いIPアドレスへのHTTPリクエストをブロックするエージェントも備えています。

設定はAntiSSRFPolicyオブジェクトを中心に構成されています。そのプロパティを通じて、開発者は許可・拒否するアドレスの定義、未指定IPの全拒否、平文HTTPの許可または拒否、そして必須ヘッダーと拒否ヘッダーの設定が行えます。URIValidatorコンポーネントはドメインチェック機能を提供しており、URIがAzure Key VaultドメインまたはAzure Storageドメイン内に存在するかどうかを確認するメソッドも含まれています。

.NET版ライブラリはHttpClientオブジェクトを使用するWebクライアント向けに提供されています。Node.js版ライブラリはNode.jsのHTTPおよびHTTPSエージェントを使用するリクエストを処理します。ドキュメントにはAxios、follow-redirects、node-fetchを対象としたNode.jsサンプルコードも収録されています。

Microsoft AntiSSRFはGitHubにて無料で公開されています。

翻訳元: https://www.helpnetsecurity.com/2026/06/17/microsoft-antissrf-open-source-library/

ソース: helpnetsecurity.com