课堂笔记系列,有任何问题请评论,求轻喷。

域名生成算法(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碰撞不上,是真的碰不上。

FANCI:基于特征的自动化NXDomain分类

这个我读完再整理吧。

Reference
[1] 域名检测技术的PPT,张永铮,王一鹏,臧天宁,2018秋。
[2]FANCI : Feature-based Automated NXDomain Classification and Intelligence, Samuel Schüppen, Dominik Teubert, Patrick Herrmann and Ulrike Meyer, USENIX, 2018.

域名生成算法(DGA)基础总结相关推荐

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

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

  2. 【网络安全】域名生成算法(DGA)基础总结

    域名生成算法(DGA) 僵尸网络正在威胁着互联网网民的安全.僵尸网络中受到恶意软件感染的僵尸主机由僵尸控制者通过C&C主机进行控制.僵尸主机常常利用DNS授权服务器来解析域名,目的是为了跟C& ...

  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. 【 C 】在单链表中插入一个新节点的尝试(二)
  2. 1126 Eulerian Path (25 分)【难度: 一般 / 欧拉图的判定】
  3. centos开放端口以及Telnet测试端口
  4. 嵌入式linux的调试技术
  5. 【论文写作】课程指导平台的开发中需求分析如何写
  6. python实习生面试题_【实习】暑期实习之python笔试题(一)
  7. 普通索引和唯一索引,应该怎么选择?
  8. leetcode扔鸡蛋问题总结
  9. Office 针式打印机如何插入色带
  10. 搜狗云输入法,实现原理.
  11. ORACLE 11g自带DBMS函数包
  12. 多元函数泰勒级数展开_一元及多元函数的泰勒展开式
  13. matlab如何绝对值函数,概率密度函数估计matlab命令 A a abs 绝对值、(2)
  14. 语音控制垃圾分类箱的制作
  15. 优雅的点-2017网易校园招聘
  16. android 表情的输入 Unicode实现表情展示 无需图片素材及相关解析
  17. CentOS 7.7安装Erlang和Elixir
  18. PDF 拆分为IMages
  19. python专业版与社区版的区别_pycharm专业版和社区版区别
  20. 微软高管:Win8用户可免费升级Win9系统

热门文章

  1. 龚胤全云栖大会_2018云栖大会
  2. Linux操作系统--文本编辑器(保姆级教程)
  3. 【数据结构】直接插入排序以及时间复杂度的分析
  4. linux输入命令直接跳转到指定目录
  5. SQL语句在dos操作MySQL数据库
  6. 实践是检验真理的唯一标准!
  7. 长难句结构分析最新经典一百句
  8. 董老师又双叒叕送书啦,8本《Python数据分析、挖掘与可视化(慕课版)》
  9. 手机端有没有好用的图片识别文字工具值得推荐?
  10. word两幅图并排并且插入题注不会乱