恶意域名检测研究与应用综述

news2024/10/5 5:46:04

域名攻击发展

在这里插入图片描述
使用 DGA 的优势在于模糊了控制服务器的节点位置,该方法的灵活性还让网络安全管理员无法阻止所有可能的域名,并且注册一些域名对攻击者来说成本很低。利用 DGA 域名实施的攻击是网络安全中重要的攻击形式。因此,捕获由恶意软件生成的域名已成为信息安全的核心主题。

域名生成算法

在这里插入图片描述
Conficker:使用Windows 操作系统软件中的缺陷和对管理员密码的字典攻击在形成僵尸网络时传播
CryptoLocker:它使用 DGA 从英文字母表 a ~ y 中随机选取生成字符串长度为 12 至 15 的二级域名,每周大约生成1000个域名。
Ramnit:DGA 使用随机数生成器首先通过均匀地选择 8 到 19 个字符之间的长度来确定第二级域的长度。接下来,DGA 通过从“a”到“x”统一选取字母来确定第二级域
symmi:通过当前的日期和编码常量,利用随机数生成器生成种子。它包含三级域名,在第三级域中,除字母“j”之外,从元音和辅音中随机交替的挑选字母,因此随后的字母总是来自其他字符类这样选取的字符组成的域名几乎是可读的。
Suppobox:利用英文单词列表,从英文单词列表中随机选择两个单词连接在一起生成恶意域名

DGA 域名检测的研究

基于特征提取的机器学习方法的检测

域名字符统计特征的检测
  1. 使用域名的bigram特征:Davuth等人通过分析域名的bigram(二元组)特征,利用人工设定的阈值过滤掉出现频率较低的bigram,然后使用支持向量机(SVM)分类器来检测随机域名。

  2. 分析IP地址的域名特征分布:Yadav等人通过观察同一组IP地址下所有域名的unigram(一元组)和bigram特征分布,寻找算法生成域名的固有模式,以此来检测DNS流量中的域名。

  3. 利用域名长度特征:Mowbray等人通过分析域名查询服务中不寻常的字符串长度分布来检测恶意域名。

  4. 基于随机森林的随机域名检测方法:王红凯等人提出了一种基于随机森林的随机域名检测方法,该方法通过人工提取的域名长度、域名字符信息熵分布、元音辅音比、有意义的字符比率等特征来构建随机森林模型进行训练和分类,实现对随机域名的检测。

  5. 使用域名的K-L距离、编辑距离、Jaccard系数作为特征向量:Agyepong等人利用算法生成域名与正常域名在字符分布上的差异,使用K-L距离、编辑距离、Jaccard系数作为特征向量来识别恶意域名。

  6. 使用分词算法扩展特征集:通过使用分词算法将域名分割成单个词,以此来扩展特征集的大小,提高检测恶意域名的能力。

DNS 流量信息的检测
  1. fast-flux僵尸网络检测:文献[22]提出了一种基于fast-flux僵尸网络特征的检测方法,包括委托代理模式、恶意活动的执行者和硬件性能,用于实时检测Web服务是否被fast-flux僵尸网络托管。

  2. Exposure系统:Bilge等人介绍了Exposure系统,它使用DNS分析技术来检测涉及恶意活动的域名,通过提取15个特征来描述DNS名称的不同属性及其查询方式。

  3. Pleiades系统:Antonakakis等人设计了Pleiades系统,专注于检测DGA(域名生成算法)生成的域名。该系统利用DGA域名解析为C&C服务器地址较少的特点,通过统计学习技术构建模型,无需劳动密集型恶意软件逆向工程即可发现和建模新的DGA。

  4. NXDOMAIN响应分析:文献[23][25]通过分析NXDOMAIN响应来检测DGA域名,这种方法不需要大规模部署DNS分析工具,但面临大规模真实DNS数据日志少、恶意域特征弹性和缺乏具体评估方案等挑战。

  5. 恶意域名检测技术的一般框架:文献[26-27]对近年来使用DNS数据的恶意域名检测技术的一般框架进行了分类,并提出了一些挑战,如特征弹性和缺乏评估方案。

  6. 实时检测方法:为了满足实时检测的要求,许多方法使用手工挑选的特征,如熵、字符串长度、元音比、辅音比等。机器学习模型,如随机森林分类器,也被用于提高检测率,但存在误报率较高和整体检测率低的问题。

  7. 僵尸网络检测的挑战:随着僵尸网络变得更加复杂和智能化,现有的检测方法面临挑战,包括网络流的部分特征无法完全表征僵尸网络的异常行为,以及攻击者可能设计新的DGA算法来绕过某些固定特征。
    虽然在DNS流量分析领域取得了一定的进展,但恶意域名检测仍然面临实时性、准确性和对抗性等挑战。随着僵尸网络的不断进化,检测技术也需要不断更新以应对这些挑战。

基于无特征提取的深度学习方法的检测

RNN 在域名检测的应用

这段话主要讨论了循环神经网络(RNN)及其变体在域名检测领域的应用,以及它们在处理特定问题时的优势和挑战:

  1. 循环神经网络(RNN)的应用:RNN因其能够捕捉序列之间的时间关系,被用于自然语言处理任务。初期,RNN和递归神经网络被用来检测伪域名。

  2. 梯度消失问题:RNN在处理长序列时容易出现梯度消失问题,这限制了其学习长期依赖信息的能力。

  3. LSTM的优势:LSTM通过增加状态信息解决了梯度消失问题,使其能够学习长期依赖信息,特别擅长文本和语音处理,因此在域名检测中得到了广泛应用。

  4. LSTM在DGA检测中的应用:Woodbridge等人利用LSTM实现对DGA的实时预测,无需上下文信息或手动创建的特征。模型框架包括嵌入层、LSTM层和逻辑回归分类器。

在这里插入图片描述
5. 深度学习方法的比较:Yu等人比较了基于特征的传统机器学习方法(如随机森林)和深度学习方法(如LSTM和CNN)。结果显示,CNN和LSTM在整体检测率上优于随机森林,但在个别DGA上表现不佳。检测率低或识别误差大的原因可能是数据不平衡和传统DGA与基于字典的DGA之间的样本分布偏差。Tran等人提出了改进的成本敏感的LSTM算法来解决DGA域名数据多类不平衡的问题,提高了准确率。

  1. 神经网络模型的比较:Vinayakumar等人比较了RNN、I-RNN、LSTM、CNN和CNN-LSTM等神经网络模型。结果显示,递归神经网络系列和混合网络(如CNN-LSTM)在检测率上表现优越。

  2. 深度学习方法的优势:深度学习方法具有捕获层次特征提取和序列输入中的长期依赖性的机制,这使得它们在DGA域名检测中表现出色。基于RNN的检测模型在高随机性DGA域名检测中准确率高,但在低随机性和基于字典的DGA域名识别率低,导致误报。因此,未来的主要发展方向是提高对低随机性和基于字典的DGA域名的识别能力。

GAN 在域名检测的应用
  1. 生成对抗网络(GAN)的基本概念:GAN是一种深度学习模型,它基于博弈论中的纳什均衡思想,通过生成器和鉴别器的相互学习来生成模拟数据。

  2. GAN在DGA域名生成中的应用:Anderson等人利用GAN的思想,构建了一种基于深度学习的DGA域名生成对抗样本方法。生成器学习生成越来越难以检测的域名,而检测器则通过更新参数提高检测能力。提出的GAN模型基于预先训练的自动编码器(编码器+解码器),自动编码器在Alexa的一百万个域名上进行训练,以生成更像真实域名的样本。然后,在GAN中重新组装编码器和解码器进行对抗训练。

在这里插入图片描述

  1. 对抗样本的验证:使用随机森林DGA分类器来验证生成的对抗样本的表现力,对抗样本表现良好,但实验对比较少,只验证了在随机森林模型上的检测效果。还有的采用了GAN的思想来生成恶意域名对抗样本,但编码器部分的设计有所不同,采用了基于Ascall编码方式的编解码器。

  2. GAN的问题GAN在处理离散数据(如序列数据)上存在问题,如生成器难以传递梯度更新,鉴别器难以评估完整的序列。因此由于域名数据的序列性,利用 GAN 生成域名数据应用上的研究较少。

  3. GAN在僵尸网络检测中的应用提出了一种基于GAN的僵尸网络检测增强框架,通过生成器连续生成“假”样本,扩展标记数量,以帮助原始模型进行僵尸网络检测和分类。

总结来说,这段话强调了GAN在域名检测领域的潜力,尤其是在生成对抗样本方面。然而,由于域名数据的序列性,GAN在这一领域的应用面临一些挑战。尽管如此,GAN在其他领域的成功应用表明,通过适当的改进和创新,GAN仍有可能在域名检测等领域发挥重要作用。

基于附加条件的深度学习方法的检测

  1. 深度学习检测方法的局限性:单纯的深度学习检测方法在应对越来越智能的DGA域名时表现不佳。

  2. 改进的LSTM模型:为了提高检测率,提出了结合注意机制的LSTM模型。该模型通过关注域名中更重要的子串来改善表达,尤其在检测长域名时表现出色,二元分类中的误报率和假负率分别降至1.29%和0.76%。

  3. 多字符随机性提取方法:提出了一种基于注意力机制的深度学习模型,并引入了一种多字符随机性提取方法,提高了识别低随机性DGA域名的有效性。

  4. 域名随机性的估计方法通过词法分析和Web搜索来估计域名的随机性。但这种方法在处理短域名时存在局限性,可能会误判不包含在字典中的域名。

  5. smash分数和新模型:提出了smash分数来评估DGA域名与英文单词的相似度,并设计了一种结合递归神经网络架构和域注册信息的新模型。该模型在检测某些看起来像自然域名的DGA家族时效果良好,但在检测那些看起来不像自然域名的DGA系列时表现不佳。

新的方向

这段话主要讨论了DGA(域名生成算法)域名变体的研究、恶意域名对抗样本的生成方法以及恶意域名检测模型的设计:

  1. DGA域名变体的研究:DGA域名变体通常利用英语单词列表随机生成,以躲避基于字符特征的模型检测。尽管这些伪域名在马尔可夫模型或n-gram分布上与正常域名相似,但它们的长度和由几个无关单词拼凑的特点可以作为检测依据。通过观察这些域名可以看出域名的长度与正常域名相差较大,以及这些域名都是由几个毫无关联的单词拼凑而成,因此可以针对这两个角度对这类域名检测。

  2. 恶意域名对抗样本的生成方法

    • 一类生成方法是通过逆向工程破解DGA算法,但这种方法生成的域名具有固定模式,难以预测新的DGA变体。
    • 另一类方法是使用生成对抗网络(GAN)生成对抗样本。文献[21]证明了GAN生成的对抗样本在模拟恶意域名数据和预测未知DGA家族方面有良好表现。然而,GAN在处理离散序列数据上存在挑战。
    • 文献[50]提出的SeqGAN旨在解决GAN在离散数据处理上的问题,并在语言文本上表现不错。SeqGAN生成的域名对抗样本有望提高质量。
  3. 恶意域名检测模型的设计

    • 设计一个高效的检测模型是一个难点,因为伪域名越来越智能化,能够逃避一般神经网络模型的检测。
    • 未来的发展方向包括设计既可以独立使用,也可以作为更大DGA检测系统一部分的模型,以及能够包含网络流量并应用于实时网络安全系统的模型。

[1]王媛媛,吴春江,刘启和,等.恶意域名检测研究与应用综述[J].计算机应用与软件,2019,36(09):310-316.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1885194.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【CentOS7.6】yum 报错:Could not retrieve mirrorlist http://mirrorlist.centos.org

一、报错 1.报错内容如下 在使用 yum makecache 命令时报错,在 yum install -y xxx 的时候报错等等 [roothcss-ecs-a901 yum.repos.d]# yum makecache Loaded plugins: fastestmirror Determining fastest mirrors Could not retrieve mirrorlist http://mirrorl…

第十一章 Nest 创建动态模块

在 NestJS 中,动态模块允许在运行时动态添加和删除模块。这对于创建可扩展的和灵活的应用程序非常有用。 新建一个项目: nest new dynamic-module -p npm创建一个crud的模块: nest g resource test启动项目 浏览器访问 可以发现模块生效了 …

哪些品牌的充电宝牌子比较好用?性价比无线磁吸充电宝推荐

经常外出的朋友,不管是旅行聚会,或是商务出差,一旦手机电量告急,总会令人心生焦虑。共享充电宝不仅充电速度迟缓,而且价格高昂,有线充电宝又显得沉重,线缆还杂乱无章。现在随着科技的发展&#…

将exe文件添加到注册表中,实现开机时自动运行

目录 一、前言 二、代码 三、使用步骤 1.编译生成exe文件、 2.以管理员身份运行代码 3.打开注册表,验证结果 一、前言 在Windows操作系统中,将exe文件的路径添加到注册表下,主要用于实现程序的开机自动运行功能。 注册表路径为&#xf…

6.The hardest part about learing hard things(学一件难的事,难在哪里)

I’ve been recording a lot of podcast interviews for my upcoming book, Ultralearning.One of the reurring themes I’ve noticed in our conversations is that how people feel about learning is the overwhelming cause of the results they experience. 我为我的新书…

2024年6月总结及随笔之打卡网红点

1. 回头看 日更坚持了547天。 读《人工智能时代与人类未来》更新完成读《AI未来进行式》开更并更新完成读《AI新生:破解人机共存密码》开更并持续更新 2023年至2024年6月底累计码字1267912字,累计日均码字2317字。 2024年6月码字90659字,…

Git学习(常用的一些命令)

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 配置相关: 创建与克隆仓库: 基本操作: 分支操作: 远程仓库操作&#xff1a…

mac 安装nvm的教程

在macOS上切换Node.js版本,可以使用nvm(Node Version Manager)。以下是安装nvm和切换Node.js版本的步骤: 安装nvm 下载方式 终端复制输入: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.…

第一后裔掉宝奖励有什么 怎么领取第一后裔掉宝奖励

第一后裔在今天就要正式上线了,虽然是一款刚刚上线的新游戏,但是其实很早就测试过了,而且测试过很多次,所以有很多已经体验过的小伙伴,这款游戏的玩法还是比较有意思的,第三人称刷宝射击加上MMORPG的玩法&a…

深入分析差分驱动器,4种情形帮您看透~

差分驱动器可以由单端或差分信号驱动,今天我们就利用无端接或端接信号源来分析这两种情况。 01 差分输入、无端接信号源 图1显示一个差分驱动器由一个平衡的无端接信号源驱动。这种情况通常是针对低阻抗信号源,信号源与驱动器之间的连接距离非常短。 图…

充电宝买哪个牌子好?2024年十大口碑最好充电宝推荐

在如今快节奏的生活中,充电宝已然成为我们出行必备的物品之一。然而,面对市场上琳琅满目的充电宝品牌和型号,我们常常陷入选择的困境:充电宝买哪个牌子好?2024 年,充电宝技术不断革新,新品牌层出…

重生之算法刷题之路之链表初探(三)

算法刷题之路之链表初探(三) 今天来学习的算法题是leecode2链表相加,是一道简单的入门题,但是原子在做的时候其实是有些抓耳挠腮,看了官解之后才恍然大悟! 条件 项目解释 有题目可以知道,我们需…

论文题目:SpringBoot种草好物app13151

摘要 随着电子商务的快速发展和智能手机的普及,越来越多的用户选择通过移动应用程序进行商品浏览、购买和分享体验。种草好物App作为一个专注于商品推荐和购物体验的平台,具有广泛的应用前景和商业价值。本研究旨在构建一个功能丰富、性能稳定的种草好物…

第一后裔快速领取掉宝奖励礼包教程

7月2日第一后裔在steam正式上线,全新刷宝射击mmo玩法,角色的招式非常新颖 ,画面冲击感十足,而且游戏人物的自定义功能非常丰富,超级细节真实的人物建模,加上超带感的服装自定义系统,让你能玩一整…

AI太火,今年更缺人了 (含实习)

AI太火了!眼睛一睁一闭,一大堆新鲜出炉的前沿科技进展已经塞满未读列表。 许多公司更是开出了高薪, 读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用 对于0基础小白入门: 如果你是零基础…

leetcode-21-回溯-全排列及其去重

一、[46]全排列 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3]输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 其中,不需要使用startIndex used数组,其实就是记录此时path里都有哪些元素…

TypeScript中,如何利用数组生成一个联合类型

本文由 ChatMoney团队出品 在开发中我们常常会遇到这样一个问题,代码如下: const arr ["a","b","c","d","e","f","g","h","i","j","k&quo…

C语言使用先序遍历创建二叉树

#include<stdio.h> #include<stdlib.h>typedef struct node {int data;struct node * left;struct node * right; } Node;Node * createNode(int val); Node * createTree(); void freeTree(Node * node);void preOrder(Node * node);// 先序创建二叉树 int main()…

在CentOS7云服务器下搭建MySQL网络服务详细教程

目录 0.说明 1.卸载不要的环境 1.1查看当前环境存在的服务mysql或者mariadb 1.2卸载不要的环境 1.2.1先关闭相关的服务 1.2.2查询曾经下载的安装包 1.2.3卸载安装包 1.2.4检查是否卸载干净 2.配置MySQLyum源 2.1获取mysql关外yum源 2.2 查看当前系统结合系统配置yum…

物联网数据可视化利器:云组态设计器全新升级

数据可视化已成为数据展示与分析领域非常重要的工具。由多种图表、3D图形组成的大屏能够帮助用户非常直观简洁地了解数据。在物联网环境下,用户在制作数据展示大屏时,对数据可视化工具提出了更高的要求,例如能够展示3D组件、灵活的图层结构、支持多种数据源、实时的数据更新、图…