域名生成算法(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. 在Dialog中实现下拉框效果并对下拉框赋自定义的值
  2. ARP协议抓包分析 -- wireshark
  3. C++异常之异常说明
  4. java计算加速减速_java – 使用JOCL / OPENCL计算强度的加速总和
  5. php ecdsa secp256k1,从上的压缩派生ECDSA未压缩公钥
  6. oracle用户口令已失效
  7. mysql的sql语句where,SQL之WHERE语句
  8. 【ArcGIS】Packaging succeeded,but publishing failed
  9. SpringBoot+Redis简单实现文章浏览量记录
  10. 八卦一下 ,拉点流量
  11. 数组的扁平化方法总结
  12. 商业智能(BI)目前的五大趋势
  13. 读大学,大学四年培养的思维与工作能力,(读研,读博)
  14. [DNS 设置] 电脑无法访问网页,但可以正常使用QQ和微信。
  15. 史上最全《JMeter压力测试教程》——通俗易懂,3天即可学会
  16. Google AAB测试
  17. linux/windows下基于opc ua协议使用open62541开发客户端-上
  18. SD-VI01事务创建运费成本报错:消息号 VY065 没有G/L帐目可以为装船成本条目被确定
  19. excel poi 加背景图_使用POI在Excel中添加外部图片
  20. matlab亮度平衡_亮度对比度算法MATLAB实现

热门文章

  1. c语言函数求1到n的k次方和
  2. 湖南2020年计算机等级考试报名时间,2020年湖南12月计算机等级考试报名时间:11月7日—10日...
  3. sql server设置外键
  4. WinDbg+WMware+OS_Win7 配置
  5. 一切发生的事,都是好事(19年总结)
  6. 计算机上的时钟发生装置教程,计算机的时钟发生装置叫做什么?
  7. mac和windows下载安装redis
  8. 南邮部分期末复习笔记汇总@tou
  9. 怎样识别图片中的文字?手机电脑都可以的
  10. C#:今日上机问题描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。