导语:安全专家研发了一种隐形攻击技术CIGslip,攻击者利用此技术可绕过Microsoft Code Integrity Guard (CIG)。
Morphisec的安全研究人员Michael Gorelik和Andrey Dimen发现了一种隐形攻击技术,名为CIGslip,可被攻击者利用绕过Microsoft Code Integrity Guard(CIG)并将恶意库注入到受保护的进程,如微软的Edge。
Morphisec公布的分析报告中指出,
新的攻击向量控制着CIG工作的方式,避免了任何内存中未签名的镜像代码页注入,就可以绕过它的控制。这种极具破坏潜力的技术会流行起来。
CIGslip在目标系统上的占用空间非常小,目前它能够绕过几乎所有的安全机制。
研究人员开发了一个攻击POC,利用非CIG启用的进程(代表Windows上的大多数进程),在任何类型的DLL(包括恶意代码)中输入恶意代码。
Morphisec向微软报告了这个问题,但这家软件巨头回应说,该技术超出了缓解绕过和奖励条款的范围。
根据Morphisec的说法,这种情况对于“Windows用户在很多情形下极度脆弱。”
研究人员表示,
攻击POC利用非CIG启用的进程,这是Windows上最常见的进程形式,以潜入启用CIG的目标进程,并将其用作加载任何类型DLL的入口点,包括恶意的。
研究人员解释说,为了破坏目标进程,攻击者必须执行基于反射内存的注入。但微软补充说,通常可以检测到这种攻击,因此它不在赏金计划的范围内。
然而,Morphisec的研究人员能够在没有任何内存中注入未签名的镜像代码页的情况下绕过Microsoft Code Integrity,他们证明可以用注入CIG保护的进程执行非保护CIG进程。
研究人员分析,
假设我们有能力在磁盘上执行不受保护的CIG进程,由于没有可行的方法来保护所有使用CIG的进程(例如Outlook就不会加载),所以这个假设成立。而且,受CIG保护的进程可以执行非CIG保护的进程,该进程将执行向CIG保护的进程的后向注入。
这意味着攻击者会在目标进程中创建该部分时尝试绕过后向注入的CIG验证。
攻击是可能的,因为由内核管理的部分处理程序可能会在进程之间重复。由于节句柄是由内核管理的全局对象,所以句柄可以在进程之间复制。因此,与非签名dll相关的部分可以在恶意过程的上下文中创建,然后复制到目标进程中。研究人员总结说,
为了将恶意DLL(“非签名”)注入到目标进程中,我们需要做的就是在目标进程中hook createsection方法,以便它不会下载到内核,并且会返回复制的节句柄。