Web アプリケーションに対するハッシュ衝突攻撃 (Hash Collision Attack)(Scan Tech Report) | ScanNetSecurity
2024.03.19(火)

Web アプリケーションに対するハッシュ衝突攻撃 (Hash Collision Attack)(Scan Tech Report)

Web アプリケーションで使用されるプログラミング言語および Web アプリケーションフレームワークには、ハッシュテーブルの処理に起因してサービス運用妨害 (DoS) が発生する脆弱性が存在します。

脆弱性と脅威 エクスプロイト
1.概要
Web アプリケーションで使用されるプログラミング言語および Web アプリケーションフレームワークには、ハッシュテーブルの処理に起因してサービス運用妨害 (DoS) が発生する脆弱性が存在します。
リモートの第三者に利用された場合、システムの正常な動作が妨害される可能性があります。
影響を受けるソフトウェアが広範囲であり、脆弱性の悪用は容易であることが考えられるため、対象のユーザは可能な限り以下に記載する対策を実施することを推奨します。


2.深刻度(CVSS)
・Apache Tomcat (5.0)
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2011-4858&vector=%28AV%3AN/AC%3AL/Au%3AN/C%3AN/I%3AN/A%3AP%29
・Microsoft .NET Framework (7.8)
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2011-3414&vector=%28AV%3AN/AC%3AL/Au%3AN/C%3AN/I%3AN/A%3AC%29
・Oracle Glassfish Server (5.0)
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2011-5035&vector=%28AV%3AN/AC%3AL/Au%3AN/C%3AN/I%3AN/A%3AP%29
・PHP (5.0)
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2011-4885&vector=%28AV%3AN/AC%3AL/Au%3AN/C%3AN/I%3AN/A%3AP%29
・Ruby (7.8)
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2011-4815&vector=%28AV%3AN/AC%3AL/Au%3AN/C%3AN/I%3AN/A%3AC%29



3.影響を受けるソフトウェア
Apache Tomcat 5.5.34 以前
Apache Tomcat 6.0.33 以前
Apache Tomcat 7.0.22 以前
Microsoft .NET Framework 1.1 SP1
Microsoft .NET Framework 2.0 SP2
Microsoft .NET Framework 3.5 SP1
Microsoft .NET Framework 3.5.1
Microsoft .NET Framework 4.0
Oracle Glassfish Server 3.1.1 以前
PHP 5.3.8 以前 ※2
Ruby 1.8.7-p352 以前

※1 上記以外にも Java, Check Point 製品などの多数のソフトウェアが影響を受けると報告されています。詳細については、関連情報のアドバイザリを参照下さい。
※2 開発版である PHP 5.4.0RC3 以前も影響を受けます。


4.解説
多くの Web アプリケーションで使用されるプログラミング言語では、HTTP リクエストのパラメータを保持するためにハッシュテーブルが利用されます。

Web アプリケーションで使用されるプログラミング言語および Web アプリケーションフレームワークには、ハッシュテーブルの実装に不備が存在するため、ハッシュ値が一致 (ハッシュ衝突) するパラメータを多数含む HTTP リクエストを処理した場合に、CPU 資源を大量に消費してしまう脆弱性が存在します。

この脆弱性を利用することでリモートの攻撃者は、Web アプリケーションを利用するシステムの正常な動作を妨害し、結果として、Web サービスの提供を困難にする可能性があります。

この脆弱性は、2003 年に 12th USENIX Security Symposium で発表されていますが、昨年末の 2011/12/28 に 28th Chaos Communication Congress (28C3) で発表された攻撃手法 hashDoS を利用することで Perl を除く多くのプログラミング言語および Web アプリケーションフレームワークでも影響を受けることが明らかになっています。

Denial of Service via Algorithmic Complexity Attacks:
http://www.cs.rice.edu/~scrosby/hash/CrosbyWallach_UsenixSec2003.pdf
nruns Security Advisory n.runs-SA-2011.004:
http://www.nruns.com/_downloads/advisory28122011.pdf

なお、Perl および Ruby 1.9.x では、ハッシュ関数がランダム化されているため、この脆弱性の影響を受けないことが報告されています。但し、既にサポートが終了する Perl 5.8.1 より前のバージョンでは影響を受ける可能性があります。
また、Java については、Oracle によると、この脆弱性の影響を受けることは確認しているものの、プログラミング言語レベルでの修正を行わないと報告しています。


5.対策
(Web非公開)

6.ソースコード
(Web非公開)

(執筆:株式会社ラック コンピュータセキュリティ研究所

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。
《吉澤 亨史( Kouji Yoshizawa )》

関連記事

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×