僵尸网络是几十年发展起来的集木马、蠕虫和后门程序于一身的新型攻击方式。僵尸网络是由一批僵尸主机形成的网络,它们被僵尸程序攻击后由僵尸主控机( botmaster) 远程操控,进行恶意软件分发、DDOS 攻击、钓鱼攻击、窃取用户身份、发送垃圾邮件等非法行为。攻击者利用僵尸网络作为发起平台进行非法牟利,严重侵害互联网用户的隐私和财产安全。华为《2015 年僵尸网络和DDOS 攻击专题报告》指出,由僵尸网络发起的DDOS 攻击影响范围大、持续时间长、攻击行业广、攻击地域宽、攻击种类丰富,都使得僵尸网络日渐成为威胁互联网安全的重大威胁。
僵尸网络的核心是其通信方式,即僵尸主控机如何与成百上千的僵尸主机进行通信,来实现自己的非法目的。僵尸主控机使用的服务器叫做命令控制信道( command and control channel,C&C channel)
在早期的僵尸网络都是基于IRC协议,但是IRC僵尸网络存在很大的局限性,一旦IRC服务被防火墙限制整个IRC僵尸网络就将失效,由于协议失效比较简单粗暴,目前很多厂商都可以对其进行检查。目前主流的僵尸网络命令控制信道主要是通过HTTP的通讯方式。
与传统的通讯方式相比,http是基于互联网最常用的通讯协议,使得僵尸网络可以隐藏在海量的http协议的流量中,非常具有隐蔽性。但是随着网络安全走向大众,安全被越来越多人认识、了解和重视,安全的防御也得到了快速的发展。
在这种攻防双方对抗不断升级的今天,对于攻击者来说,C&C控制端的隐蔽和保护对于攻击者的成果是至关重要的,如果C&C一旦暴露,不仅会失去对整个僵尸网络的控制更使得长期的努力和投入的经历浪费,因此对CC的保护已经成为高级黑客的重点保护对象.
着这种攻防持续升级下,攻击者不断变化cc的通讯规则和通讯方法,目前的在做分析时候遇到比较多的有如下几种方式:
1、硬编码地址
硬编码的cc地址有固定的IP地址或者域名,有的样本有几个备用的CC通讯,或者为了隐蔽性在cc通讯中放入正常的域名或IP(例如:www.baidu.com,www.google.com)。这种特征由于在企业互联网网络流量非常大的层面是非常难检测的,因为在网络中该类型的通讯不会有大流量DDOS攻击,不会大面积蠕虫传播或者勒索软件传播等,再者企业的出口流量本身比较大,而且通讯和正常行为基本一致,在网络层面很难进行检测。
如果拿到样本文件,对样本文件进行逆向分析后,得到硬编码通讯地址或域名,应用于企业防火墙进行过滤,能够完全禁止其通讯。
攻防对抗是不断升级,当攻击者发现此种方式失效后就会对cc通讯进行升级,通过技术手段提升效率。
2、用正常网站做跳板,隐藏自身
该种手段,攻击中不再是直接与c&c控制器进行通讯,攻击者使用合法的站点作为跳板服务器,例如:百度空间、QQ空间、各种云盘等等。
例如著名的安卓木马,就是利用百度空间作为跳板服务器。
攻击者会申请一个百度账号,将受害者要连接的c&c地址加密称中文字符,当主机上的恶意程序运行后,会利用百度的API获取用户个人简介信息,通过百度得到加密后的中文字符后,在终端主机解密个人简介信息,得到c&c服务器地址,获取c&c地址后,木马连接c&c控制端并加密传输重要数据。
有些木马传输会使用qq空间中选取一段文字或者短文中的某一个句子作为C&C编码目标 2.将句子中间的几个单词作为IP地址的编码,并构造相应的 密码表,密码表存储于木马中,木马获取用户的问答信息,并提取句子中的单词,解密得到cc服务器IP地址。
该种通讯技术在流量端非常难于检测,因访问的连接为合法的网站,一般会认为是正常请求,或者投入大量的分析人员,对数据包进行分析提取,但是这样投入产出比不一致,这种检测还是通过样本,对样本文件进行分析,找到其样本文件的通讯特征和c&c通讯的逻辑,再通过分析的结果构建安全检测模型,对其进行检测。
3、通讯混淆技术
为了应对IP或者域名的发现及阻断而逐渐形成了C&C通讯混淆技术
该混淆技术最著名的就属DGA了,通过对文件数据进行切分,通过大量发送DNS请求,把数据通过加密形式发出去,
非常典型的案例是:去年(2017年)传播非常广的Xshell后门事件,其厂商所开发的软件Xshell中的组件被源码植入的后门。 该后门通过DNS隧道报告主机信息,并多阶段的下载执行shellcode。其C&C通过GDA算法生 成,每个月生成一次。
以上是本人目前所知的僵尸网络C&C通讯技术,但肯定有很多未知的僵尸网络通讯技术和手法。随着技术的不断发展和进步,根据僵尸网络攻防博弈对抗性思维,攻击和防御技术将相互影响,与时俱进。未来还有更多的通讯模式进行发现。。。。。