1. 威客安全首页
  2. 安全资讯

火狐在浏览器中推出代码注入攻击保护

火狐在浏览器中推出代码注入攻击保护

Mozilla在Firefox浏览器中推出了一种能够阻止代码注入攻击的保护措施,通过删除类似eval()这样的函数来降低攻击面。

Mozilla Firefox中文也称火狐,其是一个自由及开源的网页浏览器,由Mozilla基金会及其子公司Mozilla公司开发。

Mozilla安全团队表示:“对抗代码注入攻击的一种有效方式是降低攻击面,通过移除代码库中有潜在威胁、在多个层级加固代码。而为了让Mozilla对这种代码注入攻击保有弹性,我们删除了内联脚本和eval()函数。”

eval()函数是Javascript内置函数,用于计算字符串表达式的值。该函数可计算某个字符串,并执行其中的JavaScript代码。

内联脚本删除

Mozilla重写了所有内联事件处理程序,并将内联JavaScript代码移动到了所有的Firefox的about页面:其能通过内联脚本暴露于代码注入攻击之下。

这类页面是要为用户提供一个简单的界面,审视与Firefox内部工作的相关信息,就像about:config页面那样,这个页面“会暴露一个API来检查和更新偏好和设置。”

由于about:pages使用HTML和JavaScript脚本作为常规web页面,潜在攻击者可在安全浏览器环境下利用其注入恶意脚本、从而能代表Firefox用户执行任意行为。

Mozilla表示:“这让我们能采用一种强大的内容安全政策(CSP)如‘default-src chrome:’,其保障了所注入的JavaScript代码不会被执行,而仅仅是从打包资源中使用内部chrome:protocol加载时才执行。”

通过在Firefox浏览器的about:pages页面注入内联脚本,Mozilla创建了一个有效的障碍来阻断此类攻击。

Runtime assertions可禁用该函数

Mozilla还表示,“Javascript函数eval()与跟其类似的‘new function’和‘setTimeout()/setInterval()’都是强大且危险的工具,其能在与自身相同的安全环境下解析并执行任意字符串;而且,这种执行机制能执行运行时的生成代码或存储在非脚本位置(如文档对象模型(DOM))上的代码。”

为解决该问题,Mozilla还重写了系统特权上下文中、以及Firefox代码库母进程中的所有使用类似于’eval()’的函数”,目的是要遏制eval()函数的使用、进一步减少攻击面。

火狐在浏览器中推出代码注入攻击保护

运行时确认也已添加到了Firefox的代码库中,这是为在系统特权脚本上下文中禁止类似于eval()这种函数而设。

Mozilla在删除所有类似eval()的函数时,在Firefox代码库外部还发现了对eval()的调用,例如:Firefox用户可以在自定义文件(如:userChrome.js)中包含eval()函数,在启动时对Firefox进行自定义。

Mozilla安全团队的运行检查还验证用户在一些自定义文件中包含了评估。为了让用户进行自定义,Mozilla表示浏览器会禁用“阻止机制并允许eval()的使用”。

原文链接:http://www.mottoin.com/detail/4229.html

本站声明:网站内容来源于mottoin,如有侵权,请联系我们,我们将及时处理。

本文转为转载文章,本文观点不代表威客安全立场。