导语:enSilo的安全研究人员在blackhat Europe 2017会议上介绍了一种新的代码注入技术“Process Doppelgänging”。 这种攻击可以在所有的Windows版本上运行,研究人员说这种代码注入技术可以绕过大多数安全产品的检测。
enSilo的安全研究人员在blackhat Europe 2017会议上介绍了一种新的代码注入技术“Process Doppelgänging”。这种攻击可以在所有的Windows版本上运行,这种代码注入技术可以绕过大多数安全产品的检测。
Process Doppelgänging
Process Doppelgänging与Process Hollowing技术有点类似,但它使用的是Windows的NTFS Transactions机制。
Process Doppelgänging用了两种不同的特征一起来掩饰对修改后的可执行文件的加载,使用NTFS事务,可以对可执行文件进行修改,但是不会写入硬盘。然后使用非文档的执行细节进程加载机制来加载修改后的可执行文件。但是不会对修改后的可执行文件进行回滚。该步骤的结果是从修改后的可执行文件中创建一个进程,而应用的安全机制仍然蒙在鼓里。
Process Doppelgänging攻击工作原理:
NTFS Transaction是windows的特征,把原子事务的概念引入NTFS文件系统,允许原子地创建、修改、重命名、删除文件和目录。NTFS Transaction是一个隔离的空间,允许Windows应用开发者来写文件输出的路径,这个过程是通过完成成功和完全失败来保证的。
Process Doppelgänging是以下面4个步骤进行的:
· Transact。把一个合理的可执行文件写入NTFS事务,然后用恶意文件复写该事务。
· Load。从修改后的恶意文件创建内存section。
· Rollback。事务回滚,将合法的可执行文件的所有变化删除,以一种从来没有存在过的方式。
· Animate。用旧的Windows进程加载器来创建新的进程,包含之前创建的恶意内存部分,实际上并没有保存在硬盘中。所以大多数的检测工具都无法检测到。
可绕过大多数的AV
研究人员说Process Doppelgänging使用的恶意代码是不会保存到硬盘中的,也叫做fileless attack,这让主流的安全产品很难检测。Kaspersky, Bitdefender, ESET, Symantec, McAfee, Windows Defender, AVG, Avast, Qihoo 360, Panda等公司的安全产品,包括volatility这样的高级取证工具都无法检测此类攻击。
在实验中,研究人员用Process Doppelgänging运行Mimikatz来绕过检测,Mimikatz是一个用于窃取密码的小工具。
Fileless attack
研究人员说,这种技术的目标是允许恶意软件在目标机器上的合法进程上下文中执行任意代码,包含已知的恶意代码。与process hollowing类似,但是加入了新的twist。该攻击的难点是在不使用可疑进程和内存操作的情况下执行,常见的有SuspendProcess和NtUnmapViewOfSection。
为了达到这个目标,恶意软件使用了NTFS事务,并重写了事务上下文中的一个合法文件。然后为修改的文件创建一个section,并在section外创建一个进程。从目前的研究情况来看,当文件在事务中时扫描文件是不可能的。当事务回滚时,恶意活动并不会留下痕迹。
因为恶意进程看起来是合法的,而且会和硬盘上的文件进行映射,这样安全产品就无法检测出恶意进程。而安全产品一般检测的是为映射的代码。
其他
好消息是要让Process Doppelgänging工作,还有一些技术挑战,攻击者需要知道进程创建的非文档的细节。
坏消息是因为攻击利用的是Windows进程加载机制的基本特征和核心设计,所以很难进行补丁操作。
Process Doppelgänging 可以在最新的Windows 10版本上工作,除了Windows 10 Redstone 和Fall Creators Update版本。但是由于Windows10Redstone 和Fall Creators Update版本的其他bug,使用Process Doppelgänging会引起蓝屏死机,破坏用户电脑。