CN115643087B - 一种基于编码特征与统计行为特征融合的dns隧道检测方法 - Google Patents
一种基于编码特征与统计行为特征融合的dns隧道检测方法 Download PDFInfo
- Publication number
- CN115643087B CN115643087B CN202211300977.6A CN202211300977A CN115643087B CN 115643087 B CN115643087 B CN 115643087B CN 202211300977 A CN202211300977 A CN 202211300977A CN 115643087 B CN115643087 B CN 115643087B
- Authority
- CN
- China
- Prior art keywords
- dns
- response
- features
- request
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 58
- 230000004927 fusion Effects 0.000 title claims abstract description 9
- 238000000034 method Methods 0.000 claims abstract description 93
- 230000004044 response Effects 0.000 claims abstract description 67
- 238000012549 training Methods 0.000 claims abstract description 14
- 239000013598 vector Substances 0.000 claims description 75
- 238000003066 decision tree Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 5
- 230000004083 survival effect Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 2
- 238000011897 real-time detection Methods 0.000 abstract description 7
- 230000006399 behavior Effects 0.000 description 36
- 238000012360 testing method Methods 0.000 description 21
- 238000013527 convolutional neural network Methods 0.000 description 16
- 238000002474 experimental method Methods 0.000 description 16
- 238000000605 extraction Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 9
- 230000005641 tunneling Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 4
- 108010034145 Helminth Proteins Proteins 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 244000000013 helminth Species 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012706 support-vector machine Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000010485 coping Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 229940022962 COVID-19 vaccine Drugs 0.000 description 1
- 241000711573 Coronaviridae Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013142 basic testing Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 229960005486 vaccine Drugs 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于编码特征与统计行为特征融合的DNS隧道检测方法,包括:S1.截取DNS流量并依据网络五元组构建DNS请求与响应会话,所述网络五元组包括请求IP、响应IP、请求端口、响应端口和协议号;S2.从DNS请求与响应会话中提取编码特征与统计行为特征;S3.基于步骤S2提取的编码特征与统计行为特征,训练决策分类器,实现正常DNS流量与DNS隧道流量的划分。本发明方法在实时检测上都表现了更好的性能。可以达到比现有方法更高的准确率,并且保证检测在实时环境中进行。
Description
技术领域
本发明属于信息安全领域,尤其是涉及一种基于编码特征与统计行为特征的DNS隧道检测方法。
背景技术
域名系统(Domain Name System,DNS)是一种将域名和IP地址相互映射的以层次结构分布的分布式数据库系统,也是互联网的基础解析服务。防火墙等基础防御设施为了保证用户体验一般不会对DNS数据进行过滤,这反而使其成为攻击者手中较理想的秘密信道[1[。DNS隧道,是指利用DNS数据包中的可定义字段秘密传递信息的通道。可以被用于数据泄露、命令控制及绕过Wi-Fi连接注册等恶意行为,也被广泛利用于远控木马、僵尸网络、勒索软件、高级持续性威胁等绝大多数网络攻击。在全球网络信息化程度高速发展的大背景下,具备隐蔽性、普适性的DNS隧道对各类高等级信息安全系统造成的威胁日益严重,国家、企业的网络信息系统和数据安全面临严峻挑战[2]。2016年4月,某零售公司;就被一款恶意软件FrameworkPos攻击[3],该软件通过DNS隧道捕获支付卡数据,最终导致超过5600万个信用卡账户和客户借贷信息被盗。2020年7月,一份联合报告[4]指出高级持续性威胁组织使用恶意软件WellMess对与新型冠状病毒研究和疫苗开发有关的组织发起攻击并利用DNS隧道技术维持连接。
因此,对于DNS隧道的检测至关重要,这也促使了大量对于DNS隧道检测的研究。传统的检测方法依赖专家在现有的网络中手动设置规则[5]。然后,在监控流量中发生预设规则匹配时,确定DNS隧道的存在。其重点在于某些特征的规则设计,这些规则的设立可分为两种方式:基于签名的方式[6-8]和基于阈值的方式[9-12]。基于签名的方法通过匹配特定签名来检测DNS隧道,它的重点是由专业人员从DNS数据数据报文的头部字段[13],或有效负载中的特定属性分析出有效的静态特征[14]。基于阈值的方法对DNS隧道的特征进行定量分析,以设计一个实用的阈值,它的重点是确定某些功能的阈值[15],这些功能可以区分正常DNS流量和DNS隧道流量。这些方法都是在预处理过程后使用特征规则进行过滤,通过将特征过滤与手动分析相结合来研究DNS隧道检测[16]。这种类型的检测方式需要多次迭代和专业人员的技能,不适合高吞吐量网络,其检测精度依赖于经验丰富的专业人员。在最近的一些工作中[17-20],基于模型的检测通过模型自动生成基于多个特征的识别规则,突破了传统检测方法对于专家的完全依赖,探索了在特征字段提取后使用机器学习自动生成检测模型的方法。
Das等人[18]关注TXT类型的DNS数据报文,从资源记录数据中抽取十维的特征向量,并利用支持向量机(SVM)算法进行模型训练,以此提高传统检测准确率和应对未知攻击的泛化表现。但其只适用于DNS隧道中TXT类型流量的检测,而无法扩展到其他类型的DNS隧道检测任务中。Ahmed等人[19]从DNS数据报头中的FQDN字段提取了八维的特征向量,以训练隔离森林模型。通过分离出现实网络中的非正常DNS流量来检测DNS隧道,提高了检测方法应对不同场景的泛化能力,但其特征抽取过程依赖于时间窗口下的DNS流量,无法应对现实环境中对于DNS隧道实时检测的需求。此外,使用深度学习算法替换人工决策的工作[20],选用了动态神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)三种深度学习算法,将DNS数据包格式化为模型可接受的输入,通过借用深度学习模型完全抛弃了人工的特征提取,并采用投票机制提高了检测方法的准确率,但其在检测效率上表现较差,其对硬件资源和时间成本有一个较高的要求,且在某些新样本数据中的表现低于依赖于特征工程的机器学习算法。传统检测方法依赖于专家长期运营,面对新型的DNS隧道需要耗费大量的时间进行人工分析,且这种检测模式往往是滞后于攻击场景的。而现有的基于模型的检测方法,同样面对在保持实时检测的同时提升DNS隧道流量检出率的挑战。
参考文献:
[1]Sheridan,S.,&Keane,A.(2015,July).Detection of DNS based covertchannels.In European Conference on Cyber Warfare and Security(p.267).AcademicConferences International Limited.
[2]Chen,Y.,Zheng,R.,Zhou,A.,Liao,S.,&Liu,L.(2020).Automatic detectionof pornographic and gambling websites based on visual and textual contentusing a decision mechanism.Sensors,20(14),3989.
[3]Grunzweig,J.,2016.New Wekby attacks use DNS requests as commandand control mechanism.
[4]Centre,N.C.S.,020.Advisory:Apt29 targets covid-19vaccinedevelopment.
[5]Das,A.,Shen,M.Y.,Shashanka,M.,&Wang,J.(2017,December).Detection ofExfiltration and Tunneling over DNS.In 2017 16th IEEE InternationalConference on Machine Learning and Applications(ICMLA)(pp.737-742).IEEE.
[6]Al-kasassbeh,M.,&Khairallah,T.(2019).Winning tactics with DNStunnelling.Network Security,2019(12),12-19.
[7]Kara,A.M.,Binsalleeh,H.,Mannan,M.,Youssef,A.,&Debbabi,M.(2014,June).Detection of malicious payload distribution channels in DNS.In 2014IEEEInternational Conference on Communications(ICC)(pp.853-858).IEEE.
[8]Bilge,L.,Kirda,E.,Kruegel,C.,&Balduzzi,M.(2011,February).EXPOSURE:Finding Malicious Domains Using Passive DNS Analysis.In Ndss(pp.1-17).
[9]Zipf,G.K.(2013).Selected studies of the principle of relativefrequency in language.Harvard university press.
[10]Mohammed,Y.F.,&Thompson,D.R.(2019,July).Visualization of DNStunneling attacks using parallel coordinates technique.In InternationalConference on Security,Privacy and Anonymity in Computation,Communication andStorage(pp.89-101).Springer,Cham.
[11]Born,K.,&Gustafson,D.(2010,April).Ngviz:detecting DNS tunnelsthrough n-gram visualization and quantitative analysis.In Proceedings of theSixth Annual Workshop on Cyber Security and Information Intelligence Research(pp.1-4).
[12]Karasaridis,A.,Meier-Hellstern,K.,&Hoein,D.(2006).Detection ofDNS Anomalies using Flow Data Analysis,Global Telecommunications Conference,2006.GLOBECOM’06.
[13]Almusawi,A.,&Amintoosi,H.(2018).DNS tunneling detection methodbased on multilabel support vector machine.Security and CommunicationNetworks,2018.
[14]Preston,R.(2019,November).DNS Tunneling Detection with SupervisedLearning.In 2019 IEEE International Symposium on Technologies for HomelandSecurity(HST)(pp.1-6).IEEE.
[15]Preston,R.(2019,November).DNS Tunneling Detection with SupervisedLearning.In 2019 IEEE International Symposium on Technologies for HomelandSecurity(HST)(pp.1-6).IEEE.
[16]Wu,K.,Zhang,Y.,&Yin,T.(2019,October).Clr:A classification of DNStunnel based on logistic regression.In 2019 IEEE 38th InternationalPerformance Computing and Communications Conference(IPCCC)(pp.1-1).IEEE.
[17]A.L.Buczak,P.A.Hanke,G.J.Cancro,et al.,Detection of tunnels inPCAP data by random forests,in:Proc.11th Annu.Cyber Inf.Secur.Res.Conf.,2016.
[18]V.T.Do,P.Engelstad,B.Feng,et al.,Detection of DNS tunneling inmobile networks using machine learning,in:Proc.Int.Conf.Info.Sci.Appl.,vol.424,2017,pp.221–230.
[19]Shafieian,S.,Smith,D.,&Zulkernine,M.(2017,August).Detecting DNStunneling using ensemble learning.In International Conference on Network andSystem Security(pp.112-127).Springer,Cham.
[20]Zhang,J.,Yang,L.,Yu,S.,&Ma,J.(2019,December).A DNS tunnelingdetection method based on deep learning models to prevent dataexfiltration.In International Conference on Network and System Security(pp.520-535).Springer,Cham.
发明内容
本发明的目的是为了克服现有技术中的不足,提供一种基于编码特征与统计行为特征的DNS隧道检测方法,该方法针对DNS流量提取编码与统计行为特征,并联合两类特征进行DNS隧道的检测,有助于在保持DNS隧道检测实时性的同时提升检测准确率。
本发明的目的是通过以下技术方案实现的:
一种基于编码特征与统计行为特征融合的DNS隧道检测方法,包括:
S1.截取DNS流量并依据网络五元组构建DNS请求与响应会话,所述网络五元组包括请求IP、响应IP、请求端口、响应端口和协议号;
S2.从DNS请求与响应会话中提取编码特征与统计行为特征;
S3.基于步骤S2提取的编码特征与统计行为特征,训练决策分类器,实现正常DNS流量与DNS隧道流量的划分。
进一步的,步骤S2中,针对编码特征,使用Attention编码器从DNS请求与响应会话中提取二维的编码特征向量;针对统计行为特征,从每个DNS请求与响应会话中提取包含DNS请求报文有效负载的长度、DNS响应报文有效负载的长度、平均域名生存时间、DNS响应与请求数的比例、DNS请求与其响应之间的时间间隔、DNS上传与下载比的六类统计值,并将上述六类统计值转化为六维的统计行为特征向量。
进一步的,步骤S3中,将二维的编码特征向量与六维的统计行为特征向量拼接为用于训练决策分类器的八维向量。
进一步的,对每条DNS请求与响应会话进行噪声字符去除和索引映射的预处理工作;噪声字符去除包括删除DNS请求与响应会话中的顶级域名TLD和二级域名2LD的域名部分,只保留子域名部分;同时删除“.”和“:”干扰字符,并将所有字母统一转化为小写;
通过设置字符到索引的映射将DNS请求与响应会话的内容转换为特征向量;使用“\t”拆分DNS请求和响应会话内容,并采用范围[0,38]内的数字映射包含数字、小写字母和下划线的有效字符,得到初始的编码特征向量xi;
使用Attention编码器提取编码特征向量过程如下:首先初始化若干组Attention头向量,每组Attention头向量包含有查询向量WQ、关键向量WK和值向量WV;每个初始的编码特征向量xi使用如下线性投影到上述查询向量WQ、关键向量WK和值向量WV:
Qi=WQxi,Ki=WKxi,Vi=WVxi
线性投影是通过相似性函数计算每个输入xi与所有其他输入xi~xk之间的相似性,来调整Attention编码器的输入:
其中dk是Kj的维度,z是归一化因子;对于若干组Attention头向量,使用合取算子来获得联合的Attention头向量atti;
最后,通过ReLU前馈网络与归一化将每个初始的编码特征向量转换为二维编码特征向量:
hi=max(0,W1atti+b1)+b2
其中W1、b1和b2是可调节的超参数。
进一步的,计算单个DNS报文和DNS请求与响应会话中的统计特征,得到如下统计行为特征:
统计DNS请求报文有效负载的长度作为DNS隧道中的一个指标;
统计DNS响应报文有效负载的长度作为DNS隧道中的一个指标;
统计平均域名生存时间作为DNS隧道中的一个指标;
将DNS响应与请求数的比例作为DNS隧道中的一个指标;
将DNS请求与其响应之间的时间间隔用作一个特征;
将DNS上传与下载比用作DNS隧道中的一个指标。
进一步的,采用梯度提升树作为决策分类器,其目标函数由如下方程构成:
Obj=L+Ω
微分凸损失函数L,它衡量了预测值和实际值yi之间的差异。其中1为单个样本之间的损失函数,n为总样本数;正则化惩罚函数Ω,其中T为当前树的叶子的数量,wj为叶子节点j的权重,γ和λ为可配置的超参数;
梯度提升树的每次迭代都会遍历每个特征的特征值xt,z(t=1,2,...;z=1,2,...,8),并采用贪心搜索的方法搜索最小化目标函数值的分裂点,从而完成叶子节点的分裂。
进一步的,使用6棵决策树以集成梯度提升树作为决策分类器,并将每棵树的最大深度设置为4;当决策树的深度达到4时,停止分裂并生成新的决策树;当决策树的数量达到6棵时,停止生成树,所有的树共同组成了决策分类器。
与现有技术相比,本发明的技术方案所带来的有益效果是:
1.根据DNS隧道检测现有的研究现状和问题,本发明方法针对现有检测方式难以在保持实时检测的同时保证检测准确性的问题,通过结合DNS的编码特征与统计行为特征,提出了一个在保证现有检测信息维度的同时保持检测效率的方法。确保在具有检测实时性的同时进一步提升现有检测方法的准确率。
2.现有方法大多在无真实攻击行为的离线样本下进行测试。本发明方法通过攻击模拟,采集了自建数据集。并与现有的方法在三种不同的数据集中进行了对比实验,实验表明,本方法在实时检测上都表现了更好的性能。也就是说本方法可以达到比现有方法更高的准确率,并且保证检测在实时环境中进行。
3.本发明方法还在现实校园网络环境中进行了测试,并发现了多种攻击行为,通过进一步的专家分析,确定当前攻击行为来自恶意软件家族“Trojan.Win32.lsmdoor.gen”和“Helminth”。
附图说明
图1为本发明方法的流程示意图
图2为本方法中从DNS请求响应会话中提取编码特征向量的过程示意图。
图3a至图3f为本发明方法从所有样本中随机抽取5k个样本进行数据统计的统计行为特征值,并针对六类统计行为特征绘制了散点图。
图4为决策分类器中各特征频率占比。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本实施例基于编码特征与统计行为特征融合的DNS隧道检测方法主要包含三个步骤,DNS请求与响应会话的构建,编码与统计行为特征的提取,以及决策分类器的训练。
在截取DNS流量后,对DNS流量依据网络五元组(请求IP、响应IP、请求端口、响应端口、协议号)分成请求与响应对,并使用DNS响应标志来确定分组是属于请求还是响应。从而完成DNS的请求与响应会话的构建。
针对构建完成的DNS请求与响应会话,从会话中分别提取编码特征与统计行为特征。其中,本发明使用了深度学习模型Attention编码器来从DNS请求与响应会话中提取编码特征向量;而针对统计行为特征,是通过人工分析选取的。从每个DNS请求与响应会话中提取了包含(DNS请求负载长度、DNS响应负载长度、域名平均域名生存时间值、DNS响应与请求数目比、DNS请求与响应时间延迟、DNS上传与下载比)的六类统计值,并将其转化为六维的特征向量。
最后将两维的编码特征向量与六维的统计行为特征向量拼接为八维的输入向量,并采用梯度提升树作为决策分类器,以此进行正常DNS流量与DNS隧道流量的划分。
具体的,本实施例针对现有的DNS请求与响应会话,会分别进行编码特征的提取与统计行为特征的提取。其中编码特征的提取,采用的Attention编码器;而统计行为特征则基于先验专家知识进行自动的特征值计算。
首先,为了提高Attention编码器的表征能力,会对每条DNS请求与响应会话进行噪声字符去除和索引映射的预处理工作。由于大多数DNS隧道将请求数据编码到完全合格域名的子域部分,选择删除顶级域名(TLD)和二级域名(2LD)的域名部分,只保留子域名部分。此外,还删除了“.”和“:”等干扰字符,并将所有字母统一转化为小写。由于Attention编码器只能接受来自流数据的输入,设计了字符到索引的映射,以将DNS请求与响应会话的内容转换为特征向量。使用“\t”来拆分请求和响应内容,并采用范围[0,38]内的数字来映射包含数字、小写字母和下划线的有效字符,得到初始的编码特征向量xi。
其次初始化八组Attention头向量,每组Attention头向量包含查询向量WQ、关键向量WK和值向量WV每个嵌入向量xi使用如下线性变换投影到这些向量:
Qi=WQxi,Ki=WKxi,Vi=WVxi
线性投影的目的是通过如下相似函数计算每个输入xi与所有其他输入xi~xk之间的相似性来生成Attention编码器的输入:
其中dk是Kj的维度,z是归一化因子;对于多组Attention头向量,使用合取算子来获得联合的Attention头向量atti;
最后,通过ReLU前馈网络与归一化将每个初始的编码特征向量转换为二维编码特征向量:
hi=max(0,W1atti+b1)+b2
其中W1、b1和b2是可调节的超参数。
在本实施例的工作中,根据单个数据包中存在的特征和请求响应会话对中存在的特征,将统计行为特征分为单数据包特征和交互特征两类
在DNS隧道传输过程中,受控端将传输的内容包装在请求包中,为了在单次传输中携带尽可能多的信息,DNS隧道中的请求包通常比正常DNS通信中的请求包大因此,统计DNS请求报文有效负载的长度作为DNS隧道中的一个指标。
在DNS隧道传输过程中,攻击者通常发送两种数据,一种是短心跳数据来判断连接是否存在,另一种是编码后的长攻击命令而对于正常的DNS通信流量,DNS服务器返回的数据大多为4字节(IPv4格式)或16字节(IPv6格式)因此,正常的DNS响应包大小介于短心跳数据大小和隧道响应包的攻击命令大小之间因此,统计DNS响应报文有效负载的长度作为DNS隧道中的一个指标。
域名生存时间是DNS服务器上的DNS记录缓存时间。设置较高的域名生存时间值有利于提高DNS请求的速度,在一定程度上可以抵御DDOS攻击但是DNS隧道通信的方式决定了每次用于通信的子域都不一样,因此通常给每个子域分配一个较小的域名生存时间值。因此,统计平均域名生存时间作为DNS隧道中的一个指标。
在DNS请求中,一个IP可能对应多个规范名称(CNAME),单个请求可能会收到多个答案资源记录但是,DNS隧道数据通常只包括一个无授权资源记录的应答记录和一个附加资源记录因此将DNS响应与请求数的比例作为DNS隧道中的一个指标。
为了增加隧道的稳定性,很多隧道工具会强制用户使用公网IP来指示攻击者的域名服务器地址通过这种方式,DNS隧道将简化其域名的递归解析过程在正常的DNS通道中,当请求没有被本地缓存命中时,由于需要递归解析子域名,请求和响应包之间的时间间隔通常较长因此,将DNS请求与其响应之间的时间间隔用作一个特征。
在DNS隧道中,攻击者服务器向受控客户端发送一个带有控制命令的小数据包,该客户端需要发回一个带有敏感资源文件数据的大数据包。但是,对于正常的DNS解析,情况正好相反,客户端请求消息通常很短,而DNS服务器返回更多的数据信息考虑到与普通DNS会话相比,DNS隧道会话的上传与下载大小的比更大,将DNS流量的上传与下载比用作DNS隧道中的一个指标。
本实施例通过计算上述6个维度的指标得到六维的统计行为特征向量,并与提取的两维编码特征向量进行拼接,得到最终的八维特征向量。
此外本实施例采用梯度提升树作为决策分类器,其目标函数由如下方程构成:
Obj=L+Ω
微分凸损失函数L,它衡量了预测值和实际值yi之间的差异。其中l为单个样本之间的损失函数,n为总样本数;正则化惩罚函数Ω,其中T为当前树的叶子的数量,wj为叶子节点j的权重,γ和λ为可配置的超参数,它们共同作用于评估当前树的复杂度,防止决策分类器过度拟合当前数据。
梯度提升树的每次迭代都会遍历每个特征的特征值xt,z(t=1,2,...;z=1,2,...,8),并采用贪心搜索可以最小化目标函数值的分裂点,从而完成叶子节点的分裂。本实施例总共使用了6棵决策树来集成梯度提升树作为决策分类器,并将每棵树的最大深度设置为4。因此,当决策树的深度达到4时,它停止分裂并生成新的决策树。当树的数量达到6棵时,它停止生成树,所有的树共同组成了本方法的决策分类器。
具体的,上述方法的测试对象如下:
在离线环境与现实网络的在线环境两种环境下评估上述方法。其中离线环境用于评估本实施例在有限数据集中的表现能力;而现实网络的在线环境用于评估本实施例在利用有限数据集训练基准模型的情况下,在开放数据集中的表现能力。
采用的离线数据集由基础数据集和泛化测试数据集构成。基础数据集部分,采用了已有的开源数据集,其是一个由北京航空与航天的网络安全实验室收集,为做网络安全研究而建立的,其中包含了8种不同的DNS隧道工具的通信流量。本实施例针对开源数据集进行了合理的数据划分,使用8∶2的方式,将基础数据集划分为了用于训练现有模型的训练数据集;与用于测试现有模型在基础数据集中表现能力的测试数据集。
由于基础数据中的恶意DNS数据包大部分是用于验证连接的心跳数据包,没有实际的攻击负载。为了更好地模拟真实攻击,本实施例收集了黑客在Linux和Windows系统上进行内网渗透时常用的150个命令,并在不同的DNS隧道工具中使用这些命令来获取恶意样本,以便进行更具挑战性的泛化测试。此外,还从高度受限的校园环境中收集了基本的良性样本数据。并且,鉴于该环境很难代表需要与DNS隧道对抗的环境。为了在更复杂的环境中测试该模型的鲁棒性,还从一家安全企业获得手动筛选的DNS数据包作为泛化测试数据中的扩增良性样本。
对于本方法在现实网络中的表现能力的测试,通过在进行全流量监测的校园环境中进行。
具体的,为了评估上述本实施例方法的性能,针对以下问题进行了实验研究:一、本方法筛选的特征是否对于检测DNS隧道有效?二、本方法与现有的方法相比表现如何?三、本方法能否在在线测试中表现良好?
第一个问题是评估各项特征提取的有效性,编码特征与统计行为特征在DNS隧道检测中是否都能发挥其实际作用。第二个问题是对上述方法与现有的方法进行比较,从而横向验证本方法的有效性。最后一个问题是在现实网络环境下对上述方法进行评估,判断其是否能在现实网络中也能保证有效性,发现真实的攻击案例。
本实施例在一个拥有6核2.9GHz CPU和128G字节内存的计算机上进行实验,软件方面使用了Python3.6.8以及Pytorch1.8.0。为了确保实验的公平性,实验采用本实施例的最佳参数结果与其他实验的最佳参数结果进行比较,这些参数都是基于调参实验的结果最终确定的。在字节级CNN模型的实验中,本方法将每个DNS请求内容的300字节通过一热编码转换成300×257维的向量,通过嵌入后得到CNN模型的300×64维的输入向量。CNN模型包含3个卷积层,2个max-pooling层,1个softmax层,并采用Adagrad优化器作为优化器。在特征级CNN模型的实验中,初始输入是一个8×4的特征向量。其采用的CNN模型包含2个卷积层,2个max-pooling层,1个softmax层,并同样采用Adagrad优化器作为优化器。在LSTM模型的实验中,本方法从DNS包中提取FQDNs,并执行预处理操作,例如删除2LD、TLD,将大写字母转换为小写字母,删除分段符号“.”,并统一字符长度统为128。最后,根据字符字典得到每个DNS包对应的128维输入向量。LSTM模型包含一个嵌入层和一个隐藏层,并使用Adam优化器作为优化器。在本实施例的测试实验中,本方法从DNS流量中分离出DNS请求响应对,并通过Attention编码器提取两维编码特征向量,该编码特征向量与手动提取的六维统计行为特征向量连接。每个输入向量都会传入最大深度为6,最大叶节点数为10的梯度提升树中。对于每个实验,本方法进行了100次重复实验,每次实验的最大迭代次数设定为200次。
实验结果如下:
表1将基于深度学习模型Attention编码器的特征提取方法与其他性能良好的编码特征提取方法进行比较。信息熵分析和统计特征提取是提取DNS编码特征的重要方案,因此,本方法将采用Attention编码器的效果与信息熵分析和统计特征提取进行了比较。在实验中,本方法使用基础数据集的训练集进行训练,并使用基础数据集和泛化测试数据集中的测试数据集来确定本方法的效果。本方法不改变方法后端的统计行为特征提取以及决策分类器,只替换方法中的编码表示方法。从三种编码特征提取方法的实验结果来看,使用信息熵分析和统计特征提取的方法在基础和泛化测试数据集上的表现相似,它们在基础测试数据集上都取得了不错的表现,但在泛化测试数据集上只有75.11%和76.62%的准确率为。使用Attention编码器进行编码特征提取的方法在基础数据集和泛化测试数据集上保持了高达99.99%和99.87%的准确率。
表1不同编码特征提取方案下,DNS隧道检测的准确率
在决策分类器中,普遍认为引导树节点分裂的特征是有效的。在本实施例中,本方法使用特征频率来表示决策分类器中特定特征的相对重要性。从本方法中各个特征频率比较的实验结果图4来看,决策分类器中编码特征的特征频率为53.33%,统计特征的特征频率为46.67%。在统计特征中,静态特征:请求有效负载长度、响应有效负载长度和域名平均域名生存时间占据较高的特征频率,而交互特征的特征频率分别为2.22%、2.22%和4.44%。
本发明从两个角度分析方法在DNS隧道检测中是否有效。在方法内部,本发明比较了使用单独组件:仅使用统计特征或仅使用编码特征时本方法的性能,以及采用混合特征:采用统计行为特征与编码特征联合时本方法的性能;对于现有的外部检测方法,选择了最优的实时检测方法(LSTM、字节级CNN、特征级CNN)与本方法进行了比较。
在本方法的内部实验中,只改变了决策分类器的输入,即分别使用二维编码特征、六维统计行为特征、八维混合特征作为决策分类器训练的输入,而后端都采用梯度提升树作为决策分类器。使用基础数据集作为全量数据,将基础数据集按照8:1:1的比例分为训练集、验证集和测试集,并进行标准的10折交叉验证进行训练决策模型。
本方法局部效果的实验结果见表2。从比较的角度来看,编码和统计特征的方法在各项指标上优于单独使用编码特征或统计行为特征的检测效果。
表2对于DNS隧道检测,在混合特征与单独编码或统计行为特征下的检测指标
外部实验将本方法的性能与其他在实时检测中表现良好的方法进行了比较,检测方法的实验结果见表3。从四个模型的对比结果来看,在基础数据集上,每个模型的准确率都比较好。本方法和采用字节级CNN模型的方法都达到了100%的准确率采用LSTM模型的方法和采用特征级CNN模型的方法分别达到了98.60%和99.12%。字节级CNN模型的召回率只有77.75%,说明其更倾向于将DNS流量判断为正常的流量数据。通过f值进行判断,本方法在基础数据上达到了最好的水平。在泛化测试数据集上,采用特征级CNN模型的方法几乎没有效果,召回率仅达到37.27%。而采用特征级CNN模型的方法和采用LSTM模型的方法的f值也降低到89.23%和72.90%,但本方法仍然保持99.96%这一较好的水平。
表3对于DNS隧道检测,本方法与现有的其他方法的检测指标比较
本方法在受全流量安全分析平台保护的校园环境中进行了测试。在一个月的实际流量检测中,本方法发现了一些可疑的DNS隧道流量。表4展示了一些DNS隧道示例。经过专家审查,发现其属于DNS隧道流量的流量是由恶意软件“Trojan.Win32.Ismdoor.gen”和APT组织“OilRig”常用的DNS隧道工具“Helminth”产生的其中“Helminth”的DNS流量中的响应内容为“119.104.111.97”和“109.105.32.32”,其经过Base10解码后会成为“whoami”指令来获取计算机相关信息而在“Trojan.Win32.Ismdoor.gen”中的请求内容“TTpDQz8!”,其是由握手请求“M:CC?”通过Base64编码形成的。
表4本方法,在现实网络环境中的DNS隧道检出
基于以上实验结果以及分析,对上述研究问题做出回答:
问题一,编码特征与统计行为特征在DNS隧道检测中都能发挥其实际作用,且采用混合特征能达到更好的检测准确率。
问题二,本方法在与现有的方法相比中表现更优,在召回率和准确率中都有一个更好的表现。
问题三,本方法在现实网络环境下进行了相关评估,并在现实网络中也能保证其对DNS隧道检测对有效性,同时发现了多起真实的攻击案例。
综上所述,本发明提出了一种基于编码和统计行为特征来识别DNS隧道流量的方法为了在提供对于DNS隧道流量高准确率检测的同时保证其实时性,本方法使用了网络五元组将DNS流量转换为DNS请求响应对,并使用Attention编码器和先验专家知识提取其编码和统计行为特征针对上述的特征向量,本方法采用梯度提升树作为决策分类器对DNS隧道流量和合法DNS流量进行区分本方法在两种离线数据集和一个在线测试环境中对本方法进行实验评估,并与现有的方法(LSTM、字符级CNN、特征级CNN)进行了对比。实验表明,本方法在基础数据集上的准确率达到了99.99%,在泛化测试上可以保持99.96%的准确率,其都显著优于现有的方法特别是,本方法在真实流量中也保持了良好的鲁棒性,并发现了多种DNS隧道流量。
最后需要指出的是:以上实例仅用以说明本发明的计算过程,而非对其限制。尽管参照前述实例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述实例所记载的计算过程进行修改,或者对其中部分参数进行等同替换,而这些修改或者替换,并不使相应计算方法的本质脱离本发明计算方法的精神和范围。
本发明并不限于上文描述的实施方式。以上对具体实施方式的描述旨在描述和说明本发明的技术方案,上述的具体实施方式仅仅是示意性的,并不是限制性的。在不脱离本发明宗旨和权利要求所保护的范围情况下,本领域的普通技术人员在本发明的启示下还可做出很多形式的具体变换,这些均属于本发明的保护范围之内。
Claims (4)
1.一种基于编码特征与统计行为特征融合的DNS隧道检测方法,其特征在于,包括:
S1.截取DNS流量并依据网络五元组构建DNS请求与响应会话,所述网络五元组包括请求IP、响应IP、请求端口、响应端口和协议号;
S2.从DNS请求与响应会话中提取编码特征与统计行为特征;针对编码特征,使用Attention编码器从DNS请求与响应会话中提取二维的编码特征向量;针对统计行为特征,从每个DNS请求与响应会话中提取包含DNS请求报文有效负载的长度、DNS响应报文有效负载的长度、平均域名生存时间、DNS响应与请求数的比例、DNS请求与其响应之间的时间间隔、DNS上传与下载比的六类统计值,并将上述六类统计值转化为六维的统计行为特征向量;
S3.基于步骤S2提取的编码特征与统计行为特征,训练决策分类器,实现正常DNS流量与DNS隧道流量的划分;将二维的编码特征向量与六维的统计行为特征向量拼接为用于训练决策分类器的八维向量;
对每条DNS请求与响应会话进行噪声字符去除和索引映射的预处理工作;噪声字符去除包括删除DNS请求与响应会话中的顶级域名TLD和二级域名2LD的域名部分,只保留子域名部分;同时删除“.”和“:”干扰字符,并将所有字母统一转化为小写;
通过设置字符到索引的映射将DNS请求与响应会话的内容转换为特征向量;使用“\t”拆分DNS请求和响应会话内容,并采用范围[0,38]内的数字映射包含数字、小写字母和下划线的有效字符,得到初始的编码特征向量xi;
使用Attention编码器提取编码特征向量过程如下:首先初始化若干组Attention头向量,每组Attention头向量包含有查询向量WQ、关键向量WK和值向量WV;每个初始的编码特征向量xi使用如下线性投影到上述查询向量WQ、关键向量WK和值向量WV:
Qi=WQxi,Ki=WKxi,Vi=WVxi
线性投影是通过相似性函数计算每个输入xi与所有其他输入xi~xk之间的相似性,来调整Attention编码器的输入:
其中dk是Kj的维度,z是归一化因子;对于若干组Attention头向量,使用合取算子 来获得联合的Attention头向量atti;
最后,通过ReLU前馈网络与归一化将每个初始的编码特征向量转换为二维编码特征向量:
hi=max(0,W1atti+b1)+b2
其中W1、b1和b2是可调节的超参数。
2.根据权利要求1所述一种基于编码特征与统计行为特征融合的DNS隧道检测方法,其特征在于,计算单个DNS报文和DNS请求与响应会话中的统计特征,得到如下统计行为特征:
统计DNS请求报文有效负载的长度作为DNS隧道中的一个指标;
统计DNS响应报文有效负载的长度作为DNS隧道中的一个指标;
统计平均域名生存时间作为DNS隧道中的一个指标;
将DNS响应与请求数的比例作为DNS隧道中的一个指标;
将DNS请求与其响应之间的时间间隔用作一个特征;
将DNS上传与下载比用作DNS隧道中的一个指标。
3.根据权利要求1所述一种基于编码特征与统计行为特征融合的DNS隧道检测方法,其特征在于,采用梯度提升树作为决策分类器,其目标函数由如下方程构成:
Obj=L+Ω
微分凸损失函数L,它衡量了预测值和实际值yi之间的差异;其中l为单个样本之间的损失函数,n为总样本数;正则化惩罚函数Ω,其中T为当前树的叶子的数量,wj为叶子节点j的权重,γ和λ为可配置的超参数;
梯度提升树的每次迭代都会遍历每个特征的特征值xt,z(t=1,2,…;z=1,2,…,8),并采用贪心搜索的方法搜索最小化目标函数值的分裂点,从而完成叶子节点的分裂。
4.根据权利要求3所述一种基于编码特征与统计行为特征融合的DNS隧道检测方法,其特征在于,使用6棵决策树以集成梯度提升树作为决策分类器,并将每棵树的最大深度设置为4;当决策树的深度达到4时,停止分裂并生成新的决策树;当决策树的数量达到6棵时,停止生成树,所有的树共同组成了决策分类器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211300977.6A CN115643087B (zh) | 2022-10-24 | 2022-10-24 | 一种基于编码特征与统计行为特征融合的dns隧道检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211300977.6A CN115643087B (zh) | 2022-10-24 | 2022-10-24 | 一种基于编码特征与统计行为特征融合的dns隧道检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115643087A CN115643087A (zh) | 2023-01-24 |
CN115643087B true CN115643087B (zh) | 2024-04-30 |
Family
ID=84943972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211300977.6A Active CN115643087B (zh) | 2022-10-24 | 2022-10-24 | 一种基于编码特征与统计行为特征融合的dns隧道检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115643087B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103840983A (zh) * | 2014-01-09 | 2014-06-04 | 中国科学技术大学苏州研究院 | 基于协议行为分析的web隧道检测方法 |
CN109218124A (zh) * | 2017-07-06 | 2019-01-15 | 杨连群 | Dns隧道传输检测方法和装置 |
CN110794090A (zh) * | 2019-10-22 | 2020-02-14 | 天津大学 | 情感电子鼻实现方法 |
CN111742313A (zh) * | 2018-02-14 | 2020-10-02 | 万思伴股份有限公司 | 用于隐私保留上下文认证的系统、装置及方法 |
CN114567487A (zh) * | 2022-03-03 | 2022-05-31 | 北京亚鸿世纪科技发展有限公司 | 一种多特征融合的dns隐蔽隧道检测方法 |
CN114793170A (zh) * | 2022-03-28 | 2022-07-26 | 西安电子科技大学 | 基于开集识别dns隧道检测方法、系统、设备及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9794229B2 (en) * | 2015-04-03 | 2017-10-17 | Infoblox Inc. | Behavior analysis based DNS tunneling detection and classification framework for network security |
-
2022
- 2022-10-24 CN CN202211300977.6A patent/CN115643087B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103840983A (zh) * | 2014-01-09 | 2014-06-04 | 中国科学技术大学苏州研究院 | 基于协议行为分析的web隧道检测方法 |
CN109218124A (zh) * | 2017-07-06 | 2019-01-15 | 杨连群 | Dns隧道传输检测方法和装置 |
CN111742313A (zh) * | 2018-02-14 | 2020-10-02 | 万思伴股份有限公司 | 用于隐私保留上下文认证的系统、装置及方法 |
CN110794090A (zh) * | 2019-10-22 | 2020-02-14 | 天津大学 | 情感电子鼻实现方法 |
CN114567487A (zh) * | 2022-03-03 | 2022-05-31 | 北京亚鸿世纪科技发展有限公司 | 一种多特征融合的dns隐蔽隧道检测方法 |
CN114793170A (zh) * | 2022-03-28 | 2022-07-26 | 西安电子科技大学 | 基于开集识别dns隧道检测方法、系统、设备及终端 |
Non-Patent Citations (1)
Title |
---|
"DNS tunneling detection through statistical fingerprints of protocol messages and machine learning";M.Aiello,M. Mongelli;《INTERNATIONAL JOURNAL OF COMMUNICATION SYSTEMS》;20140728;第1987-2002页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115643087A (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Garcia et al. | An empirical comparison of botnet detection methods | |
CN112738015B (zh) | 一种基于可解释卷积神经网络cnn与图检测的多步攻击检测方法 | |
Wang et al. | A comprehensive survey on DNS tunnel detection | |
Soe et al. | Rule generation for signature based detection systems of cyber attacks in iot environments | |
CN111431939A (zh) | 基于cti的sdn恶意流量防御方法及系统 | |
Patil et al. | S-DDoS: Apache spark based real-time DDoS detection system | |
CN113821793B (zh) | 基于图卷积神经网络的多阶段攻击场景构建方法及系统 | |
Wang et al. | Alert correlation system with automatic extraction of attack strategies by using dynamic feature weights | |
Jiang et al. | Novel intrusion prediction mechanism based on honeypot log similarity | |
Rizvi et al. | Application of artificial intelligence to network forensics: Survey, challenges and future directions | |
Elekar | Combination of data mining techniques for intrusion detection system | |
Zang et al. | Identifying fast-flux botnet with AGD names at the upper DNS hierarchy | |
Wang et al. | Botnet detection using social graph analysis | |
CN110519228B (zh) | 一种黑产场景下恶意云机器人的识别方法及系统 | |
Bian et al. | Host in danger? detecting network intrusions from authentication logs | |
Sree et al. | HADM: detection of HTTP GET flooding attacks by using Analytical hierarchical process and Dempster–Shafer theory with MapReduce | |
Bao et al. | Using passive dns to detect malicious domain name | |
Yang et al. | Naruto: DNS covert channels detection based on stacking model | |
Brandao et al. | Log Files Analysis for Network Intrusion Detection | |
Yang et al. | Detecting DNS covert channels using stacking model | |
Srilatha et al. | DDoSNet: A deep learning model for detecting network attacks in cloud computing | |
Bai et al. | Refined identification of hybrid traffic in DNS tunnels based on regression analysis | |
Harbola et al. | Improved intrusion detection in DDoS applying feature selection using rank & score of attributes in KDD-99 data set | |
Tao et al. | A hybrid alarm association method based on AP clustering and causality | |
Zang et al. | Attack scenario reconstruction via fusing heterogeneous threat intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |