サーバーサイドリクエストフォージェリ

high Web App Scanning プラグイン ID 112439

概要

サーバーサイドリクエストフォージェリ

説明

Web アプリケーションは多くの場合、ネットワークリクエストに依存して、外部リソースをクエリし、それを処理するためにデータを取得します。

攻撃者がこれらの送信リクエストを制御し、自分の所有するリソース、ローカルホスト自体、またはターゲットアプリケーションの内部ネットワークのプライベートホストに送信できる場合に、サーバーサイドリクエスト偽造 (SSRF) の脆弱性が存在します。

攻撃者は特定のリクエストを注入し、さまざまなプロトコル (HTTPS や Gopher など) を使用してこの脆弱性を利用し、機密データへのアクセス権を取得したり、認証されていない変更を行ったり、ターゲット環境でリモートコードを実行したりする可能性があります。

この脆弱性は、Web アプリケーションの構成によって次の 3 つのタイプに分類されることがあります。

- ブラインド: アプリケーションは悪意のあるリクエストを実行しますが、攻撃者に応答を返しません。攻撃者は、攻撃を実行するために、ターゲットに関する自身の知識のみに依存する必要があるため、悪用は困難です。

- ハーフブラインド: 悪意のあるリクエストが実行され、その応答の一部が攻撃者に返されます。たとえば、アプリケーションが送信リクエストのステータスに関連する異なるエラーメッセージを返すことがあります。悪用は依然として困難ですが、攻撃者は攻撃をさらに進めるために情報を収集する可能性があります。

- 非ブラインド: アプリケーションは、悪意のあるリクエストに対する応答の完全なコンテンツを返します。悪用は容易であり、通常、この脆弱性の影響はより重大なものになります。

スキャナーは、細工されたリクエストをターゲットアプリケーションに挿入し、サーバーサイドリクエスト偽造の脆弱性を検出することができました。このリクエストは、外部リクエストを実行し、一部のまたは完全な応答を返しました。

ソリューション

緩和策は主にアプリケーションの目的と設計に依存しますが、一般的には多層防御の原則を適用し、アプリケーション層とネットワーク層の両方でコントロールを実施することが推奨されます。
アプリケーションでは、入力がパーサーによって処理されます。パーサーはさまざまな場合に悪用される可能性があります。ユーザーがリクエストを実行する前に、完全な URL をアプリケーションに送信したり、該当する場合はホワイトリストに対してホスト名または IP アドレスを検証したりすることができないようにすることをお勧めします。ほかに、ローカルホストおよび内部インフラストラクチャのすべてのアセットへのリクエストを防ぐためのソリューションとなるのは、ブラックリストを使用することです。アプリケーションはリクエストを実行するために libcurl などのライブラリを使用する場合があるため、コンポーネントが最新であることを確認し、パーサー自体のセキュリティ脆弱性が悪用されないようにします。
ネットワークレイヤーでのアプローチの 1 つは、ネットワーク分離を実装してインフラストラクチャのホスト間のトラフィックを制御および制限し、ファイアウォールや Web プロキシなどのセキュリティサービスを使用してネットワーク制限を実施することです。

参考資料

https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html

https://owasp.org/www-community/attacks/Server_Side_Request_Forgery

https://resources.infosecinstitute.com/the-ssrf-vulnerability

https://www.blackhat.com/docs/us-17/thursday/us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-Languages.pdf

https://www.bugcrowd.com/resources/webinars/server-side-request-forgery

プラグインの詳細

深刻度: High

ID: 112439

タイプ: remote

ファミリー: Web Applications

公開日: 2020/6/9

更新日: 2023/8/9

スキャン テンプレート: api, full, pci, scan

リスク情報

VPR

リスクファクター: Medium

スコア: 4.2

CVSS v2

リスクファクター: High

基本値: 7.5

ベクトル: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS スコアのソース: Tenable

CVSS v3

リスクファクター: High

基本値: 7.3

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L

CVSS スコアのソース: Tenable

参照情報