去年,信息安全厂商接获一连关于“Nitro Attack” 此 APT-进阶持续性渗透攻击APT通报。它所采用的后门程序为 PoisonIvy,亦称 BKDR_POISON。网络上可以找到此后门程序的产生器。当时,信息安全厂商已采取反制措施来协助客户对抗这项威胁并防范未来类似的感染。但是,从最近发现的一些匿踪机制来看,对抗该恶意程序的战斗尚未结束。
当我们第一次分析这个恶意下载程序时,原本以为它没有什么惊人之处。它是一个由 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。
根据一份安全工作者的分析表示,两者还有另一项差异,那就是执行方式:“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。这类恶意下载程序很可能会让我们完全摸不着头绪。
当然,这类情况也并非完全无解,只是难度更高。而且,下载的二进制程序代码“并未”储存成实体文件,也增加了问题的挑战性。不过,藉由信誉评等和云端技术,这样的情况还是能够改善。
当我们第一次分析这个恶意下载程序时,原本以为它没有什么惊人之处。它是一个由 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。
根据一份安全工作者的分析表示,两者还有另一项差异,那就是执行方式:“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。这类恶意下载程序很可能会让我们完全摸不着头绪。
当然,这类情况也并非完全无解,只是难度更高。而且,下载的二进制程序代码“并未”储存成实体文件,也增加了问题的挑战性。不过,藉由信誉评等和云端技术,这样的情况还是能够改善。