【网络安全】域名生成算法(DGA)基础总结
域名生成算法(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)基础总结相关推荐
- lstm中look_back的大小选择_基于机器学习检测僵尸网络中的域名生成算法
0x01 Absert 恶意软件通常使用域名生成算法(DGA)作为联系其C&C服务器的机制.近年来,基于机器学习已经提出了不同的方法来自动检测生成的域名.但也存在一些问题.第一个问题是,由于缺 ...
- 域名生成算法(DGA)基础总结
课堂笔记系列,有任何问题请评论,求轻喷. 域名生成算法(DGA) 僵尸网络正在威胁着互联网网民的安全.僵尸网络中受到恶意软件感染的僵尸主机由僵尸控制者通过C&C主机进行控制.僵尸主机常常利用D ...
- python数据库开发 dga_使用深度学习检测DGA(域名生成算法)——LSTM的输入数据本质上还是词袋模型...
from:http://www.freebuf.com/articles/network/139697.html DGA(域名生成算法)是一种利用随机字符来生成C&C域名,从而逃避域名黑名单检 ...
- 使用深度学习检测DGA(域名生成算法)——LSTM的输入数据本质上还是词袋模型...
from:http://www.freebuf.com/articles/network/139697.html DGA(域名生成算法)是一种利用随机字符来生成C&C域名,从而逃避域名黑名单检 ...
- DGA:域名生成算法
概念 DGA(Domain Generation Algorithm,域名生成算法),是一种恶意软件使用的算法,可定期生成大量域名,即DGA域名. 作用 让C&C服务器更加隐蔽,降低攻击发现几 ...
- dga (Domain Generation Algorithm) 域名 生成算法 简介
目录 一.引言 二.背景 三.检测 四.发展 五.总结 一.引言 恶意软件如今已经发展为威胁网络安全的头号公敌,为了逃避安全设施的检测,其制作过程也越来越复杂,其中一个典型做法是在软件中集成DGA(D ...
- DGA(域名生成算法)/DNS tunnel
- python数据库开发 dga_dga域名生成算法
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- DGA 域名生成和检测算法
文章目录 DGA 域名生成 DGA 域名检测 白样本 黑样本 检测模型 DGA 域名生成 360提供了基于 python的 DGA 算法,包含如下 10 种DGA家族. DGA 域名检测 白样本 ci ...
最新文章
- 在Dialog中实现下拉框效果并对下拉框赋自定义的值
- ARP协议抓包分析 -- wireshark
- C++异常之异常说明
- java计算加速减速_java – 使用JOCL / OPENCL计算强度的加速总和
- php ecdsa secp256k1,从上的压缩派生ECDSA未压缩公钥
- oracle用户口令已失效
- mysql的sql语句where,SQL之WHERE语句
- 【ArcGIS】Packaging succeeded,but publishing failed
- SpringBoot+Redis简单实现文章浏览量记录
- 八卦一下 ,拉点流量
- 数组的扁平化方法总结
- 商业智能(BI)目前的五大趋势
- 读大学,大学四年培养的思维与工作能力,(读研,读博)
- [DNS 设置] 电脑无法访问网页,但可以正常使用QQ和微信。
- 史上最全《JMeter压力测试教程》——通俗易懂,3天即可学会
- Google AAB测试
- linux/windows下基于opc ua协议使用open62541开发客户端-上
- SD-VI01事务创建运费成本报错:消息号 VY065 没有G/L帐目可以为装船成本条目被确定
- excel poi 加背景图_使用POI在Excel中添加外部图片
- matlab亮度平衡_亮度对比度算法MATLAB实现
热门文章
- c语言函数求1到n的k次方和
- 湖南2020年计算机等级考试报名时间,2020年湖南12月计算机等级考试报名时间:11月7日—10日...
- sql server设置外键
- WinDbg+WMware+OS_Win7 配置
- 一切发生的事,都是好事(19年总结)
- 计算机上的时钟发生装置教程,计算机的时钟发生装置叫做什么?
- mac和windows下载安装redis
- 南邮部分期末复习笔记汇总@tou
- 怎样识别图片中的文字?手机电脑都可以的
- C#:今日上机问题描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。