Firefox 将启用 W^X 安全特性:性能影响不大 - 开源中国社区
Float_left Icon_close
Firefox 将启用 W^X 安全特性:性能影响不大
oschina 2016年01月06日

Firefox 将启用 W^X 安全特性:性能影响不大

oschina oschina 发布于2016年01月06日 收藏 10 评论 14

Mozilla开发者们已经为Firefox浏览器加入了OpenBSD的W^X安全特性,以应对基本的缓冲区溢出和内存泄露问题。“W^X” 是“写异或执行”(Write XOR Execute)的缩写,作为OpenBSD中富有代表性的安全特性,Mozilla的开发者们已经将它移植到了Firefox的JIT代码编译器中。 Jan de Mooij指出,该功能在Firefox底层运行,并且影响在浏览器内执行的代码是如何与系统内存交互。

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

[编译自:Soft Pedia]

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Firefox 将启用 W^X 安全特性:性能影响不大
分享
评论(14)
最新评论
0
偶尔搞点特殊、跟Google抬杠、以为自己多牛逼
0

引用来自“必须特色”的评论

难道不知道自己份额下降的原因吗0011223344556[6]7[7]8[8]9[9]10[10]11[11]12[12]13[13]14[14]15[15]16[16]17[17]18[18]19[19]20[20]21[21]22[22]23[23]24[24]25[25]26[26]27[27]28[28]29[29]30[30]31[31]32[32]33[33]34[34]35[35]36[36]37[37]38[38]39[39]40[40]41[41]42[42]43[43]44[44]45[45]46[46]47[47]48[48]49[49]50[50]51[51]52[52]53[53]54[54]55[55]56[56]57[57]58[58]59[59]60[60]61[61]62[62]63[63]64[64]65[65]66[66]67[67]68[68]69[69]70[70]71[71]72[72]73[73]74[74]75[75]76[76]77[77]78[78]79[79]80[80]81[81]82[82]83[83]84[84]85[85]86[86]87[87]88[88]89[89]90[90]91[91]92[92]93[93]94[94]95[95]96[96]97[97]98[98]99[99]100[100]

引用来自“blu10ph”的评论

@红薯 我很好奇这个人是要做什么?...

引用来自“必须特色”的评论

试试所有的表情,但最多同时6个,一共135个,序号0-13447

引用来自“必须特色”的评论

我怎么这么容易被举报,难道昵称太敏感了28

引用来自“必须特色”的评论

我未看到有“删除评论”的选项
@红薯
0

引用来自“必须特色”的评论

难道不知道自己份额下降的原因吗0011223344556[6]7[7]8[8]9[9]10[10]11[11]12[12]13[13]14[14]15[15]16[16]17[17]18[18]19[19]20[20]21[21]22[22]23[23]24[24]25[25]26[26]27[27]28[28]29[29]30[30]31[31]32[32]33[33]34[34]35[35]36[36]37[37]38[38]39[39]40[40]41[41]42[42]43[43]44[44]45[45]46[46]47[47]48[48]49[49]50[50]51[51]52[52]53[53]54[54]55[55]56[56]57[57]58[58]59[59]60[60]61[61]62[62]63[63]64[64]65[65]66[66]67[67]68[68]69[69]70[70]71[71]72[72]73[73]74[74]75[75]76[76]77[77]78[78]79[79]80[80]81[81]82[82]83[83]84[84]85[85]86[86]87[87]88[88]89[89]90[90]91[91]92[92]93[93]94[94]95[95]96[96]97[97]98[98]99[99]100[100]

引用来自“blu10ph”的评论

@红薯 我很好奇这个人是要做什么?...

引用来自“必须特色”的评论

试试所有的表情,但最多同时6个,一共135个,序号0-13447

引用来自“必须特色”的评论

我怎么这么容易被举报,难道昵称太敏感了28
我未看到有“删除评论”的选项
0

引用来自“必须特色”的评论

难道不知道自己份额下降的原因吗0011223344556[6]7[7]8[8]9[9]10[10]11[11]12[12]13[13]14[14]15[15]16[16]17[17]18[18]19[19]20[20]21[21]22[22]23[23]24[24]25[25]26[26]27[27]28[28]29[29]30[30]31[31]32[32]33[33]34[34]35[35]36[36]37[37]38[38]39[39]40[40]41[41]42[42]43[43]44[44]45[45]46[46]47[47]48[48]49[49]50[50]51[51]52[52]53[53]54[54]55[55]56[56]57[57]58[58]59[59]60[60]61[61]62[62]63[63]64[64]65[65]66[66]67[67]68[68]69[69]70[70]71[71]72[72]73[73]74[74]75[75]76[76]77[77]78[78]79[79]80[80]81[81]82[82]83[83]84[84]85[85]86[86]87[87]88[88]89[89]90[90]91[91]92[92]93[93]94[94]95[95]96[96]97[97]98[98]99[99]100[100]

引用来自“blu10ph”的评论

@红薯 我很好奇这个人是要做什么?...

引用来自“必须特色”的评论

试试所有的表情,但最多同时6个,一共135个,序号0-13447
我怎么这么容易被举报,难道昵称太敏感了28
0

引用来自“必须特色”的评论

难道不知道自己份额下降的原因吗0011223344556[6]7[7]8[8]9[9]10[10]11[11]12[12]13[13]14[14]15[15]16[16]17[17]18[18]19[19]20[20]21[21]22[22]23[23]24[24]25[25]26[26]27[27]28[28]29[29]30[30]31[31]32[32]33[33]34[34]35[35]36[36]37[37]38[38]39[39]40[40]41[41]42[42]43[43]44[44]45[45]46[46]47[47]48[48]49[49]50[50]51[51]52[52]53[53]54[54]55[55]56[56]57[57]58[58]59[59]60[60]61[61]62[62]63[63]64[64]65[65]66[66]67[67]68[68]69[69]70[70]71[71]72[72]73[73]74[74]75[75]76[76]77[77]78[78]79[79]80[80]81[81]82[82]83[83]84[84]85[85]86[86]87[87]88[88]89[89]90[90]91[91]92[92]93[93]94[94]95[95]96[96]97[97]98[98]99[99]100[100]

引用来自“blu10ph”的评论

@红薯 我很好奇这个人是要做什么?...
试试所有的表情,但最多同时6个,一共135个,序号0-13447
0
更安全了
0

引用来自“必须特色”的评论

难道不知道自己份额下降的原因吗0011223344556[6]7[7]8[8]9[9]10[10]11[11]12[12]13[13]14[14]15[15]16[16]17[17]18[18]19[19]20[20]21[21]22[22]23[23]24[24]25[25]26[26]27[27]28[28]29[29]30[30]31[31]32[32]33[33]34[34]35[35]36[36]37[37]38[38]39[39]40[40]41[41]42[42]43[43]44[44]45[45]46[46]47[47]48[48]49[49]50[50]51[51]52[52]53[53]54[54]55[55]56[56]57[57]58[58]59[59]60[60]61[61]62[62]63[63]64[64]65[65]66[66]67[67]68[68]69[69]70[70]71[71]72[72]73[73]74[74]75[75]76[76]77[77]78[78]79[79]80[80]81[81]82[82]83[83]84[84]85[85]86[86]87[87]88[88]89[89]90[90]91[91]92[92]93[93]94[94]95[95]96[96]97[97]98[98]99[99]100[100]
@红薯 我很好奇这个人是要做什么?...
0
难道不知道自己份额下降的原因吗0011223344556[6]7[7]8[8]9[9]10[10]11[11]12[12]13[13]14[14]15[15]16[16]17[17]18[18]19[19]20[20]21[21]22[22]23[23]24[24]25[25]26[26]27[27]28[28]29[29]30[30]31[31]32[32]33[33]34[34]35[35]36[36]37[37]38[38]39[39]40[40]41[41]42[42]43[43]44[44]45[45]46[46]47[47]48[48]49[49]50[50]51[51]52[52]53[53]54[54]55[55]56[56]57[57]58[58]59[59]60[60]61[61]62[62]63[63]64[64]65[65]66[66]67[67]68[68]69[69]70[70]71[71]72[72]73[73]74[74]75[75]76[76]77[77]78[78]79[79]80[80]81[81]82[82]83[83]84[84]85[85]86[86]87[87]88[88]89[89]90[90]91[91]92[92]93[93]94[94]95[95]96[96]97[97]98[98]99[99]100[100]
0

引用来自“eechen”的评论

无论Linux版还是Windows版Firefox,都是一个典型的多线程的图形界面应用,有一个线程崩了,Firefox也得崩,好处就是内存占用比多进程的Chrome要小.
不要误导别人,这个不是W^X的特性说明

W^X特性可以理解为,把内存看作一个文件系统的文件夹,里面的文件在读取执行的时候,如果修改里面的内容,系统通常会阻止,但是内存管理中并没有这个特性。现在加入W^X后,执行中的内存代码如果被修改了,代码会退出,导致程序奔溃。好处是,进一步的漏洞利用被阻止了;坏处是,还没有保存的信息可能会比较难找回来
0
每夜版\(^o^)/~
0
无论Linux版还是Windows版Firefox,都是一个典型的多线程的图形界面应用,有一个线程崩了,Firefox也得崩,好处就是内存占用比多进程的Chrome要小.
0
不是很理解W^X的特性
0
我还以为火狐早就采用了类似技术呢
0
萨法 ......
顶部