数据中心未来大敌 APT渗透攻击预析

当趋势科技第一次分析这个恶意下载程序时,原本以为它没有什么惊人之处。它是一个由 Visual Basic 编译出来的执行文件,所做的事情不过就是透过 HTTP GET 来开启某个 HTML 网页。

APT 攻击-BKDR_POISON:未来将出现更多挑战

当我们透过浏览器连上该网页时,表面上看起来也是一个无害的网页,但是经过详细解码之后里面却大有文章。

如同微软所指出,此恶意下载程序有别于其他程序。它不会下载二进制文件来执行,但它会执行已下载文件当中看似无害的一些代码。要达成此目的,恶意程序会将文字内容转成可执行的程序代码,然后呼叫 DllFunctionCall 来执行。

而它所执行的程序代码其实就是 BKDR_POISON 恶意程序家族的变种,此恶意程序家族涉及了去年多起锁定特定目标攻击。

BKDR_POISON 背景简介

BKDR_POISON 恶意程序家族亦称为 PoisonIvy (毒藤),已经在网络上肆疟多年。原因是它的产生器很容易使用,而且可从其网站免费下载。其自动启用机制以及 mutex 和恶意文件名称皆可透过产生器轻易设定,因此,每一个产生出来的样本,其行为可能不尽相同。

BKDR_POISON 的后门程序功能包括:键盘侧录、声音/影像侧录、画面撷取、处理程序和服务管理,文件存取或上传、以及其他等等。简而言之,它基本上可让其使用者完全存取受感染的系统。

此外,BKDR_POISON 也很容易整合至其他恶意程序,因为其后门程序产生器也提供了选项让使用者产生一段 shellcode 攻击程序代码,而非完整的执行文件。

在前述的 Nitro Attack 恶意下载程序案例中,一旦它执行了 BKDR_POISON 的 shellcode,就能因而继承其后门程序特性。

由于 shellcode 不像独立的二进制执行文件可单独侦测并分析,它必须和继承其特性的执行文件一并分析才看得出端倪。因此,信息安全研究人员若没有拿到配对的 shellcode 和执行文件 (例如,执行文件经过加密或隐藏),那么很可能就不会侦测到 shellcode。

根据趋势科技的威胁研究经理 Jamz Yaneza 表示,两者还有另一项差异,那就是执行方式:“PoisonIvy 产生器可输出一个 Windows 执行文件或一段 Windows shellcode。二者之间的唯一差别在于 shellcode 版本必须经由另一个处理程序直接注入内存当中 (例如藉由系统或软件漏洞) 才能执行,无法经由正常的执行文件启动方式。”

他补充道:“由于使用 shellcode 时不需下载完整的文件,因此可直接在攻击过程中使用,甚至可运用一些二进制执行文件的混淆编码技巧,例如加密,而且一切都在内存当中完成,因此可躲过传统文件式侦测技术。”

BKDR_POISON 未来将更加危险

以下是我们所知有关Nitro Attack恶意下载程序的资料:

它可从一个网址下载一个内含 shellcode 的纯文字文件。接着,它会将这些纯文字内容转成可执行的程序代码。

Shellcode“不会”储存。

接着下载程序会执行此恶意程序代码。

以下是趋势科技对 BKDR_POISON 的了解:

它很容易整合至其他恶意程序。

它具备后门程序功能,而且也曾用于过去出现的攻击当中。

由于上述恶意下载程序的行为变化多端,而且目前的功能还在阳春阶段,因此,网络犯罪者应该会继续加以强化,未来将更难对付。此外,若将它和 BKDR_POISON 结合,由于后者曾参与过许多锁定特定目标的攻击,因此,对信息安全研究人员来说将是一大挑战。以下是这类威胁组合可能发展的一些状况:

状况 1:如果 HTML 经过加密或者 shellcode 隐藏在图片中,例如透过信息隐藏术 (Seganography),就威胁分析师的角度来看,研究人员可能会因为 URL 指向了一个图片而以为它没有作用。但使用者将因为这个 URL 没有被封锁而陷于危险当中。事实上,TDL4 便运用了信息隐藏术。

直接将 shellcode 本身加密,或许更让研究人员头痛。因为,万一解密的程序代码是内建在恶意下载程序当中,那么,在取得恶意下载程序的样本之前,研究人员将无法分析 shellcode。

ZBOT 就运用到这项技巧。ZBOT 会将组态设定文件加密,而且研究人员唯有配合对应的二进制文件才有办法正确进行分析。

状况 2:服务器端会检查连上它的使用者 IP 位址或地点,并且视不同地点传回不同的恶意文件。如果受感染的使用者位于中国,但分析人员在美国,那么二者所拿到的 shellcode 就可能有所不同。一旦分析端与感染端的结果有异,那就很难清除使用者的感染。

状况 3:客户已经遭到感染,但相关的 URL 却已无法连上。威胁分析师可能会不晓得使用者遇到什么状况,因为已经无法取得当初的 shellcode。这类恶意下载程序很可能会让我们完全摸不着头绪。

当然,这类情况也并非完全无解,只是难度更高。而且,下载的二进制程序代码“并未”储存成实体文件,也增加了问题的挑战性。不过,藉由信誉评等和云端技术,这样的情况还是能够改善。