著录项信息
专利名称 | 一种基于安全域名服务器系统的恶意域名监控方法 |
申请号 | CN201110285109.0 | 申请日期 | 2011-09-23 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2011-12-21 | 公开/公告号 | CN102291268A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/24 | IPC分类号 | H;0;4;L;1;2;/;2;4;;;H;0;4;L;1;2;/;2;6;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 杜跃进 | 申请人地址 | 山东省威海市文化西路2号哈尔滨工业大学(威海)计算机科学与技术学院
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 杜跃进 | 当前权利人 | 杜跃进 |
发明人 | 张兆心;闫健恩;许海燕;刘瑜;袁春阳;李挺;郭承青;李欣 |
代理机构 | 威海科星专利事务所 | 代理人 | 于涛 |
摘要
本发明涉及网络安全技术领域,具体地说是一种安全域名服务器及基于此的恶意域名监控系统和方法,包括获取解析模块、正常解析模块,还设有黑名单查询模块、黑名单索引数据库、控制策略模块以及日志模块,其中所述获取解析模块与黑名单查询模块相连接,黑名单查询模块与黑名单索引数据库建立通信,黑名单查询模块的输出端分别与正常解析模块、控制策略模块相连接,控制策略模块与日志模块相连接,所述控制策略模块内设有隔离与阻断策略模块、欺骗策略模块、重定向策略模块,所述日志模块内设有日志记录模块以及日志统计模块,本发明与现有技术相比,能够从通用性、可用性、可控性、安全性、及时性和有效性多个角度提高域名服务的安全性。
1.一种基于安全域名服务器系统的恶意域名监控方法,安全域名服务器系统包括:
用于实现对域名解析请求处理的DNS服务器,
用于实现对用户管理、域名管理和对结果进行查看分析的管理端,
用于实现管理端与DNS服务器双向通信的安全通信模块,
以及DNS数据库,
所述管理端设有黑名单更新模块、用户信息管理模块以及访问信息查询模块;
所述安全通信模块内设有认证模块、密钥协商模块、数据加密传输模块、数据一致性检查模块;
DNS服务器经安全通信模块与管理端建立双向通信,
DNS服务器内的能够实现向DNS数据库内写入日志记录信息的日志模块与DNS数据库相连接,
管理端分别与黑名单索引数据库和DNS数据库相连接,
所述DNS服务器包括获取解析模块、正常解析模块,其特征在于还设有黑名单查询模块、黑名单索引数据库、控制策略模块以及日志模块,其中所述获取解析模块与黑名单查询模块相连接,黑名单查询模块与黑名单索引数据库建立通信,黑名单查询模块的输出端分别与正常解析模块、控制策略模块相连接,控制策略模块与日志模块相连接,所述控制策略模块内设有隔离与阻断策略模块、欺骗策略模块、重定向策略模块,所述日志模块内设有日志记录模块以及日志统计模块;
其特征在于该恶意域名监控方法包括以下步骤:
步骤1:建立黑名单索引数据库,管理端通过安全通信模块,根据不同的更新方式将域名黑名单提交给DNS服务器和DNS数据库,由DNS服务器建立黑名单索引数据库,具体步骤为包括:
步骤a:选择域名更新方式,包括立即更新或正常更新,通过管理界面直接输入域名或采用文件批量,将待更新域名输入管理端的黑名单更新模块,
步骤b:判断域名更新方式,如果为立即更新,则通过安全通信模块将域名直接提交给DNS服务器,并在DNS服务器中建立缓存存储域名,如果为正常更新,则提交给DNS服务器, 并在DNS服务器中建立B树进行存储,最终建立黑名单索引数据库,
步骤c:将恶意域名提交给DNS服务器后,管理端将域名存入DNS数据库,完成黑名单的一次更新;
步骤2:截获并解析请求,DNS服务器通过获取解析模块截获并解析用户的域名解析查询请求,获得目标域名;
步骤3:查询黑名单,DNS服务器1使用黑名单查询模块4对照步骤1中生成的黑名单索引数据库22对步骤2获得的目标域名进行查询,并输出查询结果,其具体步骤包括:
步骤a:输入待查询域名,在缓存中查找,如果找到,则返回存在,否则返回否,步骤b:如果步骤a返回否,则根据输入的域名生成两个整形哈希关键字Key1和Key2,用 Key1 对哈希桶数 MAXBUCKETS 取模,以此值为索引找到哈希表中的对应项,如果对应的 B 树不为空,以 Key2 为关键字查询 B树,寻找其相关索引项,找到索引项后,给定域名与索引项对应列表中的域名一一比较以判断其是否匹配,若存在一个完全匹配的域名,则返回存在标志,否则返回不存在标志,完成域名的黑名单查询;
步骤4:根据步骤3中的查询结果对域名进行控制和处理,其中如果查询结果为该域名不在黑名单内,则交由DNS服务器的正常解析模块继续执行正常的域名解析操作,如果查询结果为该域名在黑名单中,则将该域名交由控制策略实现模块进行控制处理,控制处理的具体步骤为:
步骤a:判断控制方式,并依据事先对各个域名设置的处理方式进行处理,所述控制方式包括三种,分别为隔离与阻断、欺骗、重定向,如果为隔离与阻断控制方式,则直接丢弃该域名;如果为欺骗控制方式,则返回查询结果不存在;如果为重定向策略,则返回该域名对应IP地址为针对该域名事先设定的重定向IP地址,
步骤b:日志记录生成,通过日志模块内的日志记录模块,根据控制方式生成相应的日志记录,
步骤5:通过日志模块内的日志统计分析模块将步骤4中生成的日志文件进行统计分析后,将统计分析结果存入DNS数据库,与DNS数据库相连接的管理端实现对系统的管理和结果的查看。
2.根据权利要求1所述的基于安全域名服务器系统的恶意域名监控方法,其特征在于步骤5中所述管理端对系统的管理包括管理端对恶意域名的管理、用户的管理和DNS数据库的管理,其中对恶意域名的管理主要为对黑名单索引库的及时更新和定量更新,其具体方法为:将黑名单库空间分成N组,同样将待更新的域名集合也分成N组,然后锁定黑名单库的一组数据,并将相应的待更新组更新到黑名单库中。
一种基于安全域名服务器系统的恶意域名监控方法\n技术领域\n[0001] 本发明涉及网络安全技术领域,具体地说是一种能实现对恶意域名访问进行高效监控,进而有效防止互联网用户登录恶意网站,避免由此产生的经济、文化和政治损失,减少社会的不稳定因素的基于安全域名服务器系统的恶意域名监控方法。\n背景技术\n[0002] 众所周知,每天都有数亿用户访问Internet,同时在Internet上产生海量的数据流,所有的一切都需要域名系统(Domain Name System,DNS)所提供的服务支持。对于每个用户而言,一个有意义的域名譬如www.example.com是易记易用的,也是访问Internet所必需的,而另一方面,对于Internet上的计算机而言,通信时实际使用的是一个IP地址,例如208.77.188.166。在Internet上完成从域名到IP地址转换的,就是域名系统DNS,在DNS的服务器中会维护域名到IP地址映射关系的记录,当DNS服务器收到来自客户端的域名查询请求时,DNS服务器查找相应的记录,将IP地址作为响应返回给客户端,这个过程一般也称为域名解析。Internet上的用户和应用无时无刻不在使用DNS所提供的服务和能力。\n[0003] 然而,目前虽然对网络站点、域名注册等进行了一定程度的监管,但百密一疏,互联网上仍然存在大量的恶意网站。这些网站以经济、政治或其他目的而产生。可以预见,如果这些网站关联电子商务网站,或网上银行,政府、运营商等其他重要的门户网站,以及电子邮件服务器,将导致难以估计的政治和经济损失。因此需要切实有效的系统和方法,对恶意域名的访问进行有效的监控。\n[0004] 现有技术中,针对恶意域名的处理技术主要包括四种:(1)利用域名解析软件:目前95%以上的域名解析软件使用BIND,BIND自带黑名单过滤功能,但存在如下缺陷:黑名单更新需要停止域名解析服务,极大的影响系统的可用性;当数据量很大时影响系统的性能,并且黑名单的数量有限。(2)面向DNS过滤的网关系统:贝尔实验室的Cheswick等人提出了一种面向DNS过滤的安全网关系统,以防火墙的形式运行在网络中,缺点是使用过滤规则进行处理,速度和效率较低,当过滤域名较多时,会大大降低域名解析服务的可用性。(3)具有安全功能的DNS系统,如OpenDNS,通过其收集的恶意网站列表实现恶意网站的过滤,虽然提高了安全性,但其适用范围小,用户量非常少,通用性差。(4)路由器级DNS安全解决方案:通过在路由器级别进行DNS的过滤和控制等功能,如国外的Cisco IOS Content Filtering,提供针对恶意域名和恶意Web访问的过滤和控制。缺陷:只能针对特定的接入区域进行相应的配置型过滤,但不能针对DNS服务器进行针对有效的安全过滤,同时由于大多采用基于路由器过滤规则的处理方式,不适合处理大规模海量的黑白名单过滤业务,无法满足实时性的处理要求。\n[0005] 上述恶意域名处理技术在可用性、通用性和可控性等方面都存在很大的问题,因此急需一种高效可靠的恶意域名监控系统和方法。\n发明内容\n[0006] 本发明针对现有技术的不足,提出一种能实现对恶意域名访问进行高效监控,进而有效防止互联网用户登录恶意网站,避免由此产生的经济、文化和政治损失,减少社会的不稳定因素的基于安全域名服务器系统的恶意域名监控方法。\n[0007] 本发明可以通过以下措施达到:\n[0008] 一种安全域名服务器,包括获取解析模块、正常解析模块,其特征在于还设有黑名单查询模块、黑名单索引数据库、控制策略模块以及日志模块,其中所述获取解析模块与黑名单查询模块相连接,黑名单查询模块与黑名单索引数据库建立通信,黑名单查询模块的输出端分别与正常解析模块、控制策略模块相连接,控制策略模块与日志模块相连接,所述控制策略模块内设有隔离与阻断策略模块、欺骗策略模块、重定向策略模块,所述日志模块内设有日志记录模块以及日志统计模块。\n[0009] 一种基于安全域名服务器的恶意域名监控系统,包括\n[0010] 用于实现对域名解析请求处理的DNS服务器,\n[0011] 用于实现对用户管理、域名管理和对结果进行查看分析的管理端,[0012] 用于实现管理端与DNS服务器双向通信的安全通信模块,\n[0013] 以及DNS数据库,其特征在于\n[0014] 所述管理端设有黑名单更新模块、用户信息管理模块以及访问信息查询模块;\n[0015] 所述安全通信模块内设有认证模块、密钥协商模块、数据加密传输模块、数据一致性检查模块;\n[0016] DNS服务器经安全通信模块与管理端建立双向通信,\n[0017] DNS服务器内的能够实现向DNS数据库内写入日志记录信息的日志模块与DNS数据库相连接,\n[0018] 管理端分别与黑名单索引数据库和DNS数据库相连接。\n[0019] 一种基于安全域名服务器的恶意域名监控方法,其特征在于包括以下步骤:\n[0020] 步骤1:建立黑名单索引数据库,管理端通过安全通信模块,根据不同的更新方式将域名黑名单提交给DNS服务器和DNS数据库,由DNS服务器建立黑名单索引数据库库,具体步骤为包括:\n[0021] 步骤a:选择域名更新方式,包括立即更新或正常更新,通过管理界面直接输入域名或采用文件批量,将待更新域名输入管理端的黑名单更新模块,\n[0022] 步骤b:判断域名更新方式,如果为立即更新,则通过安全通信模块将域名直接提交给DNS服务器,并在DNS服务器中建立缓存存储域名,如果为正常更新,则提交给DNS服务器, 并在DNS服务器中建立B树进行存储,最终建立黑名单索引数据库,[0023] 步骤c:将恶意域名提交给DNS服务器后,管理端将域名存入DNS数据库,完成黑名单的一次更新;\n[0024] 步骤2:截获并解析请求,DNS服务器通过获取解析模块截获并解析用户的域名解析查询请求,获得目标域名;\n[0025] 步骤3:查询黑名单,DNS服务器1使用黑名单查询模块对照步骤1中生成的黑名单索引数据库对步骤2获得的目标域名进行查询,并输出查询结果,其具体步骤包括:\n[0026] 步骤a:输入待查询域名,在缓存中查找,如果找到,则返回存在,否则返回否。\n[0027] 步骤b:如果步骤a返回否,则根据输入的域名生成两个整形哈希关键字Key1和Key2,用 Key1 对哈希桶数 MAXBUCKETS 取模,以此值为索引找到哈希表中的对应项,如果对应的 B 树不为空,以 Key2 为关键字查询 B树,寻找其相关索引项,找到索引项后,给定域名与索引项对应列表中的域名一一比较以判断其是否匹配,若存在一个完全匹配的域名,则返回存在标志,否则返回不存在标志,完成域名的黑名单查询。\n[0028] 步骤4:根据步骤3中的查询结果对域名进行控制和处理,其中如果查询结果为该域名不在黑名单内,则交由DNS服务器的正常解析模块继续执行正常的域名解析操作,如果查询结果为该域名在黑名单中,则将该域名交由控制策略实现模块进行控制处理,控制处理的具体步骤为:\n[0029] 步骤a:判断控制方式,并依据事先对各个域名设置的处理方式进行处理,所述控制方式包括三种,分别为隔离与阻断、欺骗、重定向,如果为隔离与阻断控制方式,则直接丢弃该域名;如果为欺骗控制方式,则返回查询结果不存在;如果为重定向策略,则返回该域名对应IP地址为针对该域名事先设定的重定向IP地址,\n[0030] 步骤b:日志记录生成,通过日志模块内的日志记录模块,根据控制方式生成相应的日志记录,\n[0031] 步骤5:通过日志模块内的日志统计分析模块将步骤4中生成的日志文件进行统计分析后,将统计分析结果存入DNS数据库,与DNS数据库相连接的管理端实现对系统的管理和结果的查看。\n[0032] 本发明步骤1和5中所述管理端对系统的管理包括管理端对恶意域名的管理、用户的管理和DNS数据库的管理,其中对恶意域名的管理主要为对黑名单索引库的及时更新和定量更新,其具体方法为:将黑名单库空间分成N组,同样将待更新的域名集合也分成N组,然后锁定黑名单库的一组数据,并将相应的待更新组更新到黑名单库中,假设更新这批数据的总时间为T,则经过分组后每组的更新时间为T/N,因此能够有效缩短黑名单库的单次锁定时间;另外,由于一次只锁定一组数据,那么在更新数据的同时,其他组的黑名单数据仍被允许查询,减小了因更新给查询带来的影响。\n[0033] 本发明与现有技术相比,以使用量最大的BIND为研究对象,采用高效的黑名单建立及搜索算法,提高其存储和查找效率;采用黑名单无缝更新技术,保证在进行黑名单更新的同时,基本不影响域名解析服务,提高其可用性;采用高效而安全的通信协议,保证域名信息的安全性;采用基于版本号的数据更新技术,解决数据一致性问题;采用隔离、阻断、欺骗和重定向等多种方式实现对恶意域名的分类控制,从通用性、可用性、可控性、安全性、及时性和有效性等多个角度提高域名服务的安全性。\n[0034] 附图说明:\n[0035] 附图1是本发明中DNS服务器的结构框图。\n[0036] 附图2是本发明中基于域名服务器的恶意域名监控系统的结构框图。\n[0037] 附图3是本发明的控制策略模块工作流程图。\n[0038] 附图4 是本发明的黑名单查询流程图。\n[0039] 附图5是本发明中黑名单普通更新流程图。\n[0040] 附图6是本发明中黑名单快速更新流程图。\n[0041] 附图7是本发明中日志记录流程图。\n[0042] 附图8是本发明中日志统计流程图。\n[0043] 附图9是本发明中安全通信流程图。\n[0044] 附图标记:DNS服务器1、管理端2、获取解析模块3、黑名单查询模块4、正常解析模块5、控制策略模块6、日志模块7、DNS数据库8、安全通信模块9、隔离与阻断策略模块\n10、欺骗策略模块11、重定向策略模块12、日志记录模块13、日志统计模块14、黑名单更新模块15、用户信息管理模块16、访问信息查询模块17、认证模块18、密钥协商模块19、数据加密传输模块20、数据一致性检查模块21,黑名单索引数据库22。\n[0045] 具体实施方式:\n[0046] 下面结合附图对本发明作进一步的说明。\n[0047] 本发明针对现有技术的不足,提出一种能实现对恶意域名的访问进行高效监控的安全域名服务器及系统及方法, 其中一种安全域名服务器,即DNS服务器1,如附图1所示,包括获取解析模块3、正常解析模块5,还设有黑名单查询模块4、黑名单索引数据库22、控制策略模块6以及日志模块7,其中所述获取解析模块3与黑名单查询模块4相连接,黑名单查询模块4与黑名单索引数据库22建立通信,黑名单查询模块4的输出端分别与正常解析模块5、控制策略模块6相连接,控制策略模块6与日志模块7相连接,所述控制策略模块\n6内设有隔离与阻断策略模块10、欺骗策略模块11、重定向策略模块12,所述日志模块7内设有日志记录模块13以及日志统计模块14;\n[0048] 在实际实施过程中,用户的域名解析查询请求依次经过获取解析模块3、黑名单查询模块4的处理后,根据处理结果,被送达分别与黑名单查询模块4相连接的正常解析模块\n5或控制策略模块6,其中控制策略模块6与日志模块7相连接,从而实现对控制策略操作的日志记录;\n[0049] 本发明还提出了一种基于上述所述安全域名服务器的恶意域名监控系统,如附图\n2所示,包括拥有上述结构的DNS服务器1、用于实现对用户管理、域名管理和对结果进行查看分析的管理端2、用于实现DNS服务器1与管理端2通信的安全通信模块9以及DNS数据库8,在实际实施过程中,用户的域名解析查询请求依次经过获取解析模块3、黑名单查询模块4的处理后,根据处理结果,被送达分别与黑名单查询模块4相连接的正常解析模块\n5或控制策略模块6,控制策略模块6与日志模块7相连接,日志模块7与DNS数据库8相连接,从而实现将生成的日志记录写入DNS数据库8的操作,管理端2与DNS数据库8相连接,同时通过安全通信模块9与黑名单索引数据库22相连,从而实现根据DNS数据库8所存储信息进行对整个系统工作状态的监控、管理。\n[0050] 本发明中所述控制策略模块6内设有三路信号处理模块,分别用于实现三种控制处理方式,包括隔离与阻断策略模块10、欺骗策略模块11、重定向策略模块12,当控制策略模块接收上一级送达的信息后,根据信息判断结果,选择相应的处理方式进行处理。\n[0051] 本发明中所述日志模块7内设有日志记录13及日志统计分析14两个模块,分别用于日志的写入以及对日志信息的统计分析。\n[0052] 本发明中所述管理端2内设有黑名单更新模块15、用户信息管理模块16及访问信息查询模块17,分别用于恶意域名更新、系统用户管理和日志记录统计分析结果的查看。\n[0053] 本发明中所述用于建立管理端2与DNS服务器1之间的通信的安全通信模块内设有认证模块18、密钥协商模块19、数据加密传输模块20及数据一致性检查模块21,分别用于管理端与DNS服务器之间的相互身份认证、传输中所使用的密钥协商、数据传输和数据信息判断。\n[0054] 本发明还提出了一种基于域名服务器的恶意域名监控方法,其特征在于包括以下步骤:\n[0055] 步骤1:建立黑名单索引数据库,管理端2通过安全通信模块9,根据不同的更新方式将域名黑名单提交给DNS服务器1和DNS数据库8,由DNS服务器1建立黑名单索引数据库22,具体步骤为包括:\n[0056] 步骤a:选择域名更新方式,包括立即更新或正常更新,通过管理界面直接输入域名或采用文件批量,将待更新域名输入管理端2的黑名单更新模块15,\n[0057] 步骤b:判断域名更新方式,如果为立即更新,则通过安全通信模块9将域名直接提交给DNS服务器1,并在DNS服务器1中建立缓存存储域名,如果为正常更新,则提交给DNS服务器1, 并在DNS服务器1中建立B树进行存储,最终建立黑名单索引数据库22,[0058] 步骤c:将恶意域名提交给DNS服务器1后,管理端2将域名存入DNS数据库8,完成黑名单的一次更新;\n[0059] 步骤2:截获并解析请求,DNS服务器1通过获取解析模块3截获并解析用户的域名解析查询请求,获得目标域名;\n[0060] 步骤3:查询黑名单,DNS服务器1使用黑名单查询模块4对照步骤1中生成的黑名单索引数据库22对步骤2获得的目标域名进行查询,并输出查询结果,其具体步骤包括:\n[0061] 步骤a:输入待查询域名,在缓存中查找,如果找到,则返回存在,否则返回否。\n[0062] 步骤b:如果步骤a返回否,则根据输入的域名生成两个整形哈希关键字Key1和Key2,用 Key1 对哈希桶数 MAXBUCKETS 取模,以此值为索引找到哈希表中的对应项,如果对应的 B 树不为空,以 Key2 为关键字查询 B树,寻找其相关索引项,找到索引项后,给定域名与索引项对应列表中的域名一一比较以判断其是否匹配,若存在一个完全匹配的域名,则返回存在标志,否则返回不存在标志,完成域名的黑名单查询。\n[0063] 步骤4:根据步骤3中的查询结果对域名进行控制和处理,其中如果查询结果为该域名不在黑名单内,则交由DNS服务器1的正常解析模块5继续执行正常的域名解析操作,如果查询结果为该域名在黑名单中,则将该域名交由控制策略模块6进行控制处理,控制处理的具体步骤为:\n[0064] 步骤a:判断控制方式,并依据事先对各个域名设置的处理方式进行处理,所述控制方式包括三种,分别为隔离与阻断、欺骗、重定向,如果为隔离与阻断控制方式,则直接丢弃该域名;如果为欺骗控制方式,则返回查询结果不存在;如果为重定向策略,则返回该域名对应IP地址为针对该域名事先设定的重定向IP地址,\n[0065] 步骤b:日志记录生成,通过日志模块7内的日志记录模块13,根据控制方式生成相应的日志记录,\n[0066] 步骤5:通过日志模块7内的日志统计模块14将步骤4中生成的日志文件进行统计分析后,将统计分析结果存入DNS数据库8,与DNS数据库8相连接的管理端2实现对系统的管理和结果的查看。\n[0067] 在具体实施过程中,本发明步骤4中控制策略模块6实现控制处理黑名单中的域名,系统设计了三种可配置的控制策略:隔离与阻断(丢弃用户的域名解析请求数据包,不解析)、欺骗(对用户解析请求返回“域名不存在”解析应答包)、重定向(对用户解析请求返回正常的解析应答包,域名对应IP为黑名单配置查找到的预先设定的重定向IP地址),如附图3所示,其中:\n[0068] 对采用隔离与阻断策略的域名,不做解析应答处理;\n[0069] 对采用欺骗策略的域名,具体实现过程可以通过调用系统Socket进行组包然后发送DNS解析应答报文,其中设置DNS头部的Flags部分的Reply Code,使其代表“No Such Name”应答包类型,以告知请求解析的用户该域名解析结果不存在,从而实现欺骗效果;\n[0070] 对采用重定向策略的域名,通过调用系统Socket进行组包然后发送DNS解析应答报文,其中在应答记录中封装相应的A记录,同时设置A记录对应的IP地址为黑名单索引库中查找到的该条域名预设值对应的重定向IP地址,如果没有,则采用系统配置的默认重定向IP地址作为应答A记录。这样请求解析的用户对该域名的访问将被重定向到指定的IP地址,从而实现重定向的控制策略。\n[0071] 本发明步骤5中所述管理端对系统的管理,主要为对黑名单索引库的实时更新,其具体方法为:将黑名单库空间分成N组,同样将待更新的域名集合也分成N组,然后锁定黑名单库的一组数据,并将相应的待更新组更新到黑名单索引数据库22中,假设更新这批数据的总时间为T,则经过分组后每组的更新时间为T/N,因此能够有效缩短黑名单库的单次锁定时间;另外,由于一次只锁定一组数据,那么在更新数据的同时,其他组的黑名单数据仍被允许查询,减小了因更新给查询带来的影响;其中上述数据更新方式有普通与立即生效两种,因此加入缓存机制,此时由于数据直接拷贝至缓存,与加入哈希B-树相比,减少了读写锁的等待时间、B-树插入点查找时间、B-树平衡时的节点移动时间。加入缓存机制后,相应的查询算法也应进行调整,先从缓存中查找记录,然后从哈希B-树中继续查找,同时为保证缓存数据的读写同步,另外单独使用一个读写锁进行同步,缓存中的数量不宜太大,否则会降低查询效率,因此需要在缓存数量超过一定限制后将其清空,并将所有记录添加到哈希B-树中,当添加到B-树并清空缓存时,为防止新的数据添加至缓存,需要加读写锁,但是添加到B-树并清空缓存的时间较长,这意味着较长时间不能进行查询和即时更新,因此采用主、辅缓存机制,首先在查询时,主、辅缓存都需进行查找,其次在立即更新时,数据只加到主缓存中。最后,在进行缓存更新与添加到B-树的操作中,辅缓存指针指向主缓存,主缓存指针赋值NULL,此后不用担心新的更新会破坏辅缓存中的数据,所以此后不用加缓存读写锁。当将辅缓存中的数据逐个加入哈希B-树中后,加读写锁并释放辅缓存中的记录所占内存。由于减少了缓存读写锁的占用时间,从而可以提高查询与更新的并发性。\n[0072] 黑名单查询如图4所示,包括如下操作步骤:\n[0073] 步骤a:输入待查询域名;\n[0074] 步骤b:根据读取的域名生成两个整形的哈希关键字key1和key2;\n[0075] 步骤c:加缓存锁;\n[0076] 步骤d:在缓存中查找;\n[0077] 步骤e:如果找到,则返回R_FOUND;\n[0078] 步骤f:如果没有找到,根据Key1寻找HASH桶,根据Key2查找B树;\n[0079] 步骤g:加相应B树锁,进行查找,查找后解B树锁;\n[0080] 步骤h:如果找到返回R_FOUND,否则返回R_NOTFOUND,完成查找。\n[0081] 黑名单正常更新如图5所示,包括如下操作步骤:\n[0082] 步骤a:输入待更新域名集合首地址;\n[0083] 步骤b:读取一条域名及其相关数据;\n[0084] 步骤c:根据读取的域名生成两个整形的哈希关键字key1和key2;\n[0085] 步骤d:根据key1对组数N取模的值将域名加入对应的分组链表;\n[0086] 步骤e:判断是否读取完毕,若结果为“否”,读取下一条域名及相关数据,并重复上述步骤c到步骤d,若结果为“是”,则锁定立即生效缓存即哈希链表结构;\n[0087] 步骤f:设定分组号初始化i=0;\n[0088] 步骤g:锁定黑名单库相应分组;\n[0089] 步骤h:将链表中的i中的域名逐一更新到对应的B树中;\n[0090] 步骤i:解锁黑名单库相应分组;\n[0091] 步骤j:判断i=i+1,i<N的结果,当结果为“是”,重复步骤g,当结果为“否”,完成更新。\n[0092] 黑名单的快速更新的流程如图5所示,包括如下步骤:\n[0093] 步骤a:输入待更新域名集合首地址;\n[0094] 步骤b:读取一条域名及其相关数据;\n[0095] 步骤c:根据读取的域名生成两个整形的哈希关键字key1和key2;\n[0096] 步骤d:将更新数据写入缓存链表CacheList的主缓存;\n[0097] 步骤e:判断缓存数量是否超过阈值,当结果为否,则重复步骤b到步骤d,当结果为是,则将辅缓存指向主缓存,主缓存指针设置为NULL;根据Key1和Key2将辅缓存数据填入哈希B树中,释放辅缓存内存空间;\n[0098] 步骤f:判断是否读取完毕,若结果为“否”,则去读下一条域名及相关数据,并重复步骤c到步骤d,若结果为“是”,\n[0099] 结束更新。\n[0100] 本发明步骤5中所述日志的生成是指,在相应的DNS控制策略执行调用后,需要对控制操作、控制对象、控制内容、控制时间进行相应的日志记录。待记录内容包含用户的DNS请求信息,包含请求时间、用户的IP、请求的域名、控制策略、重定向的IP地址(采用重定向控制策略时),这些信息为日志分析系统提供了数据来源。实施过程中,要求记录日志不会导致DNS解析请求的能力大幅下降,DNS服务器每秒可处理几千个请求,对每个请求直接记录在磁盘上必然造成性能上的瓶颈,在此采用分时机制,先将日志记录暂时写入内存,然后根据配置的间隔时间再写入磁盘,如附图7所示。具体操作步骤如下:CtrlLog模块提取日记记录格式元组,写入内存日志Buffer,计算间隔时间,根据时间创建新的日志,并同时修改配置文件的标志位,此后刷新Buffer并写入新的日志文件。\n[0101] 与此同时,对于日志文件,需要定时(如间隔一小时)统计域名解析日志文件,统计出单位时间段内的非法域名访问次数、访问者IP信息、可疑域名(去除黑名单中的非法域名、白名单中的可信域名外的其他域名)访问次数等用户关心的信息,根据日志统计模块的统计结果,构造统计报告,包括非法域名统计报告、可疑域名统计报告、非法访问者IP信息报告、可疑域名访问者IP信息报告、控制策略访问统计报告。\n[0102] 因此,日志统计分析模块需要间隔读取日志文件,并建立相应的统计数据结构哈希链表,进行日志文件的各项字段的统计分析。日志分析的程序数据处理执行流程如图8所示。包括如下步骤:首先设置统计时间段,然后定位至日志文件待处理点,读入一条日志记录,由域名生成哈希关键字index,判断哈希表中index项是否为空,当结果为空,输出完成标志insFinish,当结果不为空,在链表中查找域名项,如果找到则将访问者IP加入域名访问者集合中,并将记录处理完成标志insFinish设置为true;\n[0103] 当insFinish不为true,则构造新的统计项并初始化,插入新的项至哈希链表头,读入下一条日志,并判断是否超出统计时间段,当超出统计时间段,重新由域名生成哈希关键字index,并进行哈希表中index项是否为空的判断,执行方式与上一条相同,此不赘述,当未超出统计时间段,则构造统计报告并发送至数据库存储,完成此轮统计;\n[0104] 当insFinish为true时,读入下一条日志记录,并判断是否超出统计时间段,当超出统计时间段,重新由域名生成哈希关键字index,并进行哈希表中index项是否为空的判断,执行方式与上一条相同,此不赘述,当未超出统计时间段,则构造统计报告并发送至数据库存储,完成此轮统计。\n[0105] 本发明步骤1中所述安全通信模块用于管理端与黑名单索引数据库之间的通信,为保证管理员针对域名黑名单的管理操作的保密性,需要在对黑名单传输更新数据时采用安全的通信协议。通讯协议要保证数据的安全性,使用了多种数据加密算法,每次连接之前双方进行算法协商。为兼顾安全性与数据传输的效率,在密钥协商阶段使用非对称加密算法,而数据传输阶段使用对称加密算法。为实现高效的数据传输,在发送加密数据之前先发送加密数据的信息部分,包含:协议头部(数据类型、加密算法、加密的数据长度等)、加密数据的数字摘要、CBC加密模式的初始向量、加密的会话密钥。在DNS服务器端接收到这部分信息之后,就已明确要接收的加密数据的长度,这样在发送加密数据时就只需一方向另一方发送数据,不需每次发送数据时进行应答,只需在传输完成时给出一个应答即可。\n[0106] 安全通信协议在客户端(运行在管理端)和服务器端(运行在安全域名服务器端)中的通信中使用,具体通信流程如下:\n[0107] (1)管理端主动连接DNS服务器后,DNS服务器产生随机数r1并用自己私钥加密并发送给管理端。管理端则用DNS服务器的公钥解密得到这个随机数并保存下来。\n[0108] (2)管理端用自己的私钥再加密r1发送到DNS服务器,服务器用管理端的公钥解密得到r1后对比原来产生的随机数,如果相同,表明管理端的身份验证通过。同时管理端也产生了一个随机数r2用自己的私钥加密后发送到DNS服务器端。\n[0109] (3)DNS服务器端用管理的端的公钥解密得到r2后,用自己的私钥加密r2后发送给管理端,管理端解密后得到r2,对比先前产生的r2,如果相同,表明身份验证通过。\n[0110] (4)这一步是可选的,如果配置文件中规定使用一次一密,那么在管理端会产生一对新的密钥,本地保存一个副本,同时使用原来的密钥加密这对新的密钥发送到DNS服务器端。DNS服务器端解密并接收这对新的密钥,但并不删除初始密钥。如果配置文件中配置成不使用一次一密,则协议工作时没用使用这一步。\n[0111] (5)此过程是传送数据的前序工作,他包含后面传送的加密数据相关信息。这一步传送的数据有:报文的头部(10Byte)(包含加密算法、数据分组长度、数据类型、执行方式、时间戳)、加密的初始向量(8Byte)、后面所有需要加密数据的数字摘要(128Byte)、加密的会话密钥(128Byte)。DNS服务器接收到这些信息后会解密得到会话密钥、保存加密的初始向量、保存数字摘要、从报头中取出加密算法的编号等等,还有从报头中获取后面将要发送的加密数据长度。\n[0112] (6)不停发送加密数据,因为上一步已经将加密的数据长度发送给DNS服务器了,所以这里服务器会接收到完整长度的加密数据。为了提高效率,每次发送数据之后没有必要给出应答,而是在整个数据传送完毕后才进行完整性验证。\n[0113] (7)这一步与(8)(9)和身份验证阶段很相似,但在这里表示关闭TCP连接,这样可以有效防止伪造的关闭连接请求。\n[0114] 一次一密要求管理端产生新的密钥发送到DNS服务器,但DNS服务器不覆盖掉其初始的密钥,下次连接时使用新的密钥。管理端能够根据不同的DNS服务器装载不同的公钥,为多个DNS服务器提供服务。DNS服务器端如果有新的密钥,则在协议初始化时装载新的密钥;管理端(客户端)已是如此。但管理端会根据要连接的不同DNS服务器装载相应的密钥,参考依据是DNS服务器的IP地址。密钥的管理流程如图9所示。\n[0115] 本发明与现有技术相比,以使用量最大的BIND为研究对象,采用高效的黑名单存储和搜索算法,提高其存储和查找效率;采用黑名单无缝更新技术,保证在进行黑名单更新的同时基本不影响域名解析服务,提高其可用性;采用高效而安全的通信协议,保证域名信息的安全性;采用基于版本号数据更新策略解决数据一致性问题;采用隔离与阻断、欺骗和重定向等多种方式实现对恶意域名的分类控制,从通用性、可用性、可控性、安全性、及时性和有效性多个角度提高域名服务的安全性。
法律信息
- 2014-11-26
- 2014-11-12
著录事项变更
发明人由张兆心 袁春阳 闫健恩 张淼许海燕变更为张兆心 闫健恩 许海燕 刘瑜袁春阳 李挺 郭承青 李欣
- 2012-11-07
实质审查的生效
IPC(主分类): H04L 12/24
专利申请号: 201110285109.0
申请日: 2011.09.23
- 2011-12-21
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |