2.5 Detecting DGA domains with recurrent neural networks andside information

0x00 摘要

现代恶意软件通常利用域名生成算法(DGA)来避免指挥和控制域或IP被抢夺或沉洞。这意味着,受感染的系统可能会试图访问许多域名,以试图联系指挥和控制服务器。因此,自动检测DGA域名是一项重要的任务,这既是为了阻止恶意的域名,也是为了识别被攻击的主机。然而,许多DGA使用英文单词表来生成看似干净的域名;这使得自动检测变得困难。在这项工作中,我们为DGA家族设计了一个困难的概念,称为smashword score;这衡量了一个DGA家族看起来有多像英语单词。我们发现,这个衡量标准准确地反映了一个DGA家族的领域在多大程度上看起来像由天然的英语单词组成。然后,我们描述了我们新的建模方法,它是一种新型的循环神经网络结构与域名注册方面的信息的结合。我们的实验表明,该模型能够有效地识别由困难的DGA家族产生的域名。我们的实验还表明,我们的模型优于现有的方法,能够可靠地检测困难的DGA家族,如matsnu、suppobox、rovnix和其他。与现有的技术水平相比,该模型的性能在类似于英语单词的DGA家族中表现最好。我们认为这个模型可以用于独立的DGA域检测器--如终端安全应用程序--或者也可以将该模型作为更大的恶意软件检测系统的一部分。

知识点
  • Seize Domain:抢夺域?
  • Sinkhole:又名沉洞,或网络沉洞,是指在网络中的某一域名被判定为恶意域名后,由安全厂商或运营商将其原本解析到的ip地址变更到无害ip地址的技术。如果某一域名被sinkhole,则该域名解析到ip地址已被变更,因此受害主机不会再接受到恶意控制代码或恶意文件,也就不会受到安全威胁。同时,安全分析人员通过对被sinkhole的域名的当前域名服务器的流量进行研究和监控,可以监测到当前已经失陷的主机数量和状态。

0x01 引言

  • 现代恶意软件通信,硬编码IP或者域名的方式很容易被破解。IP流量被封,域名则可以抢夺
  • 典型状况下,失陷机将使用DGA来连续生成域名。这些域名中的每一个都将被解析,如果DNS解析没有导致NXDOMAIN响应(即如果域名被注册),那么机器将试图连接到已解析的IP,就像它是C&C服务器一样。如果该过程的任何步骤不成功,那么机器将用DGA生成另一个域名并再次尝试,直到成功为止。一些DGA家族生成随机外观的域名,如xobxceagb.biz;另一些生成难以区分的域名,如 dutykind.net。
  • DGA对于IP和域名的封控具有鲁棒性,难以预见性封控
  • 本文设计一种了一个机器学习系统,它能够准确地将域名分类为DGA生成的或干净的,只使用域名本身和一些简单的来自WHOIS数据的附加特征。这个系统对基于英语单词列表生成域名的DGA家族特别有效(即在人类观察者看来是良性的域名)。

0x02 相关工作

  • 2008年,随着Kraken和Conficker的出现,DGA被人们认识,随后开始激增。(①Felix S. Leder and Peter Martini. 2009. NGBPA Next Generation BotNet Protocol Analysis. In Emerging Challenges for Security, Privacy and Trust, Dimitris Gritzalisand Javier Lopez (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 307–317.②Phillip Porras, Hassen Saïdi, and Vinod Yegneswaran. 2009. A Foray into Con-ficker’s Logic and Rendezvous Points. In Proceedings of the 2Nd USENIX Conference on Large-scale Exploits and Emergent Threats: Botnets, Spyware, Worms,and More (LEET’09). USENIX Association, Berkeley, CA, USA, 7–7. http://dl.acm.org/citation.cfm?id=1855676.1855683 )
  • 早期机器学习缺乏训练数据集,因此是基于技术和统计学来进行。Yadav等人应用这种技术来显示有效域名和算法生成的域名之间的差异。这种方法的局限性是,它往往不能转移到不同的DGA系列。(Sandeep Yadav, Ashwath Kumar, Krishna Reddy, A L. Narasimha Reddy, andSupranamaya Ranjan. 2012. Detecting Algorithmically Generated Domain-Flux Attacks With DNS Traffic Analysis. 20 (10 2012))
  • 检测技术的一个里程碑归功于对DNS数据的更广泛使用。Zhou等人从RDNSs收集DNS NXDOMAIN数据,然后用它来组装可以域名生成器生成的域名(Yonglin Zhou, Qing-Shan Li, Qidi Miao, and Kangbin Yim. 2013. DGA-Based Botnet Detection Using DNS Traffic. J. Internet Serv. Inf. Secur. 3 (2013), 116–123)
  • Jian等人提出了一种不同的方法[20]。它依赖于DNS流量分析,但只针对失败的查询。在这种技术中,主机和失败的域名之间的互动将被剔除。然后,使用非负矩阵三因素化技术的图分解算法来迭代提取连贯的共聚类。获得的子图将通过探索生成的聚类的时间属性来进一步分析。作者声称,他们的基于异常的方法可以发现新的和以前未发现的威胁。(Nan Jiang, Jin Cao, Yu Jin, Li Erran Li, and Zhi-Li Zhang. 2010. IdentifyingSuspicious Activities Through DNS Failure Graph Analysis. In Proceedings ofthe The 18th IEEE International Conference on Network Protocols (ICNP ’10). IEEEComputer Society, Washington, DC, USA, 144–153. https://doi.org/10.1109/ICNP.2010.5762763 )
  • Phoenix率先使用了URLs和其他侧面信息来检测DGA僵尸网络。该系统观察到的参数列表包括一些手工制作的特征,如可读性、黑名单信息、DNS查询信息。该方法没有使用任何循环神经网络(RNN)或强大的建模技术来处理域名本身,这一点还有待改进。Tong和Nguyen已经提出了对凤凰系统的扩展。他们包括额外的措施,如熵、n-grams和修改后的距离度量来进行域分类。(①Stefano Schiavoni, Federico Maggi, Lorenzo Cavallaro, and Stefano Zanero. 2014.Phoenix: DGA-Based Botnet Tracking and Intelligence. In Detection of Intru-sions and Malware, and Vulnerability Assessment, Sven Dietrich (Ed.). SpringerInternational Publishing, Cham, 192–211.②Van Tong and Giang Nguyen. 2016. A method for detecting DGA botnet based onsemantic and cluster analysis. In Proceedings of the Seventh Symposium on Infor-mation and Communication Technology, SoICT 2016, Ho Chi Minh City, Vietnam,December 8-9, 2016. 272–277. https://doi.org/10.1145/3011077.3011112 )
  • Zhao等人在检测APT恶意软件的背景下解决了这个问题。作者根据他们的大数据研究提出了14个特征,以描述与恶意软件相关的DNS的不同属性和它们被查询的方式,以及定义的网络流量特征,可以识别被远程控制的受损客户的流量。这些特征是由基于签名的引擎、基于异常的引擎和所谓的动态DNS特征组成的。数据是通过使用Alexa的流行度和基于连接到域名的主机数量的流行度来过滤的。作为结果,一个引擎被建立起来,它被用来使用提取的特征向量计算IP地址的声誉分数。这些结果是通过使用J48决策树算法产生的。(Guodong Zhao, Ke Xu, Lei Xu, and Bo Wu. 2015. Detecting APT Malware Infections Based on Malicious DNS and Traffic Analysis. 3 (01 2015), 1132–1142.)
  • Luo等人提出了一个类似的方法,他们描述了一个使用从Alexa前100k域名中的干净域名以及确认的恶意DGA案例中提取的词汇模式的系统。提出的方法是基于机器学习的,在测试数据集上检测恶意域名的准确率达到93%。(Xi Luo, Liming Wang, Zhen Xu, Jing Yang, Mo Sun, and Jing Wang. 2017. DGASen-sor: Fast Detection for DGA-Based Malwares. In Proceedings of the 5th Interna-tional Conference on Communications and Broadband Networking (ICCBN ’17).ACM, New York, NY, USA, 47–53. https://doi.org/10.1145/3057109.3057112 )
  • Woodbridge等人报告了对最新结果的额外改进。尽管使用了相对简单的长短期记忆(LSTM)网络对DGA领域进行分类,但该方法被报告为具有很高的有效性。所提出的结果仍然有一定的缺陷,特别是对于类似于英语单词的困难DGA类别。(Jonathan Woodbridge, Hyrum S Anderson, Anjum Ahuja, and Daniel Grant.2016. Predicting domain generation algorithms with long short-term memorynetworks. arXiv preprint arXiv:1611.00791 (2016).)
  • Anderson等人从不同的角度处理了同样的问题。作者使用生成对抗网络(GAN)来生成对抗性的DGA域名,试图欺骗一个分类器。作者能够实现这一目标。GAN生成的域名被添加到训练集中,从而提高了DGA检测性能。然而,作者并没有对任何看起来像由英语单词组成的DGA家族进行测试。(Hyrum S. Anderson, Jonathan Woodbridge, and Bobby Filar. 2016. Deep DGA:Adversarially-Tuned Domain Generation and Detection. In Proceedings of the2016 ACM Workshop on Artificial Intelligence and Security (AISec ’16). ACM, NewYork, NY, USA, 13–21. https://doi.org/10.1145/2996758.2996767 )
  • Shibahara等人提出了一个略有不同的算法,即使用RNN对网络通信的变化进行分析,目的是减少恶意软件分析时间。这种方法不是只针对DGA的,而是通用的,试图涵盖其他类型的恶意软件。然而,它可以根据DGA类型的威胁的通信模式,成功地用于对付它们。因此,这种技术需要额外的运行时间数据,而其他许多方法不需要,因为它需要恶意软件沙盒。作者声称,如果没有他们的优化,分析时间需要超过15分钟,他们的方法将这个时间减少了67%,将恶意URL的检测率保留在97.9%。(Toshiki Shibahara, Takeshi Yagi, Mitsuaki Akiyama, Daiki Chiba, and TakeshiYada. 2016. Efficient Dynamic Malware Analysis Based on Network BehaviorUsing Deep Learning. 2016 IEEE Global Communications Conference (GLOBECOM)(2016), 1–7.)
  • 对直接检测由英语单词组成的DGA家族,使用领域本身作为特征的关注还不多。在以前的一些工作中,这项任务被描述为 "极其困难"

0x03 如何衡量一个DGA家族的检测难度

  • 恶意软件作者未来会转向与清洁数据集中常见的词汇模式相重叠的生成算法,以避免被检测到。未来的算法检测对抗性将会变得更加激烈。在这种情况下,"困难 "样本可以理解为那些欺骗现有检测器的样本,如最相关的例子是那些结合英语单词的DGA家族,如matsnufamily,它是许多家族中最早从英语单词列表中建立域名的家族之一。这些产生的域就像看起来很自然的域songneckspiritprintmetal.com和westassociatereplacerisk.com,这对许多依赖词汇特征的检测系统来说是更大的挑战。
  • DGA系列具有可以影响分类方法性能的特征。从信息论的角度来看,域名的平均长度l和平均字符熵c^似乎都可能是有趣的特征,可以进行比较。单个域名x的熵的计算方式如下:

\[\hat c(x)=-\sum_{x_{i}\in x}p(x_{i})log_{2}p(x_{i}) \]

  • 其中p(xi)是字符(xi)在字符串X中的经验概率。然而,在实验中,发现DGA家族的平均字符熵c^与该族是否由类似英语的难词组成之间没有严密的关联性。因此不能将该平均字符熵代表检验一个DGA的难度。

  • 因此开发了smashword score,命名为s^它是与英语词典中的单词的平均n-gram重叠(n范围为3-5)。其计算方式类似于词频-逆文本频率(Term Frequency-Inverse Document Frequency,TD-IDF)。具体如下:

    • \[\hat s(x)=\frac{1}{|N_{i,j}(x)|}\sum_{n_{i}\in N_{i,j}\cap N_{i,j}(D)}log(|\{d\in D:n_{i}\in d\}|) \]

  • 在该等式中,Ni, j (x)指的是长度为i或j的域x中的字符n-grams集合,D指的是英语单词列表。Ni,j(D)指的是长度为i或j的整个词表D中的字符n-grams的集合。对数项是一个n-gram在整个词表D中出现的次数。如果领域和词表之间没有任何n-grams的重叠,得分的下限是0,上限取决于词表。得分被归一化为领域中n-grams的数量

  • 一个DGA家族的平均smashword score取决于该家族中所有存在于数据中的域名的平均smashword score

  • 我们可以预期有着高smashword score的域名将更加类似于英语单词。

0x04 DGA家族

在介绍我们提出的分类器和实验之前,我们先介绍我们的DGA家族和清洁领域的数据集,以便进行一些探索性分析。在这一节中,我们为确认的DGA和非DGA领域建立了地面实况(GT)数据集。我们的每个数据源都来自公共场所,使我们的数据集可以直接复制。

知识点

Ground Truth(GT):地面实况。在人工智能领域,GT指人工标注的值,通常认为该值为绝对准确的值

4.1 DGA Ground Truth设置

  • 使用Python+随机种子生成的域名和在野域名。为了有足够多样化的覆盖面,我们选择了以下实体,以代表2017/2018年在野外看到的许多广泛传播的DGA域的模式
    • 随机外观的二级域名
    • 貌似随机的三级域名,带有通用的二级域名(通常是动态DNS提供商)
    • 域名由随机的单词组成(一般是英文)
  • 最后一种类型的域名是我们特别感兴趣的,因为从词汇上看,它们与合法域名几乎没有区别,这意味着需要一些额外的技术来检测。在几乎所有的情况下,DGAs都使用某种输入种子,以随机化输出,不产生相同的域名两次,或使研究人员无法预测,以避免阻断或sinkholing。常见的随机种子有:
    • 当前日期和/或时间
    • 嵌入到样本/样本组中的数值(通常是一个DWORD)
    • 恶意软件作者或公共服务器上的在线字符串
    • 第三方公共在线文件(例如,美国独立宣言、苹果许可证等)
  • 此外,我们还做了一些工作,以确保有不同的顶级域名(TLD)代表。因为恶意软件作者往往只使用一些特定的顶级域名,这可能会给我们的数据集带来很大的偏差。
  • DGArchive是在Github上找到的locky族的实现,Andrey Abakumov在Github上的DGA存储库,以及Johannes Bader的DGA实现。较小的或未知的家族被归类为others_dga和others_dga_b

image-20220207110553813

表1:关于一组有代表性的DGA家族的信息。我们包括样本数n,平均长度l(-),平均熵c(-),平均粉碎词得分s^(-),以及该族中发现的两个域的例子。Smashword score高的族用黑体字表示。

知识点

Dword:Double word。每个word为2个字节的长度,是指计算机中数值的位数(4字节,32位)。此外,它还是nasm汇编的一个关键字,用来修饰一个操作数为Double Word,即4字节。常用语法dword+一个操作数,如dword[x]

4.2 非DGA Ground Truth设置

  • 对于非DGA域名,GT由Alexa前100万个网站和OpenDNS公共域名列表7中的域名组成,为清洁GT集提供了102万个清洁域名。有多个主要问题需要解决:
    • 一些普遍盛行的DGA域名可以设法进入世界顶级流行域名的名单
    • 第三级域名应该被单独涵盖
    • 一些DGA域名太短,以至于它们与非DGA域名相撞,以及
    • 一些DGA域名使用英语单词的组合,因此它们与非DGA域名相撞的可能性相当大
  • 在后两种情况下,恶意软件作者在发生碰撞时没有任何问题,因为在任何情况下,恶意软件都会等待C&C的有效回应,然后再进行后续行动。恰恰相反,这种情况会使安全工程师的工作更加复杂,因为他们不能简单地禁止由DGA生成的所有域,因为有些域是已知的干净。在我们的数据集中,我们只发现有12个这样的域同时存在于非DGA和DGA集合中。

0x05 侧面信息

  • 平均smashword score sˆ(-)较高的DGA家族,仅凭域名是很难分类的。事实上,人类分析师甚至可能很难区分。因此,我们不能指望仅用单一的域名来建立一个有效的分类系统。
    • has_registrarname:布尔值,表示是否有注册人的名字。
    • has_contactemail。布尔型,表示是否有任何联系人的电子邮件。
    • days_since_created, days_since_updated,days_until_expiration: 数字,域名被创建、更新或到期的天数。
    • status_length: 数字,"状态 "字段的长度。
    • has_registrant_info, has_admincontact_info,has_billingcontact_info, has_techcontact_info, has_zonecontact_info: 布尔值,表示是否有联系信息。
    • has_registrar_iana_id:表示是否给出了注册商的IANA ID
知识点

IANA:Internet Assigned Numbers Authority,非路由地址。将一部分地址保留作为私人IP地址空间,专门用于内部局域网使用。

A 10.0.0.0---10.255.255.255(长度相当于1个A类IP地址)

B 172.16.0.0---172.31.255.255(长度相当于16个连续的B类IP地址

C 192.168.0.0---192.168.255.255(长度相当于256个连续的C类IP地址)

以及一些特殊IP,如0.0.0.0,255.255.255.255,127.0.0.1---127.255.255.254,224.0.0.1等等

  • 对于NXDOMAIN的特征全部为假,数字则全取为0。专注于那些最有可能给我们提供与DGA和C&C服务器相关信息的特征:关于注册的时间信息,以及域名本身是否被注册。我们使用的特征与Ma等人使用的特征类型大致相同。(Justin Ma, Lawrence K. Saul, Stefan Savage, and Geoffrey M. Voelker. 2009.Beyond blacklists: learning to detect malicious web sites from suspicious URLs.In Proceedings of the 15th ACM SIGKDD International Conference on KnowledgeDiscovery and Data Mining (KDD 2009). ACM, 1245–1254)
  • 对于我们的数据集,我们使用了收集的WHOIS数据的快照,其中有2.45亿条记录。对于我们的干净域名,我们将927k个域名(91.7%)与WHOIS数据相匹配,而对于DGA域名,我们只将2.3k个域名(0.18%)与WHOIS数据匹配。这是意料之中的,因为大多数DGA域名从未被注册。在实践中,可以使用WHOIS数据的快照(可能每晚更新一次)或按需访问WHOIS数据,这取决于部署的可扩展性需求。
  • 在我们的数据集中,DGA家族平均有3.5%的域名与WHOIS数据相匹配;其中ramnit家族的匹配率最高,为84%,pandex家族的匹配率最低,为0.008%(9758个注册的域名中只有7个)。19个家族,共计32.1万个域名,没有与任何WHOIS数据相匹配的域名。
  • 尽管一个域名是否有匹配的WHOIS数据与该域名是否来自DGA密切相关,但请注意,如果没有WHOIS数据,仅仅为了将一个域名归类为恶意域名而建立的检测器不会非常有效:利用我们的数据,它将达到96.5%的真阳性率(TPR),但有8.3%的不可接受的假阳性率(FPR)。尽管WHOIS数据给了我们很好的信息,但它并不足以进行预测。

5.1 WHOIS和GDPR

GDPR(Generate Data Protection Regulation,产生数据保护条例)。本节介绍相关法案可能会导致WHOIS无法查询,略

0x06 模型结构

6.1 字符级RNN GLRT

  • 本文设计一个字符级的RNN。依次从一个字符串中接收字符,在每个字符被传入时更新内部状态。我们没有训练RNN来预测域的类别,而是训练两个RNN来预测域中的下一个字符,并通过广义似然比测试(generalized likelihood ratio test,GLRT)将这些预测结合起来。并引入WHOIS作为侧面信道信息。
  • 总的来说,我们的模型是一个建立在四个不同模型输出上的逻辑回归分类器:
    1. 仅在训练集的子域名上建立字符集RNN和GLRT
    2. 仅在训练集的域名上建立字符集RNN和GLRT
    3. One-hot编码的顶级域名特征(针对最流行的250个顶级域名)
    4. 从WHOIS信息中提取的特征

image-20220207202445945

图2:我们提出的包含侧面信息的DGA检测模型的总体架构。输入点被分成子域、域和顶级域名。子域和域名通过单独的RNN+GLRT模型运行,然后将输出与WHOIS数据和单次编码的TLD结合起来,形成最终的逻辑回归模型。

  • 综上,可以构建一个由模型θ产生的点x的似然的估计:

    • \[p(x|\theta)=\prod_{i}p(x_{i}|(x_{0},\cdot\cdot\cdot,x_{i-1}),\theta) \]

  • 对于广义似然比检验[31],如果我们计算了似然估计值p(x |θ non-dga)和p(x |θdga),我们可以设置一个阈值η并计算出

    • \[\Lambda(x)=\frac{p(x|\theta_{dga})}{p(x|\theta_{non-dga})} \]

  • 如果η>Λ(x),我们将该点归为DGA域;否则,我们将该点归为非DGA。η与分类器的典型后验概率直接相关;事实上,如果我们将似然估计归一化,就可以得出x是DGA域的后验概率:

    • \[p(\theta_{dga}|x)=\frac{p(x|\theta_{dga})}{p(x|\theta_{non-dga})+p(x|\theta_{dga})} \]

    • 那么,设置p(θ|dga)的阈值就可以简化为设置GLRT阈值η。

  • 对于我们的DGA分类器,我们建立了两个独立的RNN-GLRT模型,如上所述:一个在我们训练集的子域上,一个在域上。这两个模型中的每一个都包含一个单独训练的LSTM RNN,如上所示,其输出被组合在一起以执行GLRT。

  • 作为逻辑回归模型的输入,我们从每个RNN-GLRT模型中提取六个特征,总共有12个特征。这些特征列举如下

    • 一个布尔特征表明是否可以从输入域x中提取一个域或子域
    • 似然估计p(x |θ non-dga)
    • 似然估计p(x |θ dga)
    • 后验概率p(θ non-dga|x)
    • 后验概率p(θ dga|x)
    • 似然比Λ(x)
  • 由于我们正在将似然估计和后验概率提取到逻辑回归模型中,我们实际上不需要选择阈值η--这只是独立的GLRT LSTM模型需要的。相反,在我们的组合模型中,逻辑回归将直接从概率和似然中学习

6.2 顶级域名TLDs特征

  • 由于顶级域名非常短(通常是两到三个字符),对其进行RNN训练是很难的。因此,我们对顶级域名进行一次编码,与我们训练数据集中最频繁的249个顶级域名进行匹配;如果没有匹配,顶级域名就被编码为'其他',这样就从顶级域名中得到了总共250个二进制特征。
  • 为了进行转换,我们使用了可从http://publicsuffix.org 的TLD列表。在我们的数据集中,最常见的顶级域名是.com、.org、.ru、.net和.info。我们发现.ru、.info、.biz和.cc等顶级域名所包含的DGA域名数量明显较多,其中每个顶级域名所包含的DGA域名数量至少是非DGA域名的三倍。

6.3 WHOIS 侧面信息

  • WHOIS数据构成了逻辑回归模型的其余输入。它与域名的RNN-GLRT特征、子域的RNN-GLRT特征以及单次编码的TLD特征相连接。
  • 在所有这些特征被送入逻辑回归模型之前,我们通过PCA进行去相关和缩放的白化处理。这个步骤可以提高模型的性能,尽管它通常也会使可解释性更难。
知识点

数据白化(Whitening): 白化的目的是去除输入数据的冗余信息。白化分为PCA白化、ZCA白化。

对数据做白化处理必须满足两个条件:

  1. 使数据的不同维度去相关;
  2. 使数据每个维度的方差为1;

条件1要求数据的协方差矩阵是个对角阵;条件2要求数据的协方差矩阵是个单位矩阵。

6.4 计算相关的问题

介绍训练的耗时性,略

0x07 对抗样本

  • 近年来,对抗性样本在机器学习中浮现出来,并且广泛运用在了图像、音频和恶意软件分类中
  • 攻击者可以使用快速梯度符号攻击(Fast Gradiant Sign Attack)的办法来修改域名中的字符规避检测
  • 本文结合WHOIS信息。若想得到纯净的whois信息,将会提升攻击者的成本
知识点

Fast Gradient Sign Attack:快速梯度符号攻击,主要讲述通过对原始数据加入细微的噪声得到一组新数据,在新旧两个数据通过人眼难以辨别的情况下,新数据可以欺骗分类器,从而使分类器做出错误的判断。这种方法可以用来攻击一些分类器,并且是完全可行的。

0x08 实验

对于任何DGA检测模型来说,最重要的情况是当它遇到一个它从未见过的全新的DGA家族。这是我们在实验中关注的情况,因为它反映了真实世界的 "零日 "情况。我们将我们的模型与几个基线进行比较,这些基线反映了不使用网络流量数据的机器学习系统的最先进水平。

  • 留一法(leave-one-out,交叉验证法)

    • 为了模拟没有见过DGA家族的情况,我们通过进行 "撇开 "实验来验证我们的DGA检测模型的性能,我们在所有的DGA家族上训练模型留出一个。然后测试集完全由被撇开的DGA家族和一些从未见过的非DGA领域组成。
  • 数据集的细节

    • 本文所用数据集包括41个DGA家族和非DGA数据,共计230万个域名(101万个非DGA,128万个DGA)。在这41个DGA家族中,许多具有较高的平均smashword得分的家族在相关工作中被特别提到是困难的
    • Woodbridge等人的LSTM模型在matsnu、suppobox和beebone家族上的表现特别差,这些家族的平均粉碎词得分都高于平均水平,甚至非常大(Jonathan Woodbridge, Hyrum S Anderson, Anjum Ahuja, and Daniel Grant.2016. Predicting domain generation algorithms with long short-term memorynetworks. arXiv preprint arXiv:1611.00791 (2016).)
    • Mac等人声称matsnu与非DGA域根本无法区分,并且在他们调查的所有算法中,对nymaim DGA的表现都非常差,而nymaim DGA与我们这里使用的gozi DGA非常相似。因为我们的模型是专门设计来关注那些被认为是更困难的DGA系列的,所以我们将关注这些系列。(Hieu Mac, Duc Tran, Van Tong, Linh Giang Nguyen, and Hai Anh Tran. 2017.DGA Botnet Detection Using Supervised Learning Methods. In Proceedings of theEighth International Symposium on Information and Communication Technology(SoICT 2017)
  • 基线模型。

    • 我们希望将我们提出的模型的性能与现有的和基线方法进行比较。因此,我们将我们的模型与其他四个模型进行比较,现在我们介绍一下。其中两个是简单的基线模型,有和没有WHOIS信息,另外两个是基于LSTM架构的,代表了Woodbridge等人最密切相关的先进工作。
      1. lr-tfidf:使用2-grams从域名中提取的TF-IDF特征的逻辑回归。这里没有使用任何WHOIS方面的信息,所以这个模型提出了一个只使用域名的可重复的基线。、
      2. r-tfidf-aug:使用2-grams从域名中提取的TF-IDF特征进行逻辑回归,并使用WHOIS特征进行增强。这是一个使用域名和侧面信息(WHOIS特征)进行分类的合理基线。
      3. glrt-lstm:一个只建立在完整域名上的GLRT LSTM模型(没有侧面信息)。由于使用了GLRT,这可以被认为是对Woodbridge等人[43]的模型的一个轻微的改进。
      4. glrt-lstm-aug:一个只在完整域名上建立的GLRT LSTM模型,然后作为逻辑回归模型的输入,并对WHOIS特征进行了增强。
  • 训练和实施细节。

    • lr-tfidf和lr-tfidf-aug模型由scikit-learn[34]实现,三个基于LSTM的模型由Keras[9]使用TensorFlow后端[1]实现。每个LSTM模型使用500个LSTM单元,训练了100个epochs(对数据集的传递),使用RMSprop优化器提前停止,丢弃率为0.2。在我们的设置下(一个nVidia GeForce GTX TITAN X),每个LSTM模型大约需要8-10个小时来训练。在我们的实验中,我们发现改变优化器对结果模型的影响不大,而且我们发现增加或减少LSTM单元的数量会稍微降低性能。总的来说,我们的模型似乎对超参数的选择比较稳健。
  • 图4显示了四个数据集的接收操作特征曲线(ROC曲线),其中smashword得分最高。从图中我们可以看到,split-glrt-lstm-aug模型(我们提出的模型)优于其他每个模型,在较低的假阳性率下提供更好的性能。例如,在困难的Matsnu系列上,当假阳性率被选为0.5%时,split-glrt-lstm-aug模型的真阳性率为95%,而次好的模型(lr-tfidf-aug)的真阳性率只有70%。

image-20220209104220881

  • 在典型的应用场景中,我们通常只关心在假阳性率小于或等于1%(FPR≤0.01)时运行分类器。因此,我们用部分AUC[30]来研究分类器的性能,它是针对假阳性率小于给定阈值的标准曲线下面积(Area-Under-Curves,AUC)测量。在表2中,我们显示了每个模型在每个撇开一族实验中的部分AUC,按s^(-)递减排序

image-20220209105747277

  • 在最困难的DGA家族中(具有大的s¯(-)),所提出的split-glrt-lstm-aug可靠地大大超过了所有其他比较的模型。这是我们工作中最感兴趣的区域,因为这些家族很难被发现--即使有WHOIS数据。这些困难的家族中的每一个都产生了类似于英语单词的域名;见表1。请注意,lr-tfidf-aug模型和glrt-lstm-aug模型都可以访问WHOIS特征;然而,只有split-glrt-lstm-aug能够利用这些特征,为高s^(-)的家族提供良好的性能。
  • 对于s^(-)较低的 "简单 "家庭,即生成的域名通常看起来更像随机字符,只用域名本身的文本就能更可靠地进行分类;因此,glrt-lstm模型在这种情况下占优势。
  • 该模型似乎可以可以很好地推广到不同的家族中

0x09 结论

  • 考虑了DGA域检测的问题。我们为DGA家族引入了一个复杂度的衡量标准,即smashword score,它反映了DGA生成的域与英语单词的相似程度。由于smashword分数较高的DGA家族通常构成了更大的检测难度,我们使用广义似然比测试(GLRT)建立了一个由循环神经网络(RNN)组成的新型机器学习模型,并通过包括WHOIS信息等侧面信息的逻辑回归模型增强了这些模型。
  • 这种组合模型在具有高smashword得分的DGA族上明显优于现有的最先进的方法,如困难的matsnu和suppobox族。我们相信这个模型既可以作为一个独立的模型,也可以作为一个更大的DGA检测系统的一部分,该系统也可以包含网络流量,例如更像Pleiades系统的东西。
  • 使用的模型是专门针对基于英文单词的DGA家族的,因此对于那些看起来不像是自然域名的DGA家族来说,可能不太有效。因此,在生产环境或改进后的系统中,我们的模型可以与其他技术结合起来,这些技术对smashword分数较低的DGA家族更加有效。

总结

  1. 本文基于英文wordlist的DGA提出新的研究方向,定义一个smashword的概念,利用与英文单词的似然比来作为检测依据
  2. 使用字符级的RNN技术测试GLRT,引入WHOIS信息作为侧面验证信息
  3. 使用留一交叉验证法来进行实验,实验证明在一些更贴近英文单词的DGA上效果明显
  4. 缺点:与英文单词相似度低的DGA检测效果差、基于其他语言规则的DGA效果差
posted @ 2022-02-16 08:38  王二狗喵喵喵  阅读(605)  评论(0)    收藏  举报