php 5.2.* 如何解決Hash Collision
前一陣子出現個名詞Hash Collision。接者Hash Collision DoS這名詞跟者出現,而後就看到很多系統、語言開始出現更新patch。 XD
Hash Collision影響範圍有多廣,可以參考oCERT.org - oCERT Advisories。裡面列出受到影響的語言、系統,以及目前的狀況。以php為例,5.3.9後、或5.4.0RC4後的版本才修正此狀況。
可以更新的語言或系統,就請自己更新…如果不再上面的,就比較麻煩了… :(
以php 5.2.x為例。出了PHP 5.2.16時,PHP官方指出該版本是php 5.2.x 的最後一版,往後將不再維護。雖然,沒多久因為一個重大問題,又馬上出了PHP 5.2.17。但…這次聽說不會因為Hash Collision出新版本更新此問題。
只好找治標的方式來防止。PHP的參數中和Hash Collision攻擊有關的php參數有兩個
可以藉由這兩個參數,"降低"被攻擊時的影響。不過,調整參數max-input-time時需要注意。被修改設定的主機,是否會接受client上傳圖檔?如果有,這個時間就需要拿捏了… 避免圖檔上傳的時間超過了設定時間。
雖然PHP官方不提供patch,不過…如FreeBSD還是有提供。詳見CVS log for ports/lang/php52/distinfo。如果您是使用FreeBSD就趕緊更新吧。更新後的版本為PHP 5.2.17_5。
附註:FreeBSD版本的php,max-input-time預設值不是 -1 ,卻是60秒。
或者,參考下方參考資料中PHP5.2.*防止Hash冲突拒绝服务攻击的Patch的作法。
參考資料
Hash Collision影響範圍有多廣,可以參考oCERT.org - oCERT Advisories。裡面列出受到影響的語言、系統,以及目前的狀況。以php為例,5.3.9後、或5.4.0RC4後的版本才修正此狀況。
可以更新的語言或系統,就請自己更新…如果不再上面的,就比較麻煩了… :(
以php 5.2.x為例。出了PHP 5.2.16時,PHP官方指出該版本是php 5.2.x 的最後一版,往後將不再維護。雖然,沒多久因為一個重大問題,又馬上出了PHP 5.2.17。但…這次聽說不會因為Hash Collision出新版本更新此問題。
只好找治標的方式來防止。PHP的參數中和Hash Collision攻擊有關的php參數有兩個
- max-input-time,PHP 預設為 -1(意即不限制執行時間)
- max-execution-time,PHP 預設為30秒
可以藉由這兩個參數,"降低"被攻擊時的影響。不過,調整參數max-input-time時需要注意。被修改設定的主機,是否會接受client上傳圖檔?如果有,這個時間就需要拿捏了… 避免圖檔上傳的時間超過了設定時間。
雖然PHP官方不提供patch,不過…如FreeBSD還是有提供。詳見CVS log for ports/lang/php52/distinfo。如果您是使用FreeBSD就趕緊更新吧。更新後的版本為PHP 5.2.17_5。
附註:FreeBSD版本的php,max-input-time預設值不是 -1 ,卻是60秒。
或者,參考下方參考資料中PHP5.2.*防止Hash冲突拒绝服务攻击的Patch的作法。
參考資料
- oCERT.org - oCERT Advisories
- Hash Collision DoS 問題
- 通过构造Hash冲突实现各种语言的拒绝服务攻击
- PHP数组的Hash冲突实例
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- PHP :: Sec Bug #60623 :: Hash Table Collisions
- PHP參數-max-input-time
- PHP參數-max-execution-time
- IIS更新說明-Microsoft Security Bulletin MS11-100 - Critical : Vulnerabilities in .NET Framework Could Allow Elevation of Privilege (2638420)
- PHP 5.3.9 Released - Added max_input_vars directive to prevent attacks based on hash collisions. (CVE-2011-4885)
- PHP 5.2.16版本更新
- PHP 5.2.17版本更新
- FreeBSD PHP52 更新說明-CVS log for ports/lang/php52/distinfo
留言