作为IE的接替者,Edge浏览器被微软寄予厚望。除技术的升级和扩展功能之外,安全也是微软重点投入的领域。沙盒的引入极大地增强了浏览器抵御攻击的能力,但在永无休战的网络攻防战场,没有永恒的安全,只有及早发现漏洞才能无惧攻击。

在8月28日举办的互联网安全领袖峰会(CSS 2018)腾讯安全探索论坛(TSec)上,来自腾讯安全湛泸实验室的高级安全研究员Rancho Han和陈楠在议题《打破Win10叹息之壁:利用3D加速突破Edg沙盒》中,展示了团队在Edge浏览器漏洞挖掘、Windows内核研究方面的最新成果。凭借在微软内核上的深度研究,该议题获得TSec专业奖。

沙盒也称沙箱(sandbox),是一种计算机安全领域的虚拟技术。当某个程序试图发挥作用时,安全软件可以先让它在沙盒中运行,如果含有恶意行为,则禁止程序的进一步运行,从而避免其可能对系统造成的危害。微软Edge浏览器的沙盒,裁减掉许多对系统资源、接口和设备的访问能力,为系统筑起了一道高墙。

但沙盒的存在并不会让Edge浏览器 “高枕无忧”,只不过又开拓了一个攻防的新战场。在今年4月的荷兰阿姆斯特丹举行的HITB大会上,Rancho Han首次公布了三种不同的沙盒逃逸方式,及一个罕见的Win32k filter的绕过方法,获得微软官方致谢。但同时微软方面也在大会上发声,“Win32k filter的利用到此为止了”。

Rancho Han对此表示,自此之后,随着被Win32k filter过滤的列表不断扩大,想要再通过Win32k访问系统内核的路已经逐渐被堵死。但是在研究函数调用的过程中,研究人员发现了一个有意思的现象,很多NtGdiDDI打头的函数其功能是由Windows DirectX的图形内核子系统实现的。研究人员敏锐的意识到,DirectX可能是一个突破口。

陈楠解释到,DirectX作为微软提供的3D渲染接口,必须与显卡打交道,那么DirectX内核的一部分则属于Windows显示驱动框架。这样一来系统内核则必须与接口和驱动产生联系,这些驱动既有微软提供的也有第三方的,至此,新的安全隐患已经在地平线上隐隐浮现了。

研究人员详细地分析了DirectX kernel、MMS系列(MMS1和MMS2)、Miniport driver以及第三方驱动、接口的攻击面。以此为基础,开展进一步的随机化和模糊测试。

随后,Rancho Han介绍了一个去年10月底模糊测试检出的漏洞案例,编号CVE-2018-0977。研究过程中,经过特殊构造的条件和属性,当用户给子系统发送时,子系统在将转发给系统进程的时候Basic Render Engine(基本渲染引擎)对用户参数缺少有效的校验,这导致内核访问无效内存造成一次系统崩溃。此后,还相继发现了三个相似的漏洞。

但是,找到漏洞并不意味着可以直接以此突破Edge沙盒,还需要在系统重重防御之下构建一个苛刻的攻击环境。沙盒高墙一侧的系统资源已经近在咫尺了,而抵达的路径却隐匿不见。模糊测试是在用户进程,但漏洞路径执行和崩溃却是在系统进程。这时,还需要另一个漏洞来引导研究人员找到道路入口。

研究人员重新回溯已经检测出的漏洞,发现1709号测试结果新增的API(应用程序编程接口)在安全上考虑不周。陈楠介绍到,团队以此为突破口实现了在内核中分配任意大小的池内存,并且将池内存中的内容完整的读取出来。

最后,陈楠揭晓了其团队如何跨越了突破沙盒的“最后一公里”——先触发一次信息泄露然后获得NT的地址,并计算出ROP in kernel的指令地址。将ROP数据布置好,再触发一次信息泄露,获得布置的内核数据地址。将这个地址填充到CVE-2018-0977漏洞,触发之后便可实现在内核进行ROP,实现对系统资源的改写,最突破了Edge的沙盒。

原文来自:

本文地址: //gulass.cn/tencent-founds-windows.html编辑:陈虎,审核员:逄增宝

本文原创地址://gulass.cn/tencent-founds-windows.html编辑:public,审核员:暂无