DGA域名检测相关技术
2021/5/20 10:30:54
本文主要是介绍DGA域名检测相关技术,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
域名生成算法(Domain Generation Algorithm):是一种利用随机字符来生成C&C域名,从而逃避域名黑名单检测的技术手段。 很显然,在这种方式下,传统基于黑名单的防护手段无法起作用,一方面,黑名单的更新速度远远赶不上DGA域名的生成速度,另一方面,防御者必须阻断所有的DGA域名才能阻断C2通信,因此,DGA域名的使用使得攻击容易,防守困难。 DGA域名分类 种子分类 1)基于事件的种子(time dependence) DGA算法会将使用时间信息作为输入,如:感染主机的系统时间,http响应的时间等。 2)是否有确定性(Determinism) 主流的DGA算法输入是确定的,因此DGA可以被提前计算,也有一些DGA的算法的输入是不确定的。 算法分类 现在DGA生成算法一般分为以下4类 (1)基于算数 改类算法会生成一组可用ASCII编码表示的值 (2)基于哈希 用哈希值16进制表示产生DGA域名,常用的哈希算法有md5 sha256 (3)基于词典 改方式会从专有词典中挑选单词进行组合,减少域名字符上的随机性,迷惑性强,字典内嵌在恶意程序中或者从公有服务中提取 (4) 基于排列组合 对一个初始域名进行字符上的排列组合。 DGA域名存活时间 DGA域名的存活时间一般较短,大部分域名存活时间为1-7天 检测方法 朴素贝叶斯 NB 长短期记忆网络 LSTM C&C:command-and-control命令与控制。简单理解,这是一种机器与机器之间的通讯方式。 C&C Server:C&C 服务器是由攻击者的计算机将命令发送到受恶意软件入侵的系统,并从目标网络接收被盗的数据。值得一提,现在已经发现许多c&c服务器为IDC服务器以及使用基于云的服务,例如网络邮件和文件共享服务,因为C&C服务器可以与正常流量融合在一起并避免被检测到。 Botnet:僵尸网络。是指已被恶意软件感染并受到恶意参与者控制的一组计算机。僵尸网络是包括机器、人和网络的组合词,每个受感染的设备都称为僵尸网络。僵尸网络可以实现完成非法或恶意任务,包括发送垃圾邮件,窃取数据,勒索软件,欺诈性点击广告或分布式拒绝服务(DDoS)攻击。 反弹 shell 非主动访问目标主机,而是通过反射shell绕过防火墙建立连接。主控端保持监听模式即可(如使用netcat),然后让肉鸡上主动连接主控端。 C&C服务器 因为大部分的肉鸡ip为动态ip,所以远控中基本都使用反弹式通信,反弹式通信需要肉鸡每隔一段时间对主控端发送心跳包,但这或许需要保证主控端的公网ip保持不变,所以就需要一台能够集中控制僵尸网络的主机,也就是上述的C&C服务器。 1.通过IP地址访问C&C服务器 描述:IP地址硬编码到远控脚本 优点:简单粗暴,成本低 缺点:易识别 防御:ip黑名单 识别程度: * 2.通过域名访问C&C服务器 描述:域名硬编码到远控脚本(可注册比较正常的域名伪装,降低被发现的风险) 优点:简单粗暴,成本低 缺点:易识别 防御:域名黑名单,蜜罐 识别程度: ** 3.Fast-flux && Double-flux && Triple-flux 描述:Fast-flux技术是指不断改变域名和IP地址映射关系的一种技术。Double-flux则是域名和ip均不断轮转。Triple flux在Double flux的基础上,增加一层Name Server通过CNAME方式解析,这样域名有可能指向ip也有可能指向别的域名,然后再指向ip,这些Name Server也会定期轮换,就增加了更多C&C通道和干扰项。 优点:即使识别部分ip和域名也无法将整个僵尸网络屏蔽 缺点:易识别 防御:利用TTL(存活时间)时间较短以及历史数据等特征挖掘剩余域名和ip 识别程度: **** 4.使用 web C&C服务器 描述:通过在一些论坛的冷门区域或者热门网站发送C&C控制指令,然后让恶意软件通过爬虫的方法在访问这些论坛的时候获取指令。 典型案例:2015年俄罗斯攻击者使用twitter作为Hammertoss 的C&C服务器。 优点:不易发现,且不可封禁热门网站 缺点:被发现后会被直接封禁账号损失僵尸网络。 防御:封禁账号 识别程度: *** 5.使用DGA随机域名生成算法 描述:这种C&C控制方法的思路就是控制一个确定的随机域名生成算法,用约定好的随机数种子生成大量的随机域名,恶意软件对这些域名全部进行访问。 优点:不易发现,难逆向出随机算法 缺点:灵活性差,需要平衡访问频率与等待时间的成本 防御:机器学习 识别程度: *****这篇关于DGA域名检测相关技术的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现