新的VPNFilter恶意软件针对全球至少500K个网络设备

2018-06-08 20:58:01 3 2709

几个月来,Talos一直在与公私合作部门的威胁情报合作伙伴和执法机构合作,研究一种先进的,可能由国家资助或与国家有关的行为者广泛使用我们称之为“VPNFilter”的先进模块化恶意软件系统。我们观察到VPNFilter,一种潜在的破坏性恶意软件,以惊人的速度主动感染乌克兰主机,利用专用于该国的指挥和控制(C2)基础设施。

VPNFilter恶意软件是一个多阶段,模块化平台,具有多种功能,可支持情报收集和破坏性网络攻击操作。

第一阶段恶意软件通过重新启动而持续存在,这与大多数其他针对物联网设备的恶意软件不同,因为恶意软件通常无法在设备重新启动后存活。阶段1的主要目的是获得持久的立足点,并能够部署阶段2恶意软件。阶段1利用多个冗余命令和控制(C2)机制来发现当前阶段2部署服务器的IP地址,使得这种恶意软件非常强大并且能够处理不可预测的C2基础设施变化。

第二阶段的恶意软件不会在重新启动后持续存在,它拥有我们在一个重要的情报收集平台(例如文件收集,命令执行,数据泄露和设备管理)中所期望的功能。但是,阶段2的某些版本还具有自毁功能,可覆盖设备固件的关键部分并重新启动设备,使其无法使用。根据演员对这些设备的演示知识以及某些阶段2版本中的现有功能,我们高度自信地评估演员可以将此自毁指令部署到其控制的大多数设备上,而不管命令是否内置于第二阶段的恶意软件。

第三阶段模块作为第2阶段恶意软件的插件。这些插件为第2阶段提供了附加功能。在撰写本文时,我们了解到两个插件模块:用于收集通过设备的流量的数据包嗅探器,包括窃取网站证书和监视Modbus SCADA协议以及允许阶段2通过Tor进行通信的通信模块。我们高度肯定地评估了其他几个插件模块,但我们尚未发现它们。

技术细节

在本文发布时,我们没有确定威胁演员如何利用受影响的设备。但是,我们发现的所有受影响的产品/型号都存在众所周知的公共漏洞。由于高级威胁行为者往往只使用实现目标所需的最低资源,因此我们高度自信地评估VPNFilter不需要零day攻击技术。

阶段1(持久加载器)

VPNFilter的阶段1恶意软件会感染基于Busybox和Linux的运行固件的设备,并针对多种CPU架构进行编译。这些第一阶段二进制文件的主要目的是找到一台提供更全面的第二阶段的服务器,并下载并维护受感染设备的下一阶段的持久性。它能够修改非易失性配置内存(NVRAM)值并将其自身添加到Linux作业调度程序crontab中以实现持久性。这与以前的物联网恶意软件有所不同,像未来,这是短暂的,并通过简单的设备重新启动消失。

Talos分析了用于MIPS和x86处理器的样本。C2通信和其他恶意软件下载通过Tor或SSL加密连接进行。虽然二进制文件本身在被剥离之后不会被混淆,但某些字符串以加密形式存储,并且仅在运行时解密。在静态分析中,解密程序看起来与RC4非常相似,但看起来恶意软件作者得到了S盒的初始化错误。在置换步骤中,值被异或,但未交换。对RC4实施情况的分析表明,它与BlackEnergy中使用的执法机构相同, 执法机构认为该执行机构来自国家行为者。

RC4初始化对内部状态初始化的置换阶段中的值进行异或运算。正如您在最后一个基本块中所看到的,代码不交换S <i>和S [j]的值(与下面的RC4伪代码相比)。

一旦恶意软件完成初始化,它就开始从种子URL下载页面。在MIPS示例缓存和x86示例中除一个URL之外的所有URL都指向图像共享主机Photobucket.com。恶意软件从URL所引用的库中下载第一个映像,然后继续提取下载服务器的IP地址。IP地址是从EXIF信息中的六个GPS纬度和经度整数值中提取的。

如果阶段1无法连接到,通过Photobucket中的图像从IP地址下载图像或成功获取IP地址,则恶意软件会到达备份域toknowall [.] com下载图像并尝试相同的过程。

如果对备份域的尝试失败,则阶段1将打开一个侦听器,该侦听器等待特定的触发包打开连接,以便演员交互连接到设备。当侦听器打开时,它会从api.ipify [.] org中检查其公共IP并将其存储以供以后比较。然后,当任何数据包到达任何端口时,监听器执行一系列检查来识别触发数据包。如果数据包符合预定义的一组标准,它将从数据包中提取IP地址并尝试进行第2阶段下载。 监听行为: [code]

  1. 检查所有设置了SYN标志的TCP / IPv4数据包
  2. 检查目标IP是否与侦听器打开时找到的内容匹配(注意:如果侦听器未能从api.ipify [.] org获取IP,它将跳过此检查)
  3. 确保数据包有八个或更多字节
  4. 扫描字节\ x0c \ x15 \ x22 \ x2b的数据
  5. 紧接在该4字节标记之后的字节被解释为IP,因此\ x01 \ x02 \ x03 \ x04变为 - > 1.2.3 [。] 4
  6. 向第2阶段的平常呼叫新收到的IP
  7. 确认阶段2至少为1,001字节(注意:这比其他标注方法小得多,要求阶段2为100,000或更多) [/code]

阶段2(非持续)

阶段2恶意软件首先通过创建模块文件夹(/ var / run / vpnfilterm)和工作目录(/ var / run / vpnfilterw)来设置工作环境。之后,它将运行在一个循环中,首先到达C2服务器,然后执行从C2中检索的命令。命令名使用与阶段1中相同的损坏的RC4函数进行加密。幸运的是,较早版本的x86阶段2示例非常详细,并且调试打印了它执行的所有步骤。较新版本的x86阶段2不包含调试打印,MIPS样本也不包含。

x86示例可以执行以下操作:

  • kill:用零覆盖/ dev / mtdblock0的前5,000个字节,然后重启设备(有效地对其进行刷新)。
  • exec:执行一个shell命令或插件。
  • tor:设置Tor配置标志(0或1)。
  • copy:将文件从客户端复制到服务器。
  • seturl:设置当前配置面板的URL。
  • proxy:设置当前的代理URL。
  • port:设置当前的代理端口。
  • delay:设置主循环执行之间的延迟。
  • reboot:如果设备启动超过256秒,则重新启动设备,并在参数中指定生成名称。
  • download:将URL下载到文件。这可以应用于所有设备或只是一个特定的构建名称。

MIPS示例具有以下附加操作:

  • stop:终止恶意软件进程。
  • relay:x86版本的delay命令的拼写错误版本。

在安装Tor模块之前,阶段2会将其配置中存储的一个或多个IP作为SOCKS5代理服务器使用,并尝试与其配置中找到的控制面板进行通信。与阶段1一样,恶意软件与代理之间的通信将通过经过验证的SSL连接进行连接。当安装Tor模块时,它将通过模块提供的本地SOCKS5代理通过普通的HTTP连接到.onion域。我们使用了伪造的SOCKS5代理,将所有流量重定向到INetSim进行分析。

从恶意软件到服务器的示例请求: [code="javascript"] { “uq”:“px(01:02:03:04:05:06)”, “pv”:“pPRXi686QNAPX86”, “ad”:“10.0.0.1”, “BV”: “0.11.1a / 0.3.9qa” “on”:“1” } [/code]

恶意软件将此请求编码为JSON对象,然后以base64编码并将其发送到HTTP POST参数“me”中的路径/bin32/update.php。由于版本“Windows NT 5.3”不存在,请求中使用的用户代理是特有的(Mozilla / 6.1(兼容; MSIE 9.0; Windows NT 5.3; Trident / 5.0))。

  • uq:受感染设备的唯一ID(恶意软件网络接口的MAC地址)。
  • pv:恶意软件运行的平台版本
  • ad:恶意软件设备的公共IP地址
  • bv:阶段1装载机的版本(0.3.9qa)和阶段2二进制文件(0.11.1a)
  • nn:节点名称
  • tn:Tor标志
  • on:洋葱旗

服务器对消息的响应:

[code="php"] { “tr”:3060, “pxs”:[“217.12.202.40”,“94.242.222.68”,“91.121.109.209”], “tor”:“tor 1”, “mds” :[] } [/code]

  • tr:设置主循环的延迟。
  • pxs:连接到的面板列表。这些是C2服务器。
  • tor:设置Tor模块的名称和版本。
  • mds:要获取的模块列表。每个条目格式为<command_id> <module_id> <module_name> <module_args(base64编码)>

通过将POST表单参数me设置为附加体系结构的模块名称,例如tor模块的tor_i686,恶意软件将从/bin32/update.php下载模块,并在每次迭代中执行该模块。一个空白的命令列表(如上面的示例响应)将通过停用它们并清除与其关联的任何正在运行的进程来清除任何现有命令。

第3阶段(非持续)

我们已经分析了恶意软件的两个插件模块,一个数据包嗅探器和一个允许恶意软件通过Tor进行通信的通信插件。我们高度自信地评估,有可能还有几个我们还没有发现。在Talos收购的最初样本中,有一个MIPS阶段2的插件,它是一个数据包嗅探器。它通过原始套接字拦截所有网络流量,并查找HTTP基本身份验证中使用的字符串。此外,它专门跟踪Modbus TCP / IP数据包。生成的日志文件放置在第2阶段的工作目录/ var / run / vpnfilterw中。这使得攻击者可以了解,捕获并跟踪流经设备的流量。

Tor插件模块部分链接到阶段2,但有一个单独的Tor可执行文件,该文件被下载到/ var / run / tor并运行在与阶段2分离的进程中。Tor二进制文件看起来像标准的Tor客户端,静态链接和剥离二进制的形式。它在/ var / run / torrc中创建一个配置文件,并在/ var / run / tord中创建一个工作目录。

结论

VPNFilter是一种广泛,强大,功能强大且危险的威胁,针对具有挑战性的设备进行防御。其高度模块化的框架允许对行动者的运营基础设施进行快速改变,为失误归属,情报收集和寻找进行攻击的平台服务。

破坏性能力特别关系到我们。这表明演员愿意刻录用户的设备来掩盖他们的踪迹,而不仅仅是删除恶意软件的痕迹。如果它符合他们的目标,这个命令可能会被广泛执行,可能会导致成千上万的设备无法使用,导致全球数十万受害者无法访问互联网,或者在适合演员目的的重点地区禁用互联网。

虽然对物联网设备的威胁并不是什么新鲜事,但这些设备正被先进的民族国家行为体用于进行网络操作(这可能会导致设备破坏),这一事实极大地增加了处理此问题的紧迫性。我们呼吁整个安全界加入我们,积极应对这一威胁。

关于作者

Cherishao9篇文章134篇回复

z/HO0tXi0fnTucvXtcTIywq007K7z7K7ttewye6zwQrU9cO0xby2+8z9tb3Az7joyrEKuvbIu9Kyu87By8nx

评论3次

要评论?请先  登录  或  注册