APP下载

基于报文特征的DNS隐信道检测技术研究

2021-11-17杨路辉马雪婧翟江涛戴跃伟

计算机仿真 2021年8期
关键词:域名报文分类器

杨路辉,马雪婧,翟江涛,戴跃伟,

(1.南京理工大学自动化学院,江苏 南京 210094;2.中国船舶重工集团第七二四研究所,江苏 南京 211153;3.南京信息工程大学电子与信息工程学院,江苏 南京 210044)

1 引言

近年来以高级持续性威胁(Advanced Persistent Threat,APT)为代表的各种网络失窃泄密事件此起彼伏给网络安全带来严重威胁。APT恶意软件在入侵系统后,为了保证与服务器的通信不被现有的防火墙设备发现并阻断,往往会使用网络隐信道技术以躲避网络审查。网络隐信道的定义为:在公开信道中建立的一种实现隐蔽通信的信道,用于信息传输[1]。目前已知的网络隐信道包括在IP、TCP、ICMP、HTTP等常见网络协议的冗余位进行信息的嵌入,而域名系统(Domain Name System,DNS)协议作为网络通信中必不可少的协议,一般不会被防火墙策略阻拦,由于DNS的递归查询策略需要本地DNS服务器与其它DNS服务器进行通信,这样即使在一个受到严格安全策略管控的网络环境下,同样能够通过DNS协议与外界网络环境进行通信,这就为网络隐信道的构建提供了必要的条件。DNS隐信道能够为恶意软件提供高隐蔽性的数据传输通道,文献[2]中作者对恶意软件进行了长达一年的数据收集,发现不少僵尸网络和蠕虫均在使用DNS进行恶意数据传播。相对与DNS隐信道可能造成的危害,DNS隐信道的检测方法却不多,尤其是缺乏快速、准确的检测方法。

针对DNS隐信道的检测,早期的研究者们通常使用单个或少数几个相关特征进行检测,文献[3]提出使用词频分析的方法检测DNS隐信道,并将检测特征由单个字母的频率统计推广到多个字符的频率统计;文献[4]提出了基于二元词频统计特征的检测算法。文献[5]根据真实网络环境中DNS的响应类型,提出了一种针对TXT响应类型的隐信道检测方法。随后,更多的特征被提出,并且开始使用机器学习的方法进行分类,文献[6]提取了基于DNS请求和响应数据的长度、请求频率等12个数据分组特征,利用朴素贝叶斯、逻辑回归和决策树等常见的机器学习分类器对其数据分组特征进行分类。文献[7]提出了基于DNS请求和响应的长度、响应时间等12个数据特征结合贝叶斯分类器和边界分类器的检测算法,并在文献[8]中使用贝叶斯、神经网络(Neural Network,NN)、支持向量机(Support Vector Machine,SVM)、临近算法(k-Nearest Neighbor,kNN)等分类器进行分类。文献[9]在前人基础上提出了16维特征,并使用随机森林算法进行分类。为了克服单分类器对DNS隐信道检测效果不佳的问题,文献[10]提出了一种混合分类算法,结合朴素贝叶斯、决策树和SVM三种算法进行综合加权分类。考虑到DNS隧道交互的行为模式,文献[11]提出一种基于DNS行为交互特征的DNS隧道检测算法。文献[12-13]提出建立DNS会话并提取行为特征,进而采用分类器进行分类。

使用特征工程结合机器学习的方法能够对DNS隐信道进行较为全面的检测,同时对未知的DNS隐信道方法有一定的检测能力。然而在现有的检测方法中,所采用的多维特征都包含了多个连续的DNS请求组成的流信息,然而在观察实际的DNS请求过程中,发现要将基于UDP协议的DNS数据的流关联信息提取出来,只能使用五元组信息加二级域名信息的方法进行分流,然而部分DNS隧道工具可以伪造源IP,且二级域名可以用动态生成的方法,这就导致不一定能获取到完整的DNS交互数据,确定能够获取的DNS数据为一个请求和对应的响应。基于一对DNS请求,提取相关数据特征进行DNS隐信道的判定,能够实现快速的DNS隐信道检测,同时更具有实际使用意义。

本文根据DNS单次交互的请求和响应数据,分析其数据特征和交互行为特征,提出了一种基于单次请求报文特征的DNS隐信道检测算法。本文分析了DNS请求和响应的报文内容和交互行为,提出了19维包含长度、字符特征、响应时间等维度的特征,同时使用朴素贝叶斯、决策树、SVM和随机森林四种机器学习分类器进行分类,并与文献[6]中的算法进行了对比,实验结果表明,本文算法在相同的数据条件下,能够实现比对比算法更好的检测效果。

2 DNS隐信道特征分析

DNS隐信道通信主要是通过DNS递归查询的原理,通过合法DNS服务器的数据转发从而与恶意服务器进行通信,该通信方式由于没有直接与恶意服务器通信,是一种高隐蔽性的隐信道。分析了DNS隐信道的基本原理,对DNS隐信道的数据报文特征进行分析,发现在请求域名的长度、响应域名的长度以及二元词组词频特征上,正常DNS通信数据与DNS隐信道数据存在较为明显的区别,通过三个特征的组合,进一步验证了多维特征对于DNS隐信道检测的有效性。

2.1 DNS隐信道原理

DNS隐信道的基本原理是利用DNS递归查询策略,在公网架设一台DNS服务器,并注册NS信息,DNS服务器系统通过NS记录查询得到服务器IP,本地DNS服务器可将DNS查询的数据报文转发到这台服务器上,然后服务器给出响应。整体结构如图1所示。

图1 DNS隐信道整体结构图

抗菌药说明书[适应症]不符合抗菌药说明书撰写技术指导原则的主要表现有:适应症没有按照“本品适用于治疗由对本品敏感的XXX、XXX和XXX菌引起的YYY病。”的规范描述;没有遵循“如果获得的证据仅仅支持用于较大人群的亚群(例如,疾病轻微的患者或特殊年龄组的患者)应予说明”的规定;没有遵循“在某些情况下有理由限制适应症,例如,建议药品不作为某种感染的一线治疗”应予描述的规定;遗漏使用限制的内容。

2.2 特征分析

首先分析了DNS请求报文的负载长度,由于DNS隐信道的被控端会向控制端发送数据或者状态信息,DNS隐信道请求报文的负载长度会比正常的DNS请求报文的负载长度更长,通过图2可看出,DNS隐信道的请求报文负载长度明显大于正常DNS数据,然而单个特征还不足以完全将隐信道和正常数据区分开来。

图2 隐信道与正常DNS请求长度对比

对于DNS响应报文,由于控制端需要向被控端发送数据或者控制指令,DNS隐信道响应报文负载的长度也会比正常的DNS响应报文负载的长度要长。通过图3可以看出,DNS隐信道响应报文负载的长度大于正常DNS隐信道。

图3 隐信道与正常DNS响应报文长度对比

误检率=FP/N×100%

将一个域名切分成m个n-gram单词组,分别为w1,w2,…,wm,计算这m个单词组的组合概率

机械电气设备电抗器故障问题较为常见,通常表现为电抗装置烧坏、冒烟及起火等。当电抗装置出现故障后,极有可能造成电抗器绝缘性能下降,电源泄露等,大大增加了维修风险,需相关维修人员对电抗装置进行及时维修,防止故障进一步演化为事故。

DNS隐信道传输的隐秘信息通常隐藏在请求的域名当中,假定需要传递的隐秘信息为“message”,恶意服务器注册的域名为“test.com”,则,客户端发出DNS请求,请求的域名为“message.test.com”,本地DNS服务器向“.com”根服务器请求相关信息,根服务器将请求转发至恶意服务器“test.com”,这样,恶意服务器即可接收到隐蔽消息,且避免直接与客户端通信。

P(w1,…,wm)=P(w1)P(w2|w1)…P(wm|w1,…,wm-1)

(1)

组建后,独家管网形成新的高度垄断,只是将一家或数家国企垄断变为另一家国企垄断,既有庞大的现有管网,又有新建管网沿线土地资源,无法实质性解决油气管道的自然垄断问题。不仅如此,管网建设依赖上游资源,目前还需要大规模的投资,拆分管网将影响现有石油公司继续投资管道建设的积极性,而且新组建的公司筹资身份难确定,筹资将更加困难。由于缺乏竞争动力,投资积极性降低,建设力量单一,组建独立的管网公司后天然气管道的建设速度可能放缓,很难跟上我国天然气产业快速发展的需要,很可能由此形成新的发展制约。自从管网独立改革消息传出后,中国的天然气管道建设速度明显放缓,现有管道运输企业新建管道积极性大幅受挫[6]。

作物转入外源基因使作物生长势、越冬性和抗性得到明显提升,转基因作物发生基因漂流,对逆境有极强适应性,其后代发挥外源基因的优势与原有种成竞争关系[17]。此外,若近缘种是杂草,基因漂流的结果可能产生携带抗性基因的杂草,由于失去天敌克制,沦为恶性杂草,从而占据生存空间。1998年加拿大发现部分油菜可以抗1~3种除草剂,只能用毒性更大的除草剂才能杀灭[18]。转基因作物向非转基因作物进行基因漂流时,携带外源基因的后代可能产生抗性积累,致使除草剂使用增加、土壤污染、生物多样性遭到破坏[19]。由此可见,转基因作物大规模种植可能会给植物群落造成极大的负面影响,导致生物入侵。

P(wi|w1,…,wi-1)=P(wi|wi-n+1,…,wi-1)

(2)

取n=2,即bigram词频概率为

(3)

取其平均对数或然率为

由于第i个单词组的出现近似符合n-1阶马尔科夫模型,即出现wi的概率只与wi的前n-1个字符有关,即

(4)

使用局域网抓取的五千个DNS请求域名以及Alexa网站排名前五千的域名作为bigram训练样本,最终得出的正常DNS和隐信道DNS域名的平均对数或然率对比情况如图4所示,正常DNS的Avg_Log值明显大于DNS隐信道数据。

图4 隐信道与正常DNS Avg_Log值对比

实验使用的数据主要包括DNS隐信道数据和正常DNS数据,训练样本为10000个正常DNS数据和10000个DNS隐信道数据,测试样本包2500个正常的DNS请求,2500个DNS隐信道数据,隐信道数据主要由iodine工具产生,由于iodine支持多种类型的DNS隐信道,同时支持数据包长度的控制,仅使用iodine产生隐信道训练样本,数据包含了A记录、CNME记录、TXT记录、NULL四种DNS请求类型,隐信道请求的DNS域名长度由15到200不等。机器学习工具使用weka3.6完成。

图5 隐信道与正常DNS三维特征分类效果

3 基于报文特征的DNS隐信道检测模型

3.1 DNS隐信道报文特征

检测率计算公式为

表1 DNS报文19维特征

3.2 检测模型

为实现快速而准确的DNS隐信道检测,设计了一个两级的DNS隐信道分析模型,模型第一级采用域名长度L2和字符的平均对数或然率Avg_Log进行快速分类,当L2大于设定的阈值,且Avg_Log小于设定的阈值时,进入下一级分类器,第二级分类器采用完整的19维特征结合机器学习分类器进行分类。第一级分类器主要用于快速过滤大量的正常域名,减小第二级分类器的压力,第二级分类器对域名进行准确分类,输出分类结果。具体检测流程如图6所示。

图6 DNS隐信道检测模型

4 实验及结果分析

4.1 实验数据和工具准备

通过对单个特征的直方图分析,确定了单个特征难以准确区分隐信道数据和非隐信道数据。将上述三个特征进行结合,在三维空间内进行分类,结果如图5所示,隐信道数据和正常数据的区分度更大了,为了更加准确的分类DNS隐信道数据和非DNS隐信道数据,需要更多维的特征。

合理的合同条款设置可以有效降低工程量清单风险。依据工程项目各分部工程要求,共有可调总价合同、固定总价合同、单价合同等几种类型。为了避免合同漏洞导致工程招标方规避工程价款索赔风险,可在合作协议签订期间,利用可调总价合同控制分部工程实际工程量与工程量清单中工程量差额在±5.0%以内,若工程量上升幅度在标准限度外,则需要依照综合单价的95%执行。

4.2 实验结果

选择了四种常见的机器学习算法来建立模型,分别为朴素贝叶斯、SVM、J48决策树、随机森林。模型的准确性通过十折交叉验证法验证。检测结果如表2所示。评价指标采用检测率、误检率和建模时间三个指标来比较不同分类器的检测效果。建模时间为使用训练样本训练模型所需的时间,建模时间越小表示模型复杂度越低,检测速度越快。

表2 DNS隐信道分类结果

通过对DNS隐信道报文进行分析,归纳总结了19维DNS报文特征,其特征维度涵盖了DNS报文长度、报文长度统计量、响应时间、域名字符特征等维度,具体特征及描述如表1所示。

再次,确定核心目标。每一名问题学生背后都一个深层次的原因造成了一系列问题的发生。在确定教育转化问题学生的目标后,我们要拨云见日,找到那个深层次的原因,并根据这个原因确定核心教育目标,以便解决根源性问题,把力量用在刀刃上。根源性问题不解决,所有工作都是隔靴搔痒。

检测率=TP/P×100%

(5)

由于DNS隐信道在通信过程中将信息编码在域名中,这必然会导致生成的域名与一般以自然语言为基础的域名存在差别,将其n-gram词频特性作为DNS隐信道的一种特征。

(6)

其中,TP表示DNS隐信道被正确分类为DNS隐信道的数量,P表示DNS隐信道的测试样本总数。FP表示正常DNS报文被错误分类为DNS隐信道的样本数量,N表示正常DNS测试样本数量。

2.1 4组患者治疗前后肺部感染及留置胃管情况比较 治疗4周后,3个观察组肺部感染及留置胃管率较治疗前及对照组治疗后显著下降(均P<0.05);3个观察组之间肺部感染及留置胃管率比较差异无统计学意义。见表2。

四种分类器的检测效果不同,其中,随机森林的检测率最高,可达到99.7%,同时误检率最低,为0.1%,但是由于模型复杂度高,建模时间较长,为7.72秒。朴素贝叶斯检测率和误检率均为最差,分别为79.1%和1.8%,然而模型简单,建模时间最快,为0.11秒。SVM模型检测率为98.6%,误检率为0.5%,建模时间为0.52秒,检测效果好于朴素贝叶斯。J48决策树检测率为99.4%,误检率为0.2%,建模时间为0.37秒,检测效果仅次于随机森林,且建模时间较短,仅次于朴素贝叶斯。综合来看,SVM、J48决策树和随机森林三种分类器检测效果均能够满足实际需求,如果考虑到模型复杂度,J48决策树最适合需要快速检测的实时检测环境。

4.3 对比实验

在同样仅使用一对DNS请求和响应报文的情况下,将本文提出的检测模型与文献[6]中的模型进行了对比,分别比较了本文采用的报文特征与文献[6]所采用的报文特征结合朴素贝叶斯、SVM、J48决策树三种分类器的检测效果。对比实验结果如表3所示。

表3 对比实验结果

实验结果表明,在同样的数据条件下,使用相同的分类器时,本文提出的检测算法对DNS隐信道的检测结果均优于文献[6]中的算法。

5 结论

本文针对真实网络环境中DNS交互报文难以完全收集完整,从而容易导致现有的检测算法模型失配的问题,提出了一种基于单次DNS请求与响应报文的检测算法,该算法提取了19维报文特征并采用机器学习分类器进行分类,并与其它文献中的算法进行了对比实验,实验结果表明,在相同的数据条件下,本文提出的算法整体检测效果好于对比算法。

猜你喜欢

域名报文分类器
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
基于Python的汽车CAN总线报文格式转换系统的设计与实现
基于报文类型的限速值动态调整
基于朴素Bayes组合的简易集成分类器①
《江苏教育研究》官方网站域名变更公告
《江苏教育研究》官方网站域名变更公告
基于AdaBoost算法的在线连续极限学习机集成算法