绕过微软控制流防护(CFG)保护机制

安全 网站安全
控制流防护(CFG)作为Win 8.1+的新安全保护机制,其实并不知名。它被用于阻止针对可执行文件间接调用的恶意利用。CFG保护十分高效,同时它是一种编译器和操作系统相结合的防护手段。

随着每次新的安全机制的发布,研究人员和黑客都会想法设法地找到破解或者通过它的方式,此次CFG也不能例外。

[[150750]]

微软在Win 8.1 Update 3以及Win 10中启用了一种抵御内存泄露攻击的新机制,即Control Flow Guard(CFG)——控制流防护。这项技术是为了弥补此前不完美的保护机制,例如地址空间布局随机化(ASLR)导致了堆喷射的发展,而数据执行保护(DEP)造成了漏洞利用代码中返回导向编程(ROP)技术的发展。

百科:控制流防护(CFG)

控制流防护(CFG)作为Win 8.1+的新安全保护机制,其实并不知名。它被用于阻止针对可执行文件间接调用的恶意利用。CFG保护十分高效,同时它是一种编译器和操作系统相结合的防护手段。

影响IE,微软却不修?

来自云安全公司Bromium的研究人员Jared DeMott周五将发表一个关于绕过CFG的演说,DeMott告诉记者,早在8月份的Blackhat举办之前,公司就将这个发现提交给了微软公司,但是微软决定不去修复这个问题,并认为这也不值得发放漏洞奖金。

微软拒绝对此进行评论。据DeMott介绍,微软认为这样的绕过并没有影响所有系统,并且是个很难被利用的攻击向量:

“微软说这仅仅影响到64位系统下的32位程序,因此并不影响整个系统。而我的回答则是,IE就是64位系统下的32位程序,如此一来便可以影响浏览器。”

这并不是微软首次公开表示保护机制被绕过不是漏洞,早在2010年Verizon Business发布了一份报告,详细列出了他们的发现“逃离微软IE保护模式”,IE7和IE8的保护模式都可以被绕过,攻击者能提高其用户权限。微软当即表示这份报告中发现的问题并不是一个漏洞,它只是绕过安全防护的一种方法。

研究人员:绕过保护机制的危害也很大

DeMott说这样的绕过利用了微软选择不在CFG中部署Control Flow Integrity(CFI),即控制流完整性。

“当CFI执行时,它在一个函数指针调用以及受到返回地址之前增加了额外检查,使得这些返回地址都是有效的。而微软并不认为这样的完整性是十分必要的,CFG仅仅保护了函数指针,而不检测返回地址。”

作为一项Visual Studio技术,CFG同时也被内置于微软的新浏览器Edge中。而此前CFG的一个绕过已经由Core Security的研究人员在三月份发布。

微软在一份报告中描述了Edge浏览器的安全特性:

“(CFG)编译检测代码会根据指针地址来进行间接跳转,这也就使得攻击者控制系统程序的过程变得更加的困难。”

内存崩溃攻击:一场捕鼠游戏

DeMott坦言,这种绕过技术的关键在于攻击者是否能够搞崩溃一个返回地址,并切断导致返回导向编程技术链(ROP)的一系列事件,这是很多内存崩溃攻击的核心所在。Bromium称之为Stack Desync,依赖于使用不同的函数调用协议。

“当你调用一个函数指针的时候,系统期望收到的是一个符合标准协议的指针地址,而程序却返回一个任意的指针地址。如果你不保护返回地址,对应的模块便会遭到破坏,也就意味着系统所有的操作被暴露出来了,攻击者便有机会破坏系统堆栈中的数据,并且当系统调用指针地址的时候,返回的就不是一个有效地址了,而这便是攻击的前奏。”

这样的绕过技术并非不重要的,更有可能成为国家级情报机构获取情报的重要手段。攻击者可以由此入侵网络,进行二次攻击,从而进一步盗窃数据并越权操作。

DeMott总结道:

“内存崩溃攻击一场新型的捕鼠游戏,所有这些实验成果,尽管听起来不是好消息,但是它推动了信息安全行业整体的发展,同时也为攻击者实施攻击提供了障碍。微软公司选择不去修复这个问题,还认为他们已经完成了力所能及的一切。除此之外,因为这样的技术并非所有人都能够得到的,微软认为这个问题造成的安全风险很低。”

责任编辑:蓝雨泪 来源: FreeBuf
相关推荐

2017-01-20 14:49:46

2017-02-23 09:00:42

2016-12-28 10:34:58

2017-02-20 09:46:59

2014-11-18 09:35:14

2020-09-25 10:14:54

漏洞

2017-06-28 08:06:48

2023-02-28 09:47:42

2010-11-19 12:26:08

2023-05-31 07:25:57

2022-01-13 10:09:26

微软MacOS系统漏洞

2021-09-02 11:47:11

AdLoad恶意软件苹果

2015-10-12 11:37:07

2011-07-18 14:08:08

2022-06-08 09:59:04

网络安全大数据数据安全

2017-12-14 21:45:39

2024-03-26 00:00:03

Windows函数挂钩

2021-11-02 11:55:07

macOS macOS Monte漏洞

2012-05-02 14:54:21

Windows

2022-01-12 17:37:42

微软漏洞macOS
点赞
收藏

51CTO技术栈公众号