DGA域名生成算法
域名生成算法(DGA)僵尸网络正在威胁着互联网网民的安全。僵尸网络中受到恶意软件感染的僵尸主机由僵尸控制者通过C&C主机进行控制。僵尸主机常常利用DNS授权服务器来解析域名,目的是为了跟C&C服务器创建通信通道,然后获取控制命令,从而进行网络恶意活动。在早期,僵尸主机通产采用轮询的方法访问硬编码的C&C域名或IP来访问服务器获取域名,但是这种方式在安全人员进行逆向之后会得到
域名生成算法(DGA)
僵尸网络正在威胁着互联网网民的安全。僵尸网络中受到恶意软件感染的僵尸主机由僵尸控制者通过C&C主机进行控制。僵尸主机常常利用DNS授权服务器来解析域名,目的是为了跟C&C服务器创建通信通道,然后获取控制命令,从而进行网络恶意活动。
在早期,僵尸主机通产采用轮询的方法访问硬编码的C&C域名或IP来访问服务器获取域名,但是这种方式在安全人员进行逆向之后会得到有效的屏蔽。目前,黑客攻击者为了防止恶意域名被发现,会使用Domain Flux或者IP Flux来快速生成大量的恶意域名。Domain Flux是通过不断变换域名,指向同一个IP,IP Flux是只有一个域名,不断变换IP,一个域名可以使用多个IP。域名生成算法(Domain Generation Algorithm),是一种利用随机字符来生成C&C域名,从而逃避域名黑名单检测的技术手段。
DGA运行方式
攻击者端(bot-master):使用种子运行DGA生成大量域名,随机选择少量的域名进行注册(可能生成了5000个只注册1-2个),攻击者将该域名注册并指向其C&C服务器。
受害者端(bot):使用同样的种子运行DGA,生成大量域名,逐个访问这些域名,检测是否存在,如果该域名未注册,程序继续检测其他域名,如果该域名已注册【如果某生成域名发生了被抢注的情况该怎么办?不处理,因为那些域名并不能发攻击指令,看设计方案是否要继续进行轮询】,那么恶意软件将选择使用该域名联系C&C服务器。
DGA使用的种子有很多种类,包含日期、社交网络搜索热词、随机数或字典,生成一串字符前缀,添加TLD(顶级域名如com、org等)后得到最终生成域名AGD(Algorithmically Generated Domain) 。
【怎样确定同样的种子?在程序中内嵌。但是安全人员逆向了之后仍旧不能确定种子是什么,因为并不能知道攻击者究竟以什么字段作为种子】
DGA的危害
DGA每天可以生成成千上万的恶意域名,但仅选择一小部分作为后续的攻击域名,相对于传统硬编码的恶意域名,更难检测。
DGA的优点
1、使用DGA的僵尸网络有较为健壮的寻址方式,可对抗域名黑名单屏蔽、静态声望系统以及特征码检测系统。
2、DGA是一种理想的备用信道,可作为back up手段恢复僵尸网络控制,如Zeus v3。
DGA的缺点
1、需要逐一便利查询AGD,寻址效率低。
2、大量NXDomain流量导致通信易被检测发现。
3、如果AGD数量过多,出于时间和金钱成本开销,攻击者难以全部注册,防御人员可以抢注并通过sinkhole手段测量或劫持僵尸网络。
DGA的分类
DGA算法由两部分构成,种子(算法输入)和算法,可以根据种子和算法对DGA域名进行分类。
1.按照种子进行分类
种子是攻击者和客户端恶意软件共享的一个DGA算法的输入参数之一,不同的种子得出的DGA域名是不一样的。一般来说,种子可按如下方式进行分类:
- 基于时间的种子(Time dependence)。DGA算法将会使用时间信息作为输入,如:感染主机的系统时间,http响应的时间等。
- 是否具有确定性(Determinism)。主流的DGA算法的输入是确定的,因此AGD可以被提前计算,但是也有一些DGA算法的输入是不确定的,如:Bedep[4]以欧洲中央银行每天发布的外汇参考汇率作为种子,Torpig[5]用twitter的关键词作为种子,只有在确定时间窗口内注册域名才能生效。
根据种子的分类方法,DGA域名可以分为以下4类:
TID(time-independent and deterministic),与时间不相关,可确定;
TDD(time-dependent and deterministic),与时间相关,可确定;
TDN(time-dependent and non-deterministic),与时间相关,不可确定;
TIN(time-independent and non-deterministic),与时间不相关,不可确定;
2.按照生成算法进行分类
现有DGA生成算法一般可以分为如下4类:
- 基于算术。该类型算法会生成一组可用ASCII编码表示的值,从而构成DGA域名,流行度最高。
- 基于哈希。用哈希值的16进制表示产生DGA域名,被使用的哈希算法常有:MD5,SHA256。
- 基于词典。该方式会从专有词典中挑选单词进行组合,减少域名字符上的随机性,迷惑性更强,字典内嵌在恶意程序中或者从公有服务中提取。
- 基于排列组合。对一个初始域名进行字符上的排列组合。
根据种子和生成算法的不同,DGA域名可以选择不同种子类型和算法类型的组合方式,因此最终DGA域名的生成形式多样性高。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)