Doppelganging:如何绕过安全产品在Windows上执行代码

导读 摘要 研究人员披露了一种利用Windows操作系统中的进程来绕过所有传统安全软件并执行代码执行攻击的攻击。周四在黑帽欧洲,来自终端安全公...
摘要 研究人员披露了一种利用Windows操作系统中的进程来绕过所有传统安全软件并执行代码执行攻击的攻击。周四在黑帽欧洲,来自终端安全公司enSilo的安全专家Eugene Kogan和Tal Liberman透露了一项研究,研究如何利用市场上的网络安全产品扫描恶意软件和与内存进程交互的方式来规避网络安全问题。在一个名为“迷失在事务中:流程二重身”的演示中,该团队描述了一个规避安全软件的流程空心化游

研究人员披露了一种利用Windows操作系统中的进程来绕过所有传统安全软件并执行代码执行攻击的攻击。

周四在黑帽欧洲,来自终端安全公司enSilo的安全专家Eugene Kogan和Tal Liberman透露了一项研究,研究如何利用市场上的网络安全产品扫描恶意软件和与内存进程交互的方式来规避网络安全问题。

在一个名为“迷失在事务中:流程二重身”的演示中,该团队描述了一个规避安全软件的流程空心化游戏。

进程空心化是为了在进程内部运行恶意可执行文件而创建的进程。

喜欢这种方法的攻击者会加载处于挂起状态的进程,用精心编写的代码替换内存元素,然后恢复进程——欺骗系统相信进程是合法的,可以安全运行。

现在的许多安全解决方案都考虑了空心化,能够检测到这些攻击。

然而,这种被称为过程二重身的新技术更难被探测和防御。

Transactionable NTFS将事务集成到NTFS文件系统中,从而改进了Windows系统中的错误处理和数据完整性保护。duo的技术工作原理是通过一个进程屏蔽精心设计的可执行文件,通过覆盖事务上下文中的合法文件来更改一个从未提交到磁盘的可执行文件。

这个事务的一部分被恶意代码覆盖,指向恶意的可执行文件。

然后利用“未文档化的实现细节”来加载修改后的可执行文件,从而在修改后的可执行文件的基础上创建一个进程,并在进程中屏蔽安全产品,避免检测。

然后,事务被回滚到其合法状态,这样就不会留下任何攻击的痕迹,团队表示这“有效地从文件系统中删除了我们的更改”。

此外,研究人员表示,反病毒产品根本不会扫描这种攻击,或者只扫描干净的文件。

enSilo说,该技术的目标是在目标机器上合法进程的内容中运行任意代码。尽管研究人员的攻击方法是对进程空心化的一种扭曲,但它成功地在不使用可疑进程和泄露传统安全软件的情况下对系统进行了攻击。

该团队表示,这种技术不需要在过程中创建任何文件,也不能打补丁,因为“它利用了Windows中进程加载机制的基本特性和核心设计”。

enSilo测试了主要供应商对网络安全产品的攻击,包括Windows卫士、AVG、赛门铁克终端保护版本12和14、Avast和诺顿。

该团队表示,这项技术不仅适用于所有主要产品,而且可以在所有版本的微软Windows上使用,还可以用来执行密码窃取等实用工具,以避免被发现并保持持久性。

这种攻击还可以使旧的恶意软件变种无法被检测到,从而赋予它们新的生命。

然而,要成功地模拟过程二重身,需要先进的技术技能和知识。最难克服的障碍之一是,为了在某个部分而不是磁盘上的文件中运行进程,必须使用NtCreateProcess创建进程,这进一步需要手动初始化。

还有其他的挑战,比如扫描锁定文件的问题,这会导致AV扫描器出现问题,而AV扫描器会将扫描任务移交给用户模式进程。

“虽然这种技术利用了微软的交易技术,但它不是一个漏洞,而是一种规避技术,”利伯曼告诉ZDNet。“话虽如此,我们确实向微软提交了一份技术描述,由于他们也不认为这是一个漏洞,他们不会解决这个问题。”