导语:近日,Proofpoint研究人员在暗网观察到了一种新型攻击活动——远程访问木马。然而,研究人员却发现这个远程访问木马不简单,它含有一长串的复杂功能列表,研究人员将其称为“寄生虫HTTP,这引发了研究人员对未来可能发生攻击的担忧。
近日,Proofpoint研究人员在暗网观察到了一种新型攻击活动——远程访问木马(Remote Access Trojan,RAT),通过跟踪研究,到目前为止,这只是一个小型的恶意电子邮件攻击活动。然而,研究人员却发现这个远程访问木马不简单,它含有一长串令人印象深刻的复杂功能列表,研究人员将其称为“寄生虫HTTP(Parasite HTTP)”,这引发了研究人员对未来可能发生攻击的担忧。
该恶意软件在暗网上的广告中是这样被介绍的:
寄生虫HTTP是一种经过专业编码的模块化远程管理工具,它是在windows系统中用C语言编写的,除此之外它和windows系统没有任何关系,能用于任何系统。另外,凭借大约49K的存根大小和插件支持,寄生虫HTTP提供了远程控制大量计算机的完美解决方案。
当然,与大多数RAT一样,寄生虫 HTTP提供大量的信息窃取功能,其中的VNC (Virtual Network Console)可以悄悄的观察或控制PC,还有用于绕过权限用户管理,除此之外,还有绕过防火墙、对感染的系统实施持久性攻击、向白名单系统进程注入等功能。而且,与合法软件一样,寄生虫HTTP还包括管理员权限,如备份,分析视图和活动统计信息、带有验证码的安全登录页面、高级任务管理系统和密码恢复。另外,寄生虫HTTP还可以为C2通信提供加密功能。
不过,寄生虫HTTP真正独特的地方在于它所包含的一系列沙盒检测、反调试、反仿真和其他保护措施,以逃避检测和分析。
在周三的一篇文章中,Proofpoint的研究人员表示:
恶意软件的开发者不断创新,以逃避检测机制并提高攻击成功率,寄生虫HTTP提供了许多最先进的技术样本,比如避免在沙盒和自动反恶意软件系统中被检测到。
这个恶意软件本质上也是模块化的,它允许攻击者在必要时时添加其他新功能或在攻击成功后下载其他功能模块。
Proofpoint的趋势安全主管Sherrod DeGrippo告诉Threatpost:
将如此多的技术聚合到一个恶意软件中,并不常见,这标志着一种新型的攻击技术可能即将出现。我们经常看到这些技术中的一种或几种出现在各种恶意软件中,但是把所有这些技术都放在一个恶意软件中,则是不寻常的。
根据Proofpoint的说法,此恶意软件发起的垃圾邮件活动表面上看去却相当简单,本次发现的样本,进针对IT、医疗保健和零售行业,攻击者会将发送的Word文档邮件,伪造成所在组织的人力资源简历调查格式。当受害者打开附件后,恶意文档使用注入恶意代码的宏从远程站点获取寄生虫HTTP。不过研究人员却表示,虽然此次的攻击手段很常见,但是寄生虫HTTP却应该引起安全人员的警惕。
根据Proofpoint的说法:
对于消费者、组织和安全维护者来说,寄生虫HTTP代表了恶意软件持续军备竞赛的最新态势,甚至延伸到寄生虫等商业化的恶意软件。虽然我们目前只在一个小型攻击活动中观察过寄生虫HTTP,但我们认为这些在寄生中使用的恶意功能很快就会其他恶意软件所采用的。
DeGrippo告诉Threatpost:
目前来说,逃避技术相当强大的这个RAT,利用复杂的反分析功能,很难被检测到,而且它目前已经可以被随意购买了,这意味着,无论是防御者还是组织都需要实现动态检测能力的提升,其中包括深度威胁情报挖掘。
最先进的逃避技术
本文中,研究人员详细介绍了寄生虫HTTP最有趣的几种逃避功能,包括字符串混淆,通过睡眠操作逃避沙盒检测,使用Github的研究员代码进行沙盒检测等。
在执行字符串混淆时,寄生虫HTTP就会包含四个例程,且有一个6字节的标头。研究人员说:
不管是哪种类型的字符串,是ASCII还是Unicode,其中都含有两个变体,其中一个变体负责将混淆了的字符串保留在适当的位置,并返回一个动态分配、不混淆的字符串版本;而另一个变体则使用VirtualProtect来对字符串进行反混淆处理,在执行反混淆后再将XOR键设置为0这样攻击者在以后访问字符串时就可以跳过混淆检测了。
另外,寄生虫HTTP还使用睡眠例程来延迟执行并检查沙盒或虚拟测试。睡眠间隔以10毫秒为一个周期,在这个时间里,睡眠例程还会同时通过检查时间的流逝和自身对断点指令的处理来检测沙盒环境。研究人员解释说:
寄生虫HTTP自己设置的虚拟沙盒会以900毫秒或2秒为单位进行检测,而正常的沙盒则是以1秒为单位进行检测,例如,像[Github]中提供的代码中含有沙盒检测,则它会与这个特定的虚拟沙盒检查相冲突。
更重要的是,寄生虫HTTP会根据Github的代码来进行自我调整,以适应沙盒检测的目的。研究人员分析到,这些代码是逐字复制的,API分辨率(API resolution)被自己的内部代码替换,打印件被删除,文件和环境变量名称随机生成。同时,当寄生虫HTTP确实检测到沙盒时,它不会突然做出任何可能让研究人员感到意外的举动,比如突然停止运行。
研究人员说:
恶意软件并不是简单的退出或显示错误,而是通过复杂操作,让研究人员分析它无法正常运行和崩溃的原因。寄生虫HTTP在尝试使用跳过其分配的缓冲区时,会以一种聪明的方式使用沙盒检测稍后崩溃。
同时,寄生虫HTTP通过使用DLL重映射技术隐藏进程注入等行为来解析某些关键API。
据Proofpoint称:
据我们所知,尽管之前有文献记载过该技术,但它并没有在其主流的恶意软件家族中被发现过。
在初始过程中,寄生虫HTTP通过从磁盘读取DLL并将每个导出函数的前5个字节与内存中当前映射版本中的每个字节进行比较,从而删除上述DLL上的Hook,这使寄生虫HTTP的活动更加隐蔽。研究人员指出:
虽然这种技术在理论上没有多大用处,没有使用任何指令解码器,并且将自身限制在5个硬编码字节内,但它在实践中是有效的。映射NTDLL的新副本可以有效的为它提供了一个副本,此时就不会存在放在初始NTDLL映射上的任何Hook,这使得它的线程注入和注册表修改对大多数用户不可见,并且连接实现也是不可见的。此外,由于这种映射是通过NtOpenSection和NtMapViewOfSection完成的,因此它不会涉及到其他技术变体为实现相同目标而使用的典型的文件系统api调用。
最后,它还使用了GitHub上的附加代码,对关键函数中的断点进行了混淆检查。研究人员表示:
这个功能只在一个地方使用,就是在检测它们是否在有沙盒检测环境的情况下运行,不过值得庆幸的是,它的混淆检查目前还不是很成熟。另外,值得注意的是,混淆检查技术对于任意代码来说是低级和不可靠的,因为无意的0xcc字节可以通过特定的指令编码、局部堆栈帧(local stack frame )偏移量、相对引用、间接地址或直接常量在对代码的逐字节扫描中找到。