1.概述
Zloader木马是一个下载器,在初期主要用于加载安装zeus恶意软件,zeus主要是注入到浏览器达到劫持通信的目的,从而窃取银行个人账户密码,因此又有人称为银行木马 。Zloader在不断的发展过程中,逐渐被各大黑产利用,近几年在勒索软件的投递上有着很高的利用率。从Zloader的通信方式上,可以看到以此为代表的流行恶意软件在当前流量侧加密技术的一些常用通信手法。
2.加密通信方式
|-------------|-----------------------------------------------------------------------------|
| 通信方式 | 描述 |
| DGA技术 | 使用随机种子(通常是系统日期和时间)和一定的算法生成攻击者能预测到的域名序列。 |
| DNS隧道技术 | 将域名系统 (DNS) 用作恶意流量的传输通道,从而绕过网络安全措施。通过将非 DNS 流量隐藏在 DNS 数据包中,攻击者通常可以绕过网络安全措施。 |
| HTTPS通信 | 对抗HTTP明文特征检测,通过TLS协议层加密,使得载荷部分完全变成密文,绕过传统的明文检测手段。 |
| Websocket通信 | 较快的传输速度,通过HTTP建立连接后使用MASK加密。 |
(1)DGA技术的应用
DGA技术(域名生成算法)恶意软件通过随机种子和算法生成域名,攻击者可以在未来的一定时间中预测到该时间点生成的域名,从而注册使用。由于域名不断变化,使得情报无法准确命中。在下述样本报文中,Zloader生成DGA的域名作为C&C地址进行通信。样本产生的DGA主域名由20个字符组成的字符串组成,域名后缀为com,如:"wmwifbajxxbcxmucxmlc.com"。

图 1 Zloader家族DGA域名
(2)DNS隧道的应用
Zloader的DNS隧道通信,通过在域名中加入载荷信息从而实现数据的隐藏。样本中的DNS隧道基本由四部分构成:前缀.头部.载荷.域名服务器地址。比如:cdn.0000000001000000010000000000.ns1.brownswer.com;前缀为cdn;头部信息"0000000001000000010000000000";域名服务器地址:ns1.brownswer.com;其中头部信息由4字节的会话ID和4字节序列号、2字节消息类型、4字节标识携带载荷子域名数量,即[00000000][01000000][0100][00000000]。本例中因样本服务器未响应,发出的消息类型0x1为ping消息,没有携带任何载荷。在实际样本的通信中,DNS隧道传输HTTPS通信,在子域名中会出现0x160303等TLS协议数据字符数据,此时的消息类型为0x4、0x5、0x6、0x7数据;携带载荷子域名数量也会有1到3个。

图 2 ZloaderDNS隧道通信
更新后的Zloader家族DNS隧道通信增加了会话密钥字段,用于加密头部和载荷部分数据;如下方样本报文中"cdn.zl4feiq.ddougvaz3zcfkg67ivlbxya.dt1.automotosport.net"的DNS请求,第二段"zl4feiq"就是本次会话的密钥,需要与样本内置的密钥异或生成主密钥,再对"ddougvaz3zcfkg67ivlbxya"这个头部数据进行解密才能得到最终的数据格式。这么做的目的是因为上一个版本的数据HTTPS格式载荷易于被检测识别。

图 3 Zloader家族DNS隧道
(3)HTTPS协议加密通信的应用。
使用HTTPS跟C&C地址进行通信,主要用于指令控制和载荷下发。每分钟有三个心跳上线流量。

图 4 加密通信HTTPS
(4)websocket通信技术的应用。
Websocket中使用MASK标志位可以实现掩码加密,达到在流量侧加密数据的目的,解密密钥通常在载荷长度后4个字节的Masking-key字段;使用异或加密。流量产品检测此类攻击,需要支持动态执行异或解密并检测数据,一定程度上会导致性能开销增大。

图 5 websocket加密通信
3.瞰云ENS检测
Zloader的HTTPS协议加密流量,可以通过AI模型结合TLS客户端、服务器限定域指纹综合研判进行检测:

图 6 基于机器学习的Zloader-HTTPS通信告警
4.总结
攻防对抗无处不在,恶意程序在流量侧的加密和混淆都是为了绕过现有的流量检测手段。不管是利用DGA技术生成恶意域名、还是使用DNS隧道绕过防护,HTTPS和Websocket协议加密数据传输,都在说明木马的流量对抗技术在进步。观成科技将持续关注此类变化,并在检测能力上通过行为检测、AI机器学习等手段应对加密流量所带来的威胁。