• 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

基于动态插桩的网络功能软件性能测量方法

贾茹, 姜海洋, 李振宇, 谢高岗

贾茹, 姜海洋, 李振宇, 谢高岗. 基于动态插桩的网络功能软件性能测量方法[J]. 计算机研究与发展. DOI: 10.7544/issn1000-1239.202440228
引用本文: 贾茹, 姜海洋, 李振宇, 谢高岗. 基于动态插桩的网络功能软件性能测量方法[J]. 计算机研究与发展. DOI: 10.7544/issn1000-1239.202440228
Jia Ru, Jiang Haiyang, Li Zhenyu, Xie Gaogang. Dynamic Instrumentation Based Performance Measurement for Software Based Network Functions[J]. Journal of Computer Research and Development. DOI: 10.7544/issn1000-1239.202440228
Citation: Jia Ru, Jiang Haiyang, Li Zhenyu, Xie Gaogang. Dynamic Instrumentation Based Performance Measurement for Software Based Network Functions[J]. Journal of Computer Research and Development. DOI: 10.7544/issn1000-1239.202440228
贾茹, 姜海洋, 李振宇, 谢高岗. 基于动态插桩的网络功能软件性能测量方法[J]. 计算机研究与发展. CSTR: 32373.14.issn1000-1239.202440228
引用本文: 贾茹, 姜海洋, 李振宇, 谢高岗. 基于动态插桩的网络功能软件性能测量方法[J]. 计算机研究与发展. CSTR: 32373.14.issn1000-1239.202440228
Jia Ru, Jiang Haiyang, Li Zhenyu, Xie Gaogang. Dynamic Instrumentation Based Performance Measurement for Software Based Network Functions[J]. Journal of Computer Research and Development. CSTR: 32373.14.issn1000-1239.202440228
Citation: Jia Ru, Jiang Haiyang, Li Zhenyu, Xie Gaogang. Dynamic Instrumentation Based Performance Measurement for Software Based Network Functions[J]. Journal of Computer Research and Development. CSTR: 32373.14.issn1000-1239.202440228

基于动态插桩的网络功能软件性能测量方法

基金项目: 国家重点研发计划项目(2022YFB2901305);国家自然科学基金项目(62072430).
详细信息
    作者简介:

    贾茹: 1993年生. 博士研究生. 主要研究方向为网络功能虚拟化、网络测量和性能优化

    姜海洋: 1982年生. 博士,副研究员. 主要研究方向为软件定义网络、智能运维、网络安全、高效数据面

    李振宇: 1980年生. 博士,研究员. 主要研究方向为网络体系结构与系统、网络测量

    谢高岗: 1974年生. 博士,研究员. 主要研究方向为互联网体系结构与系统、分布计算系统

    通讯作者:

    谢高岗(xie@cnic.cn

  • 中图分类号: TP393

Dynamic Instrumentation Based Performance Measurement for Software Based Network Functions

Funds: This work was supported by the National Key Research and Development Program of China (2022YFB2901305) and the National Natural Science Foundation of China (62072430).
More Information
    Author Bio:

    Jia Ru: born in 1993. PhD candidate. Her main research interests include Network Function Virtualization, network measurement and performance optimization

    Jiang Haiyang: born in 1982. PhD, associate professor. His main research interests include Software Defined Network, AIOps, network security, efficient data plane

    Li Zhenyu: born in 1980. PhD, professor. His main research interests include network architecture and systems, Internet measurement

    Xie Gaogang: born in 1974. PhD, professor. His main research interests include Internet architecture and systems, distributed computing systems

  • 摘要:

    网络功能(network function,NF)软件化为新型网络场景和应用的实现与部署提供灵活性. 然而,相较于专有硬件,网络功能软件的程序结构和运行环境更复杂,导致短时吞吐异常、长尾时延等各种性能问题,影响用户体验. 当出现性能问题时,需要快速通过性能测量,定位问题所在模块,确定问题产生的原因. 面对NF软件复杂的运行环境、日益膨胀的代码规模、问题根因的复杂多样等问题,粗粒度性能测量已经无法满足性能问题定位和分析的需求,急需高效的细粒度NF软件性能测量方法. 当前NF软件性能测量主要分为基于采样和基于插桩2类方法. 通过实际测量分析证明了基于采样的性能测量方法不适用于细粒度NF软件的性能测量,而基于插桩的方法可以满足细粒度测量的功能需求,但会产生大量的额外测量开销,影响测量准确度. 为此,提出了动态库插桩和函数级快速断点相结合的函数级动态插桩方法:和静态库插桩相比,动态库插桩可以在NF软件运行过程中实时按需打桩,解决了静态库打桩的灵活性问题;和传统快速断点相比,函数级快速断点的插桩开销平均降低了70%. 在此基础上,设计并实现了数据包级的NF软件性能测量方法LProfile,基于轻量化探针和存储优化等技术进一步减少测量开销. 对比基线方法TAU,LProfile降低了82%的单点测量开销.

    Abstract:

    Softwareization of network function (NF) provides flexibility for the implementation and deployment of new network applications. However, duo to more complex program structure and running environment compared with NF hardware, NF software introduces various performance issues, such as, short-term throughput anomalies and long-tail delays, degrades user experience. Once NF performance problem occurs, it is necessary to quickly locate problematic modules and determine the cause of the problems through performance measurement. Facing to NF's complex operating environments, increasingly expanding code size, and diverse root causes of problems, coarse-grained performance measurement cannot meet the requirement of problem location and analysis. More efficient fine-grained NF performance measurement is necessary. For the two types of widely used NF performance measurement methods: sampling-based and instrumentation-based, we first prove through actual measurement analysis that, the sampling-based performance measurement method is not suitable for fine-grained NF performance measurement, and the instrumentation-based method will generate a large amount of additional measurement overhead, affecting the measurement results. To this end, we propose a function-level dynamic instrumentation method that combines dynamic library piling and function-level fast breakpoints. Compared with static instrumentation, dynamic instrumentation can execute instrumentation on demand in runtime. It is more suitable for use in the production environment. Our dynamic instrumentation method reduces the instrumentation overhead by an average of 70% compared to baseline fast breakpoints. On this basis, we design and implement the packet-level NF performance measurement method LProfile, based on lightweight probes and storage optimization. Compared with TAU, a general-purpose performance measurement tool, LProfile reduces the single-point measurement overhead by 82%.

  • 大部分网络攻击通过域名系统来实现灵活的资源访问和命令传输功能,恶意域名识别也成为网络入侵检测系统中用于发现网络攻击事件的重要组织部分[1]. 恶意域名被作为重要的安全威胁情报指标被配置到网络入侵检测系统中,通过对域名请求内容的匹配与分析来快速识别恶意域名. 目前常见的网络攻击[2],例如僵尸网络、恶意软件、钓鱼攻击等都需要利用恶意域名来实施攻击. 一旦发现恶意域名请求,网络入侵检测系统将拦截恶意域名请求,对网络攻击流量实施阻断. 为了躲避网络入侵检测系统的拦截,攻击者会利用DGA域名生成算法短时间内生成大量恶意域名,且仅使用其中小部分域名与资源服务器进行通信. 例如飞客蠕虫病毒Conficker.C每天能够生成5万个域名[3],将其分布在113个顶级域名(TLD)中. 攻击者只需要选择一个或者一些生成域名来实施攻击,但对于网络入侵检测系统来说,想要拦截攻击则需要阻止所有的域名,这对于网络入侵检测来说是一个巨大的挑战[4].

    为了能够检测复杂多变的恶意域名,研究人员探索利用机器学习技术来对域名特征进行分析与识别[5]. 研究人员根据域名自身特点,从域名内容中提取语义特征、字符特征[6]等,有的工作则进一步提取域名的解析特征与注册特征,通过对域名多维特征的融合来试图检测恶意域名. 现有的检测方法按特征可分为基于字符的方法[7],其利用合法域名与恶意域名在字符分布上存在的差异进行检测;基于注册信息的方法[8],使用域名的注册时间,别名记录等注册信息进行检测以及基于网络数据包的方法[9],通过分析网络环境中与域名系统(domain name system,DNS)流量进行检测. 然而基于注册信息的方法需要查询域名的WHOIS信息和域名解析信息,基于数据包的方法需要收集网络环境中流量包,两者均需要较大的时延导致其难以用于实时监测系统. 其次域名注册者可按个人意愿隐藏域名相关信息使得其不可被查询,难以收集到全部域名的完整数据信息[9]. 近些年来,随着人工智能的发展,大量学者也尝试利用深度学习和图学习技术来检测恶意域名. 然而在实践过程中,智能化恶意域名检测精度往往无法达到令人满意的程度,与实验室测试结果存在较大的差距.

    由于网络安全领域数据的稀缺性,现有恶意域名检测方法大多针对某种类型网络攻击,实验数据集来自小型网络环境或模拟环境[5],缺乏对不同网络攻击中存在的恶意域名语义特征的分析和检测[6]. 为此,我们在中国科技网环境下开展针对不同网络攻击的恶意域名检测研究. 中国科技网是我国骨干网之一,是学术性、非盈利的科研网络. 中国科技网每天面临着大量网络攻击,在过去的1年中,共收集到33.3亿条DNS域名访问记录,其中被威胁情报标记的有650万条恶意域名记录,涉及284类网络攻击.

    基于上述数据集,本文提出一种基于域名字符语义学习的恶意域名检测技术. 相比于注册特征和解析特征,基于字符语义特征的恶意域名检测无需查询额外信息,恶意域名实时检测效率更高,同时深度学习等技术能够帮助挖掘更多的域名语义信息. 基于域名字符语义特征的恶意域名检测技术因较快地识别响应能够在发现恶意域名的第一时间进行防御,及时阻断网络攻击的进一步实施,适用于大规模高速网络环境下实时恶意域名检测场景. 通过对大规模数据集中恶意域名的字符语义特征分析,我们也发现不同类别恶意域名之间具有明显的语义区分度,同种类别的恶意域名具备字符构造上的相似性. 因此,本文探索基于语义图学习模型来实现高效的恶意域名检测.

    本文首先提出一种基于字符语义相似性的域名关联图模型,该图采用基于域名差异的图消息传播机制. 具体而言,本文发现同类家族恶意域名往往使用相同的生成算法批量产生恶意域名,使得该类域名在语义上具有一定的相似性,而不同类家族恶意域名拥有不同的语义特征. 鉴于此,提取了各节点域名的12种语义特征,利用域名相似关系来构建关联图模型. 同时在图消息传播时使用多头注意力机制学习域名语义图节点不同维度的语义特征.

    进一步,利用基于Transformer的编解码器对域名字符语义进行关键特征提取. 由于恶意域名具有较长的字符构造,传统的字符编码器往往仅捕获域名字符的局部关系,难以对于长域名字符关系进行有效的表示. 本文提出的编码器不仅能够捕获域名字符语义的局部关系,也能够捕获域名字符语义的全局关系,实现对各类域名字符语义的级联表示,从而将注意力集中在域名的关键特征.

    最后,利用关键特征实现基于注意力图神经网络的恶意域名检测模型. 具体的,关键特征被输入到基于注意力的图神经网络,获得节点的嵌入表示向量,进而将嵌入表示向量输入到由卷积神经网络(CNN)、长短期记忆神经网络(LSTM)以及稠密层网络(DENSE)组成的分类器. 利用激活函数softmax计算每一个域名类型的概率值,将概率较高的输出值作为最终的分类结果.

    为了验证本文模型的高效性,利用大规模数据集开展实验评估,从AlexTop域名数据集中采集到了10万的白名单域名,从中筛选出9万的合法域名,从科技网流量数据集中选取了8万左右的黑名单域名来进行模型训练. 实验结果显示本文提出的恶意域名检测模型在不同类型恶意域名的数据集上可以取得平均96%的准确率和97%的召回率,相比于其他相同领域最好的恶意域名检测模型,能够提升2%的准确率和2.5%的召回率. 此外,实验过程中,引入了模型自演进机制,短时间内检测模型能够利用迁移学习思路来对参数进行局部训练,避免模型老化问题,增强了检测系统的鲁棒性.

    主要贡献如下:

    1)提出基于语义图学习的恶意域名检测技术,利用域名字符语义相似性原理来构建域名语义图模型,实现对不同网络攻击类型的恶意域名高效检测.

    2)利用中国科技网环境中的大规模恶意域名数据集进行实验,结果显示本文提出的恶意域名检测模型能够在准确率和召回率方面较高的精度,可以应用于大规模高速网络环境下的网络攻击入侵检测系统中.

    3)提出一种自演进的恶意域名检测模型,利用迁移学习思想来提升恶意域名检测模型的自我更新、自我学习能力,增强了网络入侵检测系统的鲁棒性.

    近年来,如何更有效地对恶意域名进行检测得到了诸多学者的关注[10]. 恶意域名检测算法根据其原理可以分为3类:基于域名语义信息的机器学习检测算法、基于域名通信特征的检测方法和基于深度学习的检测方法.

    基于域名字符进行语义分析的检测方法是最早的也是目前最成熟的检测方法,其原理是分析域名的字符组成特点,比较合法域名和恶意域名之间的字符级特性实现恶意域名检测.

    在基于语义的检测方法中,Yadav等人[11]利用字母数字字符和映射到同一个IP地址集的所有域中的双字符分布提取KL距离、编辑距离及Jaccard度量,以实现在ISP级的数据检测. Alessandro等人[12]从域名字符串中提取n-gram特征,测试了不同机器学习算法的检测效果,发现仅利用域名的词汇特征便可达到很高的准确性. Zhao等人[13]提取了11个URL统计特征,集成了多个弱分类器提高了恶意域名检测的泛化能力. Nguyen等人[14]依靠域名特征分布的相似性来消除噪声并对相似的域名进行分组,使用了一种协同过滤和基于密度的聚类算法进行分组方法,实现了对DNS流量日志数据的恶意域名分类和检测. 此外,Van等人[15]提出一种新的检测思路,对域名数据选择融合中性集合,用于对合法域名、恶意域名和不确定性域名的分类,减少了对合法域名的错误检测的情况. 但是上述算法特征维度小,分类器简单,适应性不强.

    用户端恶意软件在和C&C服务器进行通信时,其攻击流程会呈现规律性的生命周期和查询模式. 因此一些研究设计了将域名解析信息及通信行为进行结合的检测算法.

    Bilge等人[16]提出恶意域名检测系统EXPOSURE,通过被动分析DNS数据,总结了基于时间、流量包、TTL、域名字符统计4组特征,之后使用决策树进行分类. EXPOSURE系统在17个月的运行时间内检测出超过10万的恶意域名. Manadhata等人[17]利用恶意软件通信的固有结构建立主机域图,并使用图推理的方法实现恶意域名检测. Sun等人[18] 对DNS场景进行建模,构建异构信息网络,实现了对未知恶意域名的检测. Cheng等人[19]主动探测域名的WHOIS注册信息并提出使用一种基于AdaBoost的轻量级恶意域名检测方法,在域名注册阶段实现防御. Antonakakis等人[20]考虑到不存在域名查询将产生NXDomain响应,提出结合了聚类和分类的检测算法. 上述算法依赖于更多的辅助信息,但无论是在线还是离线检测,很多信息都难以完全收集.

    近年来,深度学习在网络安全领域的应用也越来越广泛. Vinayakumar等人[21]通过分析局域网中的DNS数据日志,评估了递归神经网络,长短期记忆网络和其他传统的机器学习分类器. 与经典的机器学习分类器相比,基于深度学习的方法表现较好. 深度学习可以从域名本身等提取深层次特征,从自然语言处理的角度来看,开展基于深度学习的恶意域名检测已经成为恶意域名检测最流行的发展方向.

    Park等人[22]从精心标记的数据集中挑选特征,并使用自编码器方法以无监督的方式实现恶意域名检测. Ma等人[23]针对域名语义信息提取的问题,提出了一种基于Doc2vec和混合网络的恶意域名检测模型DLR. DLR使用优化的编码构造词向量,之后将双向LSTM网络和双向RNN网络进行串联融合,提高了检测精度. Jiang等人[24]提出了GNN-GRU-Attention检测模型,使用CNN神经网络提取域名空间特征,然后利用GRU神经网络提取域名时间特征,最后利用注意力机制提高域名的检测速度. Yang等人[25]利用隐蔽生成算法SDGA域名字符级特征,提出了一种用于检测恶意域名的异构深度神经网络框架HDNN. 该算法采用改进的并行CNN架构和基于注意力的双向长短期记忆架构来检测隐藏度较高的恶意域名.

    综上所述,现有检测方法已经对某些类型的恶意域名产生良好的检测效果,但是近年来随着僵尸网络、DNS隧道等攻击类型的增加,现实的网络流量场景中出现了越来越多的新型恶意域名. 不同的恶意域名之间存在较大差异,如欺骗用户点击链接的钓鱼域名与合法域名在构造上具有相似性,而恶意软件域名具有较大的长度和字符信息熵与合法域名不同. 关于如何对不同域名进行区分目前还缺乏有效的方法,尤其是针对大规模网络环境中的多种攻击类别域名的检测,需要根据其不同的语义特点构建检测模型.

    为了对不同攻击类型和犯罪团队所使用的恶意域名语义特征进行分析,本文从2022年4月至2023年4月采集到了33.3亿次DNS域名请求记录. 利用威胁情报库对监测到的恶意域名进行标记,共识别出约650万的恶意域名记录,涉及284种攻击类型. 基于商业情报库的恶意域名检测难免存在一定的误报率和漏报率,这主要是因为商业情报库中的恶意域名往往来源于多源安全产品和数据,数据质量存在一定的差异性. 因此,本文对恶意域名进行了进一步的校准,对访问量大的恶意域名类型进行了多源威胁情报对比校准,最终选择出180 811个恶意域名,涉及4大类恶意域名. 具体包括71 603个钓鱼类域名、20 206个恶意软件类域名、82 231个垃圾邮件类域名以及6 771个木马类域名. 同时,选择前10万的AlexTop域名,对这些域名进行连通性测试,过滤掉当前未使用的合法域名. 本文使用了2种连通性测试方法:向测试域名发送PING报文,收到响应报文的域名作为潜在合法域名;通过NsLookup查询域名IP地址,对IP地址使用Nmap探测,存在开放端口的为潜在合法域名. 最后对潜在合法域名进行校验,使用微步在线情报、奇安信情报、腾讯威胁情报中心对潜在合法域名进行情报匹配,获得共9万的合法域名.

    域名语义特征提取是恶意域名检测的基础,本文调研了流行的恶意域名检测语义特征,王伟等人[26]提取了5大类特征,包括9个字符子特征,并使用GBDT方法进行分类;刘善玲等人[27]通过分析提取了4个基本字符特征,使用随机森林分类;蒋鸿玲等人[28]通过统计分析,提取了6个字符特征,使用多种机器学习算法分类;张洋等人[29]提取了11个词法特征使用随机森林进行分类. 通过对数据集中的域名语义进行统计分析,本文选择语义区分度较大的12维特征,如表1所示.

    表  1  统计分类特征
    Table  1.  Classification Features Statistics
    特征 说明 来源
    长度 所有字符长度 文献[26-29]
    数字占比 数字数量占总长度比例 文献[26-29]
    连续数字最大长度 连续的数字的最大长度 文献[2629]
    数字字母转换次数 数字-字母,字母-数字比例 文献[29]
    元音占比 元音数量占总长度比例 文献[2628]
    连续元辅音占比 元音-辅音,辅音-元音比例 文献[26]
    辅音占比 辅音数量占总长度比例 文献[26]
    连续辅音占比 连续的辅音字符的比例 文献[26]
    特殊字符占比 除去数字和字母的比例 文献[29]
    唯一字符占比 不重复字符的比例 文献[28]
    分级数 按点分割的字符串数量 文献[29]
    信息熵 字符计算的信息熵 文献[26-29]
    下载: 导出CSV 
    | 显示表格

    统计发现合法域名和恶意域名在不同统计特征的分布上具有一定的区分度,同时不同类型域名在各个特征上的区分度不同,如图1所示.

    图  1  域名语义分布
    Figure  1.  Distribution of domain name semantic

    1)域名长度:为了可读性和方便记忆,合法域

    名的长度一般不会太长,并且具有明确的定义;而恶意域名则以随机算法辅助生成具有较大的随机性. 此外,由于注册时系统会对同名域名进行冲突检测,攻击者为了避免和正常域名冲突,一般会将恶意域名设置较长的字符串. 如图1(a)所示,大规模数据集测量结果显示,合法域名的字符串长度均值为13,恶意域名字符串长度均值则超过20,其中恶意软件和木马类攻击的恶意域名长度均值超过了50.

    2)域名中数字占比:自动化域名生成算法往往采用字符与数字组合生成原则,因此恶意域名中包含大量随机生成的无意义数字,而合法域名中数字占比往往较小. 图1(b)中通过对各类域名数字占比的分析可以发现合法域名数字占比为仅1%,而恶意域名数字占比高达7%,其中钓鱼类和垃圾邮件类的恶意域名占比在10%左右.

    3)域名中连续数字最大长度:正常域名为表达一定的含义,往往会包含部分数字,而恶意域名中连续数字的最大长度通常较大,并且没有特定含义. 图1(c)中合法域名连续数字长度为0.1,而恶意域名连续数字长度在1.5~2.0.

    4)字母和数字的转换次数:正常域名中数字和字母需要表达意义,但是连续的数字字母转换不符合语义特征. 恶意域名的字符随机生成,转换次数偏多. 如图1(d)所示,合法域名有很少的反转情况,恶意域名平均具有1~2次的反转.

    5)域名中元音占比:为了满足可读性,合法域名通常包含单词或者单词的组合,而恶意域名是随机生成的,包含的元音字母则相对较少. 如图1(e)所示,实验结果显示合法域名的元音占比超过30%,而恶意域名元音占比在20%~25%之间.

    6)域名中连续元辅音占比:恶意域名通常会遵循某种特定的命名模式,可能包含一些常见的字符串片段、特殊字符、或者具有特定长度和结构的字符序列. 而合法域名为了更好的可读性,包含较多的元音和辅音组合. 如图1(f)所示,实验结果显示合法域名的元辅音占比超过40%,而恶意域名元音占比在20%~35%之间.

    7)域名中辅音占比:合法域名通常使用英文单词组合生成容易基于记忆的字符串,其辅音和元音的占比是相对均衡的. 而恶意域名倾向于采用特定的命名方式而包含了大量的辅音字符. 如图1(g)所示,实验结果显示合法域名的辅音占比不超过60%,而恶意域名元音占比在60%~90%之间.

    8)域名中连续辅音占比:算法生成的恶意域名中,连续辅音的分布可能会显示不均匀性,而连续辅音在合法域名中出现的频率更低. 如图1(h)所示,实验结果显示合法域名的连续辅音占比不超过50%,而恶意域名连续辅音占比在50%~75%之间.

    9)域名中特殊字符占比:为模仿合法域名混淆用户,恶意域名倾向于使用包含更多的特殊字符. 而大多数合法域名通常只包含少量的特殊字符. 如图1(i)所示,实验结果显示合法域名的特殊字符占比不超过10%,而恶意域名特殊字符占比在10%~30%之间.

    10)域名中唯一字符占比:恶意域名倾向于包含更多的唯一不重复字符以用于隐藏其真实企图. 为了满足可读性,合法域名通常包含单词或者单词的组合,其不重复字符相对较多. 如图1(j)所示,实验结果显示合法域名的唯一不重复字符占比超过60%,而恶意域名元音占比在30%~50%之间.

    11)域名信息熵:合法域名通常具有一定的规律性和结构性,如公司名称、品牌、地点等,而恶意域名倾向于采用更加随机和混淆的命名模式以增加其隐蔽性. 如图1(k)所示,实验结果显示合法域名的信息熵不超过3.5,而恶意域名信息熵在3.5~5之间.

    12)域名分级数:为了实施随机子域名等攻击,恶意域名往往会有更多的级数,而合法域名的子域名则相对较少. 如图1(l)所示,大部分合法域名往往只有1个分级,而恶意域名则拥有2~4分级.

    虽然合法域名和恶意域名具有一定区分度,但不同类型的域名语义区分度有所偏重. 合法域名具有较小的字符串长度,较短的最大连续数字长度以及最小的数字字母反转次数;恶意软件域名具有较大的域名字符串长度,较大的分级数以及较大的连续数字最大长度. 钓鱼攻击类域名具有较大的数字占比以及较多的数字字母反转次数;木马攻击类域名则具有最小的元音占比. 从统计结果看,各类域名特征都有较大的标准差,使得待检测恶意域名在某些语义特征下区分度不高. 针对某类恶意域名检测较好的算法往往对其他类型恶意域名检测效果差. 因此对不同类型的恶意域名需要关注不同类型的语义信息.

    统计分析发现,域名数据总体在不同语义特征上区分度明显,同类域名存在相似性语义分布,域名数据之间也存在着重叠的置信度区间. 复杂域名的数据分布情况对检测模型提出了更高的要求,训练样本依赖较大参数量模型以拟合不断变换的特征. 模型需长时间训练以拟合复杂样本输入. 同时复杂的模型结构带来了现实检测时解释性差,难以迁移的问题.

    本文分析域名的语义特征,通过域名语义相似度聚合构建域名语义图. 节点融合同类域名特征以实现特征增强效果. 增强的域名特征输入分类器实现高效的恶意域名检测. 具体而言,本方案优点如下:

    1)通过语义相似性划分,同类域名构成邻居节点,增强了图神经网络域名语义特征,同时增加模型的可解释性及检测效果.

    2)待检测域名样本与语义图节点实时构建连接,缓解了新型恶意域名样本少造成的模型拟合难问题.

    3)数据分布变化时,可以通过分类器微调实现快速演进的效果.

    即使同样存在基于域名语义相似度进行恶意域名检测的研究,大多也通过简单域名字符间距离度量方法以及深度学习模型区分域名语义结构. Yadav等人[11]计算合法与恶意域名字符相似度进行分类,发现Jaccard指数在多数情况下表现最佳,尤其处理较大域名集. Ma等人[23]利用Doc2vec算法对域名进行向量化,通过子域名出现频率关系度量不同域名相似性,之后利用Bi-LSTM和Bi-RNN进行分类. 相较而言,本文首次利用域名语义相似度构建域名语义图,语义图结构直接反映域名间相似度,避免了复杂的深度神经网络融合. 同时语义图节点编码域名的整体语义特征,增强了恶意域名检测的鲁棒性. 快速的域名语义关系构建存在噪声,但本文利用样本经验池技术对构建的动态语义图加权采样,关注频繁出现的域名相似度关系,缓解了噪声干扰.

    本文考虑同种家族的恶意域名在字符构成上可能具有相似性,而利用这种相似性进行特征聚合可以提升该类恶意域名的检测效果. 因此,本文首先提出一种基于语义图学习的恶意域名检测模型(semantic graph neural networks,SGNN),SGNN首先过滤掉合法域名和恶意域名构造的相同字符以减少噪声. 其次提取域名语义特征,聚合相似域名节点构建域名语义图. 接着基于自注意力机制对域名进行深度编码,获得域名语义嵌入,并使用多头注意力图神经网络对DNS流量中的域名进行特征融合,最后使用深层分类器网络对融合特征分类识别. 实际上,SGNN主要包括域名字符噪声去除、域名语义图构建、多头注意力图神经网络和分类识别4个模块,系统框架图如图2所示.

    图  2  SGNN系统架构
    Figure  2.  Architecture for SGNN system

    恶意域名由加密算法生成的一些伪随机字符串组成. 这些域名具有随机性,用于逃避恶意域名的黑名单检测技术,其形态和云服务负载均衡合法域名具有很大相似性. 因此基于黑名单规则匹配的检测方法缺乏混淆域名检测能力. 为了降低误报,采用域名结构相似度的度量进一步优化域名语义图节点,过滤和恶意域名类似的合法域名结构.

    1)Jaro距离

    本文计算域名字符串间的距离,将相似度较大的结构进行过滤. 在现有的距离度量算法中使用Jaro距离相似性度量方法.Jaro距离适用于短字符串实时检测,计算方法如式(1)所示:

    $$ Jaro({s_1},{s_2}) = \left\{ {\begin{aligned} &{0,\;\;m = 0,} \\ &{\frac{1}{3}\left( {\frac{m}{{\left| {{s_1}} \right|}} + \frac{m}{{\left| {{s_2}} \right|}} + \frac{{m - t}}{m}} \right),\;\;{\text{otherwise}},} \end{aligned}} \right. $$ (1)

    其中$ \left| {{s_i}} \right| $是字符串${s_i}$的长度,$m$是匹配的字符数量,$t$是字符转换的次数. 当且仅当${s_1}$和${s_2}$的字符匹配,且距离小于匹配窗口时,认为存在匹配.Jaro算法匹配滑动窗口中相同字符,强调局部相似度,适用于计算不同长度域名间存在的局部相似性.

    2)域名相似度计算

    对于域名${d_1}$和域名${d_2}$,计算两者间相似度为$Jaro( {d_1}, {d_2} )$. 恶意域名家族emkei的恶意域名“emkei.cz”和合法域名“emkei.com”共享超过70%的字符. 高相似度域名结构导致域名语义混淆,因此过滤域名中的相似字符后提取语义特征. 具体而言,设置消除阈值,消除相似度大于消除阈值域名中匹配字符序列. 合适的消除阈值通过训练获得.

    本文利用同类型恶意域名家族之间相关性进行节点聚合. 通过将域名和现有域名图节点对比,实时构建域名语义图,如算法1所示:

    算法1. 基于相似度的语义图构建算法.

    输入:域名d,子图大小M

    输出:语义图节点列表G,边矩阵E.

    Gid=(Gd);

    ② if |G|=1 then

    ③  return GE.

    ④ end if

    ⑤ if |G|=2 then

    ⑥  dst=calDistanceG0G1);

    ⑦  E←(0,1,dst);

    ⑧  E←(1,0,dst);

    ⑨  return GE.

    ⑩ end if

    ⑪ for nodeInfo in E do

    ⑫  for 周边节点 childnodeInfo in E do

    ⑬   childnodeidschilddist=childnodeInfo

    ⑭   dst=calDistanceGidchildnodeids);

    ⑮   if 周边节点数量<M then

    ⑯    nodeInfo←按照距离插入(Giddst);

    ⑰   end if

    ⑱   loc=calLocdstE);

    ⑲   if loc<M then

    ⑳    nodeInfolocGiddst);

    ㉑    删除nodeInfo最后一项;

    ㉒   end if

    ㉓  end for

    ㉔ end for

    ㉕ for nodeids in G do

    ㉖  nodeFea=nodeids特征;

    ㉗  dst=calDistancednodeFea);

    ㉘  if 周边节点数量<M then

    ㉙   nodeInfo←按距离插入(Giddst);

    ㉚   continue;

    ㉛  end if

    ㉜  nodeGinfos=周边节点索引及距离;

    ㉝  loc=calLocdstnodeGinfos);

    ㉞  if loc<M then

    ㉟   nodeGinfolocGiddst);

    ㊱   删除nodeGinfo最后一项;

    ㊲  end if

    ㊳ end for

    ㊴ return GE.

    算法1旨在实时计算域名节点的相似周围节点列表. 首先,新的域名被添加到域名分组的节点列表中. 域名节点具有周围最近节点分组,存储最近域名节点以及节点间的距离信息. 距离calDistance计算方法为特征归一化后的欧氏距离,如式(2)所示. 其中dc表示当前节点,de表示环境节点,n表示环境节点数量. 若域名周围节点数小于最大存储大小M,则直接插入节点;若大于则按序插入并删除最远周围节点. 同时算法计算新加入节点和当前节点间距离以构建新节点的最近周围节点分组. 算法运行时,可实时获得每个节点的相似周围节点.

    $$ calDistance = \sum\limits_{k = 0}^n {(d_{\text{c}}^k - d_{\text{e}}^k)} /n. $$ (2)

    现实环境产生大量不相干的域名数据导致短时间内采集的域名距离较大. 为了增加模型的鲁棒性,构建全局的域名动态语义图,将新节点实时加入域名语义图. 同时从全局域名语义图中以度为权重随机抽取域名节点,利用抽取节点作为中心节点构建域名语义图. 新节点加入时,同样将其作为中心节点构造语义图. 最后将构建的语义图放入经验池作为模型训练样本. 训练时,将从经验池中批量抽样域名语义图训练.

    高相似度域名实体表明同类型的更大可能. 以此为基础构建以域名相关性为特征传播权重的图神经网络.

    为了便于记忆,合法域名往往使用英文简写或者汉语拼音构造,域名的字符上下文存在相关性. 为了提取域名上下文特征,本文探索基于Transformer的编码模型[30],相较于其他模型(one-hot[31],word2vec[32]等),Transformer特征抽取能力强,且拥有自编码上下文双向建模的功能. Transformer编码器由自注意力层和前馈网络层组成,先将域名特征输入自注意力层编码,同时关注于句中其他的词. 解码器中包括自注意力层,编码解码自注意力层和前馈网络层,增加对句子的理解. Transformer网络可以并行处理数据,而常见的RNN网络无法并行展开,效率较慢. 此外Transformer网络输入和输出来自同一序列,更好地描述全局消息. 本文结合Transformer模型结构提出一种基于自注意力机制的域名编码方法.

    首先,对域名中的字符概率生成掩码,对掩码位置的域名字符进行替换,生成带有掩码的域名. 利用带有掩码域名生成原始域名,模型具有更好的编码效果. 其次,将原始域名作为解码器的输入,掩码域名作为编码器输入训练. 最后,将训练后的编码器用作域名的编码器. 以百度域名为例:①对于域名www.baidu.com中的字母b和u进行概率掩码处理,生成[0,0,0,0,1,0,0,0,1,0,0,0,0],得到掩码域名www.[mask]aid[mask].com. ②将掩码编码输入到编码结构中,获得输出o. ③在解码器字符串前添加前置符号[bos],将[bos]输入解码器第1层,并使用原始域名作为预测输出. 对于第1层输入[bos]以及o,预测域名首个字符“w”,对第2层输入[bos],字符“w”以及o,预测域名的第2个字符“w”. ④以此类推,最后1层输出结果作为原始域名预测. ⑤通过输出和标签对比计算模型损失. ⑥反向传播更新模型参数. 如图3所示:

    图  3  域名编码流程
    Figure  3.  Encoding process of domain name

    尤其针对字典类恶意域名,模型使用部分字符预测出字典其他字符,提升了模型编码的鲁棒性. 之后使用图神经网络对域名编码向量进行特征增强.

    通过基于语义权重的多头注意力图神经网络对域名特征进行卷积,网络结构如图4所示.

    图  4  聚合加权注意力
    Figure  4.  Aggregate weighted attention

    1)路径权重

    对域名$d$,计算相似性获得其邻居节点集合$\left\{ {{d_1},{d_2}, … ,{d_n}} \right\}$,以及相似度集合$\left\{ {{s_1},{s_2}, … ,{s_n}} \right\}$. 相似度大小决定了消息更新的比重. 相似度越高的域名,期望学习更多特征. 定义特征传播函数$ H\left( d \right) = \sum \left( {d \times s} \right) $,作为传递消息.

    2)多头语义消息

    为丰富域名节点的邻居节点d 的传递消息类型,计算d多个语义特征$ \left\{ {{d_{{f_1}}},{d_{{f_2}}}, … ,{d_{{f_n}}}} \right\} $. 之后对节点进行加权求值,得到语义加权消息. 即$ {F_k} = H(d) \times {d_{{f_k}}} $. $F$为邻居节点传递消息,$f$为域名的语义特征. 语义加权消息作为权重进行消息传递增加了域名语义信息.

    3)注意力聚合

    不同类恶意域名对语义加权消息感知不同. 比如木马域名较长,但是数字占比低于钓鱼域名. 因此,不同语义加权消息对于节点卷积结果影响不同. 以此为基础,采用注意力机制,对节点$d$的语义加权消息$ {F_k} $,计算其注意力系数$e = a\left( {d,{F_k}} \right)$,其中$e$表示节点$d$对于消息${F_k}$的关注度,$a$表示注意力卷积. 最终对注意力系数进行归一化处理,如式(3)所示:

    $$ A=\text{s}oftmax\left(e\right)=\text{exp}\left(e\right)/\sum \mathrm{exp}\left({e}'\right)\text{,} $$ (3)

    其中$A$表示归一化后的注意力,${e'}$表示注意力. 最后使用注意力权重计算语义加权消息为卷积后的节点特征.

    图神经网络消息传播融合了语义图中同类域名特征,具有更好的嵌入效果. 以此为基础,利用不同的网络结构进行卷积分类,如图5所示:

    图  5  分类器结构
    Figure  5.  Classifier structure

    首先以尺寸为3,5,7的卷积核对域名嵌入进行卷积特征提取,以获取域名字符特征间局部特征. 局部特征扁平化处理后输入LSTM网络提取前后长距离依赖,最后使用稠密层输出样本预测类别标签.

    在现实环境中,新恶意域名使得当前分类器性能下降. 为了解决高速流量环境下模型快速更新的难题,使用基于模型的迁移学习方法加快训练速度,如图6所示. 由于新恶意域名样本少,使用基于模型的迁移学习方法利用现有模型中语义图权重达到高精度训练效果.

    图  6  迁移学习结构
    Figure  6.  Transfer learning structure

    迁移训练和全训练共享全局的语义构造相似度矩阵以及域名语义图. 首先,新样本与全局的语义构造相似度矩阵计算去除噪声. 其次,添加新样本到全局域名语义图中构建关联关系,增强新样本节点特征. 迁移训练时,从全局域名语义图中抽样新节点为中心节点构造域名语义图样本,之后输入图神经网络进行特征融合. 迁移训练模型和全训练模型的图结构共享权重,通过训练分类器以适应新样本.

    实验数据集由合法域名数据集和恶意域名数据集两部分组成. 合法域名数据集从亚马逊Alexa Top域名列表中提取前10万域名,之后人工对域名进行进一步校验,从中选择9万合法域名. 恶意域名数据集包含现实环境采集的恶意域名. 在2022年4月到2023年4月的1年时间内,捕获中国科技网某个出口的DNS流量并提取流量数据包中的域名信息,之后使用置信度较高的商业威胁情报库对其进行标记,获得了来自200多个威胁种类的共18万条恶意域名. 采集的数据仅包括DNS报文中的域名请求,不涉及用户设备IP等隐私数据. 数据集信息如表2所示:

    表  2  数据集样本数量和类别
    Table  2.  Number of Samples and Categories of the Dataset
    合法域名 恶意域名
    AlexTop域名 垃圾邮件类 钓鱼邮件类 恶意软件类 木马类
    ≈90 000 82 160 70 853 20 213 6 774
    下载: 导出CSV 
    | 显示表格

    为了验证SGNN的效果,与主流的恶意域名检测方法进行了对比实验分析. 由于SGNN基于域名语义,对比方法同样基于域名语义特征. 选择同领域最好的3个相关工作进行对比,包括FANCI,n-CBDC,TF-IDF. FANCI[33]基于恶意域名和合法域名之间的字母、数字和字符分布差异检测. 从域名中提取出3组21个不同特征,即结构特征,语言特征和统计特征,之后通过实验比较选择随机森林方法分类. FANCI摆脱了研究中需要的额外上下文特征,从单个域名中提取特征并且具有较高的准确性,是机器学习方法在恶意域名检测的主流实践. Xu等人[34]提出了n-CBDC检测模型,在字符级卷积神经网络的基础上,开发出2维卷积方法应用字符级处理,设计基于n-gram的组合字符嵌入模型,使用深度神经网络分类. Vran等人[35]提出使用TF-IDF测量域名中最相关的n元语法频率,最终对比各种机器学习和深度学习模型,使用带嵌入层的LSTM分类.

    为了评价模型的检测效果,采用准确率(accuracy)、精确率(precision)、召回率(recall)、F1分数(F1-score)进行评价. 其中,准确率表示模型的效果,精度表示模型的可信度,召回率反映模型的漏报情况,F1分数验证模型的综合表现,这些指标越高效果越好.

    分别设计多类恶意域名和单类恶意域名检测实验,实验结果如表3所示.

    表  3  域名分类结果
    Table  3.  Classification Results of Domain Name
    模型 多类恶意域名数据集 单类恶意域名数据集
    垃圾邮件域名数据集 钓鱼域名数据集 恶意软件域名数据集
    准确率 精确率 召回率 F1分数 准确率 精确率 召回率 F1分数 准确率 精确率 召回率 F1分数 准确率 精确率 召回率 F1分数
    FANCI 0.8789 0.9449 0.8649 0.9032 0.9005 0.8488 0.9252 0.8853 0.8855 0.9282 0.7858 0.8511 0.9822 0.9733 0.9184 0.9451
    n-CBDC 0.9400 0.9614 0.9460 0.9533 0.9872 0.9851 0.9867 0.9859 0.9645 0.9796 0.8980 0.9370 0.9843 0.9582 0.9487 0.9534
    TF-IDF 0.9374 0.9865 0.9162 0.9483 0.9708 0.9801 0.9546 0.9672 0.9675 0.9834 0.9048 0.9424 0.9793 0.9785 0.8974 0.9362
    SGNN(本文) 0.9614 0.9696 0.9713 0.9703 0.9880 0.9825 0.9912 0.9868 0.9840 0.9712 0.9745 0.9728 0.9930 0.9746 0.9842 0.9794
    检测不同类型相同标准检测结果中,粗体为最佳结果.
    下载: 导出CSV 
    | 显示表格

    训练按照训练集和测试集7∶3的比例,从多类恶意域名数据集中随机抽取21万域名作为训练数据集,6万域名作为测试数据集.

    根据主流模型与SGNN对于合法域名和恶意域名的检测结果,SGNN可以实现96.14%的准确率、96.96%的精确率、97.13%的召回率、0.9703F1分数,整体上具有最好的检测效果,尤其模型召回率优于其他模型. 基于机器学习算法的FANCI使用域名的人工提取特征进行分类且分类算法简单,无法应对多类域名环境. FANCI模型准确率低于其余深度学习算法超过5.85%,召回率低于其他算法超过5.13%,在所有对比实验中检测效果最差. 由于合法域名具有较好的n元语法特征,n-CBDC算法使用的n-gram模型提取到丰富的域名字符间关系特征,具有较高的精确度以及较高的召回率. TF-IDF算法进一步分析了域名的词频特征,同时使用序列化模型,具有最高的检测精度,但召回率低于SGNN 5.51%. TF-IDF同样对恶意域名中存在的噪声数据不敏感. 相较而言SGNN在取得了最高的召回率的同时兼顾了检测精度,综合F1分数最高.

    现有的检测模型大多对单类恶意域名检测效果较好,面对不同类型恶意域名的混合数据时检测效果较差. 为了验证检测模型对某类域名的检测效果,本文从恶意数据集中选择数量较多的垃圾邮件域名、钓鱼域名、恶意软件域名3类数据作为单类恶意域名检测实验中的恶意域名数据集,从9万合法域名中随机抽取同等比例合法域名作为单类恶意域名检测实验中的合法域名数据集,构建的数据集情况如表4所示. 训练按照训练集和测试集7∶3的比例划分,3类恶意域名数据分别进行2分类实验. 实验结果如表3所示.

    表  4  单一数据集概况
    Table  4.  Overview of Single Datasets
    类别 垃圾邮件域名数据集 钓鱼域名数据集 恶意软件域名数据集
    良性 ≈8万 ≈7万 ≈2万
    恶意 82 160 70 853 20 213
    下载: 导出CSV 
    | 显示表格

    1)垃圾邮件域名数据集分类实验.

    由于垃圾邮件形式多样,基于域名粗粒度统计特征的FANCI算法检测效果最差. 其余使用深度学习的模型都取得了较好的效果,SGNN精确率比其余对比实验最好算法高0.08%,召回率高0.45%.

    2)钓鱼域名数据集分类实验.

    钓鱼攻击企图通过伪装可信实体诱导目标点击恶意连接,其域名和合法域名具有一定的相似性. 与垃圾邮件恶意域名检测类似,FANCI算法对比其余深度学习模型检测效果差,同时对钓鱼类域名召回率偏低. SGNN比其余对比实验模型准确度提高1.65%,召回率提高6.97%.

    3)恶意软件域名数据集分类实验.

    恶意软件域名为C&C服务器通信的DGA域名,机器学习和深度学习方法取得较好的检测效果. SGNN召回率高于其他模型超过3.55%.

    2分类实验表明现有工作可以取得好的检测效果,分别具有最好98.72%,96.75%,98.43%的准确率. 但模型无法在不同实验中保持较高召回率. n-CBDC算法对spam具有98.67%的召回率,但检测钓鱼域名时,召回率降低至89.80%,可见现有检测算法对不同类型恶意域名检测效果差别大. SGNN针对不同恶意域名检测均保持了超过98%的准确度及97%的召回率.

    通过多类恶意域名检测实验对比单类恶意域名检测实验可以看到,各算法检测效果均有所下降,说明不同类域名对算法检测造成干扰.SGNN对域名进行多类语义特征学习,使用注意力机制融合不同语义信息,保持了超过97%的召回率.

    为了验证模型中编码模块,语义分析模块以及图神经网络模块的优势,分别对模型结构替换进行对比实验.

    实验1. 为了验证本文编码模型的作用,替换编码模块为one-hot编码处理域名.

    实验2. 为了验证语义模块的作用,删除噪声消除方法以及语义相似度聚合节点构建语义图方法,按照临近时间序列节点构图.

    实验3. 为了验证分类器效果,使用全连接神经网络分类.

    实验结果如图7所示.

    图  7  消融实验结果
    Figure  7.  Results of ablation experiments

    通过实验结果发现编码模块对分类起着重要的作用,相似度计算以及域名语义特征融合对编码特征进行了增强. 替换编码模块后,模型准确率下降8.35%,召回率下降7.51%. 由于分类器针对域名编码检测,编码方法对检测效果至关重要. one-hot编码缺乏对域名词素学习,弱编码分类性能损失最为严重. 删除了语义模块后,难以检测隐藏度高的相似恶意域名,模型的召回率下降了3.62%.

    使用全连接神经网络分类,虽拥有更高的精度,超过原模型1.44%,但是召回率下降了7.77%. 高精度取决于健壮的域名字符编码模型. 缺乏域名间特征融合的模型对恶意域名拟合效果差.

    中国科技网环境需要模型快速更新以应对出现的新型恶意域名,然而新型域名构造与原有域名数据不同导致其连通性存在差异. 因此SGNN实际部署时,对模型的实际检测效果进行周期性的人工2次验证,当模型性能明显下降时,迁移学习训练.

    将数据集中的域名数据划分为4个时间段,使用时间段1的域名数据训练模型,对时间段2~4的域名数据使用迁移学习微调训练分类器. 实验结果图8所示:

    图  8  迁移实验结果
    Figure  8.  Results of migration experiments

    实验结果表明,迁移的模型可以在3个月的多类域名数据集上保持较稳定检测效果,检测准确度均超过96%.

    现实高速网络环境域名数据和实验数据分布不同[36]. 首先,现实环境域名请求存在大量混杂的合法域名及少量分散的恶意域名,恶意域名比例小且分布不均;其次,现实网络环境会不断产生新型域名,数据分布发生偏移. 为了测试上述训练模型在现实环境的检测效果,采集2023年4月的实际DNS请求数据验证.

    为验证时效性,数据采集以1周为单次采集时间窗口,连续采集4周域名数据. 每个时间窗口采集10万域名数据,最终获得共计4个时间窗口的40万域名数据. 为了评估模型性能,采用公开威胁情报及专家知识对数据集进行类别标注. 检测结果如图9所示:

    图  9  数据漂移结果
    Figure  9.  Results of data drift

    通过检测结果发现,随着检测时间逐步增长,检测精度保持在了97%左右,但召回率下降了约15%. 进一步分析发现,现实环境新型域名和模型训练域名差异大导致查全率降低. 短时间内,SGNN在真实环境中取得了可用的效果,但应对新型域名分布能力差.

    根据4.4节讨论,可以自适应地更新模型以实现模型的性能优化,更新后的模型保持一定的检测能力. 为检验该自演进方案在现实环境效果,按4.5节相同采集方法再次采集中国科技网2023年5―7月之间的域名数据,形成共8个时间窗口的80万域名数据集. 为了研究分类器微调对检测效果的影响,使用2023年4月数据训练的模型在新数据集上测试.图10展示了在各个数据集上原有分类器及迁移训练分类器的实验结果.

    图  10  演进实验结果
    Figure  10.  Results of evolutionary experiment

    迁移训练可以将1个月内的模型检测召回率维持在90%之上,保留了对新型域名的检测能力.1个月后的数据与原有数据产生较大偏差,需要全训练模型. 现实部署时,模型迁移训练满足快速调整要求. 将全训练周期设置在1个月左右,满足性能检测需求.

    此外测试了现实部署的运行时间,针对图10中原始全训练模型和7个迁移训练模型的训练和检测过程测试性能,结果如图11所示. 实验结果表明,自演进过程中方法的调整对于检测性能影响较小,自演进模型训练和检测的误差在10 s之内. 在中国科技网环境中,SGNN平均1 min的时间可完成约1万个域名的检测,基本满足网络入侵工作中的实时性要求. 与目前流行的语义检测大模型进行对比,虽然大模型在处理海量域名数据时达到了更高的精度,但产生了更高的分类时延. 本文对比了Bert类通用语义预训练大模型在相同条件下的分类实验,显示1万个域名的检测时间超过了38 min,无法满足恶意域名检测系统的实时性要求. 相较而言,语义图算法可以在保证模型较高检测精度的条件下实现快速分类.

    图  11  自演进性能测试结果
    Figure  11.  Performance Test Result of evolutionary

    为对比利用域名语义相似度进行恶意域名检测的同类研究,本文选择Yadav等人[11]利用Jaccard指数计算语义相似度并直接分类的方法以及Ma等人[23] 提出的DLR 模型深度学习的方法进行对比实验. 对比实验使用同样的恶意域名数据集并以7∶3划分训练数据集和测试数据集. 实验结果如图12所示.

    图  12  同类研究对比测试结果
    Figure  12.  Comparative test results of similar studies

    结果表明SGNN相较于其他最好对比实验方法,准确率提高了1.43%,精度提高了0.36%,召回率提高了2.48%,F1分数提高了1.48%. Jaccard指数方法通过相同的解析IP将域名进行分组,精度高于DLR方法0.14%,但由于可分组的样本相较于DLR更少,召回率降低2.27%. SGNN根据语义构建了更多的边,并通过抽样及注意力增强了对更准域名关系关注,提升了检测效果.

    为具体比较各模型的运行性能,本文测试各模型运行时间. 使用数据集中27万域名,并按照7∶3划分训练数据集和测试数据集. 针对神经网络结构的n-CBDC,TF-IDF,DLR,SGNN模型,统一训练20次epoch. 实验结果如图13所示.

    图  13  性能测试结果
    Figure  13.  Results of performance test

    Jaccard指数统计分析数据后划分阈值,用时最少. FANCI方法使用机器学习,相较于神经网络方法使用了更短的训练时间. SGNN直接构建语义关联并通过图神经网络进行语义融合. 虽然相较于机器学习算法SGNN训练时间更长,但n-CBDC,TF-IDF,DLR神经网络模型产生更大的训练和测试时延. DLR模型比SGNN多使用2倍左右的训练和测试时间. SGNN在实现最优检测F1分数的同时保持了较高的检测性能.

    SGNN超参数为噪声消除阈值和图大小. 使用相同划分数据集进行超参数对比实验,结果如图14所示.

    图  14  敏感性分析结果
    Figure  14.  Results of sensitivity analysis

    实验结果表明,当图节点大小为100或者1000时,F1分数震荡较大,无法产生稳定的分类. 这是由于关联节点数量少难以学习全局性特征. 当节点大小大于5000F1分数较为稳定. 图节点大小超参数选择鲁棒性较强,节点大小对检测F1分数影响不超过1%. 当节点大小超过10 000时,最佳阈值超参数选择为0.7左右. 当阈值超参数变化在0.2之内时,对F1分数影响在3%以内,因此噪声阈值超参数选择同样具有较强的鲁棒性.

    中国科技网内的域名采集环境相近,实验域名样本具有更多的语义相似性. 为了验证SGNN的泛化能力,采用新的公开域名数据集(https://github.com/Juhong-Namgung/Malicious-URL-and-DGA-Domain-Detection-using-Deep-Learning)实验. 该数据集的合法域名来源于Alexa,共603387个. 恶意域名来源于20多类不同的域名生成算法的域名,共832276个. 按照7∶3将该数据集随机划分为训练集和测试集,并进行对比实验. 实验结果如图15所示.

    图  15  公开数据集对比结果
    Figure  15.  Comparative results of public datasets

    实验结果表明,SGNN取得了最好的效果,可以实现99.24%的准确率、99.27%的精确率、99.19%的召回率、0.9923F1分数. 同样基于域名语义相似度算法的DLR取得了对比方法中次好的效果.DLR的双层双向深度神经网络融合了域名语义的全局特征以及长距离局部特征,但相较于SGNN,准确率下降4.2%、精度下降2.65%、召回率下降4.14%、F1分数下降3.41%. 对比实验基于Jaccard指数的方法效果最差,取得低于85%的F1分数. 由于实验数据集存在大量DGA域名,导致IP分组关联产生了大量的孤立节点.n-CBDC方法采用n-gram对域名进行字符集卷积,提取了域名丰富的语义特征,两者F1分数相差0.51%.TF-IDF和FANCI方法效果较差,F1分数低于91%. 这2类算法依赖域名的字符分布以及词频,难以应对DGA算法生成的伪装性样本.

    针对大规模网络环境多类别大量恶意域名检测难以取得令人满意效果的问题,提出一种基于域名语义学习的恶意域名检测技术,并收集现实域名请求数据开展大规模实验. 基于对不同类恶意域名间具有明显的语义区分度,同类别恶意域名具备字符构造相似性的发现,提出基于字符语义相似性的域名关联图模型. 该图采用字符噪声过滤方法以及域名语义相似度在线聚合方法. 通过基于语义差异的图消息传播机制检测关键特征. 实验结果表明提出的恶意域名检测技术在多类恶意域名的数据集取得平均96%的精确率和97%的召回率,并且该模型能够进行自演进,具有较高的识别率和鲁棒性.

    作者贡献声明:付豪提出算法思路、撰写论文、实验分析以及完成论文修订工作;龙春负责文献指标及论文修改;宫良一负责思路指导及论文修订;魏金侠负责论文修改;黄潘提供实验数据;林延中负责数据分析;孙德刚负责论文修改.

  • 图  1   NF软件的数据通路

    Figure  1.   The data path of NF software

    图  2   库函数的动态链接和库打桩

    Figure  2.   Dynamic linking and library interposition of library function

    图  3   传统快速断点原理

    Figure  3.   The principle of traditional fast breakpoint

    图  4   函数级快速断点原理

    Figure  4.   The principle of function-level fast breakpoint

    图  5   基于动态插桩的NF软件性能测量方法

    Figure  5.   Dynamic-instrumentation-based NF software performance measurement method

    图  6   LProfile整体架构

    Figure  6.   Overall architecture of LProfile

    图  7   LProfile原理

    Figure  7.   The principle of LProfile

    图  8   LProfile测量前后防火墙逐包时延

    Figure  8.   Firewall packet delay before and after LProfile measurement

    图  9   实验拓扑

    Figure  9.   Experimental topology

    图  10   不同大小的被测函数的单次插桩开销

    Figure  10.   The single instrumentation overhead of measured functions with different size

    图  11   单函数单次测量开销

    Figure  11.   Single measurement overhead of single measured function

    图  12   测量对NF性能的影响

    Figure  12.   Impact of the measurement on NF performance

    图  13   防火墙每次数据包处理的细粒度开销和其对应的数据包时延情况

    Figure  13.   Fine-grained overhead of each packet processing of the firewall and its corresponding packet delay

    图  14   空间局部性对L3FWD性能的影响

    Figure  14.   Impact of spatial locality on L3FWD performace

    表  1   常见测量工具单函数单次测量额外开销与高性能NF软件处理时延的对比

    Table  1   Comparison of Single Function Single Measurement Overhead of Common Measurement Tools and Processing Delay of High Performance NF Software

    软件 场景 时延(开销)/$ \mathrm{\mu }\mathrm{s} $
    高性能NF
    软件
    NAT(5000Mbps) 4.43
    FW(1500Mbps) 5.04
    性能测量工具 Score-P[15] 6.31
    TAU[16] 1.21
    下载: 导出CSV

    表  2   常见的基于PMC的性能测量工具

    Table  2   Common PMC-Based Performance Measurement Tools

    类型 测量工具/方法 性能指标 数据包级性能追踪 测量开销
    基于采样的方法 Perf[13] PMC指标、内核事件 不支持
    Intel VTune[14] PMC指标、内核事件 不支持
    HPCToolkit[30] PMC指标、内核事件 不支持
    基于插桩的方法 HPCToolkit[30] IO、内存
    使用量
    仅系统库函数
    Intel VTune[14]
    Callgrind[31] 仿真后的
    硬件指标
    支持
    DynamoRio[32]
    Score-P[15] PMC指标、内核事件 支持
    TAU[16]
    LProfile(本文) PMC指标、内核事件 支持 较低
    下载: 导出CSV

    表  3   主流插桩技术对比

    Table  3   Comparison of Popular Instrumentation Technologies

    插桩技术 类型 外部
    函数
    内部
    函数
    单点开销/
    cycle
    库打桩 静态 支持 不支持 30
    即时编译器 动态 支持 支持 100
    快速断点 动态 支持 支持 60
    下载: 导出CSV

    表  4   PMC性能数据读取开销

    Table  4   Overhead of Reading PMC Performance Data

    PMC API单次读取开销/cycle
    用户态指令19
    PAPI 快速读取150
    Perf event API720
    下载: 导出CSV

    表  5   LProfile单探针开销 cycle

    Table  5   Overhead of Single LProfile Probe

    被测函数原函数开销探针开销
    (无存储优化)
    探针开销
    (存储优化)
    Insert1539367149
    Search42328138
    Delete2485365145
    下载: 导出CSV

    表  6   防火墙核心模块的执行次数和平均执行耗时

    Table  6   Number of Executions and Average Execution Time of the Firewall Core Module

    模块实际函数执行次数平均开销/$ \mathrm{\mu }\mathrm{s} $
    Ethernet输入ethernet_input_node_fn67 1240.70
    L2输入l2input_node_fn67 1240.69
    L2功能入口l2_in_feat_arc_node_fn67 1240.70
    ACLacl_in_l2_ip4_node_fn67 1241.33
    L2功能出口l2_in_feat_arc_end
    _node_fn
    67 1240.63
    L2路由学习l2learn_node_fn67 1240.65
    L2转发l2fwd_node_fn67 1240.76
    L2输出l2output_node_fn67 1240.77
    VNet输出vnet_interface_output
    _node
    67 1240.84
    DPDK输出dpdk_dev_output67 1240.92
    下载: 导出CSV
  • [1]

    Gibb G, Zeng Hongyi, McKeown N. Outsourcing network functionality [C] //Proc of the 1st Workshop on Hot Topics in Software Defined Networks. New York: ACM, 2012: 73−78

    [2]

    Baloni D, Bhatt C, Kumar S, et al. The evolution of virtualization and cloud computing in the modern computer era [C] //Proc of the 2023 Int Conf on Communication, Security and Artificial Intelligence (ICCSAI). Piscataway, NJ: IEEE, 2023: 625−630

    [3] 周伟林,杨芫,徐明伟. 网络功能虚拟化技术研究综述[J]. 计算机研究与发展,2018,55(4):675−688 doi: 10.7544/issn1000-1239.2018.20170937

    Zhou Weilin, Yang Yuan, Xu Mingwei. Network function virtualization technology research[J]. Journal of Computer Research and Development, 2018, 55(4): 675−688 (in Chinese) doi: 10.7544/issn1000-1239.2018.20170937

    [4]

    Mijumbi R, Serrat J, Gorricho J L, et al. Network function virtualization: State-of-the-art and research challenges[J]. IEEE Communications Surveys & Tutorials, 2016, 18(1): 236−262

    [5]

    Kaffes K, Chong T, Humphries J T, et al. Shinjuku: Preemptive scheduling for µsecond-scale tail latency [C] //Proc of the 16th USENIX Conf on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2019: 345−360

    [6]

    Gong Junzhi, Li Yuliang, Anwer B, et al. Microscope: Queue-based performance diagnosis for network functions [C] //Proc of the ACM SIGCOMM 2020 Conf. New York: ACM, 2020: 390−403

    [7]

    Lei Yiran, Yu Liangcheng, Liu V, et al. PrintQueue: Performance diagnosis via queue measurement in the data plane [C] //Proc of the ACM SIGCOMM 2022 Conf. New York: ACM, 2022: 516−529

    [8]

    Chen Xiaoqi, Feibish S L, Koral Y, et al. Fine-grained queue measurement in the data plane [C] //Proc of the 15th Int Conf on Emerging Networking Experiments And Technologies. New York: ACM, 2019: 15−29

    [9]

    Sonchack J, Michel O, Aviv A J, et al. Scaling hardware accelerated network monitoring to concurrent and dynamic queries with *flow [C] //Proc of the 2018 USENIX Conf on Usenix Annual Technical Conf. Berkeley, CA: USENIX Association, 2018: 823−835

    [10]

    Pedrosa L, Iyer R, Zaostrovnykh A, et al. Automated synthesis of adversarial workloads for network functions [C] //Proc of the ACM SIGCOMM 2018 Conf. New York: ACM, 2018: 372–385

    [11]

    Iyer R, Pedrosa L, Zaostrovnykh A, et al. Performance contracts for software network functions [C] // Proc of the 16th USENIX Conf on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2019: 517−530

    [12]

    Zaparanuks D, Jovic M, Hauswirth M. Accuracy of performance counter measurements [C] //Proc of 2009 IEEE Int Symp on Performance Analysis of Systems and Software. Piscataway, NJ: IEEE, 2009: 23−32

    [13]

    Weaver V M. Self-monitoring overhead of the Linux perf_event performance counter interface [C] //Proc of 2015 IEEE Int Symp on Performance Analysis of Systems and Software. Piscataway, NJ: IEEE, 2015: 102−111

    [14]

    Intel Corporation. Intel VTune Profiler user guide [EB/OL]. (2022-02-06) [2024-05-22]. https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top.html

    [15]

    Mey D, Biersdorf S, Bischof C, et al. Score-P: A unified performance measurement system for petascale applications [C] //Proc of an Int Conf on Competence in High Performance Computing 2021. Berlin: Springer, 2011: 85−97

    [16]

    Shende S S, Malony A D. The Tau parallel performance system[J]. International Journal of High Performance Computing Applications, 2006, 20(2): 287−311 doi: 10.1177/1094342006064482

    [17]

    Adel B, Martin P, Mike B, et al. Performance analysis of DPDK-based applications through tracing[J]. Journal of Parallel and Distributed Computing, 2023, 173(C): 1−19

    [18]

    Cisco. Vector packet processing (VPP) [EB/OL]. (2022-07-12) [2024-05-22]. https://wiki.fd.io/view/VPP

    [19]

    Wu Wenfei, He Keqiang, Akella A. PerfSight: Performance diagnosis for software dataplanes [C] //Proc of the 2015 Internet Measurement Conf. New York: ACM, 2015: 409−421

    [20]

    Daly J, Bruschi V, Linguaglossa L, et al. TupleMerge: Fast software packet processing for online packet classification[J]. IEEE/ACM Transactions on Networking, 2019, 27(4): 1417−1431 doi: 10.1109/TNET.2019.2920718

    [21] 赵立成,沈文海,肖华东,等. 高性能计算技术在气象领域的应用[J]. 应用气象学报,2016,27(5):550−558 doi: 10.11898/1001-7313.20160504

    Zhao Licheng, Shen Wenhai, Xiao Huadong, et al. The application of high performance computing technology in meteorological field[J]. Journal of Applied Meteorological Science, 2016, 27(5): 550−558 (in Chinese) doi: 10.11898/1001-7313.20160504

    [22] 李振华,王泓懿,李洋,等. 大规模复杂终端网络的云原生强化设计[J]. 计算机研究与发展,2024,61(1):2−19 doi: 10.7544/issn1000-1239.202330726

    Li Zhenhua, Wang Hongyi, Li Yang, et al. Cloud native reinforced design for large-scale complex terminal networks[J]. Journal of Computer Research and Development, 2024, 61(1): 2−19 (in Chinese) doi: 10.7544/issn1000-1239.202330726

    [23]

    Ali R, Zikria Y B, Bashir A K, et al. URLLC for 5G and beyond: Requirements, enabling incumbent technologies and network intelligence[J]. IEEE Access, 2021, 9: 67064−67095 doi: 10.1109/ACCESS.2021.3073806

    [24]

    Khalid J, Gember-Jacobson A, Michael R, et al. Paving the way for NFV: Simplifying middlebox modifications using StateAlyzr [C] //Proc of the 13th USENIX Conf on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2016: 239−253

    [25]

    Dobrescu M, Argyraki K. Software dataplane verification[J]. Communications of the ACM, 2015, 58(11): 113−121 doi: 10.1145/2823400

    [26]

    Stoenescu R, Popovici M, Negreanu L, et al. SymNet: Scalable symbolic execution for modern networks [C] //Proc of the 2016 ACM SIGCOMM Conf. New York: ACM, 2016: 314−327

    [27]

    Zaostrovnykh A, Pirelli S, Pedrosa L, et al. A formally verified NAT [C] //Proc of the 2017 ACM SIGCOMM Conf. New York: ACM, 2017: 141−154

    [28]

    Naik P, Shaw D K, Vutukuru M. NFVPerf: Online performance monitoring and bottleneck detection for NFV [C] //Proc of 2016 IEEE Conf on Network Function Virtualization and Software Defined Networks. Piscataway, NJ: IEEE, 2016: 154−160

    [29]

    Pfitscher R J, Jacobs A S, Scheid E J, et al. A model for quantifying performance degradation in virtual network function service chains [C/OL] //Proc of 2018 IEEE/IFIP Network Operations and Management Symp. Piscataway, NJ: IEEE, 2018 [2024-05-22]. https://ieeexplore.ieee.org/document/8406268

    [30]

    Adhianto L, Banerjee S, Fagan M, et al. HPCTOOLKIT: Tools for performance analysis of optimized parallel programs[J]. Concurrency and Computation: Practice and Experience, 2009, 22(6): 685−701

    [31]

    Nethercote N, Seward J. Valgrind: A framework for heavyweight dynamic binary instrumentation[J]. ACM SIGPLAN Notices, 2007, 42(6): 89−100 doi: 10.1145/1273442.1250746

    [32]

    Bruening D, Zhao Qin, Amarasinghe. Transparent dynamic instrumentation [C] //Proc of the 8th ACM SIGPLAN/SIGOPS Conf on Virtual Execution Environments. New York: ACM, 2012: 133−144

    [33]

    Zhao Qidong, Liu Xu, Chabbi M. DrCCTProf: A fine-grained call path profiler for ARM-based clusters [C/OL] //Proc of the 2020 Int Conf for High Performance Computing, Networking, Storage and Analysis. Piscataway, NJ: IEEE, 2020 [2024-05-22]. https://doi.org/10.1109/SC41405.2020.00034

    [34]

    Lehr J-P, Huck A, Bischof C. PIRA: Performance instrumentation refinement automation [C/OL] // Proc of the 5th ACM SIGPLAN International Workshop on Artificial Intelligence and Empirical Methods for Software Engineering and Parallel Computing Systems. New York: ACM, 2018 [2024-05-22]. https://dl.acm.org/doi/10.1145/3281070.3281071

    [35]

    Ates E, Sturmann L, Toslali M, et al. An automated, cross-layer instrumentation framework for diagnosing performance problems in distributed applications [C] //Proc of the ACM Symp on Cloud Computing. New York: ACM, 2019: 165−170

    [36]

    Mace J, Fonseca R. Universal context propagation for distributed system instrumentation [C/OL] //Proc of the 13th EuroSys Conf. New York: ACM, 2018 [2024-05-22]. https://dl.acm.org/doi/abs/10.1145/3190508.3190526

    [37]

    Su Pengfei, Jiao Shuyin, Chabbi M, et al. Pinpointing performance inefficiencies via lightweight variance profiling [C/OL] //Proc of the 2019 Int Conf for High Performance Computing, Networking, Storage and Analysis. Berkeley, CA: USENIX Association, 2019 [2024-05-22]. https://dl.acm.org/doi/10.1145/3295500.3356167

    [38]

    Jia Ru, Pan Heng, Jiang Haiyang, et al. Towards diagnosing accurately the performance bottleneck of software-based network function implementation [C] //Proc of 2023 Passive and Active Measurement. Berlin: Springer, 2023: 227−253

    [39]

    Geimer M, Wolf F, Wylie B J N, et al. The Scalasca performance toolset architecture[J]. Concurrency and Computation: Practice and Experience, 2010, 22(6): 702−719 doi: 10.1002/cpe.1556

    [40]

    Luk C, Cohn R, Muth R, et al. Pin: Building customized program analysis tools with dynamic instrumentation[J]. ACM SIGPLAN Notices, 2005, 40(6): 190−200 doi: 10.1145/1064978.1065034

    [41]

    Enrique S-S, Gorka G-M. Detecting and bypassing frida dynamic function call tracing: Exploitation and mitigation[J]. Journal of Computer Virology and Hacking Techniques, 2023, 19: 503−513

    [42]

    Kessler P B. Fast breakpoints: Design and implementation[J]. ACM SIGPLAN Notices, 1990, 25(6): 78−84 doi: 10.1145/93548.93555

    [43]

    Bruening D L. Efficient, transparent, and comprehensive runtime code manipulation [D]. Cambridge, MA: Massachusetts Institute of Technology, 2004

    [44]

    Buck B, Hollingsworth J K. An API for runtime code patching[J]. The International Journal of High Performance Computing Applications, 2000, 14(4): 317−329 doi: 10.1177/109434200001400404

    [45]

    Arras P-A, Andronidis A, Pina L, et al. SaBRe: Load-time selective binary rewriting[J]. International Journal on Software Tools for Technology Transfer, 2022, 24(2): 205−223 doi: 10.1007/s10009-021-00644-w

    [46]

    Browne S, Dongarra J, Garner N, et al. A portable programming interface for performance evaluation on modern processors[J]. The International Journal of High Performance Computing Applications, 2000, 14(3): 189−204 doi: 10.1177/109434200001400303

    [47]

    Ghasemirahni H, Barbette T, Katsikas G, et al. Packet order matters! Improving application performance by deliberately delaying packets [C] //Proc of the 19th USENIX Conf on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2022: 807−827

图(14)  /  表(6)
计量
  • 文章访问数:  10
  • HTML全文浏览量:  0
  • PDF下载量:  1
  • 被引次数: 0
出版历程
  • 收稿日期:  2024-03-31
  • 修回日期:  2025-02-23
  • 录用日期:  2025-03-02
  • 网络出版日期:  2025-03-02

目录

/

返回文章
返回