对恶意域名和非法访问的控制方法及装置制造方法

文档序号:7778103阅读:642来源:国知局
对恶意域名和非法访问的控制方法及装置制造方法
【专利摘要】本发明涉及网络安全【技术领域】,具体地说是一种对恶意域名和非法访问的控制方法及装置,其特征在于所述中间件包括内核态协议栈数据包拦截模块、用户态DNS解析模块、控制策略模块、黑/白名单索引数据库模块、黑/白名单匹配模块以及日志模块,其中所述内核态协议栈数据包拦截模块位于用户态DNS解析模块的前端,控制策略模块与用户态DNS解析模块的输出相连,控制策略模块的输出端与日志模块相连接,控制策略模块与黑/白名单匹配模块相连接,黑/白名单匹配模块与黑/白名单索引数据库模块相连接,本发明与现有技术相比,从通用性、可用性、可控性、安全性、及时性和有效性等多个角度提高域名服务的安全性。
【专利说明】对恶意域名和非法访问的控制方法及装置
【技术领域】
[0001]本发明涉及网络安全【技术领域】,具体地说是一种通过将安全域名服务器中间件部署在运行DNS服务器软件(BIND 9)的服务器上,实现对恶意域名访问进行高效的阻断与隔离,同时,也对非法访问者进行有效的控制的对恶意域名和非法访问的控制方法及装置。
【背景技术】
[0002]DNS即域名系统(Domain Name System),是逐级授权的分布式数据查询系统,主要用于完成域名到IP地址的翻译转换功能。绝大多数互联网通信都必须先通过域名系统完成域名到IP地址的寻址转换,因此域名系统成为整个互联网能够正常运作的关键基础设施之一 O
[0003]目前,DNS成为网络安全的最薄弱环节。网络诈骗、网络窃密等这些高科技犯罪手段日益引起了社会的关注。对此,政府部门相继完善了有关利用计算机实施犯罪的法律法规,同时相关的技术管理部门也采取了多种措施从各个角度来提升网络的安全性,如增强网络中数据传送保密性,严厉打击恶意网站,对网络的流量进行实时监控等等。尽管如此,网络中还是存在一些非法用户意图利用互联网络盗取他人信息或财产,以及利用一些恶意网站发布虚假广告,这些行为对正常使用互联网络的用户的个人信息与经济财产构成了极大的威胁。因此,现如今迫切需要一种切实有效的系统来阻断与隔离非法用户对网络的攻击,以及避免互联网用户登录到恶意的网站上,以避免个人财产遭到威胁。
[0004]现有技术中,针对恶意域名的处理技术主要包括四种:(I)利用域名解析软件:目前95%以上的域名解析软件使用BIND,BIND自带黑名单过滤功能,但存在如下缺陷:黑名单更新需要停止域名解析服务,极大的影响系统的可用性;当数据量很大时影响系统的性能,并且黑名单的数量有限。(2)面向DNS过滤的网关系统:贝尔实验室的Cheswick等人提出了一种面向DNS过滤的安全网关系统,以防火墙的形式运行在网络中,缺点是使用过滤规则进行处理,速度和效率较低,当过滤域名较多时,会大大降低域名解析服务的可用性。(3)具有安全功能的DNS系统,如OpenDNS,通过其收集的恶意网站列表实现恶意网站的过滤,虽然提高了安全性,但其适用范围小,用户量非常少,通用性差。(4)路由器级DNS安全解决方案:通过在路由器级别进行DNS的过滤和控制等功能,如国外的Cisco IOS ContentFiltering,提供针对恶意域名和恶意Web访问的过滤和控制。缺陷:只能针对特定的接入区域进行相应的配置型过滤,但不能针对DNS服务器进行针对有效的安全过滤,同时由于大多采用基于路由器过滤规则的处理方式,不适合处理大规模海量的黑白名单过滤业务,无法满足实时性的处理要求。(5)安全域名服务器技术在BIND源码上进行了修改,破环了域名服务器的完整性。上述现有的恶意域名控制技术在可用性、通用性和可控性等方面都存在一定的问题,因此急需一种既不影响域名解析正常服务,又能保证安全的控制方法。

【发明内容】

[0005]本发明针对现有技术中存在的缺点和不足,提出了一种通过将中间件部署在运行DNS服务器软件(BIND 9)的服务器上,实现对恶意域名访问进行高效的阻断与隔离,同时,也对非法访问者进行有效的控制的对恶意域名和非法访问的控制方法及装置。
[0006]本发明可以通过以下措施达到:
一种对恶意域名和非法访问的控制方法,其特征在于包括以下步骤:
步骤1:建立黑/白名单索引数据库,包含域名黑/白名单和IP黑/白名单索引数据库,其中IP黑/白名单包括非法访问者IP地址和响应包资源记录中出现的IP地址;
步骤2:内核态协议栈捕获拦截模块获取服务器的DNS请求与应答数据流,并对其进行解析,获取包中的目的IP、请求域名、首部中的标识字段、以及资源记录中的IP地址;
步骤3:根据步骤2解析DNS数据包的结果,得到包的查询类型,根据不同的类型,转入各自的控制分支,类型包括A记录、A4记录、A6记录、反向解析;
步骤4:黑/白名单匹配,不同查询类型的DNS数据包都需使用黑/白名单管理模块进行规则的匹配,范围包括DNS请求包的源IP地址与其要请求解析的域名、DNS应答包的域名与其解析出的IP地址;
步骤5:根据步骤4中的查询结果对域名或IP地址进行控制和处理,如果查询结果是请求解析域名的主机IP、请求域名以及资源记录中的IP地址均不在黑名单中或者其中任一在白名单中,则将数据包交由内核态协议栈自动处理,如果查询结果为请求解析域名的主机IP地址、请求域名以及资源记录中的IP地址中有一项在黑名单中,则将应答包交由控制策略模块进行控制处理;
步骤6:将上述控制过程中生成的日志文件进行统计分析后,将统计分析结果存入DNS数据库,与DNS数据库相连接的管理端实现对系统的管理和结果的查看。
[0007]本发明步骤I所述建立黑/白名单索引数据库具体包括以下步骤:
步骤1-1:通过管理界面直接输入或采用文件批量,将待更新的域名或IP输入管理端的黑/白名单更新模块,管理界面将配置好的规则数据插入到DNS数据库;
步骤1-2:中间件启动线程,每隔I秒轮询查询DNS数据库,如果该数据库有规则更新,则提交给中间件,并在内存中建立B树进行存储,并把每次更新的条目加入。
[0008]本发明步骤4具体包括以下步骤:
步骤4-1:首先判断拦截到的数据包是DNS请求包还是应答包,如果是应答包,则转步骤4-5 ;否则首先检查该请求包的源IP地址是否在IP白名单中,(I)根据IP地址生成两个整形哈希关键字Keyl和Key2,用Keyl对哈希桶数MAXBUCKETS取模,以此值为索引找到哈希表中的对应项,如果对应的B树不为空,以Key2为关键字查询B树,寻找其相关索引项;(2)找到索引项后,给定IP地址与索引项对应列表中的IP地址一一比较以判断是否匹配。若存在一个完全匹配的IP地址,则对该包放行,中间件不对该包进行控制;否则转步骤 4-2 ;
步骤4-2:使用如步骤4-1的方法在IP黑名单中查找,若找到一个完全匹配的IP地址,则返回存在标志和该项的控制规则,转到步骤5对该DNS请求包进行控制和处理,否则返回不存在标志;
步骤4-3:如果步骤4-2返回不存在标志,则检查中文、英文域名开关是否打开,如果打开,则判断该DNS请求包所请求域名是否在域名白名单中,具体包括:(I)根据输入的请求域名生成两个整形哈希关键字Keyl和Key2,用Keyl对哈希桶数MAXBUCKETS取模,以此值为索引找到哈希表中的对应项,如果对应的B树不为空,以Key2为关键字查询B树,寻找其相关索引项;(2)找到索引项后,给定域名与索引项对应列表中的域名一一比较以判断其是否匹配,若存在一个完全匹配的域名,则该包放行,中间件不对其进行控制;否则转步骤4-4 ;
步骤4-4:使用如步骤4-3的方法在域名黑名单中查找,若找到一个完全匹配的域名,则转到步骤5对该DNS请求包进行控制和处理,否则对该包放行,中间件不对其进行控制;步骤4-5:如果拦截到的数据包是DNS应答包,则需判断应答包的目的IP地址、域名和资源记录中的IP地址是否在相应的白名单和黑名单中,具体匹配过程与步骤4-1至步骤4-4相同,即首先判断应答包的目的IP地址是否在白名单和黑名单中;如果没有则判断应答包的域名是否在白名单和黑名单中;如果没有则要判断应答包资源记录解析到的IP地址是否在白名单和黑名单中,这一步与前两步不同的是,应答包的资源记录中的IP地址可能会有多个,需逐个进行匹配。
[0009]本发明步骤5中控制策略模块控制处理的具体包括:
步骤5-1:判断控制方式,并依据匹配到的结果取出规则策略,所述规则策略包括三种,分别为隔离与阻断、欺骗、重定向,如果为隔离与阻断策略,则直接丢弃该包,如果为欺骗策略,则返回查询结果不存在;如果为重定向策略,则返回重定向IP地址;
步骤5-2:日志记录生成,对每一个拦截到的数据包及中间件对其控制方式等信息生成相应的日志记录。
[0010]本发明步骤I讲述黑/白名单索引数据库的建立与更新,为保证匹配黑、白名单效率,系统设计了一种高效的内存索引结构,并且通过对索引结构的加锁,并实现黑、白名单库中的记录添加、删除、更新做到无缝操作其具体方法为:将黑名单或白名单库空间分成N组,同样将待更新的域名集合也分成N组,然后锁定黑名单库的一组数据,并将相应的待更新组更新到黑名单库中,假设更新这批数据的总时间为T,则经过分组后每组的更新时间为T/N,因此能够有效缩短黑名单库的单次锁定时间;另外,由于一次只锁定一组数据,那么在更新数据的同时,其他组的黑名单数据仍被允许查询,减小了因更新给查询带来的影响。
[0011]一种采用如上所述对恶意域名和非法访问的控制方法的装置,包括中间件,数据库模块,监控管理模块,管理端,其中中间件与监控管理模块以及数据库模块分别连接,数据库模块与管理端实现通信,其特征在于所述中间件包括内核态协议栈数据包拦截模块、用户态DNS解析模块、控制策略模块、黑/白名单索引数据库模块、黑/白名单匹配模块以及日志模块,其中所述内核态协议栈数据包拦截模块位于用户态DNS解析模块的前端,控制策略模块与用户态DNS解析模块的输出相连,控制策略模块的输出端与日志模块相连接,控制策略模块与黑/白名单匹配模块相连接,黑/白名单匹配模块与黑/白名单索引数据库模块相连接。
[0012]本发明中所述内核态协议栈数据包拦截模块,用于在内核态拦截DNS数据包,当DNS请求数据或应答数据被转发之前,先将其推送到用户空间实施安全控制处理,当用户空间的安全控制处理完毕后再将其推送回内核空间;所述用户态DNS解析模块,用于对内核态拦截到的数据包进行解析,得到相应信息后交由控制策略模块处理,所述控制策略模块,对黑名单内的域名或IP地址提供欺骗、重定向和丢弃三种控制策略,对白名单内的域名或IP地址采用直接放行的控制策略,并同时支持IPv4与IPv6的协议环境、支持四种资源记录类型、支持对中英文域名的管控,多种功能设置了功能开关灵活选用,控制策略模块重组的数据包再交由内核态转发,所述黑/白名单索引数据库模块,支持在系统内存中建立和更新索引数据库,存储控制规则,在中间件启动的时候,基于哈希B树结构的黑/白名单索引数据库在内存中建立并定时进行同步更新,确保其内容与外部DNS数据库一致,黑/白名单基于IP地址和域名的两种形式;IP地址又分为非法访问者IP地址和资源记录中出现的IP地址,所述黑/白名单匹配模块,配合控制策略模块进行黑/白名单的匹配;所述日志模块,产生管控日志和异常日志等,并对日志进行统计、分类与分析,得出一段时间内的热点安全事件,协助发现可疑域名、可疑服务器IP、可疑访问者IP。
[0013]本发明与现有技术相比,将安全DNS服务器中间件部署在运行DNS服务器软件(BIND 9)的服务器上,通过内核态协议栈的捕获来拦截获取DNS数据流量,并对其进行解析,同时针对解析的域名以及访问者IP地址进行实时的快速key-value的查找,按照预先设置的控制策略进行该用户态控制,再交由内核态协议栈自动处理。这种中间件的域名控制系统具有部署灵活、运行稳定、易维护等优点。除此之外,系统采用高效的黑名单建立及搜索算法,提高其存储和查找效率;采用黑名单无缝更新技术,保证在进行黑名单更新的同时,基本不影响域名解析服务,提高其可用性;系统支持IPv4与IPv6协议环境,支持的资源记录类型包括A、AAAA、A6以及PTR四种,支持中英文域名两种类型,并添加了 7个功能开关,使用户能自主选择自己所需的控制功能;采用隔离、阻断、欺骗和重定向等多种方式实现对恶意域名和非法IP的分类控制,从通用性、可用性、可控性、安全性、及时性和有效性等多个角度提高域名服务的安全性。
[0014]【专利附图】

【附图说明】:
附图1是本发明中中间件的结构框图。
[0015]附图2是本发明的结构框图。
[0016]附图3是数据包拦截与解析控制流程图。
[0017]附图4是DNS请求包黑/白名单匹配过程的流程图。
[0018]附图5是DNS应答包黑/白名单匹配过程的流程图。
[0019]附图6是本发明中黑名单查询流程图。
[0020]附图7是本发明中黑名单更新流程图。
[0021]附图标记:中间件1、管理端2、内核态协议栈数据包拦截模块3、黑/白名单匹配模块4、用户态DNS解析模块5、控制策略模块6、日志模块7、数据库模块8、黑/白名单索引数据库9、隔离与阻断策略模块10、欺骗策略模块11、重定向策略模块12、日志记录模块13、日志统计模块14、黑名单更新模块15、用户信息管理模块16、访问信息查询模块17、监控管理模块18。
[0022]【具体实施方式】:
下面结合附图对本发明作进一步的说明。
[0023]本发明针对现有技术的不足,提出一种能实现对恶意域名、非法访问进行高效控制的对恶意域名和非法访问的控制方法及装置,其中安全域名服务器中间件I部署在DNS服务器上,如附图1所示,包括内核态协议栈数据包拦截模块3、用户态DNS解析模块5,还设有黑/白名单匹配模块4、黑/白名单索引数据库9、控制策略模块6以及日志模块7。其中所述内核态协议栈数据包拦截模块3与用户态DNS解析模块5相连接,用户态DNS解析模块5与控制策略模块6相连,控制策略模块6与黑名单匹配模块4相连,黑名单匹配模块4与黑/白名单索引数据库9建立通信,黑名单匹配模块4的输出端与控制策略模块6相连,控制策略模块6与日志模块7相连,所述控制策略模块6内设有隔离与阻断策略模块10、欺骗策略模块11、重定向策略模块12,所述日志模块7内设有日志记录模块13以及日志统计模块14。
[0024]在实际实施过程中,针对用户域名解析请求的数据包依次经过内核态协议栈数据包拦截模块3、用户态DNS解析模块5与黑名单匹配模块4的处理后,根据处理结果,被送达控制策略模块6,其中控制策略模块6与日志模块7相连接,从而实现对控制策略操作的日志记录;
本发明如附图2所示,包括拥有上述结构的中间件1、用于实现对用户管理、域名管理和对结果进行查看分析的管理端2、用于存储用户对域名和IP地址的管控的规则条目和日志记录的数据库模块8,用于监测域名服务器和中间件功能和性能的监控管理模块18,在实际实施过程中,针对用户域名解析请求的应答包依次经过内核态协议栈数据包拦截模块
3、用户态DNS解析模块5后由控制策略模块6处理,控制策略模块6把域名与IP地址送到黑名单匹配模块4处理,处理后返回控制策略模块6,其中控制策略模块6与日志模块7相连接,日志模块7与DNS数据库模块8相连接,从而实现将生成的日志记录写入DNS数据库模块8的操作,管理端2、黑/白名单索引数据库9分别与DNS数据库模块8相连接,从而实现根据DNS数据库模块8所存储信息进行对整个系统工作状态的监控、管理,监控管理模块18对所有管理的域名服务器当前的性能状况进行监控。
[0025]本发明中所述控制策略模块6设有七种功能开关,可根据需要打开或关闭某项功能,提高性能或验证功能可靠性。功能开关包括:中文DNS管控开关、英文DNS管控开关、A资源记录类型管控开关、AAAA资源记录类型管控开关、A6资源记录类型管控开关、正向解析管控开关和反向解析管控开关。控制策略模块6还设有三路信号处理模块,分别用于实现三种控制处理方式,包括隔离与阻断策略模块10、欺骗策略模块11、重定向策略模块12,当控制策略模块接收上一级送达的信息后,根据信息判断结果,选择相应的处理方式进行处理。
[0026]本发明中所述日志模块7内设有日志记录13及日志统计分析14两个模块,分别用于日志的写入以及对日志信息的统计分析。
[0027]本发明中所述管理端2内设有黑名单更新模块15、用户信息管理模块16及访问信息查询模块17,分别用于恶意域名或非法IP的更新、系统用户管理和日志记录统计分析结
果的查看。
[0028]本发明还提出了一种基于上述安全域名服务器中间件的恶意域名、非法访问控制方法,其特征在于包括以下步骤:
步骤1:建立黑/白名单索引数据库,管理端2将域名和IP黑/白名单提交给DNS数据库模块8,由安全域名服务器中间件I建立黑名单索引数据库22,具体步骤为包括:
步骤a:通过管理端界面直接输入或者采用文件批量,将待更新域名或IP输入管理端2的黑名单更新模块15,
步骤b:管理端将界面提交的基于域名和IP地址的黑名单、白名单及其阻断规则提交到DNS数据库模块8。[0029]步骤c:中间件I启动时,要与DNS数据库模块8连接,将数据库中的IP白名单、域名白名单、IP黑名单、域名黑名单依次取出,在内存中建立黑/白名单索引数据库9以B树进行存储。之后,使用线程每隔一秒轮询查询DNS数据库,如果该数据库有条目更新,则提交给中间件,把新加的条目更新到中间件的黑/白名单索引数据库9 ;
步骤2:中间件I通过内核态协议栈数据包拦截模块3获取服务器的DNS请求与应答数据流,提交给用户态DNS解析模块5对其进行解析,获取DNS数据包的首部标志位及请求者的IP地址、请求的域名与解析得到的IP地址列表;
步骤3:根据步骤2解析DNS数据包的结果,得到包的查询类型。根据不同的类型(A记录、A4记录、A6记录、反向解析),转入控制策略模块6的控制分支,具体流程如附图3所示。
[0030]步骤4:黑/白名单匹配,不同查询类型的DNS数据包都需使用黑/白名单匹配模块4对照步骤I生成的黑/白名单索引数据库9进行规则的匹配,范围包括DNS请求包的源IP地址与其请求解析的域名、DNS应答包的目的IP地址、域名与其解析出的IP地址。DNS请求包的黑/白名单匹配过程如附图4所示,DNS应答包的黑/白名单匹配过程如附图5所示,具体步骤包括:
步骤a:首先判断拦截到的数据包是DNS请求包还是应答包,如果是应答包,则转步骤e ;否则首先检查该请求包的源IP地址是否在IP白名单中,具体步骤为:
步骤al:根据IP地址生成两个整形哈希关键字Keyl和Key2,用Keyl对哈希桶数MAXBUCKETS取模,以此值为索引找到哈希表中的对应项,如果对应的B树不为空,以Key2为关键字查询B树,寻找其相关索引项。
[0031]步骤a2:找到索引项后,给定IP地址与索引项对应列表中的IP地址一一比较以判断是否匹配。若存在一个完全匹配的IP地址,则对该包放行,中间件不对该包进行控制;否则转步骤b。
[0032]步骤b:使用上述同样方法(步骤al)在IP黑名单中查找。若找到一个完全匹配的IP地址,则返回存在标志和该项的控制规则,转到步骤5对该DNS请求包进行控制和处理;否则返回不存在标志。
[0033]步骤c:如果步骤b返回不存在标志,则检查中文、英文域名开关是否打开。如果打开,则判断该DNS请求包所请求域名是否在域名白名单中,具体步骤如下:
步骤cl:根据输入的请求域名生成两个整形哈希关键字Keyl和Key2,用Keyl对哈希桶数MAXBUCKETS取模,以此值为索引找到哈希表中的对应项,如果对应的B树不为空,以Key2为关键字查询B树,寻找其相关索引项。
[0034]步骤c2:找到索引项后,给定域名与索引项对应列表中的域名一一比较以判断其是否匹配,若存在一个完全匹配的域名,则该包放行,中间件不对其进行控制;否则转步骤d0
[0035]步骤d:使用上述同样方法(步骤Cl)在域名黑名单中查找。若找到一个完全匹配的域名,则转到步骤5对该DNS请求包进行控制和处理;否则对该包放行,中间件不对其进行控制。
[0036]步骤e:如果拦截到的数据包是DNS应答包,则需判断应答包的目的IP地址、域名和资源记录中的IP地址是否在相应的白名单和黑名单中。具体匹配过程与步骤a、b、C、d相同,即首先判断应答包的目的IP地址是否在白名单和黑名单中;如果没有则判断应答包的域名是否在白名单和黑名单中;如果没有则要判断应答包资源记录解析到的IP地址是否在白名单和黑名单中,这一步与前两步不同的是,应答包的资源记录中的IP地址可能会有多个,需逐个进行匹配。附图5说明了 DNS应答包黑/白名单匹配的过程。
[0037]步骤5:步骤4中的匹配结果返回控制策略模块6,对域名或IP地址进行控制和处理,如果查询结果是请求解析域名的主机IP、请求域名以及资源记录中的IP地址均不在黑名单中或者其中任一在白名单中,则将数据包交由内核态协议栈自动处理;如果查询结果为请求解析域名的主机IP地址、请求域名以及资源记录中的IP地址中有一项在黑名单中,则该将应答包交由控制策略模块进行控制处理,控制处理的具体步骤为:
步骤a:判断控制方式,并依据匹配到的结果取出规则策略所述规则策略包括三种,分别为隔离与阻断、欺骗、重定向,如果为隔离与阻断策略,则直接丢弃该包;如果为欺骗策略,则返回查询结果不存在;如果为重定向策略,则返回重定向IP地址。
[0038]步骤b:日志记录生成,对每一个拦截到的数据包及中间件对其控制方式等信息都由日志记录模块13生成相应的日志记录。
[0039]步骤5:通过日志统计分析模块14将步骤4中生成的日志文件进行统计分析后,将统计分析结果存入DNS数据库,与DNS数据库模块8相连接的管理端2实现对系统的管理和结果的查看。
[0040]附图4和图5分别是DNS请求包和应答包进行黑白名单匹配的过程,其中在黑/白名单索引数据库中查找域名或IP的过程如图6所示,包括如下操作步骤:
步骤a:根据读取的域名或IP生成两个整形的哈希关键字keyl和key2。Keyl:确定该条目所对应的哈希桶。Key2:确定该条目在B树中的索引项;
步骤b:根据Keyl寻找HASH桶,如果找到转步骤c查找B树,否则返回R_N0TF0UND,结束。
[0041 ] 步骤c:加相应B树锁;
步骤d:根据Key2在B树查找结点,如果找到返回R_F0UND,否则返回R_N0TF0UND ; 步骤e:,解B树锁;结束。
[0042]黑名单更新如图7所示,包括如下操作步骤:
步骤a:输入待更新域名集合首地址;
步骤b:读取一条域名及其相关数据;
步骤c:根据读取的域名生成两个整形的哈希关键字keyl和key2 ;
步骤d:根据keyl对组数N取模的值将域名加入对应的分组链表;
步骤e:判断是否读取完毕,若结果为“否”,读取下一条域名及相关数据,并重复上述步骤c到步骤d,若结果为“是”,则锁定立即生效缓存即哈希链表结构;
步骤f:设定分组号初始化i=0 ;
步骤g:锁定黑名单库相应分组;
步骤h:将链表中的i中的域名逐一更新到对应的B树中;
步骤1:解锁黑名单库相应分组;
步骤j:判断i=i+l,i < N的结果,当结果为“是”,重复步骤g,当结果为“否”,完成更新。
[0043]在具体实施过程中,控制策略模块6控制处理黑/白名单中的域名或IP,系统设计了三种可配置的控制策略:隔离与阻断(丢弃该用户域名解析请求对应的应答包)、欺骗(重组该用户域名解析请求对应的应答包,重组后的应答包内容为“域名不存在”)、重定向(重组该用户域名解析请求对应的应答包,重组后的应答包内请求域名对应的IP地址为从黑名单配置查找到的预先设定的重定向IP地址),其中:
对采用隔离与阻断策略的域名或IP,控制策略模块6不再将该应答包传送回内核态。
[0044]对采用欺骗策略的域名或IP,具体实现过程可以通过DNS应答包重组技术,重组DNS应答报文,其中设置DNS头部的Flags部分的R印Iy Code,使其代表“No Such Name”应答包类型,以告知请求解析的用户该域名解析结果不存在,从而实现欺骗效果;
对采用重定向策略的域名或IP,需进行重新组包然后发送DNS应答报文,其中在应答包中封装相应的记录,同时设置记录对应的IP地址为黑名单索引库中查找到的该条域名或IP预设置的重定向IP地址,如果没有,则采用系统配置的默认重定向IP地址作为应答记录。这样请求解析的用户对该域名的访问将被重定向到指定的IP地址,从而实现重定向的控制策略。
[0045]本发明步骤5中所述日志的生成是指,在相应的DNS控制策略执行调用后,需要对控制操作、控制对象、控制内容、控制时间进行相应的日志记录。待记录内容包含用户的DNS请求信息,包含请求时间、用户的IP、请求的域名、控制策略、重定向的IP地址(采用重定向控制策略时),这些信息为日志分析系统提供了数据来源。实施过程中,要求记录日志不会导致DNS解析请求的能力大幅下降,DNS服务器每秒可处理几千个请求,对每个请求直接记录在磁盘上必然造成性能上的瓶颈,在此采用分时机制,先将日志记录暂时写入内存,然后根据配置的间隔时间再写入磁盘。
[0046]与此同时,对于日志文件,需要定时(如间隔一小时)统计域名解析日志文件,统计出单位时间段内的非法域名访问次数、访问者IP信息、可疑域名(去除黑名单中的非法域名、白名单中的可信域名外的其他域名)访问次数等用户关心的信息,根据日志统计模块的统计结果,构造统计报告,包括非法域名统计报告、可疑域名统计报告、非法访问者IP信息报告、可疑域名访问者IP信息报告、控制策略访问统计报告。
[0047]本发明与现有技术相比,将安全DNS服务器中间件部署在运行DNS服务器软件(BIND 9)的服务器上,通过内核态协议栈的捕获来拦截获取DNS数据流量,并对其进行解析,同时针对解析的域名以及访问者IP地址进行实时的快速key-value的查找,按照预先设置的控制策略进行该用户态控制,再交由内核态协议栈自动处理。这种中间件的域名控制系统具有部署灵活、运行稳定、易维护等优点。除此之外,系统采用高效的黑名单建立及搜索算法,提高其存储和查找效率;采用黑名单无缝更新技术,保证在进行黑名单更新的同时,基本不影响域名解析服务,提高其可用性;系统支持IPv4与IPv6协议环境,支持的资源记录类型包括A、AAAA、A6以及PTR四种,支持中英文域名两种类型,并添加了 7个功能开关,使用户能自主选择自己所需的控制功能;采用隔离、阻断、欺骗和重定向等多种方式实现对恶意域名和非法IP的分类控制,从通用性、可用性、可控性、安全性、及时性和有效性等多个角度提高域名服务的安全性。
【权利要求】
1.一种对恶意域名和非法访问的控制方法,其特征在于包括以下步骤: 步骤1:建立黑/白名单索引数据库,包含域名黑/白名单和IP黑/白名单索引数据库,其中IP黑/白名单包括非法访问者IP地址和响应包资源记录中出现的IP地址; 步骤2:内核态协议栈捕获拦截模块获取服务器的DNS请求与应答数据流,并对其进行解析,获取包中的目的IP、请求域名、首部中的标识字段、以及资源记录中的IP地址; 步骤3:根据步骤2解析DNS数据包的结果,得到包的查询类型,根据不同的类型,转入各自的控制分支,类型包括A记录、A4记录、A6记录、反向解析; 步骤4:黑/白名单匹配,不同查询类型的DNS数据包都需使用黑/白名单管理模块进行规则的匹配,范围包括DNS请求包的源IP地址与其要请求解析的域名、DNS应答包的域名与其解析出的IP地址; 步骤5:根据步骤4中的查询结果对域名或IP地址进行控制和处理,如果查询结果是请求解析域名的主机IP、请求域名以及资源记录中的IP地址均不在黑名单中或者其中任一在白名单中,则将数据包交由内核态协议栈自动处理,如果查询结果为请求解析域名的主机IP地址、请求域名以及资源记录中的IP地址中有一项在黑名单中,则将应答包交由控制策略模块进行控制处理; 步骤6:将上述控制过程中生成的日志文件进行统计分析后,将统计分析结果存入DNS数据库,与DNS数据库相连接的管理端实现对系统的管理和结果的查看。
2.根据权利要求1所述的一种对恶意域名和非法访问的控制方法,其特征在于步骤I所述建立黑/白名单索引数据库具体包括以下步骤: 步骤1-1:通过管理界面直·接输入或采用文件批量,将待更新的域名或IP输入管理端的黑/白名单更新模块,管理界面将配置好的规则数据插入到DNS数据库; 步骤1-2:中间件启动线程,每隔I秒轮询查询DNS数据库,如果该数据库有规则更新,则提交给中间件,并在内存中建立B树进行存储,并把每次更新的条目加入。
3.根据权利要求1所述的一种对恶意域名和非法访问的控制方法,其特征在于步骤4具体包括以下步骤: 步骤4-1:首先判断拦截到的数据包是DNS请求包还是应答包,如果是应答包,则转步骤e ;否则首先检查该请求包的源IP地址是否在IP白名单中,(I)根据IP地址生成两个整形哈希关键字Keyl和Key2,用Keyl对哈希桶数MAXBUCKETS取模,以此值为索引找到哈希表中的对应项,如果对应的B树不为空,以Key2为关键字查询B树,寻找其相关索引项;(2)找到索引项后,给定IP地址与索引项对应列表中的IP地址一一比较以判断是否匹配。若存在一个完全匹配的IP地址,则对该包放行,中间件不对该包进行控制;否则转步骤4-2 ; 步骤4-2:使用如步骤4-1的方法在IP黑名单中查找,若找到一个完全匹配的IP地址,则返回存在标志和该项的控制规则,转到步骤5对该DNS请求包进行控制和处理,否则返回不存在标志; 步骤4-3:如果步骤4-2返回不存在标志,则检查中文、英文域名开关是否打开,如果打开,则判断该DNS请求包所请求域名是否在域名白名单中,具体包括:(I)根据输入的请求域名生成两个整形哈希关键字Keyl和Key2,用Keyl对哈希桶数MAXBUCKETS取模,以此值为索引找到哈希表中的对应项,如果对应的B树不为空,以Key2为关键字查询B树,寻找其相关索引项;(2)找到索引项后,给定域名与索引项对应列表中的域名一一比较以判断其是否匹配,若存在一个完全匹配的域名,则该包放行,中间件不对其进行控制;否则转步骤4-4 ; 步骤4-4:使用如步骤4-3的方法在域名黑名单中查找,若找到一个完全匹配的域名,则转到步骤5对该DNS请求包进行控制和处理,否则对该包放行,中间件不对其进行控制; 步骤4-5:如果拦截到的数据包是DNS应答包,则需判断应答包的目的IP地址、域名和资源记录中的IP地址是否在相应的白名单和黑名单中,具体匹配过程与步骤4-1至步骤4-4相同,即首先判断应答包的目的IP地址是否在白名单和黑名单中;如果没有则判断应答包的域名是否在白名单和黑名单中;如果没有则要判断应答包资源记录解析到的IP地址是否在白名单和黑名单中,这一步与前两步不同的是,应答包的资源记录中的IP地址可能会有多个,需逐个进行匹配。
4.根据权利要求1所述的一种对恶意域名和非法访问的控制方法,其特征在于步骤5中控制策略模块控制处理的具体包括: 步骤5-1:判断控制方式,并依据匹配到的结果取出规则策略,所述规则策略包括三种,分别为隔离与阻断、欺骗、重定向,如果为隔离与阻断策略,则直接丢弃该包,如果为欺骗策略,则返回查询结果不存在;如果为重定向策略,则返回重定向IP地址; 步骤5-2:日志记录生成,对每一个拦截到的数据包及中间件对其控制方式等信息生成相应的日志记录。
5.一种采用如权利要求1-4中任意一项对恶意域名和非法访问的控制方法的装置,包括中间件,数据库模块,监控管理模块,管理端,其中中间件与监控管理模块以及数据库模块分别连接,数据库模块与管理端实现通信,其特征在于所述中间件包括内核态协议栈数据包拦截模块、用户态DNS解析模块、控制策略模块、黑/白名单索引数据库模块、黑/白名单匹配模块以及日志模块,其中所述内核态协议栈数据包拦截模块位于用户态DNS解析模块的前端,控制策略模块与用户态DNS解析模块的输出相连,控制策略模块的输出端与日志模块相连接,控制策略模块与黑/白名单匹配模块相连接,黑/白名单匹配模块与黑/白名单索引数据库模块相连接。
【文档编号】H04L29/06GK103581363SQ201310618133
【公开日】2014年2月12日 申请日期:2013年11月29日 优先权日:2013年11月29日
【发明者】张兆心, 许海燕, 李挺, 闫健恩, 迟乐军, 李斌 申请人:杜跃进
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1