EnSilo网络安全公司的研究团队发现了一个可以绕过Windows查杀机制的方法,可以Bypass所有Windows的杀毒软件和安全机制,他们把这个方法叫做AtomBombing内存注入。
前言
在Windows有一个功能叫做Atom Tables,而这个功能主要可以用于进程和进程之间的通信,线程和线程之间的通信。而enSilo网络安全公司的研究团队利用这个功能的设计缺陷,成功的将一个恶意代码注入到一个合法的进程当中,并且不会被杀毒软件查杀。这个缺陷影响了所有的Windows系统。非常不幸的是,这个缺陷没办法修复,因为它不属于某个代码的漏洞,而是Atom Tables在设计之初就存在这个功能了,它属于Windows底层系统的一个机制。如果要修复这个缺陷,只能重新开发一个Atom Tables的替代品,或者重新编写Atom Tables的运行机制,而这样将会对Windows系统的内核进行大规模的调整。所以正如标题所示,这个不是漏洞预警,是威胁预警!
原理预览
实际上,这个技术的原理并没有多复杂,但是影响却非常的显著。比如我要运行一个shellcode.exe,而这个可执行程序中内置的恶意代码。Windows杀毒的查杀机制会检查这个软件的签名证书,运行行为等等,从而达到一个查杀的效果。但是,如果我们能够说服用户双击这个shellcode.exe,在利用AtomBombing技术后,它可以和其它的合法进程建立一个不会被查杀的通讯。比如我们可以让Chrome.exe和shellcode.exe进行通信,而windows的进程列表里面只会出现Chrome.exe的进程,同时杀毒软件会认为chrome是一个合法程序,不会对其进行查杀。
实际上,针对Windows内存注入的方式大概也就那么几个,分别为使用函数QueueUserAPC DLL注入,调用SetWindowsHookEx注入,code cave注入和前不久的PowerLoaderEx内存注入。然而AtomBombing注入和其他的注入有很多不同,它是利用系统底层的缺陷进行注入,绕开了全部的杀毒软件,可以影响到全部的Windows系统,本质上来说并没有什么补丁可以针对这个缺陷。
危害
首先第一个危害就是绕过windows全部的查杀机制了,就如我之前所述,这个东西属于windows底层的一个功能,现有杀毒软件无法对其进行防护。一旦恶意代码注入到白名单进程中,任何的查杀机制都无法自动进行防御。
因为它可以随意注入到任意进程,也就是说它可以注入到浏览器进程中,任意修改网页数据,达到一个中间人攻击的效果。与此同时,这个注入技术还可以获得未进行HTTPS加密的元数据。恶意代码可以注入到浏览器内存中,在数据传输到传输层之前将其进行截获,从而获得一份原始的未加密数据。