CN104243408A - 域名解析服务dns系统中监控报文的方法、装置及系统 - Google Patents

域名解析服务dns系统中监控报文的方法、装置及系统 Download PDF

Info

Publication number
CN104243408A
CN104243408A CN201310235051.8A CN201310235051A CN104243408A CN 104243408 A CN104243408 A CN 104243408A CN 201310235051 A CN201310235051 A CN 201310235051A CN 104243408 A CN104243408 A CN 104243408A
Authority
CN
China
Prior art keywords
value
message
dns
dns query
current sample
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.)
Granted
Application number
CN201310235051.8A
Other languages
English (en)
Other versions
CN104243408B (zh
Inventor
卢楠
张峰
付俊
杨光华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201310235051.8A priority Critical patent/CN104243408B/zh
Publication of CN104243408A publication Critical patent/CN104243408A/zh
Application granted granted Critical
Publication of CN104243408B publication Critical patent/CN104243408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种域名解析服务DNS系统中监控报文的方法、装置及系统,能够对现有针对DNS的专项攻击提供全面的监测和防护能力,提高监控的准确性。该方法包括:以第一预设时长作为采样周期,获得域名解析服务器DNS和任一用户终端之间传输的报文;针对在当前采样周期内,任一获得的报文,确定所述报文的报文类型;根据确定出的报文类型,确定所述报文的报文长度值、访问次数以及生存周期中的至少两个参数;根据确定出的包含报文长度值、访问次数以及生存周期中的至少两个参数,确定所述报文在当前采样周期内对应的监控评估值;根据确定出的监控评估值,对所述DNS和任一用户终端之间传输的报文进行监控。

Description

域名解析服务DNS系统中监控报文的方法、装置及系统
技术领域
本发明涉及网络安全技术领域,尤其是涉及一种域名解析服务DNS系统中监控报文的方法、装置及系统。
背景技术
作为互联网的早期协议,考虑到当时主机的分布情况,在设计之初基于域名服务(DNS,Domain Name Service)协议的DNS系统,是建立在互信基础之上,是一个完全开放的协作体系,该系统中传输的各类数据没有进行加密,没有提供适当的信息保护和认证机制,也没有对各种查询进行准确的识别,同时对网络基础设施和核心骨干设备的保护没有受到足够重视,因此导致了后期DNS系统很容易遭受攻击,安全性较差。
其中,对DNS系统的攻击方式主要有以下几种方式:
第一种攻击方式是流量型拒绝服务攻击。例如基于用户数据包协议(UDP,User Datagram Protocol)流(flood)、基于传输控制协议(TCP,TransmissionControl Protocol)flood、DNS请求flood,或拼(PING)flood等。该种方式下的攻击的典型特征是消耗掉DNS服务器的资源,使其不能及时响应正常的DNS解析请求。其中,资源的消耗包括对服务器CPU、网络资源等的消耗。
第二种攻击方式是异常请求访问攻击。例如超长域名请求、异常域名请求等。该种方式下的攻击的特点是通过发掘DNS服务器的漏洞,通过伪造特定的请求报文,导致DNS服务器软件工作异常而退出或崩溃而无法启动,达到影响DNS服务器正常工作的目的。
第三种攻击方式是DNS劫持攻击。例如DNS缓存“投毒”、篡改授权域内容、ARP欺骗劫持授权域等。该种方式下的攻击的特点是通过直接篡改解析记录或在解析记录传递过程中篡改其内容或抢先应答,从而达到影响解析结果的目的。
第四种攻击方式是攻击者利用DNS进行攻击。例如攻击者控制僵尸机群采用被攻击主机的IP地址伪装成被攻击主机发送域名解析请求,大量的域名解析请求被DNS服务器递归查询解析后,DNS服务器发送响应给被攻击者,大量的响应数据包从不同的DNS服务器传回构成了分布式拒绝服务(DDoS,Distributed Denial of Service)攻击。
除上述四种攻击方式外,DNS操作安全问题还包括域名注册攻击、配置安全问题等等。
为提高DNS的安全性,通常情况下采用下述技术方式来对DNS的安全进行监控和防护:
第一种防护方式:通过通用的防火墙防护。例如在防火墙上添加一些针对DNS攻击的过滤规则,从而阻断DNS攻击。该种防护方式的缺陷在于:通过设置防火墙上DNS服务的规则可以防范部分攻击,如DDoS攻击、中间人攻击,但是对于大部分针对DNS的专项攻击无能为力。
第二种方式:通过设置流量清洗系统进行安全防护。在骨干传输链路和DNS服务器所在的传输链路上进行流量清洗,区分出正常业务流量和攻击流量,保障业务正常运行。该种方式的缺陷在于:流量清洗系统能较好的区分DoS/DDoS流量和正常业务流量,保证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为本发明实施例中,提出的一种DNS系统中监控报文的方法流程图;
图3为本发明实施例中,提出的一种DNS系统中监控报文的装置结构组成示意图;
图4为本发明实施例中,提出的攻击检测、防护流程示意图。
具体实施方式
针对现有技术中存在的不能对现有针对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监控装置设置在DNS前端,也就是说,DNS监控装置和DNS串联在DNS系统中,用于对DNS进行全面监控。DNS监控装置对传输链路进行监听,获得DNS和用户终端之间传输所有报文。
获得的报文中,报文类型可以包含DNS查询请求报文和DNS查询应答报文。即监听装置获得报文传输的目标端口号为53的UDP数据包,以及报文传输的源端口号为53的TCP数据包。DNS监控装置对获得的不同类型的报文进行统计分析,并将分析结果存储到安全监控数据库中。具体地,分析结果在安全监控数据库中存储形式可以参见下述表1所示:
表1
DNS监控装置在采样周期内获得DNS和用户终端之间传输的报文,对接收到的报文进行预处理,具体为:对接收到的报文进行解析,实现DNS协议检查,对异常协议的报文,如IP地址字段溢出等的报文直接丢弃。通过对获得的报文进行预处理,丢弃不符合规则的报文,降低要处理的报文的数量,进而节省处理资源。
若进行预处理后的报文的报文类型是DNS查询请求报文。在确定出获得的报文的报文类型是DNS查询请求报文时,确定发送该DNS查询请求报文的用户终端的源地址,在预先维护的安全监控数据库中,判断是否存储有该源地址,如果判断结果为否,在安全监控数据库中添加该获得的源地址,以及将DNS查询请求报文对应的监控评估值设定为第一预设数值、将该源地址对应的访问DNS的访问次数设定为第二预设数值、将该源地址对应的访问DNS的DNS查询请求报文的报文长度值设定为第三预设数值。其中,第一预设数值、第二预设数值即第三预设数值在进行设置的时候可以全部相同,例如第一预设数值、第二预设数值即第三预设数值可以是全部为0,也可以不完全相同。
如果判断结果为是,更新该安全监控数据库中获得的源地址对应的监控评估值、访问次数、报文长度值。
具体地,如果在预先维护的安全监控数据库中,存储有该DNS查询请求报文的源地址,则在安全监控数据库中可以获得对应该源地址的监控评估值,将监控评估值和第一预设阈值比较,如果监控评估值大于或等于第一预设阈值,则丢弃该获得的DNS查询请求报文,反之,如果监控评估值小于预设阈值,则更新安全监控数据库中的存储的数据。例如表1所示,更新表1中的监控评估值、访问次数、DNS查询请求报文的报文长度值等。发送DNS查询请求报文的用户终端的源地址可以是用户终端在系统中的源互联网协议(IP,Internet Protocol)地址,也可以是发送DNS查询请求报文的用户终端的设备标识,如媒体接入控制(MAC,Media Access Control)地址等。
其中,更新安全监控数据库中发送DNS查询请求报文的源地址对应的监控评估值时,首先确定更新前安全监控数据库中该源地址对应的监控评估值和当前采样周期确定出的监控评估值的和值,将得到的和值和第四预设数值相除得到的商值作为更新后的安全监控数据库中源地址对应的监控评估值。较佳地,第四预设数值可以取值为2。即更新后的监控评估值的取值为安全监控数据库中已经存储的监控评估值和当前采样周期计算得到的监控评估值的均值。具体可以如下述公式1所示:
P=(P0+PI)/2  公式1
其中,P是更新后的监控评估值,P0是安全监控数据库中已经存储的监控评估值,PI是当前采样周期计算得到的监控评估值。
具体地,上述公式1中,当前采样周期的监控评估值可以按照下述方式确定:首先获得包含当前采样周期的DNS查询请求报文对应的报文长度向量值,以及DNS查询请求报文对应的访问次数向量值;然后确定由报文长度向量值和访问次数向量值组成的第一矩阵;将第一矩阵和第一预设矩阵相乘得到的结果作为当前采样周期确定出的监控评估值。第一矩阵为[报文长度向量值访问次数向量值],第一预设矩阵可以是[0.3333 0.6667]的转秩矩阵,即[0.33330.6667]T,T表示转秩。具体可以如下述公式2所示:
PI=[L F]*[0.3333 0.6667]T  公式2
其中,PI是当前采样周期计算得到的监控评估值,L是当前采样周期的DNS查询请求报文的报文长度向量值,F是当前采样周期的DNS查询请求报文的访问次数向量值,[L F]是第一矩阵,[0.3333 0.6667]T是第一预设矩阵。
在上述公式2中,当前采样周期的所述DNS查询请求报文的报文长度向量值可以按照下述方式确定:首先获得当前采样周期的DNS查询请求报文的报文长度值和预设平均请求报文长度阈值的差值,得到的差值和最大报文长度值相除得到的商值作为当前采样周期的该DNS查询请求报文的报文长度向量值,其中最大报文长度值是在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值;具体可以采用下述公式3来表示:
L=(Li–QL)/Lmax  公式3
其中,L是当前采样周期的DNS查询请求报文的报文长度向量值,Li是当前采样周期的DNS查询请求报文的报文长度值,QL是预设平均请求报文长度阈值,Lmax是最大报文长度值。预设平均请求报文长度阈值QL是一个经验统计值,是指正常情况下DNS查询请求报文的平均报文长度值,即DNS系统中正常传输的DNS查询请求报文的平均报文长度值。
在上述公式2中,当前采样周期的访问次数向量值可以通过下述方式来确定:首先获得当前采样周期的访问次数值和预设平均访问次数阈值的差值,让后将获得的差值和最大访问次数值相除得到的商值作为当前采样周期的访问次数向量值,其中最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数。具体地,可以采用下述公式4来表示:
F=(Fi–FL)/Fmax  公式4
其中,F是当前采样周期的DNS查询请求报文的访问次数向量值,Fi是当前采样周期的DNS查询请求报文的访问次数值,FL是预设平均访问次数阈值,Fmax是最大访问次数值。预设预设平均访问次数阈值FL是一个经验统计值,是指正常情况下一个用户终端发出DNS查询请求报文的平均访问次数,最大访问次数是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数,具体还可以根据DNS的服务能力进行调整。
具体地,可以按照下述方式确定当前采样周期内的访问次数:获得安全监控数据库中存储的上一采样周期内的DNS查询请求报文的访问次数和第五预设数值的和值,得到的和值作为当前采样周期内的DNS查询请求报文的访问次数。较佳地,第五预设数值可以取值为1。
具体地,可以按照下述方式确定当前采样周期内的DNS查询请求报文的报文长度值:获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询请求报文的报文长度值的和值,得到的和值和第六预设数值的商值作为当前采样周期内的DNS查询请求报文的报文长度值。较佳地,第六预设数值可以取值为2。
具体实施中,如果在预先维护的安全监控数据库中,存储有该DNS查询请求报文的源地址,则在安全监控数据库中可以获得对应该源地址的监控评估值,将监控评估值和预设阈值比较,如果监控评估值小于预设阈值,则更新安全监控数据库中的存储的数据。即在安全监控数据库中,将该条获得的DNS查询请求报文的访问次数字段加一,具体可以如下述公式5所示,并修改报文长度字段,具体可以如下述公式6所示:
Fi=F.0+1  公式5
Li=(L.0+Lm)/2  公式6
上述公式5中,Fi是当前采样周期内的获得的DNS查询请求报文的访问次数,F.0是安全监控数据库中存储的上一采样周期内的DNS查询请求报文的访问次数。
上述公式6中,Li是计算得到的当前采样周期内的DNS查询请求报文的报文长度值L.0是安全监控数据库中存储的上一采样周期内的报文长度值,Lm是当前采样周期内获得的DNS查询请求报文的报文长度值。
获得的报文中,报文类型可以包含DNS查询请求报文和DNS查询应答报文。即监听装置获得报文传输的目标端口号为53的UDP数据包,以及报文传输的源端口号为53的TCP数据包。DNS监控装置对获得的不同类型的报文进行统计分析,并将分析结果存储到安全监控数据库中。具体地,分析结果在安全监控数据库中存储形式可以参见上述表1所示。
DNS监控装置在采样周期内获得DNS和用户终端之间传输的报文,对接收到的报文进行预处理,具体为:对接收到的报文进行解析,实现DNS协议检查,对异常协议的报文,如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查询应答报文对应的监控评估值。较佳地,第四默认数值可以取值为2。即更新后的监控评估值的取值为安全监控数据库中已经存储的监控评估值和当前采样周期计算得到的监控评估值的均值。具体可以如下述公式7所示:
X=(X0+XI)/2  公式7
其中,X是更新后的DNS的标识对应的监控评估值,X0是安全监控数据库中已经存储的DNS的标识对应的监控评估值,XI是当前采样周期计算得到的DNS的标识对应的监控评估值。
具体地,上述公式7中,当前采样周期计算得到的DNS的标识对应的监控评估值XI可以按照下述方式确定:首先获得包含当前采样周期的DNS查询应答报文对应的报文长度向量值、DNS查询应答报文对应生存周期向量值和DNS查询应答报文对应访问次数向量值的第二矩阵,第二矩阵为[报文长度向量值生存周期向量值访问次数向量值];然后将获得的第二矩阵和第二预设矩阵相乘得到的结果作为当前采样周期确定出的DNS查询应答报文对应的监控评估值。第二预设矩阵可以是[0.3 0.2 0.5]的转秩矩阵,即[0.3 0.2 0.5]T,T表示转秩。具体可以如下述公式8所示:
XI=[L T F]*[0.3 0.2 0.5]T  公式8
其中,XI是当前采样周期计算得到的DNS的标识对应的监控评估值,[L TF]是第二矩阵,L是当前采样周期的DNS查询应答报文的报文长度向量值,T是当前采样周期的DNS查询应答报文的生存周期向量值,F是当前采样周期的DNS查询请求报文的访问次数向量值。[0.3 0.2 0.5]T是第二预设矩阵。
在上述公式8中,当前采样周期的DNS查询应答报文对应的报文长度向量值可以按照下述方式确定:首先获得当前采样周期的该DNS查询应答报文的报文长度值和预设平均应答报文长度阈值的差值,得到的差值和最大报文长度值相除得到的商值作为当前采样周期的DNS查询应答报文的报文长度向量值,其中最大报文长度值是当在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值;具体可以采用下述公式9来表示:
L=(Ly–Qm)/Lmax1  公式9
其中,L是当前采样周期的DNS查询应答报文对应的报文长度向量值,Qm是当前采样周期的该DNS查询应答报文的报文长度值,Qm是预设平均应答报文长度阈值,Lmax1是最大报文长度值。预设平均应答报文长度阈值Qm是一个经验统计值,是指正常情况下DNS查询应答报文的平均报文长度值,即DNS系统中正常传输的DNS查询应答报文的平均报文长度值。
在上述公式8中,当前采样周期的DNS查询应答报文的访问次数向量值可以通过下述方式来确定:首先获得当前采样周期的DNS查询应答报文的访问次数值和预设平均访问次数阈值的差值,获得的差值和最大访问次数值相除得到的商值作为当前采样周期的该DNS查询应答报文的访问次数向量值,其中最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数。具体地,可以采用下述公式10来表示:
F=(Fy–Fm)/Fmax1  公式10
其中,F是当前采样周期的DNS查询应答报文的访问次数向量值,Fy是当前采样周期的DNS查询应答报文的访问次数值,Fm是预设平均访问次数阈值,Fmax1是最大访问次数值。预设平均访问次数阈值Fm是一个经验统计值,是指正常情况下一个DNS递归服务器查询应答请求的平均访问次数。最大访问次数是是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数,具体还可以根据DNS的服务能力进行调整。
在上述公式8中,当前采样周期的DNS查询应答报文的生存周期向量值可以通过下述方式确定:首先获得当前采样周期的生存周期数值和预设平均生存周期阈值的差值,获得的差值和最大生存周期数值相除得到的商值作为当前采样周期的DNS查询应答报文的生存周期向量值,其中最大生存周期是在当前采样周期内,采样得到的全部DNS查询应答报文中,生存周期最大的DNS查询应答报文对应的生存周期。具体地,可以采用下述公式11来表示:
T=(Ti-Taver)/Tmax  公式11
其中,T是当前采样周期的DNS查询应答报文的生存周期向量值,Ti是当前采样周期的生存周期数值,Taver是预设平均生存周期阈值,Tmax是最大生存周期数值。预设平均生存周期阈值Taver是一个经验统计值,是指正常情况下DNS发出的DNS查询应答报文的平均生存周期。
具体地,可以按照下述方式确定当前采样周期内的DNS查询应答报文的访问次数:获得安全监控数据库中存储的上一采样周期内的访问次数和第五默认数值的和值;获得的和值作为当前采样周期内的该DNS查询应答报文的访问次数。较佳地,第五默认数值可以取值为1。
具体地,可以按照下述方式确定当前采样周期内的DNS查询应答报文的报文长度值:获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询应答报文的报文长度值的和值,获得的和值和第六默认数值的商值作为当前采样周期内的所述DNS查询应答报文的报文长度值。较佳地,第六默认数值可以取值为2。
具体地,可以按照下述方式确定当前采样周期内的DNS查询应答报文的生存周期值:获得安全监控数据库中存储的上一采样周期内的该DNS查询应答报文的生存周期值和当前采样周期内获得的DNS查询应答报文的生存周期值的和值,获得的和值和第七默认数值的商值作为当前采样周期内的所述DNS查询应答报文的生存周期值。较佳地,第七默认数值可以取值为2。
具体实施中,如果在预先维护的安全监控数据库中,存储有发送DNS查询应答报文的DNS的标识,则可以将该DNS的标识对应的监控评估值设置为最大值,并丢弃该条DNS查询应答报文。如果在预先维护的安全监控数据库中,没有存储发送DNS查询应答报文的DNS的标识,继续检索是否存储有该DNS查询应答报文所响应的发送DNS查询请求报文的源地址和该DNS查询请求报文请求查询的域名,如果判断结果为是,确定安全监控数据库中存储的DNS查询应答报文对应的监控评估值,在监控评估值小于第二预设阈值时,更新所述安全监控数据库中所述DNS查询应答报文对应的监控评估值、访问次数、报文生存周期值,在监控评估值大于第二预设阈值时,可以将该DNS查询应答报文丢弃。
基于图1所示的系统架构,DNS监控装置在确定出对应每个类型的报文的评估监控值之后,若确定出的监控评估值大于或等于预设门限值,禁止该报文在DNS和任一用户终端之间传输;以及若确定出的监控评估值小于预设门限值,允许该报文在DNS和任一用户终端之间传输。
在禁止该报文在述DNS和任一用户终端之间传输之后,还可以在预先维护的安全监控数据库中,获得禁止传输的报文的属性信息,属性信息包含发送所述禁止传输的报文的源地址、源端口号以及DNS的标识中的至少两种;根据接收到的属性信息,确定出符合攻击DNS的数据流的源地址、源端口号以及DNS的标识中的至少两个监控参数;基于确定出的至少两个监控参数,在检测到DNS系统中存在攻击DNS的数据流时,阻断攻击DNS的数据流。
一种较佳地实现方式,如图1所示的监控系统架构图,在该监控系统中,还可以包括防火墙系统和入侵检测系统(IDS,Intrusion Detection Systems)。其中入侵检测系统可以包括用于对用户终端和DNS之间传输的报文进行分析的IDS分析器、用于阻断攻击数据流的IDS执行单元以及至少一个用于采集用户终端和DNS之间传输的报文的IDS采集器。防火墙系统设置在监控系统的网络入口处,用于防护黑客或病毒对网络的攻击。DNS监控装置将获得的禁止传输的报文的属性信息,如提取当前禁止传输的报文的源IP地址、源端口号等发送给IDS系统,IDS系统根据接收到的禁止传输的报文的属性信息,按照一定规则,生成监控评估模型,IDS采集器可以根据生成的监控评估模型对用户终端和DNS之间传输的报文进行检测,当检测到符合监控评估模型中规定的报文时,即相当于检测到攻击DNS的数据流,则可以将该攻击DNS的数据流上报给,IDS分析器基于网络拓扑追溯攻击行为,做出决策,由IDS执行单元联动最接近上游采集点的防火墙系统,防火墙系统应用联动规则,阻断攻击DNS的数据流。
较佳地,DNS监控装置将获得的禁止传输的报文的属性信息发送给IDS系统之后,可以清除该报文在安全监控数据库中的相关记录,从而可以节省安全监控数据库的存储资源。
相应地,本发明实施例一这里还提出一种域名解析服务DNS系统中监控报文的方法,如图2所示,其具体处理流程如下述:
步骤21,以第一预设时长作为采样周期,获得域名解析服务器DNS和任一用户终端之间传输的报文。
如图1所示的系统架构,DNS监控装置设置在DNS前端,用于对DNS进行全面监控。DNS监控装置对传输链路进行监听,获得DNS和用户终端之间传输所有报文。
步骤22,对获得的报文进行预处理,确定符合DNS协议的报文。
对接收到的报文进行解析,实现DNS协议检查,对异常协议的报文,如IP地址字段溢出等的报文直接丢弃。这样可以对获得的报文进行预处理,丢弃不符合规则的报文,降低要处理的报文的数量,进而节省处理资源。
步骤23,针对在当前采样周期内任一获得的报文,确定该报文的报文类型。
获得的报文中,报文类型可以包含DNS查询请求报文和DNS查询应答报文。即监听装置获得报文传输的目标端口号为53的UDP数据包,以及报文传输的源端口号为53的TCP数据包。后续可以针对获得的不同类型的报文进行统计分析,并将分析结果存储到安全监控数据库中。具体地,分析结果在安全监控数据库中存储形式可以参见上述表1所示。
步骤24,根据确定出的报文类型,确定该报文在当前采样周期内对应的监控评估值。若确定出的报文类型是DNS查询请求报文,则执行步骤25,若确定出的报文类型是是DNS查询应答报文,则执行步骤26。
根据确定出的报文类型,确定在当前采样周期内,报文的报文长度值、访问次数以及生存周期中的至少两个参数;根据确定出的包含报文长度值、访问次数以及生存周期中的至少两个参数,确定报文在当前采样周期内对应的监控评估值,其中监控评估值是用于确定所述报文是否异常的数值。
步骤25,在确定出获得的报文是DNS查询请求报文时,确定发送该DNS查询请求报文的用户终端的源地址。
步骤251,在预先维护的安全监控数据库中,判断是否存储有该源地址,如果判断结果为否,则执行步骤252,如果判断结果为是,则执行步骤253。
步骤252,如果判断结果为否,在安全监控数据库中添加所述源地址,以及将DNS查询请求报文对应的监控评估值设定为第一预设数值、将源地址对应的访问DNS的访问次数设定为第二预设数值、将源地址对应的访问DNS的DNS查询请求报文的报文长度值设定为第三预设数值。其中,第一预设数值、第二预设数值即第三预设数值在进行设置的时候可以全部相同,例如第一预设数值、第二预设数值即第三预设数值可以是全部为0,也可以不完全相同。
步骤253,如果判断结果为是,更新安全监控数据库中所述源地址对应的监控评估值、访问次数、报文长度值。
具体地,如果在预先维护的安全监控数据库中,存储有该DNS查询请求报文的源地址,则在安全监控数据库中可以获得对应该源地址的监控评估值,将监控评估值和第一预设阈值比较,如果监控评估值大于或等于第一预设阈值,则丢弃该获得的DNS查询请求报文,反之,如果监控评估值小于预设阈值,则更新安全监控数据库中的存储的数据。例如上述表1所示,更新表1中的监控评估值、访问次数、DNS查询请求报文的报文长度值等。发送DNS查询请求报文的用户终端的源地址可以是用户终端在系统中的IP地址,也可以是发送DNS查询请求报文的用户终端的设备标识,如MAC地址等。
其中,更新安全监控数据库中发送DNS查询请求报文的源地址对应的监控评估值时,首先确定更新前安全监控数据库中该源地址对应的监控评估值和当前采样周期确定出的监控评估值的和值,将得到的和值和第四预设数值相除得到的商值作为更新后的安全监控数据库中源地址对应的监控评估值。较佳地,第四预设数值可以取值为2。即更新后的监控评估值的取值为安全监控数据库中已经存储的监控评估值和当前采样周期计算得到的监控评估值的均值。具体可参见上述公式1所示。本步骤这里不再赘述。
具体地,上述公式1中,当前采样周期的监控评估值可以按照下述方式确定:首先获得包含当前采样周期的DNS查询请求报文对应的报文长度向量值和DNS查询请求报文对应的访问次数向量值,然后确定由报文长度向量值和访问次数向量值组成的第一矩阵,第一矩阵可以采用[报文长度向量值访问次数向量值]来表示,最后将获得的第一矩阵和第一预设矩阵相乘得到的结果作为当前采样周期确定出的监控评估值。第一预设矩阵可以是[0.3333 0.6667]的转秩矩阵,即[0.3333 0.6667]T,T表示转秩。具体可以参见上述公式2所示,本步骤中不再赘述。
当前采样周期的所述DNS查询请求报文对应的报文长度向量值可以按照下述方式确定:首先获得当前采样周期的DNS查询请求报文的报文长度值和预设平均请求报文长度阈值的差值,得到的差值和最大报文长度值相除得到的商值作为当前采样周期的该DNS查询请求报文的报文长度向量值,其中最大报文长度值是在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值。具体可以参见上述公式3所示,本步骤不再赘述。
当前采样周期的访问次数向量值可以通过下述方式来确定:首先获得当前采样周期的访问次数值和预设平均访问次数阈值的差值,让后将获得的差值和最大访问次数值相除得到的商值作为当前采样周期的访问次数向量值,其中最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数。具体地,可以参见上述公式4所示,本步骤这里不再赘述。
具体地,可以按照下述方式确定当前采样周期内的访问次数:获得安全监控数据库中存储的上一采样周期内的DNS查询请求报文的访问次数和第五预设数值的和值,得到的和值作为当前采样周期内的DNS查询请求报文的访问次数。较佳地,第五预设数值可以取值为1。
具体地,可以按照下述方式确定当前采样周期内的DNS查询请求报文的报文长度值:获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询请求报文的报文长度值的和值,得到的和值和第六预设数值的商值作为当前采样周期内的DNS查询请求报文的报文长度值。较佳地,第六预设数值可以取值为2。
具体实施中,如果在预先维护的安全监控数据库中,存储有该DNS查询请求报文的源地址,则在安全监控数据库中可以获得对应该源地址的监控评估值,将监控评估值和预设阈值比较,如果监控评估值小于预设阈值,则更新安全监控数据库中的存储的数据。即在安全监控数据库中,将该条获得的DNS查询请求报文的访问次数字段加一,具体可以如上述公式5和公式6所示,本步骤这里不再赘述。
步骤26,在确定出获得的报文的报文类型是DNS查询应答报文时,确定发送该DNS查询应答报文的DNS的标识。
步骤261,在预先维护的安全监控数据库中,确定是否存储有该DNS的标识,如果已经存储,则执行步骤262,反之,执行步骤263。
步骤262,当确定出存储该DNS的标识时发送的DNS查询应答报文时,则在安全监控数据库中,将该DNS查询应答监控报文的评估值置为预设的最大值,并可以丢弃该条DNS查询应答报文。
步骤263,当确定出未存储DNS的标识时,判断是否存储有该DNS查询应答报文所响应的发送DNS查询请求报文的源地址和DNS查询请求报文请求查询的域名,如果判断结果为是,则执行步骤264,反之,执行步骤265。
步骤264,如果判断结果为是,确定安全监控数据库中存储的该DNS查询应答报文对应的监控评估值,判断该DNS查询应答报文对应的监控评估值是否小于第二预设阈值,如果判断结果为否,则执行步骤2641,如果判断结果为是,则执行步骤2642。
步骤2641,如果判断结果为否,即该DNS查询应答报文对应的监控评估值大于或等于第二预设阈值,丢弃该DNS查询应答报文。
步骤2642,如果判断结果为是,即在监控评估值小于第二预设阈值时,更新安全监控数据库中该DNS查询应答报文对应的监控评估值、访问次数、报文生存周期值。
其中,更新安全监控数据库中获得的DNS查询应答报文对应的监控评估值时,首先确定更新前安全监控数据库中该DNS的标识对应的监控评估值和当前采样周期确定出的监控评估值的和值,将得到的和值和第四默认数值相除得到的商值作为更新后的安全监控数据库中该DNS查询应答报文对应的监控评估值。较佳地,第四默认数值可以取值为2。即更新后的监控评估值的取值为安全监控数据库中已经存储的监控评估值和当前采样周期计算得到的监控评估值的均值。具体可以如上述公式7所示,本步骤这里不再赘述。
采用下述方式获得当前采样周期的DNS查询应答报文对应的监控评估值:首先获得包含当前采样周期的DNS查询应答报文对应的报文长度向量值、DNS查询应答报文对应的生存周期向量值和DNS查询应答报文对应的访问次数向量值,确定由报文长度向量值、生存周期向量值和访问次数向量值组成的第二矩阵的第二矩阵,第二矩阵为[报文长度向量值生存周期向量值访问次数向量值];然后将获得的第二矩阵和第二预设矩阵相乘得到的结果作为当前采样周期确定出的DNS查询应答报文对应的监控评估值。第二预设矩阵可以是[0.30.2 0.5]的转秩矩阵,即[0.3 0.2 0.5]T,T表示转秩。具体可以如上述公式8所示,本步骤这里不再赘述。
采用下述方式,确定当前采样周期的所述DNS查询应答报文对应的报文长度向量值:首先获得当前采样周期的该DNS查询应答报文的报文长度值和预设平均应答报文长度阈值的差值,得到的差值和最大报文长度值相除得到的商值作为当前采样周期的DNS查询应答报文的报文长度向量值,其中最大报文长度值是当在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值。具体可以参见上述公式9所示,本步骤中不再赘述。
当前采样周期的DNS查询应答报文的访问次数向量值可以通过下述方式来确定:首先获得当前采样周期的DNS查询应答报文的访问次数值和预设平均访问次数阈值的差值,获得的差值和最大访问次数值相除得到的商值作为当前采样周期的该DNS查询应答报文的访问次数向量值,其中最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数。具体地,可参见上述公式10所示,本步骤中不再赘述。
当前采样周期的DNS查询应答报文的生存周期向量值可以通过下述方式确定:首先获得当前采样周期的生存周期数值和预设平均生存周期阈值的差值,获得的差值和最大生存周期数值相除得到的商值作为当前采样周期的DNS查询应答报文的生存周期向量值,其中最大生存周期是在当前采样周期内,采样得到的全部DNS查询应答报文中,生存周期最大的DNS查询应答报文对应的生存周期。具体地,可以参见上述公式11所示,本步骤中不再赘述。
可以按照下述方式确定当前采样周期内的DNS查询应答报文的访问次数:获得安全监控数据库中存储的上一采样周期内的访问次数和第五默认数值的和值;获得的和值作为当前采样周期内的该DNS查询应答报文的访问次数。较佳地,第五默认数值可以取值为1。
具体地,可以按照下述方式确定当前采样周期内的DNS查询应答报文的报文长度值:获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询应答报文的报文长度值的和值,获得的和值和第六默认数值的商值作为当前采样周期内的所述DNS查询应答报文的报文长度值。较佳地,第六默认数值可以取值为2。
具体地,可以按照下述方式确定当前采样周期内的DNS查询应答报文的生存周期值:获得安全监控数据库中存储的上一采样周期内的该DNS查询应答报文的生存周期值和当前采样周期内获得的DNS查询应答报文的生存周期值的和值,获得的和值和第七默认数值的商值作为当前采样周期内的所述DNS查询应答报文的生存周期值。较佳地,第七默认数值可以取值为2。
具体实施中,如果在预先维护的安全监控数据库中,存储有发送DNS查询应答报文的DNS的标识,则可以将该DNS的标识对应的监控评估值设置为最大值,并丢弃该条DNS查询应答报文。如果在预先维护的安全监控数据库中,没有存储发送DNS查询应答报文的DNS的标识,继续检索是否存储有该DNS查询应答报文所响应的发送DNS查询请求报文的源地址和该DNS查询请求报文请求查询的域名,如果判断结果为是,确定安全监控数据库中存储的DNS查询应答报文对应的监控评估值,在监控评估值小于第二预设阈值时,更新所述安全监控数据库中所述DNS查询应答报文对应的监控评估值、访问次数、报文生存周期值,在监控评估值大于第二预设阈值时,可以将该DNS查询应答报文丢弃。
步骤265,如果判断结果为否,在安全监控数据库中添加发送DNS查询应答报文的DNS的标识,以及将DNS查询应答报文对应的监控评估值设定为第一默认数值、将DNS查询应答报文对应的访问次数设定为第二默认数值、将DNS查询应答报文对应的报文生存周期设定为第三默认数值。
步骤27,根据确定出的监控评估值,对DNS和任一用户终端之间传输的报文进行监控。
在确定出对应每个类型的报文的评估监控值之后,若确定出的监控评估值大于或等于预设门限值,禁止该报文在DNS和任一用户终端之间传输;以及若确定出的监控评估值小于预设门限值,允许该报文在DNS和任一用户终端之间传输。
在禁止该报文在述DNS和任一用户终端之间传输之后,在预先维护的安全监控数据库中,获得禁止传输的报文的属性信息,所述属性信息包含发送所述禁止传输的报文的源地址、源端口号以及DNS的标识中的至少两种;根据接收到的属性信息,确定出符合攻击DNS的数据流的源地址、源端口号以及DNS的标识中的至少两个监控参数;基于确定出的至少两个监控参数,在检测到DNS系统中存在攻击DNS的数据流时,阻断所述攻击DNS的数据流。
一种较佳地实现方式,如图1所示的监控系统架构图,在该监控系统中,还可以包括防火墙系统和入侵检测系统(IDS,Intrusion Detection Systems)。其中入侵检测系统可以包括用于对用户终端和DNS之间传输的报文进行分析的IDS分析器、用于阻断攻击数据流的IDS执行单元以及至少一个用于采集用户终端和DNS之间传输的报文的IDS采集器。防火墙系统设置在监控系统的网络入口处,用于防护黑客或病毒对网络的攻击。DNS监控装置将获得的禁止传输的报文的属性信息,如提取当前禁止传输的报文的源IP地址、源端口号等发送给IDS系统,IDS系统根据接收到的禁止传输的报文的属性信息,按照一定规则,生成监控评估模型,IDS采集器可以根据生成的监控评估模型对用户终端和DNS之间传输的报文进行检测,当检测到符合监控评估模型中规定的报文时,即相当于检测到攻击DNS的数据流,则可以将该攻击DNS的数据流上报给IDS分析器,IDS分析器基于网络拓扑追溯攻击行为,做出决策,由IDS执行单元联动最接近上游采集点的防火墙系统,防火墙系统应用联动规则,阻断攻击DNS的数据流。
较佳地,将获得的禁止传输的报文的属性信息发送给IDS系统之后,可以清除该报文在安全监控数据库中的相关记录,从而可以节省安全监控数据库的存储资源。
相应地,本发明实施例这里还提出一种DNS系统中监控报文的监控装置,如图3所示,包括:
数据采集模块301,用于以第一预设时长作为采样周期,获得域名解析服务器DNS和任一用户终端之间传输的报文。
数据缓存和分析模块302,用于针对在当前采样周期内,任一获得的报文,确定所述报文的报文类型;以及根据确定出的报文类型,确定在当前采样周期内,所述报文的报文长度值、访问次数以及生存周期中的至少两个参数;根据确定出的包含报文长度值、访问次数以及生存周期中的至少两个参数,确定所述报文在当前采样周期内对应的监控评估值,其中所述监控评估值是用于确定所述报文是否异常的数值。
其中,报文类型包含DNS查询请求报文;上述数据缓存和分析模块202,具体用于在确定出获得的报文是DNS查询请求报文时,确定发送所述DNS查询请求报文的用户终端的源地址;在预先维护的安全监控数据库中,判断是否存储有所述源地址;如果判断结果为否,在所述安全监控数据库中添加所述源地址,以及将所述DNS查询请求报文对应的监控评估值设定为第一预设数值、将所述源地址对应的访问DNS的访问次数设定为第二预设数值、将所述源地址对应的访问DNS的DNS查询请求报文的报文长度值设定为第二预设数值;如果判断结果为是,更新所述安全监控数据库中所述源地址对应的监控评估值、访问次数、报文长度值。
具体地,上述数据缓存和分析模块302,具体用于确定更新前安全监控数据库中所述源地址对应的监控评估值和当前采样周期确定出的监控评估值的和值;将得到的和值和第三预设数值相除得到的商值作为更新后的所述安全监控数据库中所述源地址对应的监控评估值。
具体地,上述数据缓存和分析模块302,具体用于采用下述方式获得所述当前采样周期确定出的监控评估值:获得包含当前采样周期的所述DNS查询请求报文对应的报文长度向量值,以及所述DNS查询请求报文对应的访问次数向量值;确定由所述报文长度向量值和所述访问次数向量值组成的第一矩阵;将所述第一矩阵和第一预设矩阵相乘得到的结果作为当前采样周期确定出的监控评估值。
具体地,上述数据缓存和分析模块302,具体用于采用下述方式,确定当前采样周期的所述DNS查询请求报文的报文长度向量值:获得当前采样周期的所述DNS查询请求报文的报文长度值和预设平均请求报文长度阈值的差值;所述差值和最大报文长度值相除得到的商值作为当前采样周期的所述DNS查询请求报文的报文长度向量值,其中最大报文长度值是在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值;采用下述方式,确定当前采样周期的访问次数向量值:获得当前采样周期的访问次数值和预设平均访问次数阈值的差值;所述差值和最大访问次数值相除得到的商值作为当前采样周期的访问次数向量值,其中所述最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数;
具体地,上述数据缓存和分析模块302,具体用于按照下述方式确定当前采样周期内的访问次数:获得安全监控数据库中存储的上一采样周期内的所述DNS查询请求报文的访问次数和第四预设数值的和值;所述和值作为当前采样周期内的所述DNS查询请求报文的访问次数;
具体地,上述数据缓存和分析模块302,具体用于按照下述方式确定当前采样周期内的所述DNS查询请求报文的报文长度值:获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询请求报文的报文长度值的和值;所述和值和第五预设数值的商值作为当前采样周期内的所述DNS查询请求报文的报文长度值。
其中,报文类型包含DNS查询应答报文;
具体地,上述数据缓存和分析模块302,具体用于在确定出获得的报文是DNS查询应答报文时,确定发送所述DNS查询应答报文的DNS的标识;在预先维护的安全监控数据库中,当确定出未存储所述DNS的标识时,判断是否存储有所述DNS查询应答报文所响应的发送DNS查询请求报文的源地址和所述DNS查询请求报文请求查询的域名;如果判断结果为是,确定安全监控数据库中存储的所述DNS查询应答报文对应的监控评估值,在所述监控评估值小于第二预设阈值时,更新所述安全监控数据库中所述DNS查询应答报文对应的监控评估值、访问次数、报文生存周期值;如果判断结果为否,在所述安全监控数据库中添加发送所述DNS查询应答报文的DNS的标识,以及将所述DNS查询应答报文对应的监控评估值设定为第一默认数值、将所述DNS查询应答报文对应的访问次数设定为第二默认数值、将所述DNS查询应答报文对应的报文生存周期设定为第三默认数值。
具体地,上述数据缓存和分析模块302,具体用于确定更新前安全监控数据库中所述DNS的标识对应的监控评估值和当前采样周期确定出的监控评估值的和值;将得到的和值和第四默认数值相除得到的商值作为更新后的所述安全监控数据库中所述DNS查询应答报文对应的监控评估值。
具体地,上述数据缓存和分析模块302,具体用于采用下述方式获得所述当前采样周期的所述DNS查询应答报文对应的监控评估值:获得包含当前采样周期的所述DNS查询应答报文对应的报文长度向量值、所述DNS查询应答报文对应的生存周期向量值和所述DNS查询应答报文对应的访问次数向量值;确定由所述报文长度向量值、生存周期向量值和访问次数向量值组成的的第二矩阵;将所述第二矩阵和第二预设矩阵相乘得到的结果作为当前采样周期确定出的所述DNS查询应答报文对应的监控评估值。
具体地,上述数据缓存和分析模块302,具体用于采用下述方式,确定当前采样周期的所述DNS查询应答报文对应的报文长度向量值:获得当前采样周期的所述DNS查询应答报文的报文长度值和预设平均应答报文长度阈值的差值;所述差值和最大报文长度值相除得到的商值作为当前采样周期的所述DNS查询应答报文的报文长度向量值,其中最大报文长度值是在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值;
具体地,上述数据缓存和分析模块302,具体用于采用下述方式,确定当前采样周期的所述DNS查询应答报文的访问次数向量值:获得当前采样周期的所述DNS查询应答报文的访问次数值和预设平均访问次数阈值的差值;所述差值和最大访问次数值相除得到的商值作为当前采样周期的所述DNS查询应答报文的访问次数向量值,其中所述最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数;
具体地,上述数据缓存和分析模块302,具体用于采用下述方式,确定当前采样周期的所述DNS查询应答报文的生存周期向量值:获得当前采样周期的生存周期数值和预设平均生存周期阈值的差值;所述差值和最大生存周期数值相除得到的商值作为当前采样周期的所述DNS查询应答报文的生存周期向量值,其中最大生存周期是在当前采样周期内,采样得到的全部DNS查询应答报文中,生存周期最大的DNS查询应答报文对应的生存周期。
具体地,上述数据缓存和分析模块302,具体用于按照下述方式确定当前采样周期内的所述DNS查询应答报文的访问次数:获得安全监控数据库中存储的上一采样周期内的访问次数和第五默认数值的和值;所述和值作为当前采样周期内的所述DNS查询应答报文的访问次数;
具体地,上述数据缓存和分析模块302,具体用于按照下述方式确定当前采样周期内的访问次数报文长度值:获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询应答报文的报文长度值的和值;所述和值和第六默认数值的商值作为当前采样周期内的所述DNS查询应答报文的报文长度值。
具体地,上述数据缓存和分析模块302,具体用于按照下述方式确定当前采样周期内的所述DNS查询应答报文的生存周期值:获得安全监控数据库中存储的上一采样周期内的所述DNS查询应答报文的生存周期值和当前采样周期内获得的DNS查询应答报文的生存周期值的和值;所述和值和第七默认数值的商值作为当前采样周期内的所述DNS查询应答报文的生存周期值。
监控模块303,用于根据确定出的监控评估值,对所述DNS和任一用户终端之间传输的报文进行监控。
其中上述监控模块303,具体包括:
数据转发子模块,用于若确定出的监控评估值大于或等于预设门限值,禁止该报文在述DNS和任一用户终端之间传输;以及若确定出的监控评估值小于预设门限值,允许该报文在述DNS和任一用户终端之间传输。
其中上述监控模块303,具体包括:规则生成子模块,用于在预先维护的安全监控数据库中,获得禁止传输的报文的属性信息,所述属性信息包含发送所述禁止传输的报文的源地址、源端口号以及DNS的标识中的至少两种;根据接收到的属性信息,确定出符合攻击DNS的数据流的源地址、源端口号以及DNS的标识中的至少两个监控参数;监控子模块,用于基于确定出的至少两个监控参数,在检测到DNS系统中存在攻击DNS的数据流时,阻断所述攻击DNS的数据流。
本发明实施一上述提出的技术方案中,DNS监控装置监控用户终端和DNS之间传输的所有报文,通过对监控评估值的计算和分析,可以监测到对于DNS的专项攻击,提供全面的监测能力,并通过阻断转发实现对第二类攻击的实时防护。侵检测系统可以接受DNS监控装置推送过来的禁止传输的报文的属性信息,建立监控评估模型,可以及时检测攻击流,实现基于网络拓扑的攻击路径监测和追溯。系统在攻击路径的上游实施防火墙规则,可以实现攻击的提早和精确阻断,实现了对于DNS的防护,减轻了对于DNS系统流量的压力。通过监控装置、入侵检测系统和防火墙系统的结合,并采用DNS攻击监控分析到攻击流探测到防护的流程,使得DNS攻击检测的全面性、准确性、及时防护性有了很好的保证。
综上所述,本发明实施例这里提出的对DNS攻击进行检测、防护的流程图具体如图4所示,其中,如图4所示的流程图,包括DNS监控子系统,在DNS监控子系统中包含上述实施例一中提出的DNS监控装置,包括分布式IDS系统以及防火墙系统。其中,分布式IDS系统包括模型生成模块、IDS采集器、IDS分析器和IDS执行单元。其中,DNS监控子系统,用于通过DNS服务器前端的监控装置来监听用户终端和DNS之间传输的所有报文,并根据不同的报文类型,确定出监控评估值。监控子系统监控现有对于DNS的专项攻击,包括DoS攻击、缓存投毒攻击、DNS反射攻击、DNS放大攻击、中间人攻击等针对DNS的攻击,根据监测到的攻击形成相应的分析结果。DNS监控子系统根据这些分析结果进行监控或者将分析结果推送给IDS子系统。其中,根据不同的报文类型,确定出监控评估值请参见上述实施例中的详细阐述,这里不再赘述。
IDS子系统,用于接收DNS监控子系统推送过来的分析结果。IDS系统将该些分析结果生成监控评估模型,并将生成的监控评估模型应用于于所有的IDS采集器。IDS采集器检测到符合监控评估模型的攻击流,汇报给IDS分析器。如果有多个IDS采集器都检测到攻击流,则由IDS分析器根据检测时间戳确定攻击流的攻击路径。通过追溯攻击路径可以确定最上游的采集点,由IDS执行单元确定离该采集点最近的防火墙,以便对该攻击流实施阻断、过滤或者其他防火墙规则。
防火墙子系统,防火墙系统与IDS子系统关联,接收IDS子系统确定的策略,实时实施,实现对DNS的防护。
本发明实施例提出的技术方案中,DNS监控装置可以由多种软、硬件来实现,可以包含多个模块,集成在DNS系统中的任一网元设备中,例如可以设置在DNS服务器中,也可以作为一个独立的物理设备来实现。当DNS作为一个集成模块集成在DNS服务器中时,将DNS监控装置绑定与DNS服务相同的网络端口。当作为一个单独的物理设备工作时,部署在DNS服务器的前端,可以与DNS服务器串接部署,也可以并联部署。
其中,DNS监控子系统通过监听DNS和任一用户终端之间传输的报文,并根据报文的报文类型,以及维护的安全监控数据库,可检测到现有对于DNS的专项攻击。
例如,当DNS监控子系统通过维护的安全监控数据库发现,来自某些源IP地址的DNS查询请求报文,短时间内积累了较高的访问次数,通过计算其监控评估值,发现计算出的监控评估值超过设定的阈值,则判断其有可能受到了DNS DoS攻击。DNS监控子系统获得发送该些DNS查询请求报文的源IP,基于获得的源IP生成监控评估模型,将生成的监控评估模型推送给IDS子系统,由IDS子系统判断由相应的防火墙添加对于这些IP访问DNS服务的阻断规则。
又如,DNS监控子系统通过维护的安全监控数据库发现:记录每一个DNS服务器发出的DNS查询应答报文,如果检测到短时间收到了对于一个域名的多个DNS查询应答报文,并且生存周期(TTL)值较大,超过平均TTL,则判断有可能受到DNS缓存投毒攻击,这些记录的评估值保持较高值,DNS监控子系统对同类数据包做丢弃处理。
为实现更好的攻击路径追溯,入侵检测系统采用分布式部署,可部署尽可能多的数据采集器。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (31)

1.一种域名解析服务DNS系统中监控报文的方法,其特征在于,包括:
以第一预设时长作为采样周期,获得域名解析服务器DNS和任一用户终端之间传输的报文;
针对在当前采样周期内,任一获得的报文,确定所述报文的报文类型;
根据确定出的报文类型,确定所述报文的报文长度值、访问次数以及生存周期中的至少两个参数;
根据确定出的包含报文长度值、访问次数以及生存周期中的至少两个参数,确定所述报文在当前采样周期内对应的监控评估值,其中所述监控评估值是用于确定所述报文是否异常的数值;
根据确定出的监控评估值,对所述DNS和任一用户终端之间传输的报文进行监控。
2.如权利要求1所述的方法,其特征在于,所述报文类型包含DNS查询请求报文;
根据确定出的包含报文长度值、访问次数以及生存周期中的至少两个参数,确定所述报文在当前采样周期内对应的监控评估值,包括:
在确定出获得的报文是DNS查询请求报文时,确定发送所述DNS查询请求报文的用户终端的源地址;
在预先维护的安全监控数据库中,判断是否存储有所述源地址;
如果判断结果为否,在所述安全监控数据库中添加所述源地址,以及将所述DNS查询请求报文对应的监控评估值设定为第一预设数值、将所述源地址对应的访问DNS的访问次数设定为第二预设数值、将所述源地址对应的访问DNS的DNS查询请求报文的报文长度值设定为第三预设数值;
如果判断结果为是,更新所述安全监控数据库中所述源地址对应的监控评估值、访问次数、报文长度值。
3.如权利要求2所述的方法,其特征在于,更新所述安全监控数据库中所述源地址对应的监控评估值,包括:
确定更新前安全监控数据库中所述源地址对应的监控评估值和当前采样周期确定出的监控评估值的和值;
将得到的和值和第四预设数值相除得到的商值作为更新后的所述安全监控数据库中所述源地址对应的监控评估值。
4.如权利要求3所述的方法,其特征在于,采用下述方式获得所述当前采样周期确定出的监控评估值:
获得包含当前采样周期的所述DNS查询请求报文对应的报文长度向量值,以及所述DNS查询请求报文对应的访问次数向量值;
确定由所述报文长度向量值和所述访问次数向量值组成的第一矩阵;
将所述第一矩阵和第一预设矩阵相乘得到的结果作为当前采样周期确定出的监控评估值。
5.如权利要求4所述的方法,其特征在于,采用下述方式,确定当前采样周期的所述DNS查询请求报文对应的报文长度向量值:
获得当前采样周期的所述DNS查询请求报文的报文长度值和预设平均请求报文长度阈值的差值;
所述差值和最大报文长度值相除得到的商值作为当前采样周期的所述DNS查询请求报文的报文长度向量值,其中最大报文长度值是在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值;
采用下述方式,确定当前采样周期的所述DNS查询请求报文对应的访问次数向量值:
获得当前采样周期的访问次数值和预设平均访问次数阈值的差值;
所述差值和最大访问次数值相除得到的商值作为当前采样周期的访问次数向量值,其中所述最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数。
6.如权利要求5所述的方法,其特征在于,按照下述方式确定当前采样周期内的访问次数:
获得安全监控数据库中存储的上一采样周期内的所述DNS查询请求报文的访问次数和第五预设数值的和值;
所述和值作为当前采样周期内的所述DNS查询请求报文的访问次数;
按照下述方式确定当前采样周期内的所述DNS查询请求报文的报文长度值:
获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询请求报文的报文长度值的和值;
所述和值和第六预设数值的商值作为当前采样周期内的所述DNS查询请求报文的报文长度值。
7.如权利要求1所述的方法,其特征在于,所述报文类型包含DNS查询应答报文;
根据确定出的包含报文长度值、访问次数以及生存周期中的至少两个参数,包括:
在确定出获得的报文是DNS查询应答报文时,确定发送所述DNS查询应答报文的DNS的标识;
在预先维护的安全监控数据库中,当确定出未存储所述DNS的标识时,判断是否存储有所述DNS查询应答报文所响应的发送DNS查询请求报文的源地址和所述DNS查询请求报文请求查询的域名;
如果判断结果为是,确定安全监控数据库中存储的所述DNS查询应答报文对应的监控评估值,在所述监控评估值小于第二预设阈值时,更新所述安全监控数据库中所述DNS查询应答报文对应的监控评估值、访问次数、报文生存周期值;
如果判断结果为否,在所述安全监控数据库中添加发送所述DNS查询应答报文的DNS的标识,以及将所述DNS查询应答报文对应的监控评估值设定为第一默认数值、将所述DNS查询应答报文对应的访问次数设定为第二默认数值、将所述DNS查询应答报文对应的报文生存周期设定为第三默认数值。
8.如权利要求7所述的方法,其特征在于,更新所述安全监控数据库中所述DNS查询应答报文对应的监控评估值,包括:
确定更新前安全监控数据库中所述DNS的标识对应的监控评估值和当前采样周期确定出的监控评估值的和值;
将得到的和值和第四默认数值相除得到的商值作为更新后的所述安全监控数据库中所述DNS查询应答报文对应的监控评估值。
9.如权利要求8所述的方法,其特征在于,采用下述方式获得所述当前采样周期的所述DNS查询应答报文对应的监控评估值:
获得包含当前采样周期的所述DNS查询应答报文对应的报文长度向量值、所述DNS查询应答报文对应的生存周期向量值和所述DNS查询应答报文对应的访问次数向量值;
确定由所述报文长度向量值、生存周期向量值和访问次数向量值组成的第二矩阵;
将所述第二矩阵和第二预设矩阵相乘得到的结果作为当前采样周期确定出的所述DNS查询应答报文对应的监控评估值。
10.如权利要求9所述的方法,其特征在于,采用下述方式,确定当前采样周期的所述DNS查询应答报文对应的报文长度向量值:
获得当前采样周期的所述DNS查询应答报文的报文长度值和预设平均应答报文长度阈值的差值;
所述差值和最大报文长度值相除得到的商值作为当前采样周期的所述DNS查询应答报文的报文长度向量值,其中最大报文长度值是当在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值;
采用下述方式,确定当前采样周期的所述DNS查询应答报文对应的访问次数向量值:
获得当前采样周期的所述DNS查询应答报文的访问次数值和预设平均访问次数阈值的差值;
所述差值和最大访问次数值相除得到的商值作为当前采样周期的所述DNS查询应答报文的访问次数向量值,其中所述最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数;
采用下述方式,确定当前采样周期的所述DNS查询应答报文对应的生存周期向量值:
获得当前采样周期的生存周期数值和预设平均生存周期阈值的差值;
所述差值和最大生存周期数值相除得到的商值作为当前采样周期的所述DNS查询应答报文的生存周期向量值,其中最大生存周期是在当前采样周期内,采样得到的全部DNS查询应答报文中,生存周期最大的DNS查询应答报文对应的生存周期。
11.如权利要求10所述的方法,其特征在于,按照下述方式确定当前采样周期内的所述DNS查询应答报文的访问次数:
获得安全监控数据库中存储的上一采样周期内的访问次数和第五默认数值的和值;
所述和值作为当前采样周期内的所述DNS查询应答报文的访问次数;
按照下述方式确定当前采样周期内的访问次数报文长度值:
获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询应答报文的报文长度值的和值;
所述和值和第六默认数值的商值作为当前采样周期内的所述DNS查询应答报文的报文长度值;
按照下述方式确定当前采样周期内的所述DNS查询应答报文的生存周期值:
获得安全监控数据库中存储的上一采样周期内的所述DNS查询应答报文的生存周期值和当前采样周期内获得的DNS查询应答报文的生存周期值的和值;
所述和值和第七默认数值的商值作为当前采样周期内的所述DNS查询应答报文的生存周期值。
12.如权利要求1所述的方法,其特征在于,根据确定出的监控评估值,对所述DNS和任一用户终端之间传输的报文进行监控,包括:
若确定出的监控评估值大于或等于预设门限值,禁止该报文在所述DNS和任一用户终端之间传输;以及
若确定出的监控评估值小于预设门限值,允许该报文在述DNS和任一用户终端之间传输。
13.如权利要求12所述的方法,其特征在于,在禁止该报文在述DNS和任一用户终端之间传输之后,还包括:
在预先维护的安全监控数据库中,获得禁止传输的报文的属性信息,所述属性信息包含发送所述禁止传输的报文的源地址、源端口号以及DNS的标识中的至少两种;
根据接收到的属性信息,确定出符合攻击DNS的数据流的源地址、源端口号以及DNS的标识中的至少两个监控参数;
基于确定出的至少两个监控参数,在检测到DNS系统中存在攻击DNS的数据流时,阻断所述攻击DNS的数据流。
14.一种域名解析服务DNS系统中监控报文的装置,其特征在于,包括:
数据采集模块,用于以第一预设时长作为采样周期,获得域名解析服务器DNS和任一用户终端之间传输的报文;
数据缓存和分析模块,用于针对在当前采样周期内,任一获得的报文,确定所述报文的报文类型;根据确定出的报文类型,确定所述报文的报文长度值、访问次数以及生存周期中的至少两个参数;根据确定出的包含报文长度值、访问次数以及生存周期中的至少两个参数,确定所述报文在当前采样周期内对应的监控评估值,其中所述监控评估值是用于确定所述报文是否异常的数值;
监控模块,用于根据确定出的监控评估值,对所述DNS和任一用户终端之间传输的报文进行监控。
15.如权利要求14所述的装置,其特征在于,所述报文类型包含DNS查询请求报文;
所述数据缓存和分析模块,具体用于在确定出获得的报文是DNS查询请求报文时,确定发送所述DNS查询请求报文的用户终端的源地址;在预先维护的安全监控数据库中,判断是否存储有所述源地址;如果判断结果为否,在所述安全监控数据库中添加所述源地址,以及将所述DNS查询请求报文对应的监控评估值设定为第一预设数值、将所述源地址对应的访问DNS的访问次数设定为第二预设数值、将所述源地址对应的访问DNS的DNS查询请求报文的报文长度值设定为第二预设数值;如果判断结果为是,更新所述安全监控数据库中所述源地址对应的监控评估值、访问次数、报文长度值。
16.如权利要求15所述的装置,其特征在于,所述数据缓存和分析模块,具体用于确定更新前安全监控数据库中所述源地址对应的监控评估值和当前采样周期确定出的监控评估值的和值;将得到的和值和第三预设数值相除得到的商值作为更新后的所述安全监控数据库中所述源地址对应的监控评估值。
17.如权利要求16所述的装置,其特征在于,所述数据缓存和分析模块,具体用于采用下述方式获得所述当前采样周期确定出的监控评估值:获得包含当前采样周期的所述DNS查询请求报文对应的报文长度向量值,以及所述DNS查询请求报文对应的访问次数向量值;确定由所述报文长度向量值和所述访问次数向量值组成的第一矩阵;将所述第一矩阵和第一预设矩阵相乘得到的结果作为当前采样周期确定出的监控评估值。
18.如权利要求17所述的装置,其特征在于,所述数据缓存和分析模块,具体用于采用下述方式,确定当前采样周期的所述DNS查询请求报文对应的报文长度向量值:获得当前采样周期的所述DNS查询请求报文的报文长度值和预设平均请求报文长度阈值的差值;所述差值和最大报文长度值相除得到的商值作为当前采样周期的所述DNS查询请求报文的报文长度向量值,其中最大报文长度值是在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值;采用下述方式,确定当前采样周期的所述DNS查询请求报文对应的访问次数向量值:获得当前采样周期的访问次数值和预设平均访问次数阈值的差值;所述差值和最大访问次数值相除得到的商值作为当前采样周期的访问次数向量值,其中所述最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数。
19.如权利要求15~18任一所述的装置,其特征在于,所述数据缓存和分析模块,具体用于按照下述方式确定当前采样周期内的访问次数:获得安全监控数据库中存储的上一采样周期内的所述DNS查询请求报文的访问次数和第四预设数值的和值;所述和值作为当前采样周期内的所述DNS查询请求报文的访问次数;
所述数据缓存和分析模块,具体用于按照下述方式确定当前采样周期内的所述DNS查询请求报文的报文长度值:获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询请求报文的报文长度值的和值;所述和值和第五预设数值的商值作为当前采样周期内的所述DNS查询请求报文的报文长度值。
20.如权利要求14所述的装置,其特征在于,所述报文类型包含DNS查询应答报文;
所述数据缓存和分析模块,具体用于在确定出获得的报文是DNS查询应答报文时,确定发送所述DNS查询应答报文的DNS的标识;在预先维护的安全监控数据库中,当确定出未存储所述DNS的标识时,判断是否存储有所述DNS查询应答报文所响应的发送DNS查询请求报文的源地址和所述DNS查询请求报文请求查询的域名;如果判断结果为是,确定安全监控数据库中存储的所述DNS查询应答报文对应的监控评估值,在所述监控评估值小于第二预设阈值时,更新所述安全监控数据库中所述DNS查询应答报文对应的监控评估值、访问次数、报文生存周期值;如果判断结果为否,在所述安全监控数据库中添加发送所述DNS查询应答报文的DNS的标识,以及将所述DNS查询应答报文对应的监控评估值设定为第一默认数值、将所述DNS查询应答报文对应的访问次数设定为第二默认数值、将所述DNS查询应答报文对应的报文生存周期设定为第三默认数值。
21.如权利要求20所述的装置,其特征在于,所述数据缓存和分析模块,具体用于确定更新前安全监控数据库中所述DNS的标识对应的监控评估值和当前采样周期确定出的监控评估值的和值;将得到的和值和第四默认数值相除得到的商值作为更新后的所述安全监控数据库中所述DNS查询应答报文对应的监控评估值。
22.如权利要求21所述的装置,其特征在于,所述数据缓存和分析模块,具体用于采用下述方式获得所述当前采样周期的所述DNS查询应答报文对应的监控评估值:获得包含当前采样周期的所述DNS查询应答报文对应的报文长度向量值、所述DNS查询应答报文对应的生存周期向量值和所述DNS查询应答报文对应的访问次数向量值;确定由所述报文长度向量值、生存周期向量值和访问次数向量值组成的的第二矩阵;将所述第二矩阵和第二预设矩阵相乘得到的结果作为当前采样周期确定出的所述DNS查询应答报文对应的监控评估值。
23.如权利要求22所述的装置,其特征在于,所述数据缓存和分析模块,具体用于采用下述方式,确定当前采样周期的所述DNS查询应答报文对应的报文长度向量值:获得当前采样周期的所述DNS查询应答报文的报文长度值和预设平均应答报文长度阈值的差值;所述差值和最大报文长度值相除得到的商值作为当前采样周期的所述DNS查询应答报文的报文长度向量值,其中最大报文长度值是在当前采样周期内采样得到的全部报文中,报文长度最大的报文对应的报文长度值;
所述数据缓存和分析模块,具体用于采用下述方式,确定当前采样周期的所述DNS查询应答报文对应的访问次数向量值:获得当前采样周期的所述DNS查询应答报文的访问次数值和预设平均访问次数阈值的差值;所述差值和最大访问次数值相除得到的商值作为当前采样周期的所述DNS查询应答报文的访问次数向量值,其中所述最大访问次数值是DNS在第二预设时长内提供正常DNS解析服务所能支持的最大访问次数;
所述数据缓存和分析模块,具体用于采用下述方式,确定当前采样周期的所述DNS查询应答报文对应的生存周期向量值:获得当前采样周期的生存周期数值和预设平均生存周期阈值的差值;所述差值和最大生存周期数值相除得到的商值作为当前采样周期的所述DNS查询应答报文的生存周期向量值,其中最大生存周期是在当前采样周期内,采样得到的全部DNS查询应答报文中,生存周期最大的DNS查询应答报文对应的生存周期。
24.如权利要求23所述的装置,其特征在于,所述数据缓存和分析模块,具体用于按照下述方式确定当前采样周期内的所述DNS查询应答报文的访问次数:获得安全监控数据库中存储的上一采样周期内的访问次数和第五默认数值的和值;所述和值作为当前采样周期内的所述DNS查询应答报文的访问次数;
所述数据缓存和分析模块,具体用于按照下述方式确定当前采样周期内的访问次数报文长度值:获得安全监控数据库中存储的上一采样周期内的报文长度值和当前采样周期内获得的DNS查询应答报文的报文长度值的和值;所述和值和第六默认数值的商值作为当前采样周期内的所述DNS查询应答报文的报文长度值;
所述数据缓存和分析模块,具体用于按照下述方式确定当前采样周期内的所述DNS查询应答报文的生存周期值:获得安全监控数据库中存储的上一采样周期内的所述DNS查询应答报文的生存周期值和当前采样周期内获得的DNS查询应答报文的生存周期值的和值;所述和值和第七默认数值的商值作为当前采样周期内的所述DNS查询应答报文的生存周期值。
25.如权利要求14所述的装置,其特征在于,所述监控模块,具体包括:
数据转发子模块,用于若确定出的监控评估值大于或等于预设门限值,禁止该报文在述DNS和任一用户终端之间传输;以及若确定出的监控评估值小于预设门限值,允许该报文在述DNS和任一用户终端之间传输。
26.如权利要求25所述的装置,其特征在于,所述监控模块,具体包括:
规则生成子模块,用于在预先维护的安全监控数据库中,获得禁止传输的报文的属性信息,所述属性信息包含发送所述禁止传输的报文的源地址、源端口号以及DNS的标识中的至少两种;根据接收到的属性信息,确定出符合攻击DNS的数据流的源地址、源端口号以及DNS的标识中的至少两个监控参数;
监控子模块,用于基于确定出的至少两个监控参数,在检测到DNS系统中存在攻击DNS的数据流时,阻断所述攻击DNS的数据流。
27.一种域名解析服务DNS系统中监控报文的系统,其特征在于,包括域名解析服务器DNS和DNS监控装置,其中:
所述DNS,用于和任一用户终端之间传输报文;
所述DNS监控装置,用于以第一预设时长作为采样周期,获得域名解析服务器DNS和任一用户终端之间传输的报文;针对任一获得的报文,确定所述报文的报文类型;根据确定出的报文类型,确定在当前采样周期内,所述报文的报文长度值、访问次数以及生存周期中的至少两个参数;根据确定出的包含报文长度值、访问次数以及生存周期中的至少两个参数,确定所述报文在当前采样周期内对应的监控评估值,其中所述监控评估值是用于确定所述报文是否异常的数值;根据确定出的监控评估值,对所述DNS和任一用户终端之间传输的报文进行监控。
28.如权利要求27所述的系统,其特征在于,所述报文类型包含DNS查询请求报文;
所述DNS监控装置,具体用于在确定出获得的报文是DNS查询请求报文时,确定发送所述DNS查询请求报文的用户终端的源地址;在预先维护的安全监控数据库中,判断是否存储有所述源地址;如果判断结果为否,在所述安全监控数据库中添加所述源地址,以及将所述DNS查询请求报文对应的监控评估值设定为第一预设数值、将所述源地址对应的访问DNS的访问次数设定为第二预设数值、将所述源地址对应的访问DNS的DNS查询请求报文的报文长度值设定为第二预设数值;如果判断结果为是,更新所述安全监控数据库中所述源地址对应的监控评估值、访问次数、报文长度值。
29.如权利要求27所述的系统,其特征在于,所述报文类型包含DNS查询应答报文;
所述DNS监控装置,具体用于在确定出获得的报文是DNS查询应答报文时,确定发送所述DNS查询应答报文的DNS的标识;在预先维护的安全监控数据库中,当确定出未存储所述DNS的标识时,判断是否存储有所述DNS查询应答报文所响应的发送DNS查询请求报文的源地址和所述DNS查询请求报文请求查询的域名;如果判断结果为是,确定安全监控数据库中存储的所述DNS查询应答报文对应的监控评估值,在所述监控评估值小于第二预设阈值时,更新所述安全监控数据库中所述DNS查询应答报文对应的监控评估值、访问次数、报文生存周期值;如果判断结果为否,在所述安全监控数据库中添加发送所述DNS查询应答报文的DNS的标识,以及将所述DNS查询应答报文对应的监控评估值设定为第一默认数值、将所述DNS查询应答报文对应的访问次数设定为第二默认数值、将所述DNS查询应答报文对应的报文生存周期设定为第三默认数值。
30.如权利要求27所述的系统,其特征在于,所述DNS监控装置,具体用于若确定出的监控评估值大于或等于预设门限值,禁止该报文在述DNS和任一用户终端之间传输;以及若确定出的监控评估值小于预设门限值,允许该报文在述DNS和任一用户终端之间传输。
31.如权利要求30所述的系统,其特征在于,所述系统还包括入侵检测装置和防火墙;
所述DNS监控装置,具体用于在预先维护的安全监控数据库中,获得禁止传输的报文的属性信息,所述属性信息包含发送所述禁止传输的报文的源地址、源端口号以及DNS的标识;并将获得的属性信息发送给入侵检测装置;
所述入侵检测装置,用于根据接收到的属性信息生成用于检测攻击DNS的数据流的监控评估模型;
所述防火墙,用于通过监控评估模型在检测到存在攻击DNS的数据流时,阻断所述攻击DNS的数据流。
CN201310235051.8A 2013-06-14 2013-06-14 域名解析服务dns系统中监控报文的方法、装置及系统 Active CN104243408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310235051.8A CN104243408B (zh) 2013-06-14 2013-06-14 域名解析服务dns系统中监控报文的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310235051.8A CN104243408B (zh) 2013-06-14 2013-06-14 域名解析服务dns系统中监控报文的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN104243408A true CN104243408A (zh) 2014-12-24
CN104243408B CN104243408B (zh) 2017-11-21

Family

ID=52230773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310235051.8A Active CN104243408B (zh) 2013-06-14 2013-06-14 域名解析服务dns系统中监控报文的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN104243408B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618351A (zh) * 2015-01-15 2015-05-13 中国科学院信息工程研究所 一种识别dns欺骗攻击包及检测dns欺骗攻击的方法
CN104883282A (zh) * 2015-06-19 2015-09-02 中国互联网络信息中心 终端的dns服务器的监控方法及系统
CN106101059A (zh) * 2016-05-23 2016-11-09 微梦创科网络科技(中国)有限公司 一种网页请求处理方法及装置
CN106777042A (zh) * 2016-12-09 2017-05-31 广州华多网络科技有限公司 一种条目提取方法和装置
CN108076003A (zh) * 2016-11-07 2018-05-25 阿里巴巴集团控股有限公司 会话劫持的检测方法及装置
CN108416211A (zh) * 2017-01-06 2018-08-17 哈尔滨安天科技股份有限公司 一种基于向量标签的场景化检测方法及系统
CN108880947A (zh) * 2018-08-09 2018-11-23 锐捷网络股份有限公司 一种多种业务请求并发性的测试方法及装置
CN109076011A (zh) * 2016-04-19 2018-12-21 三菱电机株式会社 中继装置
CN109413015A (zh) * 2018-04-28 2019-03-01 武汉思普崚技术有限公司 一种dns劫持的防御方法和装置
CN109802936A (zh) * 2018-11-22 2019-05-24 北京奇艺世纪科技有限公司 一种网络数据访问方法、装置及电子设备
CN110581842A (zh) * 2019-08-19 2019-12-17 网宿科技股份有限公司 Dns请求的处理方法及服务器
CN111131429A (zh) * 2019-12-19 2020-05-08 北京安华金和科技有限公司 一种高效精准的数据库服务发现方法
CN111866003A (zh) * 2020-07-27 2020-10-30 中国联合网络通信集团有限公司 一种终端的风险评估方法和装置
CN117014224A (zh) * 2023-09-12 2023-11-07 联通(广东)产业互联网有限公司 基于高斯过程回归的网络攻击防御方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150586A (zh) * 2007-11-20 2008-03-26 杭州华三通信技术有限公司 Cc攻击防范方法及装置
CN101197810A (zh) * 2006-12-08 2008-06-11 北京大学 一种实时检测蠕虫的方法
CN101572609A (zh) * 2008-04-29 2009-11-04 成都市华为赛门铁克科技有限公司 检测拒绝服务攻击的方法及其装置
CN101674594A (zh) * 2009-10-21 2010-03-17 中兴通讯股份有限公司 基于dns的移动数据业务监控系统和方法
CN101741847A (zh) * 2009-12-22 2010-06-16 北京锐安科技有限公司 一种ddos攻击检测方法
CN102882881A (zh) * 2012-10-10 2013-01-16 常州大学 针对dns服务的拒绝服务攻击的数据过滤方法
US20130031626A1 (en) * 2011-07-29 2013-01-31 Electronics And Telecommunications Research Institute Methods of detecting dns flooding attack according to characteristics of type of attack traffic
CN103152357A (zh) * 2013-03-22 2013-06-12 北京网御星云信息技术有限公司 一种针对dns服务的防御方法、装置和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197810A (zh) * 2006-12-08 2008-06-11 北京大学 一种实时检测蠕虫的方法
CN101150586A (zh) * 2007-11-20 2008-03-26 杭州华三通信技术有限公司 Cc攻击防范方法及装置
CN101572609A (zh) * 2008-04-29 2009-11-04 成都市华为赛门铁克科技有限公司 检测拒绝服务攻击的方法及其装置
CN101674594A (zh) * 2009-10-21 2010-03-17 中兴通讯股份有限公司 基于dns的移动数据业务监控系统和方法
CN101741847A (zh) * 2009-12-22 2010-06-16 北京锐安科技有限公司 一种ddos攻击检测方法
US20130031626A1 (en) * 2011-07-29 2013-01-31 Electronics And Telecommunications Research Institute Methods of detecting dns flooding attack according to characteristics of type of attack traffic
CN102882881A (zh) * 2012-10-10 2013-01-16 常州大学 针对dns服务的拒绝服务攻击的数据过滤方法
CN103152357A (zh) * 2013-03-22 2013-06-12 北京网御星云信息技术有限公司 一种针对dns服务的防御方法、装置和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张东良: "DNS安全检测技术研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618351A (zh) * 2015-01-15 2015-05-13 中国科学院信息工程研究所 一种识别dns欺骗攻击包及检测dns欺骗攻击的方法
CN104883282A (zh) * 2015-06-19 2015-09-02 中国互联网络信息中心 终端的dns服务器的监控方法及系统
CN109076011A (zh) * 2016-04-19 2018-12-21 三菱电机株式会社 中继装置
CN106101059A (zh) * 2016-05-23 2016-11-09 微梦创科网络科技(中国)有限公司 一种网页请求处理方法及装置
CN106101059B (zh) * 2016-05-23 2019-05-17 微梦创科网络科技(中国)有限公司 一种网页请求处理方法及装置
CN108076003A (zh) * 2016-11-07 2018-05-25 阿里巴巴集团控股有限公司 会话劫持的检测方法及装置
CN106777042B (zh) * 2016-12-09 2019-10-18 广州华多网络科技有限公司 一种条目提取方法和装置
CN106777042A (zh) * 2016-12-09 2017-05-31 广州华多网络科技有限公司 一种条目提取方法和装置
CN108416211A (zh) * 2017-01-06 2018-08-17 哈尔滨安天科技股份有限公司 一种基于向量标签的场景化检测方法及系统
CN108416211B (zh) * 2017-01-06 2021-08-31 安天科技集团股份有限公司 一种基于向量标签的场景化检测方法及系统
CN109413015B (zh) * 2018-04-28 2021-06-08 武汉思普崚技术有限公司 一种dns劫持的防御方法和装置
CN109413015A (zh) * 2018-04-28 2019-03-01 武汉思普崚技术有限公司 一种dns劫持的防御方法和装置
CN108880947A (zh) * 2018-08-09 2018-11-23 锐捷网络股份有限公司 一种多种业务请求并发性的测试方法及装置
CN109802936A (zh) * 2018-11-22 2019-05-24 北京奇艺世纪科技有限公司 一种网络数据访问方法、装置及电子设备
CN109802936B (zh) * 2018-11-22 2022-04-22 北京奇艺世纪科技有限公司 一种网络数据访问方法、装置及电子设备
CN110581842A (zh) * 2019-08-19 2019-12-17 网宿科技股份有限公司 Dns请求的处理方法及服务器
CN111131429A (zh) * 2019-12-19 2020-05-08 北京安华金和科技有限公司 一种高效精准的数据库服务发现方法
CN111131429B (zh) * 2019-12-19 2022-03-08 北京安华金和科技有限公司 一种高效精准的数据库服务发现方法
CN111866003A (zh) * 2020-07-27 2020-10-30 中国联合网络通信集团有限公司 一种终端的风险评估方法和装置
CN111866003B (zh) * 2020-07-27 2022-04-08 中国联合网络通信集团有限公司 一种终端的风险评估方法和装置
CN117014224A (zh) * 2023-09-12 2023-11-07 联通(广东)产业互联网有限公司 基于高斯过程回归的网络攻击防御方法及系统
CN117014224B (zh) * 2023-09-12 2024-01-30 联通(广东)产业互联网有限公司 基于高斯过程回归的网络攻击防御方法及系统

Also Published As

Publication number Publication date
CN104243408B (zh) 2017-11-21

Similar Documents

Publication Publication Date Title
CN104243408A (zh) 域名解析服务dns系统中监控报文的方法、装置及系统
KR100942456B1 (ko) 클라우드 컴퓨팅을 이용한 DDoS 공격 탐지 및 차단 방법 및 서버
AU2016234999B2 (en) Path scanning for the detection of anomalous subgraphs and use of dns requests and host agents for anomaly/change detection and network situational awareness
CN108063765B (zh) 适于解决网络安全的sdn系统
US20050278779A1 (en) System and method for identifying the source of a denial-of-service attack
Zou et al. The monitoring and early detection of internet worms
KR101391781B1 (ko) 웹 트랜잭션 밀집도 기반 에이치티티피 봇넷 탐지 장치 및 방법
CN101924757B (zh) 追溯僵尸网络的方法和系统
US20190034631A1 (en) System and method for malware detection
US9258289B2 (en) Authentication of IP source addresses
WO2014052756A2 (en) Apparatus, system and method for identifying and mitigating malicious network threats
Sung et al. Large-scale IP traceback in high-speed internet: practical techniques and information-theoretic foundation
JPWO2008084729A1 (ja) アプリケーション連鎖性ウイルス及びdns攻撃発信元検知装置、その方法及びそのプログラム
CN105553974A (zh) 一种http慢速攻击的防范方法
CN107733867A (zh) 一种发现僵尸网络及防护的方法和系统
CN112383573B (zh) 一种基于多个攻击阶段的安全入侵回放设备
CN116827690A (zh) 基于分布式的抗DDoS攻击及云WAF防御方法
Han et al. A collaborative botnets suppression system based on overlay network
CN112202821B (zh) 一种cc攻击的识别防御系统及方法
CN114745142B (zh) 一种异常流量处理方法、装置、计算机设备及存储介质
Zhan et al. Adaptive detection method for Packet-In message injection attack in SDN
JP2004266483A (ja) 不正アクセス防止方法、装置、プログラム
JP2003258910A (ja) 不正アクセス経路解析システム及び不正アクセス経路解析方法
CN113518067A (zh) 一种基于原始报文的安全分析方法
Repetto et al. Leveraging the 5G architecture to mitigate amplification attacks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant