社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【技术分享】基于机器学习检测僵尸网络中的域名生成算法

安全客 • 3 年前 • 962 次点击  


01
Absert

恶意软件通常使用域名生成算法(DGA)作为联系其C&C服务器的机制。近年来,基于机器学习已经提出了不同的方法来自动检测生成的域名。但也存在一些问题。第一个问题是,由于缺乏独立标准,难以系统地比较这些DGA检测算法。第二个问题是,当这些DGA检测器的机器学习模型已知时,对手绕过这些分类器的难度如何。

本文比较了同一DGA集合上的两种不同检测方法:使用人工特征工程的经典随机森林和深度学习递归神经网络。独立进行标准测试并比较两种最新的DGA检测方法:

(a)FANCI ,这是最近在USENIX Security 上使用人工特征工程的随机森林分类器

(b)Woodbridge的LSTM ,这是一种基于深度递归神经网络的分类器



02
DGA

恶意软件不知不觉中安装在计算机上,就可以用于攻击其他计算机,发送未经请求或网络钓鱼的电子邮件,窃听通信,窃取电子邮件地址,加密计算机内容,并向用户请求赎金。解密能力,以及更多恶意方案。存在被感染机器的大型池称为僵尸网络,它们由命令和控制(C&C)服务器进行控制。

为了防止这些C&C服务器被关闭或无法访问,恶意软件通常使用域名生成算法(DGA),以便每隔一定时间创建一组新的伪随机域名。上图为肉鸡使用DGA连接到C&C服务器的过程。恶意软件会生成许多随机域,然后由恶意软件进行尝试,只有僵尸网络所有者必须注册其中之一才能使僵尸网络能够成功重新连接到其C&C服务器。这使得清除僵尸网络成为一项艰巨的任务。

相反,识别算法生成的域名可以帮助检测受感染的主机,并标记旨在控制僵尸网络的域名注册。可以成功地区分算法生成域名和人工创建域名的分类器对于安全研究人员、执法人员和网络运营人员都是很有用的。

在安全和隐私领域,与传统的机器学习方法相比,深度神经网络已经证明了其自主查找和提取相关特征的能力以及改进的分类准确性。同样对于DGA的检测,最近有相关工作提出了基于深度学习方法的解决方案。但是,恶意攻击者也可以利用这些AI分类方法来逃避对其恶意软件的检测。这些观察结果反映了一种对抗升级。其一涉及进一步改进高级深度学习方法,以提取更好的功能用于进攻或防御目的。其二是对手试图绕过安全专家开发的新防御措施,而不论使用哪种机器学习方法。



03
Ground truth

恶意(DGA)和普通(非DGA)域名的数据是从不同来源收集的:
恶意数据集是从DGArchive 获得的,DGArchive是Fraunhofer FKIE提供并由Daniel Plohmann维护的服务。由于只有有限数量的顶级域(TLD)可用,并且域生成算法使用的特定TLD对分类准确性没有任何影响,因此从DGA域名中删除了TLD。当从域名中忽略TLD后,选中DGArchive中的所有DGA,这些DGA中有100,000个或更多唯一记录的可用域名。这产生了下表所示的26个DGA的列表。

对于普通数据集,许多人选择了Alexa 访问量最大的网站的前n个列表。然而事实证明Alexa列表已经包含了DGA生成的域名。此外,与注册域名的平均相比,最受欢迎的域名列表很可能偏向于更短,更容易发音和更容易记住的域名。因此选择使用2016年来自知名TLD的前100,000个注册域名的列表,这些列表根据以下条件过滤:

•域名未出现在以下任何黑名单中:

Google的安全浏览列表,

Spamhaus DBL黑名单,

SURBL黑名单。

•没有使用国际化域名(因为在撰写本文时所有DGA都不使用国际化(IDN)域名-这使国际化域名对分类不重要)

•DGArchive中未知域名。

对于每个DGA,构建了10万个普通域名和10万个恶意域名混合的数据集,使用相同的普通域名数据对每个DGA进行评估。



04
DGA Classifiers

Woodbridge LSTM:即伍德布里奇等人提出的长期短期记忆(LSTM)神经网络,STM是一种特定类型的递归神经网络(RNN)。RNN通常用于识别或预测顺序数据中的模式。与前馈神经网络相反,RNN具有内部的短期记忆,可以保留有关所接收输入的重要信息。他们通过复制输出并将其循环回到网络来实现此目的,如上图所示。此特性使RNN可以对序列及其上下文有更深入的了解,并预测接下来会发生什么。LSTM通过使此类网络能够在更长的时间内记住其输入来扩展RNN,从而将其存储容量扩展到两个时间步之外。LSTM中的单元具有可通过一组可编程门进行读取,写入或重置的状态。这些门将输入连接和循环连接都调制为0到1之间的值,从而使当前状态在各时间步之间保持不变。

LSTM非常适合识别DGA,因为LSTM可以学习并概括许多DGA的生成过程,而无需基于原始输入手动进行特征工程。LSTM是一个黑盒的,如果没有相同的训练集,攻击者很难绕过分类器。

Woodbridge LSTM由以下顺序层组成:
•嵌入层,可将域名字符的可变长度序列转换为固定长度的零填充要素数组。

•LSTM层,它从嵌入层接收其尺寸为38(编码26个字符,10个数字,破折号和结束标记)的输入,并生成128的输出尺寸

•dropout层为0.5,可防止过度拟合

•密集的输出层,有一个输出维度,然后是Sigmoid激活函数

使用5折交叉验证分别评估每个DGA的分类器的性能:网络在10个周期内使用4/5的数据进行训练,批处理大小为128;然后将剩余的1/5数据用于测试经过训练的网络。使用不同的数据折叠次数再重复4次,丢弃先前训练过的网络,从而确保测试数据从未用于训练。



05
FANCI features

根据FANCI对域名进行特征工程,将41个提取的特征送入100棵树的随机森林,每棵树都考虑6个随机特征,之后使用5折交叉验证来评估其性能.。FANCI系统不仅通过检查域名字符序列来检测DGA生成的域名,还可以查看从NXDomain DNS查询获得的其他功能。

FANCI系统使用的许多特征实际上不会在比较测试中使用,特征如上表。例如FANCI的特征5,具有有效TLD是二分类特征,表示该域名具有有效的顶级域。显然,没有DGA会输出带有无效TLD的域名,因为这些域名将永远无法解析,因此毫无用处。但此特性在FANCI系统中非常有用,因为它可以轻松检测域名TLD部分中的人为输入错误,因此,这些错误显然不是DGA生成的域名。



06
DGA CLASSIFICATION RESULT

下表中列出了两个分类器测试DGA的分类结果。对于所有测试DGA,LSTM分类器得出的检测率(TPR),误报率(FPR),精度和准确性。平均而言,随机森林分类器的FPR是LSTM的4倍以上。LSTM分类器的平均准确性为98.7%,而随机森林分类器的平均准确性为93.7%。

随机森林分类器的FPR标准差是3倍,随机森林分类器准确性的标准差是4倍,这表明LSTM不仅产生了更好的分类结果,而且获得了更高的不同DGA的分类结果一致性。值得注意的是,具有FANCI功能的随机森林在gozi_dga,locky_dga,nymaim_dga,pushdo_dga和pykspa_dga DGA上的性能要差得多。

LSTM分类器更好的一致性的一种可能解释是,LSTM网络在训练过程中会自动学习其使用的分类特征,而随机森林需要人工特征工程,这可能会更好或更不适合不同的DGA。但是,使用人工特征工程还存在另一个危险:DGA开发者可以了解到使用的特征并修改域名生成算法以使其变得不易检测。



07
Design a new DGA

接下来利用FANCI分类结果创建一个新的DGA,将其命名为deception_dga,该DGA考虑了分类器的特征以规避检测。攻击者迭代地改善其DGA(如上图),直到获得所需的次优分类结果为止,从而有效地绕过了DGA检测分类器。在创建deception_dga DGA时仅使用了Alexa列表中的数据,模仿了DGA作者可用的信息。

下图显示了DGA“模拟”不同特征时分类准确性的影响。通常,随着DGA模拟更多特征,随机森林分类器的准确性开始下降。新的DGA还给LSTM带来了困难,将其精度降低到0.855,这是LSTM迄今为止记录的最低水平,与gozi_dga,locky_dga,nymaim_dga,pushdo_dga和pykspa_dga DGA的随机森林精度相当。LSTM上的回合数从10增加到15,将精度稍微提高到0.860。将LSTM输出空间维数从128更改为256,可以得到0.865的分类精度。同时应用较大的输出空间维数和将训练时期数增加到15个组合,仍会产生0.864的分类精度。



08
Conclution

在本工作中比较了当足够数量的DGA生成的域名时,机器学习中两种用于检测域名生成算法的方法。结论表示深度学习方法始终优于具有人工特征工程的随机森林,其中递归神经网络评均分类精度为98.7%,而随机森林的分类精度为93.8%。

结果还表明,人工特征工程的缺陷之一是DGA可以基于用于检测的特征知识来调整其策略。为了证明这一点,利用所使用特征集合的知识设计了一个新的DGA,它使随机森林分类器分类精度下降到59.9%。深度学习分类器也受到影响(尽管影响较小),其准确性降低到85.5%。


- 结尾 -
精彩推荐
【技术分享】利用AI来攻击IA:一种针对智能手机语音助手功能的隐形间谍软件
【安全技术】区块链中具有强大自适应策略的双花攻击
【技术分享】欺骗自动监控摄像头:利用对抗性图像块攻击人体检测




    
戳“阅读原文”查看更多内容

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/152676