天天看点

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终将默认启用这一功能。

====================================分割线================================

继续阅读