Microsoft PatchGuard中公开的新旁路

导读 一位安全研究人员上个月发布了概念验证代码,该漏洞利用可以绕过Microsoft内核补丁程序保护(KPP)安全功能(通常称为PatchGuard)。名为ByePg

一位安全研究人员上个月发布了概念验证代码,该漏洞利用可以绕过Microsoft内核补丁程序保护(KPP)安全功能(通常称为PatchGuard)。

名为ByePg,这是继今年7月披露的InfinityHook之后,过去六个月内第二次发现并公开披露的Patchguard绕过。

什么是MICROSOFT PATCHGUARD

Microsoft PatchGuard是2005年在Windows XP中引入的一项安全功能。它仅适用于64位版本的Microsoft Windows,其作用是防止应用程序修补内核。

修补内核是一个技术术语,是指使用未经授权的代码修改操作系统最重要的组件(将命令从应用程序中继到底层硬件)。

在PatchGuard发行之前,许多应用程序都具有修改Windows内核的自由,因此它们可以更轻松地完成工作或访问敏感功能。防病毒软件,阴暗的驱动程序,游戏作弊软件和恶意软件通常会出于自身不同的目的而使用内核补丁。

Rootkit开发人员是内核修补的最大支持者之一,他们使用该技术将其恶意软件嵌入到操作系统级别,从而可以不受限制地访问所有用户的计算机。

最初,PatchGuard并不是微软所希望的巨大成功,并且在2010年代末期发现了一些绕过的漏洞,微软最终对其进行了修补。

PatchGuard并未自行杀死Rootkit,但Rootkit最终消失了,尤其是在Windows 10推出之后,该功能与PatchGuard一起具有附加的安全功能。

PATCHGUARD旁路

但是,即使PatchGuard在Windows不断增加的安全功能层中倒退,安全研究人员仍继续努力探索其内部机制,寻找绕过其提供的保护的新方法。

在Windows 10于2015年发布之后,所有PatchGuard绕过中最引人注目的是GhostHook,这是Cyber​​Ark研究人员于2017年发现的。GhostHook滥用了英特尔处理器跟踪(PT)功能来绕过PatchGuard并修补内核。

七月的夏天,又发现了第二条旁路。由Riot Games的反作弊专家Nick Peterson发现,此旁路名为InfinityHook,并滥用了NtTraceEvent API修补内核。

彼得森在描述当时的绕行技术时说:“ InfinityHook有望成为过去十年Rootkit军火库中最好的工具之一。”

上个月,公开了第三个PatchGuard绕过技术;这次是由土耳其软件开发商CanBölük设计的。名为ByePg的漏洞利用程序劫持了HalPrivateDispatchTable,以允许流氓应用对内核进行修补。

就像彼得森在描述ByePg时一样,Bölük曾说过:“ [ByePg]的武器化潜力仅受您的创造力限制。”

ByePG被认为更加危险,因为它可以绕过PatchGuard和Hypervisor保护的代码完整性(HVCI),该功能使Microsoft可以将用户设备上的错误驱动程序列入黑名单。

在微软拒绝修复该问题之后,Cyber​​Ark,Peterson和Bölük这三个公司均通过各自的PatchGuard绕过公开发行。

争议

微软在这三种情况下的反应都是相同的。这三个漏洞都需要管理员权限才能运行,这意味着它们不能被归类为安全问题。

操作系统制造商认为,一旦攻击者可以使用管理员权限访问本地系统,他们就可以执行所需的任何操作。从技术上讲,它们是正确的,但也是错误的。尽管这种解释可能对其他任何攻击媒介都是正确的,但对于PatchGuard无效,PatchGuard是一种旨在保护内核甚至免受高特权进程(例如驱动程序或防病毒应用程序)保护的系统。研究人员认为,这是PatchGuard的唯一目的。

他们还说,当今,攻击者提升特权然后运行InfinityHook或新的ByePg之类的东西来在内核本身中建立永久立足点,并为在Windows 10上返回rootkit敞开大门是很简单的。与XP,Vista和7等较旧的Windows版本相比,感染数量还没有真正增加。

当这位记者在2017年与微软联系时,这家操作系统制造商表示他们并没有忽略这个问题,但他们只是没有将其视为安全漏洞。

在Microsoft,安全漏洞会立即得到修复,并通过每月的“星期二补丁程序”流程交付补丁程序。另一方面,错误每两年修正一次。

值得称赞的是,微软在2017年末对GhostHook进行了补丁,但没人知道它发生了几周。9月的Windows Insider版本中还提供了InfinityHook的补丁程序,该补丁很可能包含在本月初发布的Windows 10 v1909中。

您会获得CVE!然后,您获得CVE!并且*您*获得CVE!哦,抱歉@nickeverdox没有适合您的CVE。#UnfinityHook pic.twitter.com/egdUesU23B

-Alex Ionescu(@aionescu)2019年9月5日

ByePG仍未打补丁,Bölük和他之前的其他安全研究人员一样,现在感觉到他的研究工作被拒绝了。

研究人员在一次私人对话中告诉ZDNet,他了解Microsoft的漏洞赏金计划的规则,而且他没有资格获得金钱支付。但是,他认为Microsoft轻描淡写了这些漏洞的严重性,并不必要地延迟了补丁程序,从而为可能的攻击打开了方便之门。

规则不会改变

通过与Microsoft公共关系人员的互动,我们知道我们无法直接回答问题,因此我们联系了Microsoft员工,该员工是公司Bug程序的一部分,并对其陈述保密。

员工将PatchGuard绕过问题描述为公司程序规则中的技术漏洞,但微软员工并没有例外。

虽然“ 管理员到内核不是安全边界 ”的规则明确指出,以管理特权运行的漏洞利用不计入公司的Bug奖励计划,但他还了解到,这尤其是PatchGuard的一个大问题。

但是,我们的消息来源希望非常清楚地指出,这些问题不会被忽略,绕过PatchGuard或公司的任何其他安全功能的确会引起Microsoft的注意。

这三个PatchGuard绕过程序可能未获得“安全性错误”分类,但它们最终仅由另一个团队以较慢的速度进行了修复。

微软员工告诉我们,这种分类是错误而不是安全缺陷,通常是使99%的研究人员报告这些问题的。

他说,大多数安全研究人员都知道微软的漏洞赏金计划具有规则,他们没有资格获得现金奖励,但是大多数人都对他们的工作(在许多情况下花费了几个月的时间)感到不满,没有得到微软的公开认可。 ,完全没有。

此外,他们发现的错误也不会获得CVE号-一个有效漏洞的标识码,许多研究人员将其收集并标榜为奖杯。

他说,这就是为什么许多研究人员公开其工作细节以及概念验证代码的原因,可以很容易地将其武器化。我们的消息来源告诉我们,他这样做既不怪研究人员,也不怪他的同事,因为有时候这是在没有微软点头的情况下展示他们的逆向工程和捕猎人才的唯一方法。