SBIDIOT IoT恶意软件分析
2021-05-31 14:48:25 Author: blog.nsfocus.net(查看原文) 阅读量:163 收藏

阅读: 8

一、前言

近期,一款专门针对IoT设备的恶意软件开始暗中活动,它被命名为SBIDIOT,造成的主要威胁是分布式拒绝服务(DDos)攻击。目前它在 VirusTotal上的检测数量相对较少,并且网络安全社区也暂时没有和它相关的充分记录。尽管某些物联网僵尸网络专门从事加密货币挖掘或欺诈活动,但与SBIDIOT恶意软件相关联的僵尸网络几乎完全致力于DDoS攻击。

本文将揭示SBIDIOT如何与目标进行通信,以及它支持什么类型的命令。分享这些信息将有助于检测威胁,从而在威胁行为发生前及时阻止。

二、SBIDIOT恶意软件分析

SBIDIOT恶意软件的传播依赖于IoT设备使用的过时固件中的漏洞。似乎很大一部分受感染的设备是运行较旧固件版本的ZTE路由器,该固件版本易受远程代码执行(RCE)漏洞的影响。在那些受感染设备上可以观察到,shell脚本一旦通过各种方式传递到受害机器上便会下载并执行二进制有效负载:

获得的样本 e2b3ca0a97107fa351e39111c80b3fef……41eabe845af4b9 使用了标准UPX工具打包,不过UPX头有做修改。虽然恶意样本仍然是可执行的,但不再可能使用相同的工具直接解包它:

正如下图中看到的,UPX! 签名被一个自定义的签名 YTS\x99 替代了:

所以修复它后才能够使用标准的UPX工具解包:

分析中发现威胁特征非常常见,其中DDoS的部分代码与Gafgyt等其他恶意软件家族是共享的。

考虑到样本是静态链接并且被剥离了符号表的,针对物联网的恶意软件几乎都是这样,下一步是为uClibc加载FLIRT签名,使分析更容易。uClibc是一个小型的C标准库,通常用于基于Linux内核的嵌入式设备,物联网恶意软件开发人员也经常使用它以方便交叉编译。FLIRT签名本质上是一种逆向工程工具(如IDA)用来匹配已知库的方法,它可以极大地加快分析过程。

使用FLIRT可以识别出大量的函数。

样本在执行之后,尝试连接到其C2,在本例中,C2是硬编码到二进制文件中的IP地址和端口。尽管C2服务器在分析期间无法提供服务,但可以强制样本与自主搭建的C2服务器通信。再加上一些静态分析,也足以实现模拟交互。

样本中负责处理命令的函数将从C2服务器接收到的每个命令与以下字符串进行比较,也就是总共能够执行16个从C2服务器接收的命令。

三、SBIDIOT支持的命令

  • TCP

TCP命令要求bot在指定的时间间隔内向指定的主机/端口组合发送TCP 报文。此外,它还允许操作者设置一些可选的TCP标志。

上图展示了TCP命令处理程序中支持的自定义TCP标志。

  • HTTPSTOMP

它接受的参数包括HTTP方法、主机/端口组合、攻击持续时间和指定重复此操作次数的计数。如果攻击没有被超过指定的持续时间和请求数,该函数将使用提供的设置和随机选择的User-Agent字符串继续执行HTTP请求。

下图是硬编码的User-Agent字符串列表。

 HTTPSTOMP命令处理程序:

此外,程序中还会调用另一个函数来发起对主机名/端口/cdn-cgi/l/chk_captcha URI的HTTP请求,同样,也可以配置攻击持续时间和请求计数。这样做是为了规避CloudFlare保护机制。

  • VSE 

用于DDoS的另一个命令,根据提供的参数,它使用UDP或原始套接字。同样,可以提供目标和攻击持续时间的参数,但是攻击者还可以指定发送到目标的数据包之间的时间间隔。Gafgyt的变种和其他物联网恶意软件偶尔会使用一个VSE命令,用来瞄准运行Valve Source引擎的服务器。

下图是实现时间间隔的VSE命令处理程序的代码片段:

  • VOX

VOX命令以主机、端口和攻击持续时间作为参数,然后从三种硬编码有效负载中随机选择一个发送UDP数据包。

下图是包含硬编码有效负载的恶意UDP流量。

  • UDP

样本会将UDP有效负载发送到目标主机的指定端口,其他参数包括攻击持续时间和生成的有效负载的最大大小。由于使用了strlen函数,负载的实际大小可能会比通过strlen得到的更小,因为该函数是从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0′)。

命令处理程序验证UDP参数的部分代码:

  • HEX / STD / R6 / NFO / FN / OVHKILL / NFOKILL / UDPH

以上所有命令调用相同的处理函数,该函数接收主机名、端口和攻击持续时间,然后开始生成具有固定负载的UDP流量。

  • STOP/stop/Stop

这个命令向当前被跟踪的所有进程id发送一个SIGKILL信号,停止指定进程的任何子进程。

四、相关C&C

2021年出现的33个C&C IP地址在全球的分布如下,可以看出主要集中在美国和一些欧洲城市。

其他常用的文件名:

五、小结

连接到互联网的IoT设备数量正在急速增长,新的恶意软件家族以及现有恶意软件的变种会定期出现。无论这些恶意软件的复杂性如何,它们都将构成威胁。   

因此对于用户而言,强烈建议:

  1. 使用IoT设备时立即更改默认密码。
  2. 定期检查固件版本并及时更新。
  3. 如无必要需求,不要将IoT设备端口向互联网开放。
  4. 关键环境中部署检测、防护设备。

参考链接

https://gist.github.com/techhelplist/93b84256d2608f344217f3582c03de94

gttps://securityboulevard.com/2021/04/threat-intelligence-analysis-of-the-sbidiot-iot-malware/

版权声明

本站“技术博客”所有内容的版权持有者为绿盟科技集团股份有限公司(“绿盟科技”)。作为分享技术资讯的平台,绿盟科技期待与广大用户互动交流,并欢迎在标明出处(绿盟科技-技术博客)及网址的情形下,全文转发。
上述情形之外的任何使用形式,均需提前向绿盟科技(010-68438880-5462)申请版权授权。如擅自使用,绿盟科技保留追责权利。同时,如因擅自使用博客内容引发法律纠纷,由使用者自行承担全部法律责任,与绿盟科技无关。


文章来源: http://blog.nsfocus.net/sbidiot-iot/
如有侵权请联系:admin#unsafe.sh