白象(又名Hangover、Patchwork、摩诃草等)组织是一个主要针对我国、巴基斯坦等亚洲地区国家进行网络间谍活动的APT组织,攻击目标以政府机构、科研教育领域为主。自2016年起,该组织一直持续使用攻击武器BADNEWS开展攻击活动,其主要特点包括:
ㆍ各个样本的整体执行逻辑、通信交互内容无明显变化;
ㆍ各个样本支持的控制指令无明显变化,包含执行任意命令、截图、键盘记录、服务端更新、下载文件、执行文件以及列目录操作;
ㆍ样本的通信加密算法一直在进行更新,从RC4+Base64到AES+Base64,再到XOR+RC4+Base64;
ㆍ样本使用的通信协议,从最开始的明文协议HTTP,到加密协议HTTPS;
从上述特点中可以看出,近两年BADNEWS针对加密通信方式进行了更新迭代,从协议层面、加密算法层面、密钥层面这三方面发力,加强了该攻击武器在流量侧的隐蔽性。
1
基本信息
观成安全研究团队在近期捕获了BADNEWS新样本,分析发现该样本使用了HTTPS加密协议进行C&C通信,内层HTTP载荷中又组合使用了XOR+RC4+Base64加密算法和编码,进一步提高传输信息的隐蔽性。结合近两年我们分析过的11个BADNEWS公开样本,对该木马的加密协议、算法和密钥进行了对比和总结,这11个样本的基本信息如下表:
2
HTTP隧道加密通信分析
早期,BADNEWS样本均使用HTTP协议进行通信(23年5月开始使用HTTPS),请求的URL为随机生成的不规则字符串,URL后缀为“php”。虽然使用的明文通信协议,但是样本使用HTTP的请求体来传输加密数据。样本运行后会先发送上线包,上线包中会将UUID和主机信息上传到C&C服务器。
图 1 上线包(HTTP)
将上线包的正文数据提取,经过解密后可以看到明文数据,其中包含了UUID和受害机的主机信息。
图 2 上线包UUID解密
图 3 上线包 主机信息解密
随后样本会持续发送心跳包,等待接收攻击者下发的控制指令,心跳间隔约5s。
图 4 心跳请求(HTTP)
3
HTTPS加密通信分析
白象组织从23年5月开始使用HTTPS作为BADNEWS的通信协议,将原有的HTTP加密数据隐藏在了HTTPS加密协议之后。观成安全分析人员对BADNEWS产生的大量HTTPS加密流量进行分析后,总结出了以下特征。
1. 上线流量特征
BADNEWS样本(HTTPS)在上线时存在发送两次上线包的行为,第一次上线包为受害主机的UUID,第二次上线包为主机信息。服务端对两次上线包有不同的响应,两次响应载荷长度相差1;
图 5 上线包(HTTPS)
2. 心跳流量特征
如果服务器没有下发控制指令,BADNEWS会重复交替发送两种心跳包。第一种心跳包内容为加密后的受害机UUID值,该心跳包用于获取控制指令。第二种心跳包内容较第一种心跳包少一层URL编码并改变了固定字符串。第一种心跳包之间间隔为2~6秒。
图 6 心跳请求(HTTPS)
3. 证书特征
近期披露的BADNEWS(HTTPS)服务器都使用了“Let's Encrypt”颁发的免费证书。
图 7 证书截图
4
加密算法与密钥迭代
通过对BADNEWS样本的通信加密算法进行统计观察,可以发现攻击者一直在尝试改进加密算法,并且存在密钥复用的情况。按照时间,可以将BADNEWS加密算法的使用,分为以下3个阶段:
2022年上半年(样本1-3),使用RC4+Base64,密钥相同;
2022年下半年(样本4-8),使用AES+Base64,密钥相同(除样本6外);
2023年至今(样本9-12),开始使用安全传输协议HTTPS,使用XOR+RC4+Bas64,密钥相同,且开始使用非硬编码密钥(除样本10)。
5
攻击检测
通过对白象组织BADNEWS木马长期追踪分析,从各个版本的通信方式可以看出该组织在持续对攻击武器的通信加密方式进行开发改进。在协议侧,攻击武器从使用明文协议HTTP过渡到了密文协议HTTPS;在密钥侧,攻击武器从完全使用硬编码密钥到增加使用临时会话密钥。这些改进使得白象流量的检测难度进一步提高。
图8、检出结果示例
观成安全团队对BADNEWS的加密流量进行深入研究后,提取了该攻击武器通信流量的行为特征,实现了对BADNEWS系列攻击武器的有效检出。