天天看點

Firefox 将啟用 W^X 安全特性:性能影響不大

Firefox 将啟用 W^X 安全特性:性能影響不大

mozilla開發者們已經為firefox浏覽器加入了openbsd的w^x安全特性,以應對基本的緩沖區溢出和記憶體洩露問題。“w^x” 是“寫異或執行”(write xor execute)的縮寫,作為openbsd中富有代表性的安全特性,mozilla的開發者們已經将它移植到了firefox的jit代碼編譯器中。 jan de mooij指出,該功能在firefox底層運作,并且影響在浏覽器内執行的代碼是如何與系統記憶體互動。

Firefox 将啟用 W^X 安全特性:性能影響不大

w^r記憶體保護機制的原則是,一個程序(比如firefox中的一個網頁)不能夠同時寫或執行。該功能會從firefox 46每夜建構版開始部署,網頁将能夠使用記憶體寫入或執行的代碼,但不能夠同時進行這兩種操作。

通過延緩執行時間,w^x記憶體保護機制可組織某些類型的緩沖區溢出攻擊,以及確定流程執行堆棧中的任意動态代碼——即使讓firefox崩潰,也不再會盲目地運作潛在的惡意代碼。

在加入w^x支援之前,firefox給予了網頁完整的“讀與寫”(read-write-execute, 簡稱rwx)許可。但為了安全,firefox此舉也會小幅影響到自身的性能表現。

jan de mooij解釋到:“rwx使得某些bug很容易被利用,所有現代作業系統都會存儲執行代碼但記憶體不可寫,且資料通常是無法執行的,這點可參考w^x與dep”。

對于普通使用者來說,在切換可寫可執行記憶體狀态之前,firefox會通過特殊的内部功能來觸發,而這肯定會帶來一定的延遲。

根據mozilla開發者的内部測試,根據基準測試套件的不同,其性能影響介于1%到4%之間。考慮到影響并不明顯,是以團隊最終還是決定啟用r^w記憶體保護功能。

在排除了嚴重缺陷和其它不可預見的性能問題之後,firefox終将預設啟用這一功能。

====================================分割線================================

繼續閱讀