域名生成算法(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的优缺点

DGA的优点

1、使用DGA的僵尸网络有较为健壮的寻址方式,可对抗域名黑名单屏蔽、静态声望系统以及特征码检测系统。
2、DGA是一种理想的备用信道,可作为back up手段恢复僵尸网络控制,如Zeus v3。

DGA的缺点

1、需要逐一便利AGD,寻址效率低。
2、大量NXDomain流量导致通信易被检测发现。
3、如果AGD数量过多,出于时间和金钱成本开销,攻击者难以全部注册,防御人员可以抢注并通过sinkhole手段测量或劫持僵尸网络。

DGA分类

根据种子性质分类

1、根据种子是否依赖于时间分为两类:依赖于时间的和不依赖于时间的。
时间来源于被入侵主机的系统时间,或HTTP响应报文中的日期字段。
2、种子是否确定:确定的和不确定的。
大多数DGA的种子都是确定的,即可以预测该DGA未来使用的种子和以此产生的域名。
一些DGA的种子是不确定的,

上述两种方法将DGA划分为四个类别:
TID、TDD、TDN、TIN

根据生成算法分类

1、基于算术(Arithmetic-based)的DGA:
计算一系列的数值,这些值能根据ASCII码直接表示成域名,或者这些值作为偏移值,指向在DGA在DGA中硬编码的字符表中的一个字符。大部分DGA都属于这一类。
2、基于哈希(Hash-based)的DGA:
使用十六进制表示的哈希值生成AGD。这DGA常使用SHA256和MD5两种哈希值。
3、基于单词表(Wordlist-based)的DGA:
从一个或多个单词表中选择单词并连接成一个域名,这样的域名更具有迷惑性。
4、基于置换(Permutation-based)的DGA:
通过对一个域名进行置换操作生成多个新的域名。

对目前发现的43种DGA进行分类,得到下表:
【图】

种子是什么是一个比较难解决的问题,DGA算法相对更容易找到。
生成大量的DGA域名,去做碰撞,emmm碰撞不上,是真的碰不上。
————————————————
版权声明:本文为CSDN博主「柠檬橘子百香果」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Naristilia/article/details/83515239

【网络安全】域名生成算法(DGA)基础总结相关推荐

  1. lstm中look_back的大小选择_基于机器学习检测僵尸网络中的域名生成算法

    0x01 Absert 恶意软件通常使用域名生成算法(DGA)作为联系其C&C服务器的机制.近年来,基于机器学习已经提出了不同的方法来自动检测生成的域名.但也存在一些问题.第一个问题是,由于缺 ...

  2. 域名生成算法(DGA)基础总结

    课堂笔记系列,有任何问题请评论,求轻喷. 域名生成算法(DGA) 僵尸网络正在威胁着互联网网民的安全.僵尸网络中受到恶意软件感染的僵尸主机由僵尸控制者通过C&C主机进行控制.僵尸主机常常利用D ...

  3. python数据库开发 dga_使用深度学习检测DGA(域名生成算法)——LSTM的输入数据本质上还是词袋模型...

    from:http://www.freebuf.com/articles/network/139697.html DGA(域名生成算法)是一种利用随机字符来生成C&C域名,从而逃避域名黑名单检 ...

  4. 使用深度学习检测DGA(域名生成算法)——LSTM的输入数据本质上还是词袋模型...

    from:http://www.freebuf.com/articles/network/139697.html DGA(域名生成算法)是一种利用随机字符来生成C&C域名,从而逃避域名黑名单检 ...

  5. DGA:域名生成算法

    概念 DGA(Domain Generation Algorithm,域名生成算法),是一种恶意软件使用的算法,可定期生成大量域名,即DGA域名. 作用 让C&C服务器更加隐蔽,降低攻击发现几 ...

  6. dga (Domain Generation Algorithm) 域名 生成算法 简介

    目录 一.引言 二.背景 三.检测 四.发展 五.总结 一.引言 恶意软件如今已经发展为威胁网络安全的头号公敌,为了逃避安全设施的检测,其制作过程也越来越复杂,其中一个典型做法是在软件中集成DGA(D ...

  7. DGA(域名生成算法)/DNS tunnel

  8. python数据库开发 dga_dga域名生成算法

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  9. DGA 域名生成和检测算法

    文章目录 DGA 域名生成 DGA 域名检测 白样本 黑样本 检测模型 DGA 域名生成 360提供了基于 python的 DGA 算法,包含如下 10 种DGA家族. DGA 域名检测 白样本 ci ...

最新文章

  1. 优点和阵列的缺点,并且一个链表
  2. STM32F1与STM32F0在GPIO_TypeDef 寄存器方面的不同
  3. dart系列之:dart语言中的内置类型
  4. 详解 Linux环境中DHCP分配IP地址(实验详解)
  5. python代码设计测试用例_Python单元测试与测试用例简析
  6. 计算机考试中英文打字题,五笔及中英文打字试题(2套)含答案.docx
  7. 用FileInputStream和FileOutputStream实现文件复制粘贴
  8. 安装zabbix4.0
  9. java如何使用md5加密_Java中MD5加密
  10. P1082||T1200 同余方程 codevs|| 洛谷
  11. 一张图概括淘宝直播背后的前端技术 | 赠送多媒体前端手册
  12. Java实现二值化处理图像
  13. CTF入门之php文件包含
  14. 实验五 CA的安装和使用
  15. Halide-based IR和 Polyhedral-based IR
  16. 门店电子会员卡系统,积分储值卡金额会员卡功能,JavaScript 局部作用域
  17. FTP Server端的使用
  18. PLSQL13,登录进去的时候有个弹窗,选择后同时勾选了dont show this message again,下次不再显示了,但是又想让他继续提示怎么办?
  19. 小米手机升级后便签内容没了如何找回
  20. php xmp,xmp1和2模式区别有哪些

热门文章

  1. Python中将科学计数法(或以e为底的自然对数)字符串转换为float浮点数
  2. 史上最通俗易懂 pvalue
  3. 争议南科大 何须尽责朱清时
  4. Ubuntu16.04成功解决InvalidSpecError: Invalid spec: =2.7!!!
  5. CS61A Lab 14
  6. centos安装telnet
  7. python的append是什么意思_append在python里是什么意思
  8. 2020年,多源域适应(域迁移) MDA最新方法总结综述
  9. python列表or字符串切片步长为负数的情况分析
  10. 浙江工业大学计算机专业是几本,浙江工业大学是几本