专利名称:一种dns隐蔽信道的检测方法
技术领域:
本发明涉及网络安全领域,尤其涉及一种DNS隐蔽信道的检测方法。
背景技术:
域名系统(Domain Name System,DNS)是因特网最关键的基础服务之一,它将域名与IP地址相互映射,使人们能够方便地访问互联网,而不必记忆复杂的IP地址。DNS域名解析为众多的网络应用提供支撑,因此,网络管理策略通常对客户端主机使用DNS服务不作限制。由此,也就出现了大量利用DNS进行隐蔽通讯的方法和程序,其能够绕过防火墙策略的限制,利用DNS的请求和响应数据包中可变字节进行双向数据传输。基于域名的DNS隐蔽信道,将隐蔽通讯所使用的域名的授权服务器IP地址设置为隐蔽信道服务器的地址。隐蔽信道客户端可请求任何一台DNS递归服务器,由DNS递归服务器实现查询和响应数据的中转,客户端无须与隐蔽信道服务器直接通讯。客户端向服务器发送的数据,通常编码为隐蔽信道域名的子域名标签,请求该子域名即可将标签中的数据传递给隐蔽信道服务器。服务器向客户端发送的数据,通常包含在DNS回答的资源记录中。DNS隐蔽信道对网络访问控制和网络安全构成极大威胁。例如,以Web方式进行身份认证的公众WLAN(无线局域网)无线上网服务,首先允许WLAN客户端设备连接到无线网络,然后在打开网页时显示认证界面。在用户登录之前,不允许客户端访问Internet,但一般允许进行DNS域名解析。在这种情况下,利用DNS隧道进行隐蔽通讯可绕过认证限制,经过DNS隐蔽信道服务器的代理访问Internet。在安全要求更高的网络环境中,除了Internet访问的滥用,DNS隐蔽信道还可能造成敏感数据的泄露。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是有效地检测DNS隐蔽信道,强化网络管理和网络安全。为实现上述目的,本发明提供了一种DNS隐蔽信道的检测方法,包括以下步骤步骤一、从输入的DNS查询请求消息中筛选出查询域名超长的DNS查询请求消息;步骤二、解析并提取出域名超长的DNS查询请求消息的发送客户端IP和查询域名中的纯域名,并形成〈客户端IP,纯域名 > 形式的记录;步骤三、对步骤二中所形成的所述〈客户端IP地址,纯域名 > 记录进行统计计数,并将每条所述〈客户端IP地址,纯域名 > 记录以及每条所述〈客户端IP,纯域名 > 记录的计数结果写入统计表;步骤四、以预定的时间间隔,依次读取所述统计表中的所述〈客户端IP,纯域名>记录及所述计数结果,并根据所述读取结果进行是否存在隐蔽信道的判定,并在读取和判定完成后,清空所述统计表以便步骤三重新对统计表进行写入。
其中步骤一中所述超长域名筛选进一步是通过解析提取出所述DNS查询请求消息的查询域名进行超长域名筛选的,若所述查询域名的长度超过预定的域名长度阈值,则认为所述DNS查询请求消息是查询域名超长的DNS查询请求消息其中所述步骤二进一步是通过解析所述DNS查询请求消息得到所述DNS查询请求消息的所述查询域名和发送所述DNS查询请求消息的客户端IP,并进一步从所述查询域名中提取出去除子域名后的纯域名,从而得到所述〈客户端IP,纯域名 > 形式的记录的。其中所述步骤三进一步是通过对每条所述〈客户端IP,纯域名 > 记录判断其是否已存在于所述统计表中,若所述统计表中已经存在所述〈客户端IP,纯域名 > 记录,则对所述〈客户端IP,纯域名 > 记录的计数值加1,若所述的统计表中不存在所述〈客户端IP,纯域名 > 记录,则将所述〈客户端IP,纯域名 > 记录写入所述统计表,并将所述〈客户端IP,纯域名 > 记录的计数值设为I,来进行统计计数的。其中所述步骤四进一步是通过对每条所述〈客户端IP,纯域名 > 记录的计数结果进行判断,判断所述计数结果是否大于预定的告警阈值,若所述计数结果大于所述告警阈值,则判定为存在所述客户端IP利用所述纯域名进行隐蔽通信的隐蔽信道,来进行隐蔽信道的判定的。进一步地,其中所述域名长度阈值、时间间隔和告警阈值的设定值可以根据系统的安全级别的要求而改变。进一步地,其中作为输入的所述DNS查询请求信息来自于网络流量中的DNS报文或者DNS服务器的查询日志。本发明的有益效果在于本发明的DNS隐蔽信道的检测方法针对DNS隐蔽通信中客户端向服务器发送的数据通常编码为子域名标签进行传送这一特点,监测从客户端向服务器发送的DNS查询请求信息从而进行DNS隐蔽信道的检测。同时由于DNS隐蔽通信中客户端向服务器发送的数据编码为隐蔽信道域名的子域名标签进行传送,添加了编码数据的子域名标签会导致查询域名超长,并且由于子域名标签数据容量有限而使得DNS隐蔽通信必须频繁大量地发送DNS查询请求消息,基于这两个特点,本发明的DNS隐蔽信道的检测方法通过筛选出超长域名的DNS查询请求消息,并提取发送该DNS查询请求消息的客户端IP地址以及查询域名中的纯域名部分,检测出一定时间段内同一客户端IP对于相同的域名频繁大量发送DNS查询请求消息,并判定其为DNS隐蔽通信的信道。本发明的DNS隐蔽信道的检测方法能够有效地检测基于域名的DNS隐蔽信道,强化网络访问控制,提高网络安全。以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
图I本发明的DNS隐蔽信道检测方法的整体流程图;图2是本发明的DNS隐蔽信道检测方法中超长域名筛选步骤的流程图;图3是本发明的DNS隐蔽信道检测方法中DNS查询请求解析步骤的流程图;图4是本发明的DNS隐蔽信道检测方法中统计计数步骤的流程图;图5是本发明的DNS隐蔽信道检测方法中数据处理步骤的流程图。
具体实施例方式下面结合附图来具体说明本发明的实施例。如图I所示,一种DNS隐蔽信道的检测方法,包括如下步骤超长域名筛选、DNS查询请求解析、统计计数和数据处理,其中超长域名筛选步骤筛选出输入的DNS查询请求消息中的查询域名超过预定的域名长度阈值L的DNS查询请求消息,并将查询域名超过预定的阈值的DNS查询请求 消息输出到DNS查询请求解析步骤,而DNS查询请求解析步骤对输入的DNS查询请求消息进行解析,并提取出DNS查询请求消息的查询域名中的纯域名部分和发送该DNS查询请求消息的客户端IP地址,并将解析提取结果以〈客户端IP,纯域名>形式的记录输出到统计计数步骤,其中纯域名是指查询域名中去除子域名后的部分,统计计数步骤对输入的每条〈客户端IP,纯域名 > 记录进行计数,并将每条〈客户端IP,纯域名>记录及该记录的计数结果写入统计表中,而数据处理每隔一定的时间间隔T读取上述统计表中的记录及其计数结果,对于其中计数结果大于预定的告警阈值N的〈客户端IP,纯域名 > 记录,判定为该客户端IP利用该纯域名进行了隐蔽信道的通信,而对于其中计数结果小于预定的告警阈值N的〈客户端IP,纯域名 > 记录,则判定为合法的域名解析过程,对统计表中的所有记录读取并判定完后,清空该统计表,使统计计数步骤对下一个时间间隔T内到达的〈客户端IP,纯域名 > 记录重新开始计数。其中域名长度阈值L、时间间隔T和告警阈值N是根据网络安全级别的要求预先设定的,根据网络安全级别的要求的不同,可以改变其设定值。其中超长域名筛选步骤的处理流程如图2所示,对于输入的DNS查询请求消息,解析其问题段的查询域名,如果查询域名长度大于预定的域名长度阈值L,则该DNS查询请求消息属于超长域名的DNS查询请求,将其输出到DNS查询请求解析步骤,如果查询域名长度小于预定的域名长度阈值L,则忽略该DNS查询请求消息,不作任何处理。DNS查询请求解析步骤的处理流程如图3所示,对于输入的DNS查询请求消息,提取出其查询域名的纯域名部分,并解析发起该DNS查询请求消息的客户端IP地址,形成〈客户端IP,纯域名 > 记录,发送到统计计数步骤。统计计数步骤的处理流程如图4所示,对于每个输入的〈客户端IP,纯域名 > 记录,首先检查统计表中是否已有该〈客户端IP,纯域名 > 记录,如果统计表中已有该〈客户端IP,纯域名 > 记录,则在该〈客户端IP,纯域名 > 记录的计数上加1,如果统计表中没有该〈客户端IP,纯域名 > 记录,则将该〈客户端IP,纯域名 > 记录写入统计表,并将该〈客户端IP,纯域名 > 记录的计数置为I。数据处理步骤的处理流程如图5所示,每隔预定的时间间隔T,依次读取上述统计表中的记录,如果发现某条〈客户端IP,纯域名 > 记录的计数结果超过预定的告警阈值N,则判定该客户端IP利用该纯域名进行了隐蔽信道的通信,而对于计数结果小于预定的告警阈值N的〈客户端IP,纯域名 > 记录,则认为是合法的域名解析过程,对上述统计表中的每条记录读取并判定完后,清空该统计表,以便于统计计数步骤对于下一个时间间隔T内到达的〈客户端IP,纯域名 > 记录重新进行计数并写入统计表。本发明的DNS隐蔽信道的检测方法以DNS查询请求消息作为输入,DNS查询请求消息可以是来自于网络流量中的DNS报文或者是DNS服务器的查询日志。本发明的DNS隐蔽信道的检测方法可以应用于DNS递归服务器、DNS流量监控系统、网络入侵检测系统、防火墙等能够监测DNS查询请求的软件或者硬件设备。本发明的DNS隐蔽信道的检测方法,针对DNS隐蔽通信中客户端向服务器发送的数据通常编码为隐蔽信道域名的子域名标签进行传送这一特点,监测从客户端向服务器发送的DNS查询请求信息从而进行DNS隐蔽信道的检测。同时由于DNS隐蔽通信中客户端向服务器发送的数据编码为隐蔽信道域名的子域名标签进行传送,添加了编码数据的子域名标签导致查询域名超长,并且由于子域名标签数据容量有限而使得DNS隐蔽通信必须频繁大量地发送消息,基于这两个特点,本发明的DNS隐蔽信道的检测方法通过筛选出超长域 名的DNS查询请求消息,并提取发送该DNS查询请求消息的客户端IP地址以及查询域名中的纯域名部分,检测出一定时间段内同一客户端IP对于相同的域名频繁大量发送DNS查询请求消息,并判定其为DNS隐蔽通信的信道。本发明的DNS隐蔽信道的检测方法能够有效地检测基于域名的DNS隐蔽信道,强化网络访问控制,提高网络安全。以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域的技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
权利要求
1.ー种DNS隐蔽信道的检测方法,其特征在于,包括以下步骤 步骤一、从输入的DNS查询请求消息中筛选出查询域名超长的DNS查询请求消息; 步骤ニ、解析并提取出域名超长的DNS查询请求消息的发送客户端IP和查询域名中的纯域名,并形成〈客户端IP,纯域名 > 形式的记录; 步骤三、对步骤ニ中所形成的所述〈客户端IP地址,纯域名 > 记录进行统计计数,并将每条所述〈客户端IP地址,纯域名 > 记录以及每条所述〈客户端IP,纯域名 > 记录的计数结果写入统计表; 步骤四、以预定的时间间隔,依次读取所述统计表中的所述〈客户端IP,纯域名 > 记录及所述计数結果,并根据所述读取结果进行是否存在隐蔽信道的判定,并在读取和判定完成后,清空所述统计表以便步骤三重新对统计表进行写入。
2.如权利要求I所述的DNS隐蔽信道的检测方法,其中步骤一中所述超长域名筛选进一歩是通过解析提取出所述DNS查询请求消息的查询域名进行超长域名筛选的,若所述查询域名的长度超过预定的域名长度阈值,则认为所述DNS查询请求消息是查询域名超长的DNS查询请求消息。
3.如权利要求2所述的DNS隐蔽信道的检测方法,其中所述步骤ニ进ー步是通过解析所述DNS查询请求消息得到所述DNS查询请求消息的所述查询域名和发送所述DNS查询请求消息的客户端IP,并进ー步从所述查询域名中提取出去除子域名后的纯域名,从而得到所述〈客户端IP,纯域名 > 形式的记录的。
4.如权利要求3所述的DNS隐蔽信道的检测方法,其中所述步骤三进ー步是通过对每条所述く客户端IP,纯域名 > 记录判断其是否已存在于所述统计表中,若所述统计表中已经存在所述〈客户端IP,纯域名 > 记录,则对所述〈客户端IP,纯域名 > 记录的计数值加1,若所述的统计表中不存在所述〈客户端IP,纯域名 > 记录,则将所述〈客户端IP,纯域名 > 记录写入所述统计表,并将所述〈客户端IP,纯域名 > 记录的计数值设为1,来进行统计计数的。
5.如权利要求4所述的DNS隐蔽信道的检测方法,其中所述步骤四进ー步是通过对每条所述〈客户端IP,纯域名 > 记录的计数结果进行判断,判断所述计数结果是否大于预定的告警阈值,若所述计数结果大于所述告警阈值,则判定为存在所述客户端IP利用所述纯域名进行隐蔽通信的隐蔽信道,来进行隐蔽信道的判定的。
6.如权利要求5所述的DNS隐蔽信道的检测方法,其中所述域名长度阈值、所述时间间隔和所述告警阈值的设定值可以根据系统的安全级别的要求而改变。
7.如权利要求6所述的DNS隐蔽信道的检测方法,其中作为输入的所述DNS查询请求信息来自于网络流量中的DNS报文或者DNS服务器的查询日志。
全文摘要
本发明公开了一种DNS隐蔽信道的检测方法,包括超长域名筛选步骤、DNS查询请求解析步骤、统计计数步骤和数据处理步骤,其中超长域名筛选步骤筛选出查询域名超长的DNS查询请求消息,DNS查询请求解析步骤解析并提取出域名超长的DNS查询请求消息的发送客户端IP和查询域名中的纯域名,并将其以<客户端IP,纯域名>形式的记录发送到统计计数步骤,统计计数步骤对每条<客户端IP,纯域名>记录进行计数并将每条<客户端IP,纯域名>记录及其计数结果写入统计表,数据处理步骤每隔一定的时间间隔读取统计表,并对其中计数结果超过告警阈值的<客户端IP,纯域名>记录认为是存在隐蔽信道,读取完统计表中的记录后,清空统计表。本发明的DNS隐蔽信道检测方法能够有效地检测基于域名的DNS隐蔽信道,强化网络访问控制,提高网络安全。
文档编号H04L12/26GK102624706SQ20121004033
公开日2012年8月1日 申请日期2012年2月22日 优先权日2012年2月22日
发明者李建华, 王鲁华, 章思宇, 邹福泰 申请人:上海交通大学