德比康:BlueHat前获奖者将绕过Windows 10中的Control Flow Guard

前BlueHat奖得主Jared DeMott将绕过Windows 10中的CFG,再次在Microsoft 德比康上讨价还价。Microsoft拒绝支付漏洞赏金。

Windows 10甚至Windows 8.1 Update 3使用 控制流卫士 (CFG),以防止发生内存损坏攻击。接近去年年底,微软 说过 CFG安全功能可以“检测企图劫持您的代码的尝试”并“在劫持者可能损坏您的数据或PC之前停止执行代码”。

今年夏天,在黑帽大会上,张云海展示了如何“全面绕过控制Flow Guard”(pdf格式)。而在 德比康 在周五, 贾里德·德莫特(Jared DeMott) Rafal Wojtczuk将展示“ Gadgets Zoo:绕过Windows 10中的Control Flow Guard”。

抽象 德比康发布的状态:

现代内存破坏利用通过用受控值覆盖函数指针并触发取消引用它的代码路径来获得任意代码执行。最近的编译器试图通过在取消引用代码指针之前发出附加检查来防止这种情况,从而对控制流程图施加了限制。这使开发更加困难。在VC ++ 2015中,Microsoft实现了“控制流防护”(CFG),该功能禁止某些间接函数调用。 Windows 8.1和10二进制文件在启用此选项的情况下进行编译,并包含执行额外检查所需的内核扩展。 (LLVM / Clang也提供控制流保护,但是它们是实验性的,目前在Mac或Linux的实际应用中尚未使用。)在本演讲中,我们简要介绍了有关CFG实现和弱点的已知信息。我们研究的重点是提供通用的CFG旁路。我们已经与Microsoft合作,以安全地协调此发行版。

DeMott, a security researcher at 溴实验室, 告诉 Threatpost表示:“ Bromium在Black Hat之前向Microsoft披露了该技术,但该公司已决定不对其进行修复,因此不值得给予任何奖励。”微软目前没有发表评论,他说:“旁路并不会影响所有系统,这将是很难利用的攻击手段。”

DeMott补充说:“他们说,它实际上仅影响在64位计算机上运行的32位应用程序,并且不会影响所有系统。我对他们的答复是,默认情况下,IE在64位Windows上以32位运行而且仍然会完全影响浏览器。”

CFG也是Microsoft Edge浏览器的一部分。早在五月 宣布 微软解释了如何将Edge打造为“更安全的浏览器”:

内存损坏的最终目的是使攻击者获得对CPU程序计数器的控制权,并跳转到攻击者选择的代码位置。 CFG(Control Flow Guard)是一项Microsoft Visual Studio技术,可根据指针对代码进行检查,这些代码会基于指针进行间接跳转,并将这些跳转限制为仅跳转到已获取地址的函数入口点。通过严格限制内存损坏攻击可以跳转到的位置,这使攻击者更难以接管程序。

这些新的内存安全保护功能已在去年启用,并已交付给Windows和IE用户,并且始终在Microsoft Edge中使用。

三月份,当核心安全讨论 绕过CFG,该公司补充说,CFG“是一种很有前途的缓解技术,它将增加编写漏洞利用程序的难度和成本。与每个已知的漏洞利用缓解程序一样,如果满足某些条件,则有许多方法可以绕过它。”

果然,正如在DerbyCon上所揭示的那样,可以在Windows 10中绕过CFG。 不会赏金。也许普通的简·多伊(Jane Doe)无法摆脱DeMott的最新绕行,但是民族国家的黑客肯定可以。 Threatpost补充说,这种“攻击提供了进入网络的入口,为导致数据丢失或特权升级的二次攻击打开了大门”。

DeMott说:“这是典型的猫捉老鼠游戏的下一步发展,即记忆破坏。” “尽管听起来很糟糕,所有这些研究仍在向前推进,并提高了攻击者的标准。[微软]选择不修复它,并感到他们已尽力做到了并且没有完全修复。这里存在一些轻微的风险,而且我们使用的技术并不处处存在。”

Back in July, before 溴实验室 attended 微软's Worldwide Partner Conference, Bromium and 微软 合作 增强Windows 10安全性的项目。因此,这两家公司似乎并没有互相憎恨或类似的仇恨,但似乎微软可能希望停止打击Jared DeMott。显然DeMott在击败Microsoft产品方面表现出色。

早在2012年, 获得三等奖 在微软的BlueHat竞赛中,微软计划为DeMott提供价值10,000美元的MSDN订阅。在这一奖项引起了人群的强烈嘘声之后,微软为MSDN订阅增加了10,000美元。

到2014年,Bromium的DeMott展示了 攻击代码 能够绕过Microsoft免费的增强缓解经验工具包(EMET)4.1中的“所有保护措施”。当时,他对Redmond巨人有点反感,声称BlueHat 50,000美元二等奖获得者提供了面向收益的编程(ROP)保护,这“使它成为EMET,一点也不阻止ROP。”在关键时刻进行检查类似于治疗感冒的症状,而不是治愈感冒。也许其他奖项之一可以更好地解决代码重用问题。”

更好的是Bromium随附的白皮书(pdf格式),其中包含嘲讽Microsoft的“自定义LoadLibrary shellcode”消息。

溴实验室 贾里德·德莫特(Jared DeMott) custom message 溴实验室

这次对Bromium来说没有悬赏,但是我真诚地怀疑,这是微软最后一次听到DeMott的来信。

版权© 2015 IDG通讯,Inc.