CN107733851B - 基于通信行为分析的dns隧道木马检测方法 - Google Patents
基于通信行为分析的dns隧道木马检测方法 Download PDFInfo
- Publication number
- CN107733851B CN107733851B CN201710731319.5A CN201710731319A CN107733851B CN 107733851 B CN107733851 B CN 107733851B CN 201710731319 A CN201710731319 A CN 201710731319A CN 107733851 B CN107733851 B CN 107733851B
- Authority
- CN
- China
- Prior art keywords
- dns
- session
- tunnel
- trojan
- module
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于通信行为分析的DNS隧道木马检测方法,主要包含数据包采集整合模块、DNS会话重组模块、随机森林分类训练学习模块和DNS隧道木马流量检测模块四大部分。从DNS会话的视角剖析了DNS隧道木马的通信模式,提取了七大区别于正常的DNS会话特征的属性,利用改进随机森林算法构建分类训练器,最终建立了DNS隧道木马检测模型。实验测试表明本文提出的基于通信行为分析的DNS隧道木马检测技术不仅能有效的侦测出高隐蔽性DNS隧道木马,误报率小和漏报率低,而且对于未知的DNS隧道木马同样有很好的检测效果。
Description
技术领域:
本发明涉及一种DNS隧道木马的检测方法,特别是涉及一种基于通信行为分析的高隐蔽性DNS隧道木马检测方法。
背景技术:
DNS隧道技术是指基于DNS网络协议建立隐蔽通信,实现机密数据的隐蔽传输。DNS隐蔽通道可以被恶意利用,一些渗透工具可以通过DNS隐蔽通道进行远程控制甚至窃取数据。Daan Raman等人已经证明,在Metasploit渗透测试平台下,利用内网机缓冲区或者其他漏洞,是能建立功能完全的从专用内网到外网控制者的DNS隧道,并且利用建立的DNS隧道进行指挥和控制攻击。2017年3月,思科Talos团队发现了一起名为DNSMessenger的攻击,该恶意软件的所有命令与控制通信都经由DNS TXT查询和响应进行,以此躲避检测。由此可见,基于DNS隧道的通信技术已逐渐成为黑客控制目标的关键技术手段。如何有效的应对层出不穷的新型高隐蔽性DNS隧道木马,及时发现网络通信中可能存在的DNS隧道木马,提高木马检测率,已成为亟待解决的难题。
虽然DNS隧道木马带来的威胁很大,但DNS隧道木马却难以得到有效的监控。一方面是因为DNS报文具有天然的穿透防火墙的能力,另一方面目前的杀毒软件、IDS等安全策略也很少对DNS报文进行有效的监控管理。目前DNS隧道木马的检测技术停留在基于传统的DNS隧道工具检测上,主要分为两大类:载荷分析和流量监测。DNS载荷检测主要是针对DNS数据包中的有效载荷进行分析。其中“有效载荷”意思是除去报文协议头部剩下的数据字段内容。DNS流量监测手段主要是检测网络中的DNS流量变化情况,其原理是DNS隧道在传输数据时会产生大量的DNS报文,在网络中常常会表现出某时刻DNS流量突增的异常现象。
Patrick Butler等人把DNS报文中域名中label部分大于52个字符作为识别DNS隧道的特征之一。该方法主要通过统计域名长度来分析是否存在DNS隧道。一般情况下,DNS隧道把要传输的内容封装在请求字段的域名中,为了追求传输效率,在一次传输过程中会尽可能携带多的隐蔽信息,所以造成DNS报文域名字段中的域名长度偏长。
Born K等人引入信息熵的概念来检测DNS隧道域名字母的混乱程度。日常生活中我们用的域名往往具有一定的含义,常见域名是以日常中的单词或者一些有规律的词组命名,所以正常域名熵值低。然而DNS隧道为了增强隐蔽性,提高抗字符分析能力,一般会均匀的使用各个字符编码,这就使DNS隧道的域名的混乱程度较高。
Qi C等人用二元语法字频来检测DNS报文中域名字母频率,发现正常的域名满足Zipf定律而DNS隧道的域名遵循的是随机分布。他们利用二元语法字频来实时监测计算域名中字母的随机性,通过评分机制来判定是否存在DNS隧道。该方法克服了以往流量检测方法延时性,效率高,但是该方法存在一定的误报率,容易把拼写奇怪的但是合法的域名当成DNS隧道报文。
Bilge L等人把检测域名中最长有意义子串的百分比作为检测恶意域名的重要特征之一。他们通过从主要国家的字典中提取所有可能的有意义词句,除此之外还提取一些生活中有意义的字母数字字符的组合来组成“有意义子串”字典。通过实际检验发现,合法域名中最长的有意义字符串的长度的比值相对于恶意域名要大的多。
Lokington S等人发现DNS隧道中的域名常常会出现一连串数字与辅音字母,但正常的域名中一般不会发生,因为合法域名在某种程度上是日常使用母语的体现,比如英语。因此也可以通过检测域名中连续的数字以及辅音字母来发现是否存在DNS隐蔽隧道。
Ellens等人通过检测单位时间内DNS报文流速率来检测是否存在DNS隧道。一个原因是一个DNS请求报文最多可携带512个字节的数据,执行一次隐蔽内容的传输就要发送很多的数据包。另一个原因是被控端要不断的向控制端发送DNS报文心跳,这也会造成DNS报文流速率的增加。但是这种方法忽视了DNS报文突增可能是由于DNS Query Flood攻击引起的。
Ichise H等人利用侦测txt类型的DNS数据包来发现僵尸网络的通信情况。统计发现,在正常的DNS流量中,A记录类型的流量占20%–30%,CNAME记录为38%–48%主,AAAArecords大概占到25%,NS记录只有大概5%,TXT记录更是不到1-2%。然而为了获取获得更高的带宽,一部分的DNS隐蔽通道工具比如Iodine,在默认配置下都会使用TXT和NULL等不常用的记录类型,因此通过检测DNS流量中不常用的记录类型也是一个不错的手段。
Cai等人提出的三种模式判别DNS报文中是否存在恶意域名:1)域名字符长度大于阈值;2)域名是由字母和数字组成且字符混杂无序;3)域名解析具有时间上的突发性。由于绝大部分的恶意域名存活短,有的为了规避审计甚至只存活时间只有几分钟,这导致DNS请求解析次数分布不均。该检测手段的局限性在于针对字符长度小于阈值且字符由单独由字母组成的域名会漏报。
章思宇等人发现隐蔽隧道通信中的DNS流在单位时间的回答数据的总字节数与合法请求具有明显的差异。利用DNS隧道通信产生的下行数据一般是存储在资源记录字段,所以通过统计下行报文中所有资源记录字段总长度作为网络中出现DNS隧道流量的重要特征之一。
以上的研究表明,基于载荷分析和流量监测手段的DNS隧道检测方法虽然在应对传统的DNS隧道工具的检测上具有很好的检测率,但是新型的以隐蔽控制为主的DNS隧道木马的出现使得上述的检测手段变得捉襟见肘。以隐蔽控制为主的DNS隧道木马与DNS隧道工具不同,DNS隧道木马首先要考虑的就是保证生存,所以不同于DNS隧道工具,DNS隧道木马采用常见的DNS记录类型、牺牲传输速率和采用加密通信等各种手段提高通信的隐蔽性。因此,传统的基于载荷分析和流量监测手段的DNS隧道检测方法不能完全适用于DNS隧道木马的检测。
发明内容:
本发明要解决的技术问题是:克服现有以载荷分析和流量检测为主的技术手段的缺陷,提供一种基于通信行为分析的DNS隧道木马检测方法,该方法能够对高隐蔽DNS隧道木马有效的进行检测,具有较高的检测准确度和较低的误报率。
本发明的技术方案:本发明从DNS会话的视角剖析了DNS隧道木马的通信模式,提取了七大区别于正常的DNS会话特征的属性,利用改进随机森林算法构建分类训练器,最终建立了DNS隧道木马检测模型。
基于通信行为分析的DNS隧道木马检测方法包括数据包采集整合模块、DNS会话重组模块、随机森林分类训练模块和DNS隧道木马流量监测模块。
所述数据包采集整合模块:(1)网络数据包采集和数据包过滤:首先从网络出入口采集数据包,采用WinPcap捕获技术的底层过滤机制抓取DNS流量。捕获到DNS数据包后,根据需求可对抓取的DNS报文校验,目的是为了保证抓取的数据包符合DNS协议规范,防止DNS出错报文等情况的出现影响检测精度。(2)DNS数据包队列:经检查后满足DNS协议规范的DNS报文缓存下来,抽取用于检测的关键信息后,存入DNS数据报文队列。
所述DNS会话重组模块:(1)DNS会话重组:将抓取的DNS流量按照五元组进行聚类,将DNS报文组件成DNS会话。对所述DNS报文按照五元组进行聚类是采用哈希算法处理方法:首先在内存中创建五元组哈希表,如果DNS报文属于当前哈希表中的某个DNS会话中,则将该报文链接在该五元组哈希会话链表后。如果该DNS报文的五元组哈希值不在这哈希会话链表中,则创建一个新的哈希会话,加入到该链表中。引入超时机制来判定DNS会话的结束,本系统设定两个限定条件:a.会话在3分钟内没有收到新的DNS报文;b.会话时长大于30分钟;(2)将DNS会话数据流提取成DNS会话评估向量表示。DNS评估向量为<DNS会话时长,DNS数据包总数,“上行大包”占DNS请求包总数的比例,“下行小包”占DNS响应报总数的比例,有效载荷的上传下载比,域名的对应的主机名数量>。
所述随机森林分类训练模块:(1)基于随机森林的分析学习方法:训练集中的样本个数为n,然后利用Bootstrap法又放回采样,随机生成{X1,X2,......,Xk}个子训练集,每个子训练集的样本个数也是n个,1≤k≤n,k和n为整数,子训练集中的样本是可重复的;每个训练样本集Xi是对应分类树Ti的全部训练数据。在树的每个节点处,从7个特征中随机挑选3个特征,按照信息增益算法从这3个特征中选出一个信息增益最大的特征进行分裂生长;这棵树进行充分的生长,最终生长成一棵完整的决策树;所述7大特征为:DNS会话时长、DNS数据包总数、“上行大包”占DNS请求包总数的比例、“下行小包”占DNS响应报总数的比例、有效载荷的上传下载比、域名的对应的主机名数量和主动探测DNS会话中出现的域名。(2)生产随机森林:随机森林是所有决策树的集合,每棵决策树Ti都会对输入变量x输出一个决策结果E(Ti),如果判定是DNS隧道木马流量,E(Ti)=1;否则,E(Ti)=0。统计所有k棵决策树的投票结果:
1≤i≤k,i为整数。
第四步:DNS随动木马流量监测模块:对于输入的DNS会话变量x,给出最终的DNS隧道木马判定公式:
即若Y=1,则判定DNS会话属于DNS隧道木马恶意流量;否则为正常流量。otherwise为其他情况。
所述五元组是源IP地址、源端口、传输层协议、目的IP地址和目的端口这五个向量组成的集合。对于任意一个数据包,都将其表示为五元组,比如<192.168.0.2,58662,dns,114.114.114.114,53>。如果两个数据包,使用的协议是相同的,而且源IP地址和目的IP地址相对,源端口和目的端口相对,那么这两个数据包认为是属于同一个会话的。比如在一段时间内的同一个局域网出口中,<192.168.0.2,58662,dns,114.114.114.114,53>和<114.114.114.114,53,dns,192.168.0.2,58662>是属于同一个DNS会话的。五元组能够区分不同会话,并且对应的会话是唯一的。
本发明基于分析DNS隧道木马会话和正常DNS会话的差异性,提取出以下七大属性作为区分特征:
1)DNS会话时长
TCP会话在建立通信过程中存在“三次握手”和断开连接的“四次挥手”行为,所以TCP会话可以计算会话时长。DNS会话属于UDP会话的其中一种,因为UDP无连接的特性,DNS没有会话时长的严格定义。在本文定义:在一次DNS会话中,最后一个DNS报文的时间和第一个DNS报文的时间差就作为这个DNS会话的时长。
在正常的DNS解析状态中,一次DNS解析过程首先由客户机在本地随机开启一个UDP端口,然后向指定的DNS服务器53端口发送DNS请求报文,两者由此建立一个UDP通道。客户机一旦得到相应DNS回复报文,这个DNS解析过程就结束了,如果没有后继的DNS解析任务,创建的UDP套接字会保存一段时间然后关闭,完成一次DNS会话。再次进行DNS解析的时候,再随机开启另一个UDP端口开启,重复上述的过程,所以正常域名解析DNS会话的时间短。对于DNS隧道木马而言,创建的UDP套接字会通常等到木马下线或者木马生命结束才关闭UDP套接字,会长时间占用的UDP端口,所以DNS隧道木马的DNS会话时长远要比正常DNS会话时长要长的多。在某实验室网络出口,统计一小时流量中所有DNS会话中不同会话时长对应的DNS报文数量。实验发现,正常的DNS会话时长一般十分短暂,DNS解析行为所耗费的时间大多数不会超过0.1秒就结束了。
2)DNS会话中数据包总数
因为DNS隧道木马的会话一般随着木马生命周期的结束而结束,在整个木马的生命周期里会向外发送心跳报文、传输本机敏感信息和资源文件等,控制端会下达相关的远程控制指令等,所以在DNS隧道木马会话中DNS报文数量大。然而,正常应用程序产生的DNS会话随着一次DNS解析任务结束而结束,DNS会话比较简短,所以整个正常DNS解析生命周期产生的数据包数量一般少。同样的,在某实验室网络出口,统计一小时流量中所有DNS会话对应的DNS报文数量,发现大多数正常的DNS会话中数据包的个数为两个,即由一个DNS请求报文和一个DNS响应报文组成。
3)“上行大包”占请求报文总数的比例
本文定义DNS报文中queries字段长度大于50的就叫做上行大包。DNS上行包即DNS请求报文。DNS隧道木马被控端把要传输的内容封装在queries字段的域名中,在一次传输过程中为了尽可能携带更多的隐蔽信息,往往构造的queries字段中的域名长度偏长,与正常DNS会话相比,DNS隧道木马会话中,“上行大包”占DNS请求数据包总数的比例较大。
换个角度考虑,如果攻击者为规避检测,精心构造相对短小的域名,从而减少每次发送的报文携带的隐蔽通信内容。当被控端传送某一固定的敏感资源文件,由于传送的资源文件大小是固定的,如果牺牲一次携带的隐蔽信息的内容,势必造成整个DNS会话的DNS报文总数的增加。所以容易得出结论:在一次DNS隧道木马的会话中,DNS报文总数和DNS报文长度这两者是负相关的。
4)“下行小包”占响应报总数的比例
因为域名型的DNS隧道木马把双方交互的信息封装在queries和answers字段中,而且answers字段是附加在queries字段后面,所以一个DNS响应报文总是比对应相同ID的DNS请求报文大。为了有效提取特征,本文重新把DNS有效载荷部分提取出来,重新定义如下:如果DNS应答报文中answers字段数小于50的数据包称为“下行小包”。
与特征3.2.3相似,在DNS隧道木马在交互过程中,控制端发送的控制命令一般有特定含义、短小精简,所以DNS回复报文一般是“下行小包”。对于正常DNS解析而言,客户机是资源请求者,DNS服务器返回的数据除了answers字段外,还经常返回授权和额外信息字段信息,所以正常的DNS响应报文相对较大。
5)有效载荷的上传下载比
DNS会话报文中的有效载荷是指DNS报文中除去DNS报文头部剩下的queries字段和answers、授权和额外信息字段的内容。DNS隧道木马在和DNS服务器交互通信时,DNS隧道木马控制端向DNS隧道木马发送少量的控制指令,DNS隧道木马则需返回大量的本机机密资源数据。然而正常DNS解析情况刚好相反,DNS请求数据包通常短小,而DNS域名服务器回复的数据信息比较多。因此DNS隧道木马的DNS会话中有效载荷的上传下载比值比较大。
6)二级域名的对应的主机名数量
对于DNS隧道木马而言,控制端在一次传输本机敏感资源文件时候,采用的域名的是固定的,所以造成在一次的DNS会话中,域名中对应的主机名数量与DNS报文数量成正相关的关系。正常的域名中注册用的主机名其实是有限的,结果显示即使类似百度这样的知名域名,对应的子域名个数也不超过1100个。而当DNS隧道木马传输的数据时,一个DNS数据请求报文中域名所能携带最大的字节数为253个字节。这意味着传输1M的资源文件,就会产生至少4144个DNS报文,域名对应的主机名数量就有4144个,这要远大于正常网站域名对应的主机名数量。
7)主动探测DNS会话中出现的域名
在正常网络中,DNS服务器是资源的提供者,属于监听响应资源请求的网络设备,当客户机排除,当客户机发起DNS解析请求时,如果排除网络拥塞,服务器故障等情况,DNS服务器一般会做出响应。然而,DNS隧道木马把发送的信息隐藏在DNS报文中的域名中,这种构造的域名的主机名其实是没有在域名服务器A记录注册过的。所以如果对DNS隧道木马中构造的域名发起ICMP请求,那么会对这些构造的域名的DNS请求解析IP地址,由于得不到IP地址,所以ICMP请求得到的情况是ping请求找不到该主机,从流量角度分析会出现DNS响应报文出现“sever failure”的情况。然而正常域名一般能够得到ICMP回复。
在上面中,我们分析了DNS隧道木马7大属性,由于每个特征计算难度不一,而且实时性要求也不同,综合考虑后,我们选取其中6个特征作为DNS会话实时评估向量<会话时长,DNS数据包总数,“上行大包”占DNS请求包总数的比例,“下行小包”占DNS响应报总数的比例,有效载荷的上传下载比,域名的对应的主机名数量>。DNS隧道木马特征“主动探测DNS会话中出现的域名”中,探测所花费的时间大,所以这不适合DNS会话的实时评估处理。本文将这两个特征作为DNS会话备选评估向量。一旦DNS会话评估出现可疑的DNS隧道木马会话时,检测DNS会话备选评估向量的异常情况,综合判定是否存在可疑的DNS隧道木马。
本发明针对目前DNS隧道逐渐被一些新型木马作为远程控制的方式,严重危害网络安全。针对该问题,本文提出一种基于通信行为分析的DNS隧道木马检测技术。设计并实现了基于通信行为分析的DNS隧道木马检测系统,并用实验对系统的有效性和实用性进行测试。该检测模型主要包含数据包采集整合模块、DNS会话重组模块、随机森林分类训练学习模块和DNS隧道木马流量检测模块四大部分。实验测试表明本文提出的基于通信行为分析的DNS隧道木马检测技术不仅能有效的侦测出高隐蔽性DNS隧道木马,误报率小和漏报率低,而且对于未知的DNS隧道木马同样有很好的检测效果。
附图说明:
图1为DNS隧道木马检测流程框架。
图2为数据包采集整合模块流程图。
图3为DNS哈希存储结构示意图。
图4为DNS会话重组模块工作流程图。
图5为生成随机森林过程图。
图6为随机森林决策图。
图7为DNS隧道木马通信行为检测模块工作流程图。
具体实施方式:
DNS隧道木马检测系统框架设计见图1。DNS隧道木马检测系统有数据包采集整合采集模块、DNS会话重组模块、随机森林分类训练模块和DNS隧道木马流量检测模块四大部分,加上用户管理界面接口。
数据包采集整合模块主要是采用Winpcap捕获技术的底层过滤机制抓取DNS流量。DNS会话重组模块将抓取的DNS流量按照五元组进行聚类,形成一条条DNS会话,并将DNS会话数据流提取成DNS会话评估向量表示,作为随机森林分类训练模块和DNS隧道木马流量检测模块的输入。本检测模型兼并考虑IP直连型DNS隧道木马,如果DNS会话中出现不信任的外网地址,直接将该IP和相关信息报警存入数据库。随机森林分类训练学习模块首先要标记训练样本,将DNS隧道木马会话和正常DNS会话标记并且训练。根据提取的DNS隧道木马通信八大属性,运用随机森林的分类学习方法,生成一棵棵决策树,并且对每颗决策树的分类结果进行投票表决。DNS隧道木马流量检测模块是整个系统的核心部分,主要功能是对DNS会话向量进行检测,判定DNS评估向量是否为DNS隧道木马的通信数据,最后将产生报警的DNS隧道木马信息存入数据库。
1)数据包采集整合模块
数据包采集整合模块主要是从网络出入口采集数据包,采用WinPcap捕获技术的底层过滤机制抓取DNS流量。数据包采集整合模块是根据操作系统提供的WinPcap库设计研发的。Windows系统为用户提供了网络内核数据的调用接口并且提供了一个方便实用的WinPcap函数。为了能让来自上层的应用程序能够使用底层内核驱动所提供的功能,WinPcap为用户层提供两个不同层次的动态链接库:Packet.dll与wpcap.dll。Packet.dll提供底层的API,提供不同操作系统的编程接口;wpcap.dll提供用户层函数调用。
数据包采集整合模块的工作执行流程如图2所示。
由于我们关注的对象是DNS报文,配置抓包规则只获取DNS报文。捕获到DNS数据包后,根据需求可对抓取的DNS报文校验,目的是为了保证抓取的数据包符合DNS协议规范,防止DNS出错报文等情况的出现影响检测精度。经检查后满足协议规范的DNS报文缓存下来,抽取用于检测的关键信息后,存入DNS数据报文队列。检测用的DNS报文结构重新定义如下:
检测用的DNS数据包随后进入DNS数据包队列,DNS数据包队列数据结构的程序语言描述如下:
2)DNS会话重组模块
将DNS报文组件成DNS会话,需要对DNS报文按照五元组进行分类,在这里采用哈希算法处理方法:首先在内存中创建五元组哈希表,如果DNS报文属于当前哈希表中的某个DNS会话中,则将该报文链接在该五元组哈希会话链表后;如果该DNS报文的五元组哈希值不在这哈希会话链表中,则创建一个新的哈希会话,加入到该链表中。具体的DNS数据包哈希存储结构见图3。
到此为止,解决了两个问题:(1)DNS会话的存储结构;(2)判定两个DNS是否属于同一个DNS会话只要判断两个DNS报文五元组是否相关。那么还在存在一个问题:如何判定DNS会话结束?DNS会话并没有TCP会话中“四次挥手”数据包的关闭标志,那么本文引入超时机制来判定DNS会话的结束,本系统设定两个限定条件:
会话在3分钟内没有收到新的DNS报文;
会话时长大于30分钟;
满足上述两个条件之一都会被认为DNS会话的结束。对于加入条件(2)的原因是如果一个会话持续时间太长会导致数据包一直拥塞,内存得不到及时的释放,造成系统的卡顿,降低处理效率。如果一个DNS会话时长超过30分钟,该会话会被切成两部分,会不会对检测结果造成很大的影响?实践检验的结果是影响的结果微乎其微,原因是:(1)如果一个DNS会话超过30分钟被截断了,那么截断后的DNS报文会以新的DNS会话保存下来,并且再次进入检测,所以不会遗漏待检测的数据;(2)即使在网络拥塞很严重的环境下,正常的DNS会话一般不会超过3分钟,这与计算机系统处理DNS报文响应的时间有关,所以如果一个DNS会话持续超过30分钟,几乎可以判断这是一个有问题的DNS会话。
当每一个DNS会话结束时,接下来提取DNS会话评估向量,DNS评估向量的存储结构如下:
DNS报文属于UDP报文,UDP不像TCP会话在建立通信过程中存在“三次握手”和断开连接的“四次挥手”行为,所以要重新构造DNS会话。在本系统中如果两个DNS报文满足五元组相关,那么这两个DNS报文就属于同一个DNS会话。DNS会话重组模块的输入是数据包采集整合模块产生的DNS数据包队列,进过DNS会话提取重组后,输出DNS会话向量。DNS会话重组模块的主体结构如图4所示:
DNS会话重组模块读取来自数据包采集过滤模块生成的DNS数据报文,通过DNS会话重组过程,最终形成一个个待评估的DNS会话向量。这些DNS会话评估向量一部分构成随机森林分类训练模型的训练样本,将训练好的随机森林分类器部署到DNS流量检测系统中后,DNS会话评估向量就作为DNS隧道木马流量检测系统的输入。
3)DNS隧道木马随机森林分类训练模块
DNS隧道木马随机森林分类训练模块读取DNS会话重组模块生成的DNS评估向量,通过分类训练,建立随机森林分类器。采集和标记DNS隧道木马会话评估向量和正常DNS会话评估向量作为随机森林分类训练模块的输入。
DNS隧道木马流量的采集方法是:在测试网络中部署DNScat2等DNS隧道木马样本,在具有外网IP地址的控制端对DNS隧道木马发送相应的控制命令,在测试网络的交换机处按照抓取DNS数据。正常DNS流量的采集方法较为简单:在纯净测试网络里,所有纯净主机日常的上网,利用交换机镜像数据抓取DNS数据当做正常DNS数据样本。随机森林训练模块如图5、6所示。
如图6所示,随机森林的分类过程比较简单,对于测试集,每一棵子决策树都会产生分类结果,最后投票决策,占多数的那一类就作为此次随机森林分类器的分类结果。
4)DNS隧道木马通信行为检测模块
DNS隧道木马通信行为检测模块以DNS会话评估向量作为输入。该模块首先读取缓存队列中DNS会话评估向量,因为综合考虑DNS评估向量中每个特征提取难度和计算实时性要求,首先提取DNS会话实时评估向量,然后进入随机森林分类器评估。如果初步确定为可疑DNS隧道木马流量,接着再进行提取此次DNS会话的备选评估向量进行评估,如果评估结果为可疑则生成相关报警信息并且存入数据库。DNS隧道木马通信行为检测模块工作流程如图7所示。
Claims (4)
1.一种基于通信行为分析的DNS隧道木马检测方法,其特征是:包括数据包采集整合模块、DNS会话重组模块、随机森林分类训练模块和DNS隧道木马流量监测模块; 数据包采集整合模块:(1)网络数据包采集和数据包过滤:首先从网络出入口采集数据 包,采用WinPcap捕获技术的底层过滤机制抓取DNS流量;捕获到DNS数据包后,根据需求可对抓取的DNS报文校验,目的是为了保证抓取的数据包符合DNS协议规范,防止DNS出错报文情况的出现影响检测精度;(2)DNS数据包队列:经检查后满足DNS协议规范的DNS报文缓存下来,抽取用于检测的关键信息后,存入DNS数据报文队列;
DNS会话重组模块:(1)DNS会话重组:将抓取的DNS流量按照五元组进行聚类,将DNS报文组成DNS会话;对所述DNS报文按照五元组进行聚类是采用哈希算法处理方法:首先在内存中创建五元组哈希表,如果DNS报文属于当前哈希表中的某个DNS会话中,则将该报文链接在该五元组哈希会话链表后;如果该DNS报文的五元组哈希值不在这哈希会话链表中,则创建一个新的哈希会话,加入到该链表中;(2)将DNS会话数据流提取成DNS会话评估向量表示;DNS评估向量为<会话时长,DNS数据包总数,“上行大包”占DNS请求包总数的比例,“下行小包”占DNS响应报总数的比例,有效载荷的上传下载比,域名的对应的主机名数量>;
随机森林分类训练模块:(1)基于随机森林的分析学习方法:训练集中的样本个数为n,然后利用Bootstrap法又放回采样,随机生成{X1 ,X2 ,......,Xk}个子训练集,每个子训练集的样本个数也是n个,1≤k≤n,k和n为整数,子训练集中的样本是可重复的;每个训练样本集Xi是对应分类树Ti的全部训练数据;在树的每个节点处,从7个特征中随机挑选3个特征, 按照信息增益算法从这3个特征中选出一个信息增益最大的特征进行分裂生长;这棵树进行充分的生长,最终生长成一棵完整的决策树;所述7大特征为:DNS会话时长、DNS数据包总数、“上行大包”占DNS请求包总数的比例、“下行小包”占DNS响应报总数的比例、有效载荷的上传下载比、域名的对应的主机名数量和主动探测DNS会话中出现的域名;(2)生产随机森林:随机森林是所有决策树的集合,每棵决策树Ti都会对输入变量x输出一个决策结果E (Ti),如果判定是DNS隧道木马流量,E(Ti)=1;否则,E(Ti)=0,统计所有k棵决策树的投票
结果:
DNS随动木马流量监测模块:对于输入的DNS会话变量x,给出最终的DNS隧道木马判定公式:
即若Y=1,则判定DNS会话属于DNS隧道木马恶意流量;否则为正常流量。
2.根据权利要求1所述的基于通信行为分析的DNS隧道木马检测方法,其特征是:DNS会话重组模块中DNS会话重组引入超时机制来判定DNS会话的结束,本系统设定两个限定条件:a .会话在3分钟内没有收到新的DNS报文;b .会话时长大于30分钟。
3.根据权利要求1所述的基于通信行为分析的DNS隧道木马检测方法,其特征是:对于任意一个数据包,都将其表示为五元组,所述五元组是源IP地址、源端口、传输层协议、目的IP地址和目的端口这五个向量组成的集合;五元组能够区分不同会话,并且对应的会话是唯一的。
4.根据权利要求3所述的基于通信行为分析的DNS隧道木马检测方法,其特征是:如果两个数据包使用的协议是相同的,而且源IP地址和目的IP地址相对,源端口和目的端口相对,那么这两个数据包认为是属于同一个会话的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710731319.5A CN107733851B (zh) | 2017-08-23 | 2017-08-23 | 基于通信行为分析的dns隧道木马检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710731319.5A CN107733851B (zh) | 2017-08-23 | 2017-08-23 | 基于通信行为分析的dns隧道木马检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107733851A CN107733851A (zh) | 2018-02-23 |
CN107733851B true CN107733851B (zh) | 2020-05-01 |
Family
ID=61204755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710731319.5A Active CN107733851B (zh) | 2017-08-23 | 2017-08-23 | 基于通信行为分析的dns隧道木马检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107733851B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108848201A (zh) * | 2018-06-14 | 2018-11-20 | 深信服科技股份有限公司 | 检测利用dns隧道传输隐秘数据的方法、系统及装置 |
CN108809989B (zh) * | 2018-06-14 | 2021-04-23 | 北京中油瑞飞信息技术有限责任公司 | 一种僵尸网络的检测方法及装置 |
CN110611640A (zh) * | 2018-06-15 | 2019-12-24 | 成都蓝盾网信科技有限公司 | 一种基于随机森林的dns协议隐蔽通道检测方法 |
CN109166615B (zh) * | 2018-07-11 | 2021-09-10 | 重庆邮电大学 | 一种随机森林哈希的医学ct图像存储与检索方法 |
CN109218461B (zh) * | 2018-08-09 | 2022-02-22 | 奇安信科技集团股份有限公司 | 一种检测隧道域名的方法及装置 |
CN109474575B (zh) * | 2018-09-11 | 2022-04-12 | 奇安信科技集团股份有限公司 | 一种dns隧道的检测方法及装置 |
CN109379341B (zh) * | 2018-09-21 | 2022-02-01 | 国网湖南省电力有限公司 | 一种基于行为分析的反弹型远控木马网络流量检测方法 |
CN111049784B (zh) * | 2018-10-12 | 2023-08-01 | 三六零科技集团有限公司 | 一种网络攻击的检测方法、装置、设备及存储介质 |
CN109756389A (zh) * | 2018-11-28 | 2019-05-14 | 南京知常容信息技术有限公司 | 一种万兆网络隐蔽通信检测系统 |
CN110149418A (zh) * | 2018-12-12 | 2019-08-20 | 国网信息通信产业集团有限公司 | 一种基于深度学习的dns隐蔽隧道检测方法 |
CN109587156B (zh) * | 2018-12-17 | 2021-07-09 | 广州天懋信息系统股份有限公司 | 异常网络访问连接识别与阻断方法、系统、介质和设备 |
CN109600394A (zh) * | 2019-01-19 | 2019-04-09 | 郑州轻工业学院 | 一种基于深度学习的http隧道木马检测方法 |
CN109981818B (zh) * | 2019-03-25 | 2022-02-25 | 上海予桐电子科技有限公司 | 域名语义异常分析方法、装置、计算机设备及其存储介质 |
CN110071829B (zh) * | 2019-04-12 | 2022-03-04 | 腾讯科技(深圳)有限公司 | Dns隧道检测方法、装置及计算机可读存储介质 |
CN112085039B (zh) * | 2019-06-12 | 2022-08-16 | 四川大学 | 一种基于随机森林的icmp隐蔽通道检测方法 |
CN110602100B (zh) * | 2019-09-16 | 2023-02-28 | 上海斗象信息科技有限公司 | Dns隧道流量的检测方法 |
CN112836214A (zh) * | 2019-11-22 | 2021-05-25 | 南京聚铭网络科技有限公司 | 一种通讯协议隐蔽通道检测方法 |
CN111181986A (zh) * | 2019-12-31 | 2020-05-19 | 奇安信科技集团股份有限公司 | 数据安全检测方法、模型训练方法、装置和计算机设备 |
CN111277587A (zh) * | 2020-01-19 | 2020-06-12 | 武汉思普崚技术有限公司 | 基于行为分析的恶意加密流量检测方法及系统 |
CN113452648A (zh) * | 2020-03-24 | 2021-09-28 | 北京沃东天骏信息技术有限公司 | 检测网络攻击的方法、装置、设备和计算机可读介质 |
CN111683096A (zh) * | 2020-06-10 | 2020-09-18 | 北京天融信网络安全技术有限公司 | 一种基于域名服务协议的数据处理方法及电子设备 |
CN111953673B (zh) * | 2020-08-10 | 2022-07-05 | 深圳市联软科技股份有限公司 | 一种dns隐蔽隧道检测方法及系统 |
CN112272175A (zh) * | 2020-10-22 | 2021-01-26 | 江苏今浪信息技术有限公司 | 一种基于dns的木马病毒检测方法 |
WO2022104738A1 (zh) * | 2020-11-20 | 2022-05-27 | 华为技术有限公司 | 一种木马检测方法、装置和设备 |
CN112565259B (zh) * | 2020-12-04 | 2022-10-28 | 互联网域名系统北京市工程研究中心有限公司 | 过滤dns隧道木马通信数据的方法及装置 |
CN112491662A (zh) * | 2020-12-14 | 2021-03-12 | 北京亚鸿世纪科技发展有限公司 | 一种icmp隐蔽隧道检测方法及装置 |
CN112671759A (zh) * | 2020-12-22 | 2021-04-16 | 互联网域名系统北京市工程研究中心有限公司 | 基于多维度分析的dns隧道检测方法和装置 |
CN113300873B (zh) * | 2021-02-05 | 2024-05-24 | 阿里巴巴集团控股有限公司 | 基于五元组哈希路径的故障绕行方法以及装置 |
CN114070602A (zh) * | 2021-11-11 | 2022-02-18 | 北京天融信网络安全技术有限公司 | Http隧道检测方法、装置、电子设备和存储介质 |
CN114301631A (zh) * | 2021-12-02 | 2022-04-08 | 北京安天网络安全技术有限公司 | 一种dns恶意数据检测方法、装置、设备及介质 |
CN115348188B (zh) * | 2022-10-18 | 2023-03-24 | 安徽华云安科技有限公司 | 一种dns隧道流量检测方法、装置、存储介质及终端 |
CN116192490A (zh) * | 2023-02-14 | 2023-05-30 | 北京中睿天下信息技术有限公司 | 一种基于流量行为的网络威胁检测方法和系统 |
CN116303373B (zh) * | 2023-05-22 | 2023-07-25 | 湖南三湘银行股份有限公司 | 一种全自动监控诊断数据库的装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102202064A (zh) * | 2011-06-13 | 2011-09-28 | 刘胜利 | 基于网络数据流分析的木马通信行为特征提取方法 |
CN103475663A (zh) * | 2013-09-13 | 2013-12-25 | 无锡华御信息技术有限公司 | 基于网络通信行为特征的木马识别方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8266295B2 (en) * | 2005-02-24 | 2012-09-11 | Emc Corporation | System and method for detecting and mitigating DNS spoofing trojans |
US8763117B2 (en) * | 2012-03-02 | 2014-06-24 | Cox Communications, Inc. | Systems and methods of DNS grey listing |
-
2017
- 2017-08-23 CN CN201710731319.5A patent/CN107733851B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102202064A (zh) * | 2011-06-13 | 2011-09-28 | 刘胜利 | 基于网络数据流分析的木马通信行为特征提取方法 |
CN103475663A (zh) * | 2013-09-13 | 2013-12-25 | 无锡华御信息技术有限公司 | 基于网络通信行为特征的木马识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107733851A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107733851B (zh) | 基于通信行为分析的dns隧道木马检测方法 | |
Kirubavathi et al. | Botnet detection via mining of traffic flow characteristics | |
CN111277587A (zh) | 基于行为分析的恶意加密流量检测方法及系统 | |
Aiello et al. | DNS tunneling detection through statistical fingerprints of protocol messages and machine learning | |
US8015605B2 (en) | Scalable monitor of malicious network traffic | |
Al-Jarrah et al. | Network Intrusion Detection System using attack behavior classification | |
CN108933731B (zh) | 基于大数据分析的智能网关 | |
US20070214504A1 (en) | Method And System For Network Intrusion Detection, Related Network And Computer Program Product | |
Davis et al. | Automated feature engineering for HTTP tunnel detection | |
CN113518042B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112671759A (zh) | 基于多维度分析的dns隧道检测方法和装置 | |
Haddadi et al. | Botnet behaviour analysis: How would a data analytics‐based system with minimum a priori information perform? | |
Haddadi et al. | How to choose from different botnet detection systems? | |
Yang et al. | Detecting DNS tunnels using session behavior and random forest method | |
Praseed et al. | Fuzzy request set modelling for detecting multiplexed asymmetric ddos attacks on http/2 servers | |
Yen | Detecting stealthy malware using behavioral features in network traffic | |
Stergiopoulos et al. | Using side channel TCP features for real-time detection of malware connections | |
Mittal et al. | DDoS-AT-2022: a distributed denial of service attack dataset for evaluating DDoS defense system | |
CN113132335A (zh) | 一种虚拟变换系统、方法及网络安全系统与方法 | |
Zhao et al. | Network security model based on active defense and passive defense hybrid strategy | |
Garg et al. | Identifying anomalies in network traffic using hybrid Intrusion Detection System | |
Abudalfa et al. | Evaluating performance of supervised learning techniques for developing real-time intrusion detection system | |
Piet et al. | An in-depth study of open-source command and control frameworks | |
Muraleedharan et al. | Flow-based machine learning approach for slow HTTP distributed denial of service attack classification | |
Mongkolluksamee et al. | Robust peer to peer mobile botnet detection by using communication patterns |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210108 Address after: 450000 Science Avenue 62, Zhengzhou High-tech Zone, Henan Province Patentee after: Information Engineering University of the Chinese People's Liberation Army Strategic Support Force Address before: 450002 Unit 302, Building No. 7, 19, Jinxue Street, Jinshui District, Zhengzhou City, Henan Province Patentee before: Liu Shengli |