当前位置:安全行业动态 → 正文

漫谈Domain Flux僵尸网络

责任编辑:editor007 作者:ArkTeam |来源:企业网D1Net  2016-09-22 22:09:03 本文摘自:黑客与极客

* 本文原创作者:ArkTeam/Shadow_KK,本文属FreeBuf原创奖励计划,未经许可禁止转载

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

背景

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

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

在早期中心结构的僵尸网络中,僵尸主机通常采用轮询的方法访问硬编码的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被认为是一种非常健壮的命令控制协议。

图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]。

图2 DGA僵尸网络案例一览

案例简析

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

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

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

图4 Locky v3DGA实现核心代码

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

图5 AGD生成

图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]描述可以发现差异性。

图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,本文属FreeBuf原创奖励计划,未经许可禁止转载

关键字:僵尸Flux域名

本文摘自:黑客与极客

x 漫谈Domain Flux僵尸网络 扫一扫
分享本文到朋友圈
当前位置:安全行业动态 → 正文

漫谈Domain Flux僵尸网络

责任编辑:editor007 作者:ArkTeam |来源:企业网D1Net  2016-09-22 22:09:03 本文摘自:黑客与极客

* 本文原创作者:ArkTeam/Shadow_KK,本文属FreeBuf原创奖励计划,未经许可禁止转载

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

背景

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

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

在早期中心结构的僵尸网络中,僵尸主机通常采用轮询的方法访问硬编码的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被认为是一种非常健壮的命令控制协议。

图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]。

图2 DGA僵尸网络案例一览

案例简析

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

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

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

图4 Locky v3DGA实现核心代码

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

图5 AGD生成

图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]描述可以发现差异性。

图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,本文属FreeBuf原创奖励计划,未经许可禁止转载

关键字:僵尸Flux域名

本文摘自:黑客与极客

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^