安全路透社
当前位置:安全路透社 > 网络转载 > 正文

漫谈Domain Flux僵尸网络

* 本文原创作者:ArkTeam/Shadow_KK 

Domain Generation Algorithm(DGA)是一项古老但一直活跃的技术,是中心结构僵尸网络赖以生存的关键武器,该技术给打击和关闭该类型僵尸网络造成了不小的麻烦,研究人员需要快速掌握域名生成算法和输入,对生成的域名及时进行sinkhole

背景

僵尸网络指攻击者(Botmaster)出于恶意目的,通过命令控制信道(C&C Channel)操控一群受害主机(Bots)所形成的攻击平台。通过该平台,攻击者可以发起多种常见攻击,包括DDoS、垃圾邮件、钓鱼攻击、点击欺诈、在线身份窃取、比特币挖掘/窃取、加密勒索等。

Botnet.jpg

同传统恶意代码形态相比,僵尸网络的攻击实现依赖攻击者和受害主机之间的信息交互,即攻击者需要告知僵尸主机命令,僵尸主机才可发起相应的攻击,命令的下发通过命令控制信道实现,这是僵尸网络构建的核心,也是攻防双方博弈的关键点。

在早期中心结构的僵尸网络中,僵尸主机通常采用轮询的方法访问硬编码的C&C 域名或 IP来访问命令控制服务器,获取攻击者命令,由于硬编码的域名或IP固定且数量有限,防御人员通过逆向掌握该部分内容后可对该域名进行有效的屏蔽,阻断其命令控制途径,使其失去控制源并逐渐消亡。该种缺陷称之为中心节点失效(single-point-of-failure)。

基本概念

为了解决上述问题,攻击者使用Domain Flux协议来对抗防御人员的关闭,僵尸主机访问的C&C域名不再是静态硬编码,而是根据一定算法动态生成的、变化的域名,攻击者和肉鸡通信的集合点(rendezvous points)动态变化,防御人员难以关闭,该域名生成算法称之为DGA(Domain Generation Algorithm),算法的输入称为Seeds,涵盖日期、社交网络搜索热词、随机数或字典,如图1所示,生成的一串特殊字符前缀(比如kvbtltjwoxf52b68nslulzgvevh44bvatey)添加TLD后得到最终域名资源,该域名称为AGD(Algorithmically-Generated Domain),攻击者只需成功注册并让肉鸡访问到一个AGD即可实现僵尸网络的控制,而防御人员为了彻底关闭该僵尸网络,需要屏蔽所有的AGD,成本极大,因此,Domain Flux被认为是一种非常健壮的命令控制协议。

2.png

图1 DGA实现示意图

发展历史

早期Domain Flux僵尸网络为2007年出现的Torpig和Karken,前者以Twitter热点话题为seed,后者则以当前日期为输入。最经典的案例为2008年出现的Conficker,该僵尸网络以日期为输入,每天生成不同的域名,其中A变种在3小时内生成250个域名尝试连接,而2009年出现的C变种更将该数字提高到了50000个,但实际访问时只会挑选其中500个进行尝试。

2011年发现的ZeuS_Gameover具备在线身份窃取和恶意软件安装功能,该僵尸网络采用Domain Flux协议,每天生成1000个纯字符域名,TLD包括com, biz, org, net, ru 和info;今年2月出现的勒索软件Locky以随机数和当前日期作为输入,但一天只生成并访问6个域名,DGA详情请参考FORCEPOINT分析报告[1],更多的Domain Flux僵尸网络案例见图2[2]。

3.png

图2 DGA僵尸网络案例一览

案例简析

今年2月出现的勒索软件Locky同样采用DomainFlux协议,其变种样本层出不穷,算法输入不断变化。以公开的v3版本算法为例[5],如图3所示,不同样本硬编码初始随机数(seed)、偏移量(shift)以及TLD(tlds)三部分信息。

图片 2.png

图3 不同样本硬编码的DGA配置信息

其DGA算法以当前年月日为输入,结合上述硬编码信息进行一系列变化,最终得到结果值k,如图4所示。

图片 4.png

图4 Locky v3DGA实现核心代码

如图5所示,K值决定了域名前缀的长度(7~17位)和内容,由纯小写字母组成,TLD也同样由K值决定,前缀和TLD组合得到了最终生成域名(如图6所示)。更多Locky DGA详情请参考FORCEPOINT分析报告[1]。

图片 5.png

图5 AGD生成

图片 6.png

图6 生成的AGD结果

特点分析

DGA的优势:

1.较为健壮的寻址方式,可对抗域名黑名单屏蔽、静态声望系统以及特征码检测系统;

2.是一种理想的备用信道协议,可作为back up手段恢复僵尸网络控制,如Zeus v3。

DGA的缺点:

1.需要逐一遍历AGD,寻址效率相对较低;

2.大量NXDomain流量导致通信易被检测发现;

3.如果AGD数量过多,出于时间和金钱成本开销,攻击者难以全部注册,防御人员可以提前抢注并通过sinkhole手段测量或劫持僵尸网络。

防御简述

对于Domain Flux僵尸网络的检测需要从协议实现引发的“异常”来进行判断,可用于检测的特征包含以下几个方面:

1.寻址过程中会产生大量NXDomain报文,从主机角度来看,数量上比正常用户要高,比如Murofet每天产生超过10个NXDomain,而据Damballa Labs观测结果显示,92%正常用户不会超过10个;

2. TTL普遍较低,解析的IP地址可能存在复用的现象(历史绑定的域名为恶意域名);

3.如果某域名的DNS解析数在一个时间窗内的呈现爆炸性增长随后迅速下降,该域名很有可能为AGD(如图3所示);

4.为了防止和已注册域名发生碰撞,AGD的长度通常较长;

5.AGD不具备可读性,同正常域名相比违反元辅音组合规律,字母分布呈现完全随机化的特点,其熵值通常较高,利用n-gram模型(bigram和trigram)[3]描述可以发现差异性。

4.gif

图7 AGD DNS查询流量

总结

Domain Flux虽然是种古老的协议,但时至今日该方法仍十分有效,使攻击者在攻防博弈过程中占据上风,根据flux思量衍生的URL Flux亦为攻击者提供了新的武器,从防御的角度而言,Domain Flux的对抗固然离不开逆向工程,但Passive DNS与机器学习算法相结合才是更高效的检测方法。

参考文献

[1]Nicholas Griffin. LOCKY’S NEWDGA – SEEDING THE NEW DOMAINS .https://blogs.forcepoint.com/security-labs/lockys-new-dga-seeding-new-domains

[2]Daniel P. DGArchive A deep diveinto domain generating malware.https://www.botconf.eu/wp-content/uploads/2015/12/OK-P06-Plohmann-DGArchive.pdf

[3]Lital Asher-Dotan. The FBI vs.GameOver Zeus: Why The DGA-Based Botnet Wins.http://www.cybereason.com/the-fbi-vs-gameover-zeus-why-the-dga-based-botnet-wins/

[4]phunter.用机器学习识别随机生成的C&C域名.http://drops.wooyun.org/tips/6220

[5]Antonakakis M, Demar J, ElisanC, et al. Dgas and cyber-criminals: A case study[J]. 2012.

[6]Barabosch T, Wichmann A, LederF, et al. Automatic extraction of domain name generation algorithms fromcurrent malware[C]//Proc. NATO Symposium IST-111 on Information Assurance andCyber Defense, Koblenz, Germany. 2012.

* 本文原创作者:ArkTeam/Shadow_KK 

未经允许不得转载:安全路透社 » 漫谈Domain Flux僵尸网络

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册