CN112671759A - 基于多维度分析的dns隧道检测方法和装置 - Google Patents
基于多维度分析的dns隧道检测方法和装置 Download PDFInfo
- Publication number
- CN112671759A CN112671759A CN202011531088.1A CN202011531088A CN112671759A CN 112671759 A CN112671759 A CN 112671759A CN 202011531088 A CN202011531088 A CN 202011531088A CN 112671759 A CN112671759 A CN 112671759A
- Authority
- CN
- China
- Prior art keywords
- dns
- session
- message
- threshold
- scoring
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 19
- 238000004141 dimensional analysis Methods 0.000 title claims abstract description 7
- 238000004458 analytical method Methods 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 11
- 238000007619 statistical method Methods 0.000 claims abstract description 8
- 230000032683 aging Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 7
- 230000007717 exclusion Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 230000006854 communication Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000006399 behavior Effects 0.000 description 11
- 230000000875 corresponding effect Effects 0.000 description 9
- 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 9
- 230000001960 triggered effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000005641 tunneling Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 235000019227 E-number Nutrition 0.000 description 1
- 239000004243 E-number Substances 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种基于多维度分析的DNS隧道检测方法和装置;所述方法包括:捕获DNS报文;根据DNS报文的报文结构解码数据,得到五元组信息和DNS负载信息;根据五元组信息对DNS报文进行分类,将DNS报文分类到不同的DNS会话中;从查询维度和会话维度,对同一个DNS会话中所有DNS报文的多个特征进行统计分析,并根据预设的记分规则针对每一个特征进行打分;根据打分结果对DNS报文进行处理。本申请的方案能够解决企业内网DNS服务器的隧道安全隐患,阻止攻击者通过DNS服务器建立隐秘隧道传输机密信息的行为;基于查询维度和会话维度的多个特征进行分析,不同维度的特征之间可以互相加强、互相补充,从而提高识别率、降低误判率。
Description
技术领域
本申请涉及域名解析技术领域,具体涉及一种基于多维度分析的DNS隧道检测方法和装置。
背景技术
企业内网环境中,DNS(Domain Name System,域名系统)协议是必不可少的网络通信协议之一。大部分防火墙和入侵检测设备基本不会对DNS进行过滤分析或屏蔽,因此将数据或指令藏匿于DNS协议中进行传输是一种隐蔽且有效的手段。在实际场景中,当攻击者拿下某台服务器权限,或服务器被恶意软件、蠕虫、木马等感染之后,通过建立DNS隧道从而达到敏感信息盗窃、文件传输、回传控制指令等目的。目前检测DNS隧道技术包括基于请求域名长度及请求频率的统计分析方法,以及基于通信会话维度分析方法。
相关技术中,目前流行的病毒木马技术日新月异,单纯依靠特征检测已经无法识别新的样本特征。基于流量特征维度的分析,一般都是通过域名长度阈值和频率告警阈值,而取值很难把握,存在很大的不可控性,高阈值存在高漏判低误判的情况,低阈值存在低漏判高误判的情况。流量特征容易漏判大量处于建连状态的隧道木马以及很难检测出保活状态的心跳报文的异常,从而大大增加漏判率。
单独基于通信行为提取特征分析时,是将所有报文均进行会话聚类,导致报文冗余且容易将无关报文聚类导致漏判,影响分析特征,大大增加了误判率。同时,如果被控机对应的端口不断变化时,则会话维度无法识别,导致攻击者可以肆无忌惮地通过DNS隧道实施传输文件和窃取信息等恶意行为。通信行为特征针对一些五元组不断变化的木马束手无策,类似OzymanDNS。
此外,无论是流量特征维度还是通信行为维度识别DNS隧道的特征中,都是设置单一阈值来判断黑白,不仅取值很难把握而且也增加误判率和漏判率。单一阈值的另外一个缺点是,容易被内网用户利用其判断标准进行攻击,导致大量合法域名被误判拦截。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供一种基于多维度分析的DNS隧道检测方法和装置。
根据本申请实施例的第一方面,提供一种基于多维度分析的DNS隧道检测方法,包括:
捕获DNS报文;
根据DNS报文的报文结构解码数据,得到五元组信息和DNS负载信息;
根据五元组信息对DNS报文进行分类,将DNS报文分类到不同的DNS会话中;
从查询维度和会话维度,对同一个DNS会话中所有DNS报文的多个特征进行统计分析,并根据预设的记分规则针对每一个特征进行打分;
根据打分结果对DNS报文进行处理。
进一步地,所述五元组信息包括:源IP、目的IP、源端口、目的端口、协议号;相应地,所述将DNS报文分类到不同的DNS会话中,包括:
将五元组信息相同的DNS报文归类到同一个DNS会话中;
记录收到最后一个DNS报文与收到第一个DNS报文的时间差,作为这个DNS会话的时长。
进一步地,所述方法还包括:
根据预设的持续阈值和过期阈值,判断是否对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是根据一示例性实施例示出的一种基于多维度分析的DNS隧道检测方法的流程图。
图2是解码模块根据原始报文的报文结构解码数据的流程示意图。
图3是DNS会话的数据存储结构示意图。
图4是根据一示例性实施例示出的一种基于多维度分析的DNS隧道检测装置的框图。
图5是隧道防护系统的部署场景示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法和装置的例子。
图1是根据一示例性实施例示出的一种基于多维度分析的DNS隧道检测方法的流程图。该方法可以包括以下步骤:
步骤S1:捕获DNS报文;
步骤S2:根据DNS报文的报文结构解码数据,得到五元组信息和DNS负载信息;
步骤S3:根据五元组信息对DNS报文进行分类,将DNS报文分类到不同的DNS会话中;
步骤S4:从查询维度和会话维度,对同一个DNS会话中所有DNS报文的多个特征进行统计分析,并根据预设的记分规则针对每一个特征进行打分;
步骤S5:根据打分结果对DNS报文进行处理。
本申请的方案能够解决企业内网DNS服务器的隧道安全隐患,阻止攻击者通过DNS服务器建立隐秘隧道传输机密信息的行为;基于查询维度和会话维度的多个特征进行分析,不同维度的特征之间可以互相加强、互相补充,从而提高识别率、降低误判率。
本申请的DNS隧道检测方法,主要功能模块包括:数据采集模块、解码模块、会话聚类模块、特征分析模块。为进一步详述本申请的技术方案,首先具体介绍本方法的各功能模块。
1、数据采集模块,通过libpcap技术捕获报文,socket收发报文。DNS隧道检测采用多线程并发收取报文方式,提高效率,由内核保证各个线程收取报文的均衡性。结合企业内网DNS服务器部署场景,分离内网数据进行后续特征的分析。
2、解码模块,参照图2,根据原始报文的报文结构解码数据,得到五元组信息(包括:源IP、目的IP、源端口、目的端口、协议号)和DNS负载信息(queries、answers等字段),便于后续对报文特征和会话行为的分析。
3、会话聚类模块,根据五元组信息(源IP,目的IP,源端口,目的端口,协议号)进行报文分类,以便于对同一个会话的所有报文的通信行为进行分析。
一些实施例中,所述步骤S3将DNS报文分类到不同的DNS会话中,包括:将五元组信息相同的DNS报文归类到同一个DNS会话中。
3.1、会话分为TCP会话和UDP会话。
按照UDP协议理解,UDP无会话连接,因为UDP是无连接的,所以DNS没有会话时长的严格定义。但是在本方案中定义:在一次UDP会话中,收到最后一个DNS报文与收到第一个DNS报文的时间差就作为这个DNS会话的时长。
按照TCP协议理解,TCP会话在建立通信过程中存在“三次握手”和断开连接的“四次挥手”行为,所以TCP会话一般来说是从TCP syn报文开始,到TCP fin报文结束。但是在本方案中定义,TCP会话与UDP会话的处理逻辑相同。
3.2、会话老化
一些实施例中,所述方法还包括:
根据预设的持续阈值和过期阈值,判断是否对DNS会话执行老化操作;
当一个DNS会话的时长大于等于持续阈值时,则执行老化操作;
针对任意一个DNS会话,在收到最后一个DNS报文后开始计时,如果在过期阈值所设定的时间段内没有收到同会话的任何报文,则执行老化操作。
为了避免具备相同五元组会话时间无法老化,引入两个预设的时间阈值:持续阈值(比如,可以是1200s)和过期阈值(比如,可以是120s)。持续阈值是一个会话时长的最大值,即所有会话时长不能大于持续阈值;当大于等于持续阈值时,则直接删除,执行老化操作。过期阈值是最后一个DNS报文的绝对时间,即在收到最后一个DNS报文后开始计时;如果120s内没有收到同会话的任何报文,则视为会话过期,执行老化操作;如果收到报文则更新会话的绝对时间,重新计时。
参照图3,一些实施例中,存储DNS会话的数据结构为:带有读写锁的哈希节点和带有互斥锁的数据节点,每个数据节点存放一个DNS会话的所有特征。哈希节点用读写锁提高访问效率,同时每个数据节点用互斥锁保证数据同步,
所述老化操作包括:删除对应的数据节点,并记录在日志中。
4、特征分析模块,需要对八个特征进行分析并打分,包括:域名长度、域名不合法字符统计、域名信息熵、会话长度、报文总数、上传比例、下载比例、上传下载比例值。
一些实施例中,所述查询维度包括前三个特征,是基于流量的特征分析;所述会话维度包括后五个特征,是基于通信行为的特征分析。两个维度的特征分析可以互相加强、互相补充。
通过会话维度(通信行为)分析隧道流量。因为大多数被控机通过和企业内网DNS服务器建立UDP连接,即整个通信过程中,五元组保持不变,即使攻击者没有窃取文件,只是在通过心跳报文保活,也能及时识别和拦截。另外在被控机通过源端口不断变化来发送隧道流量时,可以通过单个查询报文维度分析并实时拦截,因为传输敏感信息时,对应queryname的信息熵特别大,单个报文分析维度是对会话维度的增强和补充。
通信行为特征报文总数和上传大包比例,这两个特征是相互补充增强的。比如攻击者窃取一个大文件时,想通过减少单个报文的长度来避免适配到特征后被拦截,此时必然导致报文总数变大,可以通过报文总数的特征拦截。反之,增加单个报文的长度,避免总数报文特征被适配后被拦截,就会匹配到特征上行大包比例被实时拦截。
本申请的方案中,针对每一个特征,都预先设置有下限阈值和上限阈值。相应地,所述步骤S4根据预设的记分规则针对每一个特征进行打分,包括:
将每一个特征的统计结果与下限阈值、上限阈值进行比较;
如果统计结果小于下限阈值,则认为该特征不符合DNS隧道特征,该特征不进行分值计算;;
如果统计结果介于下限阈值和上限阈值之间,则通过比例计算该特征的分值;
如果统计结果大于上限阈值,则该DNS会话计为满分。
需要说明的是,下限阈值和上限阈值是通过前期训练大量的数据得到的。上限阈值和下限阈值的取值是通过随机森林算法训练大量的现网不同场景的报文所得,前期预研建模分析得到的合理值,来替代当前数据分析过程中的实时建模分析,降低生产系统的资源开销,从而提高性能和保证拦截的实时性。
现有的技术方案,都是设置单一阈值来判断黑白,不仅取值很难把握而且也增加误判率和漏判率。本申请的方案中,对特征的分析是基于打分机制和建模分析的阈值范围,即识别隧道流量的每个特征的阈值都包含下限阈值和上限阈值,能够有效降低误判率和漏判率。当小于下限阈值时,认为该特征不符合隧道流量的当前特征,即跳过当前特征打分,继续匹配下一个特征;当大于上限阈值时,则认为该特征符合隧道流量特征,即黑名单拦截;当介于下限阈值和上限阈值之间时,则认为是灰名单,同时结合该特征所占分值,进行比例打分得到该特征的分值。最后将八个特征分值加起来,则为威胁分值,由用户根据威胁分值酌情处理。
一些实施例中,所述步骤S5根据打分结果对DNS报文进行处理,包括:
将所有特征的打分结果计算总分;
将总分与拦截阈值和告警阈值进行比较;
总分高于告警阈值且低于拦截阈值,给出告警信息;
总分高于拦截阈值,判断是否满足拦截条件,在满足拦截条件时对DNS会话进行拦截;
其中,所述拦截阈值和所述告警阈值为预先设定的数值(0<告警阈值<拦截阈值<100)。同时为了降低误判率,在达到拦截阈值分数后,还需要进行拦截条件的判断。
一些实施例中,所述拦截条件包括:是否存在合法响应报文、DNS会话中DNS报文的总数是否达到对应特征需要值。需要同时满足这两个拦截条件,才进行拦截。
现有的技术方案,利用单一阈值的另外一个缺点是,容易被内网用户利用其判断标准进行攻击,导致大量合法域名被误判拦截。
本申请的方案通过拦截条件的判断,能够在不影响漏判率的前提下,降低误判率,同时也能有效防护内网用户的恶意攻击行为。原因是:当一个报文为请求报文且在同一会话内未收到对应合法的响应报文时,并不满足利用DNS隧道窃取信息的条件,故可以放行;若报文总数过少,则有些特征参考价值不高。
下面结合具体的应用场景,对八个特征的计分规则进行拓展说明。
4.1、域名长度,对应域名各个label的长度,例如www.xxx.com中,www、xxx、com分别为三个label,合法长度范围是1~63,正常流量的长度范围一般在30个字符以内。隧道流量传输数据时,每个label几乎都是63个字符。同一个会话中每一个报文都进行打分,取最大值记分。记分规则如下表:
<下限阈值 | 0分 |
下限阈值—上限阈值 | (label长度-下限)/(上限-下限)*S1 |
>上限阈值 | 会话满分 |
备注:(1)2个或者2个以上的label>上限阈值记为会话满分,触发拦截条件判断;(2)域名长度特征仅作用于请求报文。
4.2、域名不合法字符统计,合法字符范围:a~z、A~Z、0~9、-。
记分规则:除了类型是ptr,naptr,(nsap_ptr)的报文,域名的每个label首字母不能是数字,如果是数字则记为一次不合法统计。同一个会话中每个报文域名都进行统计,取最大值记分。记分规则如下表:
0次不合法统计 | S2_A分 |
a次不合法统计 | S2_B分 |
b次不合法统计 | S2_C分 |
c次不合法统计 | S2_D分 |
d次不合法统计 | S2_E分 |
e次不合法统计 | S2_F分 |
f次不合法统计 | S2_G分 |
>=上限阈值次不合法统计 | 会话满分 |
备注:(1)大于上限阈值次数的不合法统计,记会话满分,触发拦截条件判断。(2)域名合法字符域名规则特征仅作用于请求报文。(3)需满足S2_A<S2_B<S2_C<S2_D<S2_E<S2_F<S2_G≤S2。
4.3、域名信息熵,单个域名熵值对应携带信息量的多少,正常域名的熵值3.3左右,同一个会话中每个报文域名的信息熵都要进行打分,取最大值记分。记分规则如下表:
<下限阈值 | 0分 |
下限阈值—上限阈值 | (熵值-下限阈值)/2*S3 |
>上限阈值 | 会话满分,触发拦截条件判断 |
备注:域名信息熵特征仅作用于请求报文。
4.4、会话长度,在同一个五元组会话中,收到第一个报文的时间到收到最后一个报文的时间,之间的时间即为会话时长,此处无论TCP还是UDP均按照此逻辑实现。记分规则如下表:
<下限阈值 | 0分 |
下限阈值—上限阈值 | (会话时长-下限)/(上限-下限)*S4 |
>上限阈值 | 会话满分,触发拦截条件判断 |
备注:(1)收到会话最后一个报文120s(过期阈值)后,无任何报文到来,则认为会话老化,执行删除操作,直到新的报文到来时,新建会话。(2)达到上限阈值且拦截条件判断不满足则继续增加会话时常,直到达到持续阈值(1200s)后提取会话区信息,如果提取成功,则返回威胁满分和会话区信息。此时认为会话老化,执行删除操作。
4.5、报文总数,就是一个会话内有多少报文,据样本数据分析,正常流量最多发现同一个会话报文个数为14个。记分规则如下表:
<下线阈值 | 0分 |
下限阈值—上限阈值 | (会话报文总数-下限)/(上限-下限)*S5 |
>上限阈值 | 会话满分,触发拦截条件判断 |
备注:此特征依赖于会话聚类。
4.6、上传比例
在DNS请求报文中,如果queries字段字节数大于50,那么定义该DNS请求报文为上行大包,本申请的方案定义DNS报文中queries字段长度大于50的就叫做上行大包。DNS隧道木马被控端把要传输的内容封装在queries字段的域名中,在一次传输过程中为了尽可能携带更多的隐蔽信息,往往构造的queries字段中的域名长度偏长,与正常DNS会话相比,DNS隧道木马会话中,“上行大包”占DNS请求数据包总数的比例较大。
换个角度考虑,如果攻击者为规避检测,精心构造相对短小的域名,从而减少每次发送的报文携带的隐蔽通信内容。当被控端传送某一固定的敏感资源文件,由于传送的资源文件大小是固定的,如果牺牲一次携带的隐蔽信息的内容,势必造成整个DNS会话的DNS报文总数的增加。所以容易得出结论:在一次DNS隧道木马的会话中,DNS报文总数和DNS报文长度这两者是负相关的。
记分规则如下表:
<下限阈值 | 0分 |
下限阈值—上限阈值 | (上行大包比例-下限)/(上限-下限)*S6 |
>上限阈值 | 会话满分,触发拦截条件判断 |
备注:上行大包特征仅作用于请求报文。
4.7、下载比例
DNS隧道木马在交互过程中,控制端发送的控制命令一般有特定含义,且短小精简,因此DNS隧道回复报文一般是“下行小包”,本申请的方案定义DNS应答报文中answers字段字节数小于40的数据包称为“下行小包”。对于正常DNS解析而言,客户机是资源请求者,DNS服务器返回的数据除了answers字段外,还经常返回授权和额外信息字段信息,所以正常的DNS响应报文相对较大。
记分规则如下表(满足会话报文总数大于8):
<下限阈值 | 0分 |
下限阈值—上限阈值 | (下行小包比例-下限)/(上限-下限)*S7 |
>上限阈值 | 会话满分,触发拦截条件判断 |
备注:(1)判断小包时,需要排除A记录和AAAA记录,同时响应报文的answer字段长度大于0,否则直接返回,不进行当前特征匹配。(2)下行小包特征仅作用于请求报文。
4.8、上传下载比例值
DNS会话报文中的有效载荷是指DNS报文中除去DNS报文头部剩下的queries字段和answers、授权和额外信息字段的内容。DNS隧道木马在和DNS服务器交互通信时,DNS隧道木马控制端向DNS隧道木马发送少量的控制指令,DNS隧道木马则需返回大量的本机机密资源数据。然而正常DNS解析情况刚好相反,DNS请求数据包通常短小,而DNS域名服务器回复的数据信息比较多。因此DNS隧道木马的DNS会话中有效载荷的上传下载比值比较大。
记分规则如下表:
<下限阈值 | 0分 |
下限阈值—上限阈值 | (上传下载比例-下限)/(上限-下限)*S8 |
>上限阈值 | 会话满分,触发拦截条件判断 |
容易理解的是,上述实施例中所记载的具体计分规则,下限阈值、上限阈值、具体分值可以根据实际应用进行调整,不局限于实施例中列举出的数字。只需满足S1+S2+S3+S4+S5+S6+S7+S8等于100分即可。
本申请的方案从多个不同维度分析检测DNS隧道流量特征,从而提高识别率和降低误报率。结合企业内网部署DNS场景,过滤掉无关报文,提高识别效率。从查询报文流量特征的维度和会话通信行为的维度分析检测,结合建模分析得出的阈值范围,从而大大提高DNS隧道流量的识别率,降低了误判率。
图4是根据一示例性实施例示出的一种基于多维度分析的DNS隧道检测装置的框图,该装置包括:数据采集模块、解码模块、会话聚类模块、特征分析模块。
数据采集模块,用于捕获DNS报文。
解码模块,用于根据DNS报文的报文结构解码数据,得到五元组信息和DNS负载信息。
会话聚类模块,用于根据五元组信息对DNS报文进行分类,将DNS报文分类到不同的DNS会话中。
特征分析模块,用于从查询维度和会话维度,对同一个DNS会话中所有DNS报文的多个特征进行统计分析,并根据预设的记分规则针对每一个特征进行打分。
关于上述实施例中的装置,其中各个模块执行操作的具体步骤已经在有关该方法的实施例中进行了详细描述,此处不再详细阐述说明。上述DNS隧道检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本申请的方案经过训练,数据包括但不局限于:陕西师范大学(500M)、华硕传媒(500M)、华数华通(500M)、新疆移动(500M)、浙江移动(500M)、以及不同开源隧道工具的隧道流量(1G)、搜集开源教育网流量(11G)等。
参照图5,在如图所示的部署环境下,进行识别率和误报率的实验。得到实验结论如下:
识别率:大于0.99,识别开源隧道工具(dns2tcp、dnscat2、iodine、NeNise、DNScapy、heyoka、ozymandns、DNScat-P、DNScat-B、tcp-over-dns)。
误报率:小于0.01,基于11G校园网流量,训练所得。
识别率的实例
1、部署环境,隧道模块;因为访问量比较大且单独测试隧道防护的识别率,业务模块用模拟器替代。
2、构造不同开源隧道工具的流量至少5种,每种隧道工具泄露文件(大小1M)2次,即有10次隧道泄露,搜集网络正常流量和上面构造的隧道流量加起来不少于10G。
3、业务模块模拟器读取报文并发送至隧道防护模块,保证不低于4000QPS(递归请求占%4,即设备整体10W QPS),统计识别且未被误判的隧道次数X。
4、反复测试步骤3,且每次的数据样本不一样,重复Y次,甚至更多次(Y>=10)。将识别且未被误判的隧道流量次数X加起来即X1+X2+...+Xy除以隧道泄露的总次数10*Y;得到本次实验样本的识别率。
5、将所有实验样本的识别率取平均值,即得到最终隧道防护模块识别率大于0.99。
误判率的实例
1、部署环境,隧道模块,业务模块用模拟器替代,因为要打压力,单独测试隧道防护的误判率。
2、在不同网络环境下比如金融、教育、企业等,搜集正常流量,不少于10G。
3、业务模拟器读取报文并发送至隧道模块,保证不低于4000QPS(递归请求占%4,即设备整体10W QPS),统计识别且被误判的隧道流量次数X。(知名的顶级域名或者二级域名被误判可以通过白名单过滤,不计入误判,比如.com)
4、反复测试步骤3且每次的数据样本不一样,重复Y次,甚至更多次(Y>=10)。将识别且被误判的隧道流量次数X加起来即X1+X2+...+Xy除以数据样本会话总数,得到本次实验样本的误判率。
5、将所有实验样本的误判率取平均值,即得到最终隧道防护模块误判率小于0.01。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种基于多维度分析的DNS隧道检测方法,其特征在于,包括:
捕获DNS报文;
根据DNS报文的报文结构解码数据,得到五元组信息和DNS负载信息;
根据五元组信息对DNS报文进行分类,将DNS报文分类到不同的DNS会话中;
从查询维度和会话维度,对同一个DNS会话中所有DNS报文的多个特征进行统计分析,并根据预设的记分规则针对每一个特征进行打分;
根据打分结果对DNS报文进行处理。
2.根据权利要求1所述的方法,其特征在于,所述五元组信息包括:源IP、目的IP、源端口、目的端口、协议号;所述将DNS报文分类到不同的DNS会话中,包括:
将五元组信息相同的DNS报文归类到同一个DNS会话中;
记录收到最后一个DNS报文与收到第一个DNS报文的时间差,作为这个DNS会话的时长。
3.根据权利要求2所述的方法,其特征在于,还包括:
根据预设的持续阈值和过期阈值,判断是否对DNS会话执行老化操作;
当一个DNS会话的时长大于等于持续阈值时,则执行老化操作;
针对任意一个DNS会话,在收到最后一个DNS报文后开始计时,如果在过期阈值所设定的时间段内没有收到同会话的任何报文,则执行老化操作。
4.根据权利要求3所述的方法,其特征在于:存储DNS会话的数据结构为带有读写锁的哈希节点和带有互斥锁的数据节点,每个数据节点存放一个DNS会话的所有特征;
所述老化操作包括:删除对应的数据节点,并记录在日志中。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述查询维度包括三个特征:域名长度、域名不合法字符统计、域名信息熵;所述会话维度包括五个特征:会话长度、报文总数、上传比例、下载比例、上传下载比例值。
6.根据权利要求5所述的方法,其特征在于,针对每一个特征,都预先设置有下限阈值和上限阈值;相应地,所述根据预设的记分规则针对每一个特征进行打分,包括:
将每一个特征的统计结果与下限阈值、上限阈值进行比较;
如果统计结果小于下限阈值,则认为该特征不符合DNS隧道特征,该特征不进行分值计算;
如果统计结果介于下限阈值和上限阈值之间,则通过比例计算该特征的分值;
如果统计结果大于上限阈值,则该DNS会话计为满分。
7.根据权利要求6所述的方法,其特征在于,所述根据打分结果对DNS报文进行处理,包括:
将所有特征的打分结果计算总分;
将总分与拦截阈值和告警阈值进行比较;
总分高于告警阈值且低于拦截阈值,给出告警信息;
总分高于拦截阈值,判断是否满足拦截条件,在满足拦截条件时对DNS会话进行拦截;
其中,所述拦截阈值和所述告警阈值为预先设定的数值。
8.根据权利要求7所述的方法,其特征在于,所述拦截条件包括:是否存在合法响应报文、DNS会话中DNS报文的总数是否达到对应特征需要值。
9.一种基于多维度分析的DNS隧道检测装置,其特征在于,包括:
数据采集模块,用于捕获DNS报文;
解码模块,用于根据DNS报文的报文结构解码数据,得到五元组信息和DNS负载信息;
会话聚类模块,用于根据五元组信息对DNS报文进行分类,将DNS报文分类到不同的DNS会话中;
特征分析模块,用于从查询维度和会话维度,对同一个DNS会话中所有DNS报文的多个特征进行统计分析,并根据预设的记分规则针对每一个特征进行打分。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述方法的操作步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531088.1A CN112671759A (zh) | 2020-12-22 | 2020-12-22 | 基于多维度分析的dns隧道检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531088.1A CN112671759A (zh) | 2020-12-22 | 2020-12-22 | 基于多维度分析的dns隧道检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112671759A true CN112671759A (zh) | 2021-04-16 |
Family
ID=75407739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531088.1A Pending CN112671759A (zh) | 2020-12-22 | 2020-12-22 | 基于多维度分析的dns隧道检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112671759A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282800A (zh) * | 2021-05-29 | 2021-08-20 | 北京威努特技术有限公司 | 一种基于信息熵的动态多模匹配方法及装置 |
CN113596194A (zh) * | 2021-08-02 | 2021-11-02 | 牙木科技股份有限公司 | 一种用于dns流量分类标定的方法和dns服务器 |
CN113676379A (zh) * | 2021-09-01 | 2021-11-19 | 上海观安信息技术股份有限公司 | 一种dns隧道检测方法、装置、系统及计算机存储介质 |
CN113839948A (zh) * | 2021-09-26 | 2021-12-24 | 新华三信息安全技术有限公司 | 一种dns隧道流量检测方法、装置、电子设备和存储介质 |
CN115348188A (zh) * | 2022-10-18 | 2022-11-15 | 安徽华云安科技有限公司 | 一种dns隧道流量检测方法、装置、存储介质及终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160065597A1 (en) * | 2011-07-06 | 2016-03-03 | Nominum, Inc. | System for domain reputation scoring |
CN106416171A (zh) * | 2014-12-30 | 2017-02-15 | 华为技术有限公司 | 一种特征信息分析方法及装置 |
US20170118237A1 (en) * | 2015-10-21 | 2017-04-27 | E8 Security, Inc. | Modeling behavior in a network |
CN107733851A (zh) * | 2017-08-23 | 2018-02-23 | 刘胜利 | 基于通信行为分析的dns隧道木马检测方法 |
CN109639744A (zh) * | 2019-02-27 | 2019-04-16 | 深信服科技股份有限公司 | 一种dns隧道的检测方法及相关设备 |
-
2020
- 2020-12-22 CN CN202011531088.1A patent/CN112671759A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160065597A1 (en) * | 2011-07-06 | 2016-03-03 | Nominum, Inc. | System for domain reputation scoring |
CN106416171A (zh) * | 2014-12-30 | 2017-02-15 | 华为技术有限公司 | 一种特征信息分析方法及装置 |
US20170118237A1 (en) * | 2015-10-21 | 2017-04-27 | E8 Security, Inc. | Modeling behavior in a network |
CN107733851A (zh) * | 2017-08-23 | 2018-02-23 | 刘胜利 | 基于通信行为分析的dns隧道木马检测方法 |
CN109639744A (zh) * | 2019-02-27 | 2019-04-16 | 深信服科技股份有限公司 | 一种dns隧道的检测方法及相关设备 |
Non-Patent Citations (1)
Title |
---|
王晓琪等: "高级持续性威胁中隐蔽可疑DNS行为的检测", 《计算机研究与发展》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282800A (zh) * | 2021-05-29 | 2021-08-20 | 北京威努特技术有限公司 | 一种基于信息熵的动态多模匹配方法及装置 |
CN113282800B (zh) * | 2021-05-29 | 2024-05-31 | 北京威努特技术有限公司 | 一种基于信息熵的动态多模匹配方法及装置 |
CN113596194A (zh) * | 2021-08-02 | 2021-11-02 | 牙木科技股份有限公司 | 一种用于dns流量分类标定的方法和dns服务器 |
CN113596194B (zh) * | 2021-08-02 | 2023-07-21 | 牙木科技股份有限公司 | 一种用于dns流量分类标定的方法和dns服务器 |
CN113676379A (zh) * | 2021-09-01 | 2021-11-19 | 上海观安信息技术股份有限公司 | 一种dns隧道检测方法、装置、系统及计算机存储介质 |
CN113676379B (zh) * | 2021-09-01 | 2022-08-09 | 上海观安信息技术股份有限公司 | 一种dns隧道检测方法、装置、系统及计算机存储介质 |
CN113839948A (zh) * | 2021-09-26 | 2021-12-24 | 新华三信息安全技术有限公司 | 一种dns隧道流量检测方法、装置、电子设备和存储介质 |
CN113839948B (zh) * | 2021-09-26 | 2023-10-24 | 新华三信息安全技术有限公司 | 一种dns隧道流量检测方法、装置、电子设备和存储介质 |
CN115348188A (zh) * | 2022-10-18 | 2022-11-15 | 安徽华云安科技有限公司 | 一种dns隧道流量检测方法、装置、存储介质及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107733851B (zh) | 基于通信行为分析的dns隧道木马检测方法 | |
CN112671759A (zh) | 基于多维度分析的dns隧道检测方法和装置 | |
CN109951500B (zh) | 网络攻击检测方法及装置 | |
US9407647B2 (en) | Method and system for detecting external control of compromised hosts | |
Dickerson et al. | Fuzzy network profiling for intrusion detection | |
Wehner | Analyzing worms and network traffic using compression | |
US10218733B1 (en) | System and method for detecting a malicious activity in a computing environment | |
EP3195124A1 (en) | Malicious relay detection on networks | |
CN107204965B (zh) | 一种密码破解行为的拦截方法及系统 | |
KR20170013041A (ko) | 네트워크 데이터 분석에 기반한 비정상 연결 행위 탐지 장치 및 방법 | |
CN112769833B (zh) | 命令注入攻击的检测方法、装置、计算机设备和存储介质 | |
CN111970300A (zh) | 一种基于行为检查的网络入侵防御系统 | |
CN112769827B (zh) | 一种网络攻击代理端检测及溯源方法与装置 | |
CN112272175A (zh) | 一种基于dns的木马病毒检测方法 | |
JP6592196B2 (ja) | 悪性イベント検出装置、悪性イベント検出方法および悪性イベント検出プログラム | |
CN110365673B (zh) | 一种隔离网络攻击面的方法、服务器和系统 | |
CN106911665B (zh) | 一种识别恶意代码弱口令入侵行为的方法及系统 | |
WO2006008307A1 (en) | Method, system and computer program for detecting unauthorised scanning on a network | |
CN111641589A (zh) | 高级可持续威胁检测方法、系统、计算机以及存储介质 | |
CN111131309A (zh) | 分布式拒绝服务检测方法、装置及模型创建方法、装置 | |
CN114257403A (zh) | 误报检测方法、设备及可读存储介质 | |
KR101488271B1 (ko) | Ids 오탐 검출 장치 및 방법 | |
CN117411711A (zh) | 一种入侵检测防御系统的威胁阻断方法 | |
CN113645181A (zh) | 一种基于孤立森林的分布式规约攻击检测方法及系统 | |
CN110430199B (zh) | 识别物联网僵尸网络攻击源的方法与系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210416 |
|
RJ01 | Rejection of invention patent application after publication |