CN104506538B - 机器学习型域名系统安全防御方法和装置 - Google Patents
机器学习型域名系统安全防御方法和装置 Download PDFInfo
- Publication number
- CN104506538B CN104506538B CN201410829121.7A CN201410829121A CN104506538B CN 104506538 B CN104506538 B CN 104506538B CN 201410829121 A CN201410829121 A CN 201410829121A CN 104506538 B CN104506538 B CN 104506538B
- Authority
- CN
- China
- Prior art keywords
- domain name
- name mapping
- request
- feature
- source
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000010801 machine learning Methods 0.000 title claims abstract description 66
- 238000013507 mapping Methods 0.000 claims abstract description 312
- 230000013016 learning Effects 0.000 claims abstract description 136
- 230000004044 response Effects 0.000 claims abstract description 45
- 230000008569 process Effects 0.000 claims description 29
- 238000004458 analytical method Methods 0.000 claims description 23
- 238000009434 installation Methods 0.000 claims description 16
- 230000000977 initiatory effect Effects 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000001914 filtration Methods 0.000 claims description 9
- 235000013399 edible fruits Nutrition 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims 1
- 238000011084 recovery Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 35
- 238000004422 calculation algorithm Methods 0.000 description 29
- 230000000694 effects Effects 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 20
- 230000006399 behavior Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 19
- 238000013475 authorization Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 230000006854 communication Effects 0.000 description 10
- 230000032258 transport Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000003321 amplification Effects 0.000 description 5
- 238000003199 nucleic acid amplification method Methods 0.000 description 5
- 238000012935 Averaging Methods 0.000 description 4
- 230000003542 behavioural effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000012896 Statistical algorithm Methods 0.000 description 1
- 230000035045 associative learning Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种机器学习型域名系统安全防御方法,包括如下步骤:将所接收的域名解析请求所含的数据与依据给定规则对历史域名解析记录运算而得的学习结果数据进行特征对比;仅针对特征相符的域名解析请求进行解析,生成域名解析记录;以该域名解析记录应答相应的域名解析请求。此外,本发明还依据模块化思维公开了与该方法相应的一种装置。本发明的实施,使DNS服务器能够更智能地理解DNS攻击,优化运行效率,起到灾备系统的作用。
Description
技术领域
本发明涉及互联网安全技术,涉及一种机器学习型域名系统安全防御方法和装置。
背景技术
域名系统(Domain Name System,DNS)作为一个基础性的互联网协议,相对于目前防范措施比较完善的各种WEB服务,基于DNS的防范依然很弱,易被黑客利用攻击。黑客可以以多种方式实施DNS攻击,其中,DNS放大攻击是一种新型的拒绝服务攻击。
DNS自身的特性决定了它可以被利用作为“攻击放大器”进行DDOS攻击。一是DNS协议自身的弱点导致查询请求报文和查询应答报文均可被伪造,网络攻击者可以通过虚假的源地址伪造成被攻击主机向DNS服务器发送DNS查询请求,同时还可以隐藏攻击者的身份;二是DNS服务器对DNS查询请求时“有求必应”,并且无法判断一个DNS查询请求是否为恶意攻击;三是DNS服务器解析域名时,应答报文比查询报文要大,可以实现放大攻击的效果。
2005年之前,攻击者能够向DNS服务器发出60个字节的查询信息,收到512个字节的回应信息,使通讯量放大8.5倍。随着对DNS协议的深入研究,攻击者发现利用具有递归查询功能的DNS服务器额可以把DNS回应数据放大到66倍。如果数以万计的计算机,伪装成被攻击主机同时向DNS服务器连续发送大量的DNS请求数据包,由DNS服务器返回的应答数据量成倍放大,甚至能够超过每秒钟100GB,这对被攻击主机来说是致命的攻击行为。
DNS放大攻击的一个明显特征是伪造成被攻击者的IP发送大量的请求数据包,迫使其回应,达到放大效果。如果在DNS服务器上限制对该IP每秒钟应答包的回应次数是一种有效的降低放大攻击的方法。
然而,一些攻击并非针对DNS服务发起的,例如,针对某一大型网站发起的大量的HTTP访问,这种情况下,不仅可能导致网站服务器瘫痪,同样也可能增大DNS服务器的负荷。特别是在DNS服务器饱和运转的状态下,更需要防御这种或有意或无意的非直接“攻击”。
另一方面,在一个HTTP访问的请求包产生过程中,DNS服务器体现为实现该访问的先导机构,只有获取对域名的解释后,才能建立后续的HTTP连接,下载网页,实现访问。因此,DNS服务器理论上应当能够起到网站哨兵的作用,在某些情况下为网站安全做出力所能及的贡献。但就目前的现有技术而言,同业者均缺乏对与此相关的技术的研究。
目前,对如前所述的各种目标所实施的各种攻击手段,均能被本领域技术人员以有针对性的技术进行相应的克服,但是,仍然难以对这些安全技术进行有机的整合,表现到技术应用层面,治标不治本,对于改进的攻击手段,因识别、编程等环节需要耗费较大的人力物力,所以反应效率较低。
发明内容
有鉴于上述至少一个方面的问题,本发明的一个目的便立足于提供一种机器学习型域名系统安全防御方法。
依据模块化思维,本发明的另一目的在于提供一种机器学习型域名系统安全防御装置。
为实现本发明的目的,本发明采取如下技术方案:
本发明提供的一种机器学习型域名系统安全防御方法,包括如下步骤:
将所接收的域名解析请求所含的数据与依据给定规则对历史域名解析记录运算而得的学习结果数据进行特征对比;
仅针对特征相符的域名解析请求进行解析,生成域名解析记录;
以该域名解析记录应答相应的域名解析请求。
由于给定规则可以灵活变化,据此可以得到变动的学习结果数据,因而,可以通过改变给定规则优化学习结果数据以及特征对比结果,使机器学习技术在本发明中得到有效运用,提高安全防御效果。
一种实施例中,本方法以至少一个机器参数超过预设阈值而触发,所述机器参数包括本机所接收的域名解析请求的请求量、本机CPU和/或内存占用比例。因此而确保不影响本方法DNS服务器在进行常规DNS解析时的运行载荷。
较佳的,所述历史域名解析记录既包括经本方法对比后进行解析生成的域名解析记录,也包括未经本方法对比而直接解析生成的域名解析记录。
一种实施例中,所述给定规则包含用于表征对历史域名解析记录进行统计运算的各划分时段或据以确定该些划分时段的时间密度。给定规则的制定是较为灵活的,例如,一些变化实施例中,所述给定规则还可以包括用于进行运算的算法表达式或者指示在运算阶段对已知算法进行选择的选项等。
根据本发明的一种实施例所揭示,所述学习结果数据包括存在映射关系的如下数据类型:从历史域名解析记录中提取的域名、依据给定规则确定的划分时段、基于该相应划分时段下相应域名被请求解析的次数。
相应的,所述依据给定规则对历史域名解析记录运算的过程,包括定期或不定期执行的如下步骤:
读取用于记载历史域名解析记录的第一数据集;
依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果;
将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
进一步,进行特征对比的步骤包括如下子步骤:
统计单位时段内接收的域名解析请求,以域名解析请求中各域名的请求量为第一特征;
以所述学习结果数据中给定的划分时段内针对相应域名发起的域名解析请求的次数为第二特征;
以域名相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定基于该相同域名后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
较佳的,所述单位时间段的时间长度小于所述划分时段的时间长度。
可以看出,应用该实施例可以快速识别特定网站(域名)的访问异常,并且迅速做出丢包响应,有效地对特定网站服务器进行某种程度上的保护。
根据本发明的另一实施例所揭示,所述学习结果数据包括存在映射关系的如下数据类型:从历史域名解析记录中提取并划分的源IP地址/源IP地址段、依据给定规则确定的划分时段、基于该相应划分时段下相应源IP地址/源IP地址段发起域名解析请求的次数。
相应的,所述依据给定规则对历史域名解析记录运算的过程,包括定期或不定期执行的如下步骤:
读取用于记载历史域名解析记录的第一数据集;
依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果;
将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
进一步,进行特征对比的步骤包括如下子步骤:
统计单位时段内接收的域名解析请求,以域名解析请求中各源IP地址/源IP地址段发起的请求量为第一特征;
以所述学习结果数据中给定的划分时段内相应源IP地址/源IP地址段发起的域名解析请求的次数为第二特征;
以源IP地址/源IP地址段相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定该些源IP地址/源IP地址段后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
同理,所述单位时间段的时间长度小于所述划分时段的时间长度。
根据本实施例,可以有效识别特定源IP地址/源IP地址段的所发起的访问请求量异常,有效保护互联网安全。
本发明的方法中,对于特征对比不相符的域名解析请求,直接过滤忽略其请求包,由此可减轻应用了本方法的DNS解析服务器的负荷而提高其响应效率。
依照计算机程序的模块化思维,本发明比照前述的方法,而提供一种机器学习型域名系统安全防御装置,其包括:
对比单元,用于将所接收的域名解析请求所含的数据与依据给定规则对历史域名解析记录运算而得的学习结果数据进行特征对比;
解析单元,被配置为仅针对特征相符的域名解析请求进行解析,生成域名解析记录;
应答单元,用于以该域名解析记录应答相应的域名解析请求。
进一步,本装置包括检测单元,被配置为以至少一个机器参数超过预设阈值而运行本装置的其他单元,所述机器参数包括本机所接收的域名解析请求的请求量、本机CPU和/或内存占用比例。
较佳的,所述历史域名解析记录既包括经对比单元对比后进行解析生成的域名解析记录,也包括未经对比单元对比而直接解析生成的域名解析记录。
一种实施例中,所述给定规则包含用于表征对历史域名解析记录进行统计运算的各划分时段或据以确定该些划分时段的时间密度。给定规则的制定是较为灵活的,例如,一些变化实施例中,所述给定规则还可以包括用于进行运算的算法表达式或者指示在运算阶段对已知算法进行选择的选项等。
根据本发明所揭示的一种具体实施例,所述学习结果数据包括存在映射关系的如下数据类型:从历史域名解析记录中提取的域名、依据给定规则确定的划分时段、基于该相应划分时段下相应域名被请求解析的次数。
本装置还包括学习单元,用于依据给定规则对历史域名解析记录执行运算以生成所述的学习结果数据,该学习单元包括:
读取模块,用于读取用于记载历史域名解析记录的第一数据集;
执行模块,被配置为依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果;
生成模块,用于将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
所述对比单元包括用于执行所述特征对比的对比单元,该对比单元包括如下子模块:
第一特征确定模块,用于统计单位时段内接收的域名解析请求,以域名解析请求中各域名的请求量为第一特征;
第二特征确定模块,被配置为以所述学习结果数据中给定的划分时段内针对相应域名发起的域名解析请求的次数为第二特征;
数学运算模块,被配置为以域名相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定基于该相同域名后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
较佳的,所述单位时间段的时间长度小于所述划分时段的时间长度。
根据本发明的另一实施例所揭示,所述学习结果数据包括存在映射关系的如下数据类型:从历史域名解析记录中提取并划分的源IP地址/源IP地址段、依据给定规则确定的划分时段、基于该相应划分时段下相应源IP地址/源IP地址段发起域名解析请求的次数。
本装置还包括学习单元,用于依据给定规则对历史域名解析记录执行运算以生成所述的学习结果数据,该学习单元包括:
读取模块,用于读取用于记载历史域名解析记录的第一数据集;
执行模块,被配置为依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果;
生成模块,用于将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
所述对比单元包括用于执行所述特征对比的对比单元,该对比单元包括如下子模块:
第一特征确定模块,用于统计单位时段内接收的域名解析请求,以域名解析请求中各源IP地址/源IP地址段发起的请求量为第一特征;
第二特征确定模块,被配置为以所述学习结果数据中给定的划分时段内相应源IP地址/源IP地址段发起的域名解析请求的次数为第二特征;
数学运算模块,被配置为以源IP地址/源IP地址段相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定该些源IP地址/源IP地址段后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
较佳的,所述单位时间段的时间长度小于所述划分时段的时间长度。
进一步,所述应答单元,被配置为对于特征对比不相符的域名解析请求,直接过滤忽略其请求包。
相较于现有技术,本发明至少具有如下优点:
1、本发明利用机器学习原理,为DNS服务器的安全提供了具有智能化学习功能的技术框架,通过改变传统技术中依赖于给定程序而依赖于给定规则,可以通过给定规则的设定而动态导入包括参数、算法在内的用于判定DNS攻击的条件,因而,理论上可以在运行过程中基于DNS服务器产生的历史域名解析记录为海量数据基础进行运算,判断攻击是否存在,并且对攻击请求进行有效的过滤,无限扩展其安全防御功能。
2、本发明进一步结合了统计学知识,利用对历史域名解析记录的海量数据进行分类汇总,技术性地归纳出各域名在不同时间段的被访问特征,或者某些源IP地址或源IP地址段在不同时间段的访问特征,以此为学习结果数据,作为响应于新解析请求的基础。由此,本发明不仅能够依据历史域名解析记录而识别出DNS解析请求的源端异常,而且也能够识别出特定网站(域名)的受访异常,进而,适量地阻断对特定网站(域名)的异常请求,在应用了本发明的DNS服务器中起到了充当源端和目的端的防火墙的作用,进一步使互联网机制更健全。
3、本发明所依据的数据基础是历史域名解析记录,是应用了本发明的域名解析服务器在日常工作过程中响应域名解析请求而产生的,因此,这些历史域名解析记录的实质便是DNS服务器日常进行递归调应解析域名时所产生的有效数据,这一数据在某些情况下,例如本DNS服务器处于孤岛的情况下,可以被本发明的方法直接用于解析域名,从而响应于常规的域名解析请求,因此,起到了灾备的作用。
4、本发明可以通过设置自身的触发条件,例如当系统性能(CPU/内存占用)达到一定的阈值时,或者单位时间内的DNS解析请求量达到一定的阈值时,方才执行本发明的方法或装置,并且,对于经过特征对比之后确定为特征不相符的请求包,将被本发明直接丢弃,因此,本发明可以确保DNS服务器有效地利用其固有的性能充分地为正常DNS解析请求提供尽力的解析服务,机器运行相当高效。
概括而言,本发明所实现的相关方法和装置,能够进一步加强DNS服务器的安全防御作用,使DNS服务器在互联网访问的源端和目的端之间起到类似防火墙的效果,并且,使服务器的机器整体运行效率更高效,此外也具备一定的灾备作用。应用了本发明的相关方法和装置的DNS服务器设备,必然有利于促进互联网更高安全目标的实现。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明的机器学习型域名系统安全防御方法的流程示意图;
图2是本发明的机器学习型域名系统安全防御方法中实现机器学习部分的功能的第一实施例的流程示意图;
图3是本发明的机器学习型域名系统安全防御方法的步骤S11的第一实施例的流程示意图;
图4是本发明的机器学习型域名系统安全防御方法中实现机器学习部分的功能的第二实施例的流程示意图;
图5是本发明的机器学习型域名系统安全防御方法的步骤S11的第二实施例的流程示意图;
图6是本发明的机器学习型域名系统安全防御装置的原理框图;
图7是本发明的机器学习型域名系统安全防御装置各实施例的学习单元的原理框图;
图8是本发明的机器学习型域名系统安全防御装置各实施例的对比单元的原理框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本技术领域技术人员可以理解,这里所使用的服务器、云端、远端网络设备等概念,具有等同效果,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“应用软件”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。
本发明的方法及其装置,可以通过编程实现为软件,安装到计算机设备中特别是专用的具有服务器能力的计算机设备中进行运行,接入互联网开放其服务,而构造出一台本地DNS服务器,用于为客户端提供DNS域名解析服务,接收客户端请求,向其他层级的DNS服务器递归查询域名的IP地址,以便应答客户端。
图1通过步骤流程的形式揭示了本发明的一个实施例,该实施例属于对本发明的机器学习型域名系统安全防御方法的具体实现,具体而言,实现为一个可以安装于诸如Windows系列操作系统(包括但不限于Windows XP,Window 7,Windows 8的系列版本等)或者Unix系列操作系统(包括但不限于Unix、Linux、IOS、Ubuntu等)的软件,由该软件的运行,而实现相应的具体步骤。这些步骤包括:
步骤S11、将所接收的域名解析请求所含的数据与依据给定规则对历史域名解析记录运算而得的学习结果数据进行特征对比。
需要优先指出的是,本发明的方法的实施,通常发生在DNS服务器负载过重时,判定负载过重的一个方式,可以通过比较DNS服务器的至少一个机器参数是否超过预设阈值来实现。而在平常的工作状态下,DNS服务器在接收到客户端的DNS解析请求后,即调用递归系统,通过根域服务器和域名层次的各级DNS服务器来实现递归解析,最终获取包含相对应的IP地址的域名解析记录,用于应答该DNS解析请求。
所述用于判定是否触发本发明的方法的机器参数,可以根据人为意愿而加以机器表达而实现。例如,可以将该机器参数视为本机在单位时间内所接收的域名解析请求的请求量,也可以视为本机的CPU的占用幅度和/或内存占用比例,当然也可以是这些参数的结合运用,还可以是其它诸如系统告警日志、人为设定等因素,当这些参数超过预设的阈值时,则视为满足触发条件,从而执行本发明的方法。其余情况下,均按DNS服务器的正常功能执行。诚然,这一触发条件不应理解为对本发明的限制,本发明也完全可以在不考虑这一触发判定步骤的情况下加以实施。
如前所述,所述的域名解析记录实际上即构成本发明的历史域名解析记录数据的一部分。因此,可以将历史域名解析记录数据理解为本发明所设定的一个缓存数据库,尽管其可能是以日志文件的形式或者数据库的形式加以表征的,利用这个缓存数据库,不仅可以服务于本发明的机器学习过程,而且,在其他根域服务器或域名层次相对应的各级DNS服务器不可到达时,也可利用这一缓存数据库,也即历史域名解析记录数据实现应急的域名解析功能,用以应答所述的域名解析请求,部分且临时地解决互联网域名解析安全问题。
进一步,可以为缓存数据库中的每条域名解析记录赋予一个生命周期,在该生命周期内,该记录有效,超过该生命周期,则可由本发明予以删除或者忽略。本发明在需要使用该缓存数据库用于解析域名时,优先依据请求数据中的域名,检索所述的缓存数据库,找到相应的有效的记录,获得相应的IP地址,然后应答相应的域名解析请求。当然,如果超过所述的生命周期,或者缓存数据库中不存在相应的记录,则仍需通过递归系统来实现查询。由于同一个终端设备一般由同一用户使用,其上网行为表现出一定的惯性,惯于访问部分特定网站,因此,通过这一缓存数据库及其相关技术,可以为用户提高更高效更快速的DNS解析服务,并且可以节省一些移动终端设备的流量消耗。
所述的历史域名解析记录数据,可以仅仅包括上述常规状态下生成的域名解析记录,这些记录未经本方法对比,也非经本方法对比后解析生成,但也可以包括实施本发明的方法的过程中,即进行后续的对比后产生的域名解析记录,具体可由本领域技术人员按需灵活确定。
众所周知,DNS协议是通过UDP协议的53号端口进行通信的,因此,应用了本发明的DNS服务器,便在UDP的53号端口监听互联网上的客户端发起的DNS解析请求。一旦用户通过浏览器发起基于域名的网页访问,便会生成DNS解析请求,该请求便能被本发明接收,从而获得一个域名解析请求。为了后续更易于理解,以下以一个网页访问为例,说明其工作机理:
1)数据从应用层产生(HTTP协议)。
2)数据被从应用层送到传输层,这时候必须包含端口信息以便构造传输层的TCP协议的头部。由于是WEB应用,目标端口就是80,本地端口由操作系统自动产生。
3)数据被送到IP层。IP层要求应用提供源和目的端的IP地址。由于用户输入的是域名,这时候,请求DNS应用,即计算机上的DNS应用需要向DNS服务器发出一个DNS请求。
4)从应用层(DNS协议)产生DNS请求包,送入传输层(UDP),加上UDP头部后,送入IP层,加上IP头部后(此时,本机和DNS的IP都已知,可以构成IP头)。送入链路层。
5)链路层构造头部需要加上本机及网关的MAC地址。此时,需发送ARP请求。
6)所以,计算机首先会发出ARP请求包(这是链路层的工作)。
7)收到ARP应答后,就立即发出DNS请求包。
8)收到DNS应答后,就可以启动TCP协议,进行三次握手,进行连接。
9)TCP建立连接后,HTTP协议就可以发送,HTTP的请求,这时,应用层之间就可以互相进行通讯了。
由以上过程可以看出,在步骤4)之后,在链路层中,已经完成了UDP头部的封装,在步骤7)之后,会立刻发出最终的DNS请求包,等候DNS服务器反馈应答数据。本发明的DNS服务器因此将通过UDP协议的53号端口收到相应的域名解析请求,这一请求不论其在网络协议的不同层次中如何变化其形态,在本质上均是基于一个域名发起的一个要求DNS服务器解析该域名的IP地址的请求。
如前所述,应用了本发明的技术的DNS服务器,能够对其所接收的域名解析请求进行采集,利用该些请求所包含的数据进行特征提取,这些特征将与本发明的学习结果数据的特征进行对比。依照这一原则,首先需要确定一个学习结果数据,然后据此进行特征对比。可以采用两种具体实施方式来满足这一原则。
不管利用何种具体实施方式来满足上述的原则,均需要依赖于一个给定规则。在以下即将揭示的满足该项原则的两个具体实施例中,这个给定规则包含用于表征对历史域名解析记录进行统计运算的各划分时段,或者据以确定该些划分时段的时间密度。但是,在一些变化实施例中,所述给定规则还可以包括用于进行运算的算法表达式或者指示在运算阶段对已知算法进行选择的选项等。这些变例中,其中的算法表达式可以指导后续执行的数学运算过程,据该算法表达式进行数学运算,从而得出学习结果数据。或者,这些表达式可能已经在编程时被内置有多个,由此,该给定规则只需给出这些多个内置表达式的选择项即可。也就是说,本发明实现了依照给定规则对历史域名解析记录的数据进行运算以得到学习结果数据,但所述的给定规则既可以是一个可变内容,也可以是一个预设定的内容;所述的运算的算法也既可以是依照所述给定规则灵活变化的内容,也可以是预先给定的内容。
满足前一原则的第一种具体实施方式中进行所述的学习结果数据的确定,是依照给定规则对历史域名解析记录进行运算而得到的。依照前述,该实施例中,所述给定规则给出了多个划分时段,这个划分时段例如可以表达为一天24小时的多个区间,例如7:00:00-7:59:59、8:00:00-8:59:59……这样的划分时段,一般也可以用时间密度来代替,例如,可以在给定规则中仅仅给出“1”,表示以1小时为一个时间跨度,再由本发明将其理解为上述的划分时段。
本实施例的给定规则已知的基础上,依据默认的运算算法,可以明确学习结果数据的数据类型,请参阅如下表1所示:
域名(A) | 划分时段(P) | 次数(Q) |
www.360.cn | 7:00:00-7:59:59 | 10000 |
www.360.cn | 19:00:00-19:59:59 | 30000 |
www.sina.com.cn | 8:00:00-8:59:59 | 20000 |
www.sina.com.cn | 19:00:00-19:59:59 | 35000 |
该表仅用于示例,不应用于限制本发明的具体灵活实施。实际开发时,本领域技术人员可以运用多种公知技术灵活设计学习结果数据的存储结构和形式。
该表中:
域名(A)是指从所述缓存数据库的历史域名解析记录数据中提取的域名,也就是本DNS服务器在相应划分时段(P)期间应答的DNS解析请求所要求解析的域名,按照上述的时段(P)划分原则,统计出其相应的请求量,即次数(Q)。
划分时段(P)是依据上述给定规则给出的划分时段参数直接确定的,或者依据所述给定原则的时间密度来对一天24小时进行的划分。可以非常精细,也可以跨度较大,粒度大小可自由确定。
次数(Q)是指该划分时段跨度之内,某一域名总共被请求解析的次数,也就是本DNS服务器接收到的对应于该域名的DNS域名解析请求量,或者也可以是本DNS服务器对应于该域名的成功应答的DNS域名解析记录的数量。
为了依照所述给定规则得出所述的学习结果数据,可以采用一个子进程或者独立进程执行一系列步骤,具体可以参照图2所揭示的如下子步骤加以具体实现:
S21、读取用于记载历史域名解析记录的第一数据集。
如前文所述,历史域名解析记录实质上是本DNS服务器正常工作情况下将已经成功解析的域名解析记录进行存储形成的缓存数据库,因此,这一缓存数据库便是记载了历史使用过程中形成的域名解析记录的第一数据集。读取该第一数据集,即是基于访问目的,利用相应的数据库访问技术,对该缓存数据库进行诸如遍历、查询等常规访问。
S22、依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果。
如前所述,本第一具体实施例的给定规则已知,关于运行的算法由程序设计时所默认,因此,本步骤中,以所述的划分时段(或者依据时间密度灵活确定划分时段)为唯一性特征,由于历史域名解析记录中必然包含有产生该记录的时间参数,因此,可以以时间参数属于每个相应划分时段的记录为单位进行数量统计,也即进行数学上的累加,这样,便可以确定每个划分时段中,每个域名被进行了多少次解析。这里,所述的域名、划分时段、次数均可以得出,并且可以按照彼此间的映射关系加以表征。经过这一步骤,显然可以得到相应的统计结果。
S23、将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
前一子步骤的统计结果,如前所述,存在域名、划分时段、次数之间的映射关系,因此可以直接参照表1的格式进行存储,适宜以一个数据表的形式加以表达,但不受此限,所形成的这个数据集,便是前述的学习结果数据。
明确要得出的上述的学习结果数据的表达形式,将更有利于理解后续关于满足前述原则的第一具体实施例的详细说明。具体而言,请参阅图3,第一具体实施例中,至少以如下子步骤具体实现步骤S11:
步骤S111、统计单位时段内接收的域名解析请求,以域名解析请求中各域名的请求量为第一特征。
本步骤的主要任务是在于从DNS服务器所接收的海量的域名解析请求中,提取出其数据,其中较为重要的是需要进行解析的域名,当然也可论据本发明的变化实施例的需要,提取出该些请求中的发起时间、接收时间等数据。由于在单位时间(例如10ms)内能够获取海量的域名解析请求数,而这些域名解析请求中所要求解析的域名往往是不同的,因此,这种情况下,需要对这些域名进行分类汇总,以便去除重复的域名,了解每个域名所包含的总请求量,甚至了解每个域名在不同钟表时间下的分布情况等。确定所述的域名之后,便能够针对每个域名所统计得出的请求量,尤其是按照钟表时间分布得出的不同划分时段的请求量作为所述的第一特征。此处所称的按钟表时间分布,可以理解为在24小时内,例如以每个具体分钟为一个划分时段,尽管前面限定了单位时间为10ms,但有时候刚好被统计的海量域名解析请求跨越了一分钟,如从第一分钟的56秒至第二分钟的05秒。由于后续即将揭示的学习结果数据可能是按第51-60秒……第1-10秒来划分时段的,因此,这种情况下可以考虑依照学习结果数据的划分关系来将所述的单位时间内的海量域名解析请求划分为两部分来分别进行后续的对比,以便得到更精确的对比效果。
步骤S112、以所述学习结果数据中给定的划分时段内针对相应域名发起的域名解析请求的次数为第二特征。
这里所称的学习结果数据,参照前述表1,已经明确给出了常规访问量情况下,每天中的特定划分时段内,针对各个域名发起请求量的总量(次数(Q))。因此,一旦学习结果数据已经被形成,在需要针对前一步骤统计出来的域名进行对比时,便可以在学习结果数据中查询到相应的域名和相应的时段,获得相应的次数(Q),以该次数(Q)为相应的第二特征。
步骤S113、以域名相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定基于该相同域名后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
本实施例中,通过约束域名相同的第一特征和第二特征,将这两个特征进行对比,使两者建立对应性,由此可以进行有意义的比较。当第一特征在于第二特征时,则表征单位时间内发起的请求量已经大于,或者即将大于历史使用行为习惯的请求量(次数),由此,为了减轻DNS服务器的负担,或者将这一不再相似的行为习惯理解为对该域名所指向的网站的攻击,这时,便可在这里做出判定。具体而言,当第一特征的数量大于第二特征的数量时,可以确定后续发起的域名解析请求与第二特征的对比不相符,由此后续可以对这些新请求进行丢包处理;当不大于第二特征的数量时,则可以确定后续发起的域名解析请求与第二特征的对比是相符的,则后续可以继续处理新请求。
仔细研读上述的说明可以看出,统计单位时段内接收的域名解析请求的数量,与学习结果数据中得出的数量,它们的划分时段其实是不同的,因此,首先应当理解,以上的说明仅用于示例,其次,本发明进一步可以缩小给定规则中的划分时段的跨度,或者说进一步细分学习结果数据中的划分时段,使统计的划分时段的时间长度基本与本发明的所述划分时段基本吻合。或者,本发明也可以采用数学求平均的方式,例如,学习结果数据中划分时段的时间长度为1秒,而统计的单位时段的时间长度为10ms,则这时可以将学习结果数据中相应的次数(Q)乘以1/100秒作为第二特征,再与10ms统计单位时段内的请求量(第一特征)进行比较,由此得到更有效的比较结果。显然,实现第一特征与第二特征的这些细节考虑,可以由本领域技术人员依据数学常识灵活变通。由于考虑到机器进行运算时会消耗一定的时间,因此,所述用于确定第一特征的单位时间段的时间长度可以略小于所述用于确定第二划分时段的时间长度。
可以明确,经过上述的步骤,结合确定学习结果数据的过程,便实现了满足前述原则的本步骤的第一具体实施例。
以下继续说明满足前述原则的本步骤的第二种具体实施例。
满足前述原则的第二种具体实施方式中进行所述的学习结果数据的确定,同时也是依照给定规则对历史域名解析记录进行运算而得到的。依照前述,本实施例中,所述给定规则给出了多个划分时段,这个划分时段例如可以表达为一天24小时的多个区间,例如7:00:00-7:59:59、8:00:00-8:59:59……这样的划分时段,一般也可以用时间密度来代替,例如,可以在给定规则中仅仅给出“1”,表示以1小时为一个时间跨度,再由本发明将其理解为上述的划分时段。
本实施例的给定规则已知的基础上,依据默认的运算算法,可以明确学习结果数据的数据类型,请参阅如下表2所示:
源IP地址/源IP地址段(A) | 划分时段(P) | 次数(Q) |
114.114.114.114 | 7:00:00-7:59:59 | 10000 |
114.114.114.114 | 19:00:00-19:59:59 | 30000 |
114.114.211.33-114.114.211.254 | 8:00:00-8:59:59 | 20000 |
211.211.211.0 | 19:00:00-19:59:59 | 35000 |
同理,该表仅用于示例,不应用于限制本发明的具体灵活实施。实际开发时,本领域技术人员可以运用多种公知技术灵活设计学习结果数据的存储结构和形式。
该表中:
源IP地址/源IP地址段(A)是指从所述缓存数据库的历史域名解析记录数据中提取的源IP地址,或者依据这些源IP地址汇总出的源IP地址段(区间),也就是本DNS服务器在相应划分时段(P)期间应答的DNS解析请求的发起源端的公网IP地址,按照上述的时段(P)划分原则,统计出其相应的请求量,即次数(Q)。
划分时段(P)是依据上述给定规则给出的划分时段参数直接确定的,或者依据所述给定原则的时间密度来对一天24小时进行的划分。可以非常精细,也可以跨度较大,粒度大小可自由确定。
次数(Q)是指该划分时段跨度之内,某一源IP地址/源IP地址段总共发起域名解析请求的次数,也就是本DNS服务器接收到的对应于该源IP地址/源IP地址段的DNS域名解析请求量,或者也可以是本DNS服务器对应于该源IP地址/源IP地址段的成功应答的DNS域名解析记录的数量。
为了依照所述给定规则得出所述的学习结果数据,可以采用一个子进程或者独立进程执行一系列步骤,具体可以参照图4所揭示的如下子步骤加以具体实现:
S21’、读取用于记载历史域名解析记录的第一数据集。
如前文所述,历史域名解析记录实质上是本DNS服务器正常工作情况下将已经成功解析的域名解析记录进行存储形成的缓存数据库,因此,这一缓存数据库便是记载了历史使用过程中形成的域名解析记录的第一数据集。读取该第一数据集,即是基于访问目的,利用相应的数据库访问技术,对该缓存数据库进行诸如遍历、查询等常规访问。
S22’、依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果。
如前所述,本第二具体实施例的给定规则已知,关于运行的算法由程序设计时所默认,因此,本步骤中,以所述的划分时段(或者依据时间密度灵活确定划分时段)为唯一性特征,由于历史域名解析记录中必然包含有产生该记录的时间参数,因此,可以以时间参数属于每个相应划分时段的记录为单位进行数量统计,也即进行数学上的累加,这样,便可以确定每个划分时段中,每个域名被进行了多少次解析。这里,由于每个域名解析请求均包含有其源IP地址,由此也可以确定源IP地址段,因此,所述的源IP地址/源IP地址段、划分时段、次数均可以得出,并且可以按照彼此间的映射关系加以表征。经过这一步骤,显然可以得到相应的统计结果。
S23’、将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
前一子步骤的统计结果,如前所述,存在源IP地址/源IP地址段、划分时段、次数之间的映射关系,因此可以直接参照表2的格式进行存储,适宜以一个数据表的形式加以表达,但不受此限,所形成的这个数据集,便是前述的学习结果数据。
明确要得出的上述的学习结果数据的表达形式,将更有利于理解后续关于满足前述原则的第二具体实施例的详细说明。具体而言,请参阅图5,第二具体实施例中,至少以如下子步骤具体实现步骤S11:
步骤S111’、统计单位时段内接收的域名解析请求,以域名解析请求中各域名解析请求中各源IP地址/源IP地址段的请求量为第一特征。
本步骤的主要任务是在于从DNS服务器所接收的海量的域名解析请求中,提取出其数据,其中较为重要的是其源IP地址,进一步可以由该源IP地址汇总出源IP地址段,当然也可论据本发明的变化实施例的需要,提取出该些请求中的发起时间、接收时间等数据。由于在单位时间(例如10ms)内能够获取海量的域名解析请求数,而这些域名解析请求的发起方的源IP地址往往是不同的,因此,这种情况下,可以对这些源IP地址进行分类汇总,以便去除重复的源IP地址,确定其所属的源IP地址段,使其突出地域特征,以此为基础进一步了解每个源IP地址/源IP地址段所发起的总请求量,甚至了解每个源IP地址在不同钟表时间下发起域名解析请求的数量分布情况等。确定所述的源IP地址之后,便能够针对每个源IP地址/源IP地址段所统计得出的请求量,尤其是按照钟表时间分布得出的不同划分时段的请求量作为所述的第一特征。此处所称的按钟表时间分布,可以理解为在24小时内,例如以每个具体分钟为一个划分时段,尽管前面限定了单位时间为10ms,但有时候刚好被统计的海量域名解析请求跨越了一分钟,如从第一分钟的56秒至第二分钟的05秒。由于后续即将揭示的学习结果数据可能是按第51-60秒……第1-10秒来划分时段的,因此,这种情况下可以考虑依照学习结果数据的划分关系来将所述的单位时间内的海量域名解析请求划分为两部分来分别进行后续的对比,以便得到更精确的对比效果。
步骤S112’、以所述学习结果数据中给定的划分时段内相应源IP地址/源IP地址段发起的域名解析请求的次数为第二特征。
这里所称的学习结果数据,参照前述表2,已经明确给出了常规访问量情况下,每天中的特定划分时段内,针对各个源IP地址/源IP地址段发起请求量的总量(次数(Q))。因此,一旦学习结果数据已经被形成,在需要针对前一步骤统计出来的源IP地址/源IP地址段进行对比时,便可以在学习结果数据中查询到相应的源IP地址/源IP地址段和相应的时段,获得相应的次数(Q),以该次数(Q)为相应的第二特征。
步骤S113’、以源IP地址/源IP地址段相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定该些源IP地址/源IP地址段后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
本实施例中,通过约束该些源IP地址/源IP地址段相同或相属(集合意义上)的第一特征和第二特征,将这两个特征进行对比,使两者建立对应性,由此可以进行有意义的比较。当第一特征在于第二特征时,则表征单位时间内发起的请求量已经大于,或者即将大于历史使用行为习惯的请求量(次数),由此,为了减轻DNS服务器的负担,或者将这一不再相似的行为习惯理解为对源IP地址所指向的设备(即请求方)正在发起对互联网的攻击,这时,便可在这里做出判定。具体而言,当第一特征的数量大于第二特征的数量时,可以确定后续发起的域名解析请求与第二特征的对比不相符,由此后续可以对这些新请求进行丢包处理;当不大于第二特征的数量时,则可以确定后续发起的域名解析请求与第二特征的对比是相符的,则后续可以继续处理新请求。
仔细研读上述的说明可以看出,统计单位时段内接收的域名解析请求的数量,与学习结果数据中得出的数量,它们的划分时段其实是不同的。因此,首先应当理解,以上的说明仅用于示例,其次,本发明进一步可以缩小给定规则中的划分时段的跨度,或者说进一步细分学习结果数据中的划分时段,使统计的划分时段的时间长度基本与本发明的所述划分时段基本吻合。或者,本发明也可以采用数学求平均的方式,例如,学习结果数据中划分时段的时间长度为1秒,而统计的单位时段的时间长度为10ms,则这时可以将学习结果数据中相应的次数(Q)乘以1/100秒作为第二特征,再与10ms统计单位时段内的请求量(第一特征)进行比较,由此得到更有效的比较结果。显然,实现第一特征与第二特征的这些细节考虑,可以由本领域技术人员依据数学常识灵活变通。由于考虑到机器进行运算时会消耗一定的时间,因此,所述用于确定第一特征的单位时间段的时间长度可以略小于所述用于确定第二划分时段的时间长度。
可以明确,经过上述的步骤,结合确定学习结果数据的过程,便实现了满足前述原则的本步骤的第二具体实施例。
通过上述本步骤的两个具体实施例的揭示,本领域技术人员可以知晓,本步骤毫无疑问可以完成一个特征对比过程,并且是以机器学习的方式进行的。机器学习的环境,是海量的历史域名解析请求;机器学习的执行算法,既可被本领域技术人员在编程时确定,也可在所述给定规则中给出;机器学习所形成的知识库,即形成所述的学习结果数据。通过娴熟地将机器学习的这些原理运用到本发明的技术实现过程中,使本发明首先具备了一种判定访问异常的能力。
需要说明的是,本发明实施例所述的给定规则,适宜以具有一定表达格式的表达式或文件给出,通过一个用户界面提供给用户进行输入。本发明相关实施例中,虽然在涉及给定规则时,以划分时段进行示例,但本领域技术人员应当理解,可以使用诸如请求量阈值结合统计算法的方式替代之,或者采用其他的机器学习算法,以适应不同攻击类型识别的需要,对这些攻击类型可以根据技术人员经验判断其破坏程度或严重性,从而对破坏程度或严重性高的恶意行为赋予更大的权重值;另外在实作中也可以通过收集的大量客户端数据,根据恶意程序行为的上报频率、破坏范围等一系列参数建立数学模型,通过统计学算法获得各恶意行为的权重并分配权重值。还可以利用类似于决策树,贝叶斯算法,神经网域计算等方法,或者使用简单的阈值分析,都可以在本发明的数据库基础上得到很好的应用。
需要指出的是,尽管本发明的实现需要依赖于机器学习所得的学习结果数据,但机器学习的过程,与本发明的主要步骤的执行并不需要同步。通常,可以通过定期或者不定期执行的方式,来实现本发明的机器学习过程,以便获得或者更新所述的学习结果数据。此外,本发明可以对所接收的域名解析请求,进行相对频繁密集的统计,这样每个特征对比过程将变得更加快速,由此便可以实现类似实时的处理效果。特别地,前述各实施例中,如果统计的密度足够频繁,理论上可以先不响应接收到的域名解析请求,而是在先行做出本发明的特征对比后,再确定是否响应这些收到的域名解析请求。这种情况,也应当视为本发明的另一类替代实施方式。
执行本步骤后,本发明将能获得特征对比结果,后续可以依据该特征对比结果来实现更为智能化的控制,改善DNS服务器的运行性能,防御互联网恶意攻击。
步骤S12、仅针对特征相符的域名解析请求进行解析,生成域名解析记录。
由于前一步骤已经对单位时间段内所接收到的域名解析请求量进行了有机统计,并且将之与利用机器学习而得的学习结果数据中的相应数据进行了对应性比较,得出一个特征对比结果,因此,本步骤可以据此做出响应。具体而言,本步骤的主要任务是按照DNS服务器的正常解析服务功能,对特征相符的当前未获解析的域名解析请求,或者对后续需解析的域名解析请求进行响应,调用DNS服务器固有的递归控制功能,实施域名查询,获得相对应的IP地址,应答相应的域名解析请求。注意,仅仅就特征相符的域名解析请求执行这种惯常的解析和应答过程。
作为本步骤的另一种实施例,只要得出特征不相符的对比结果,本步骤可以直接丢弃以过滤掉不具有相符特征的域名解析请求,将这些请求的数据包予以忽略,也就直接地达到了前种实现方式的完全相同的效果,后续也无需对相应的域名解析记录做出应答。
步骤S13、以该域名解析记录应答相应的域名解析请求。
作为对所述域名解析请求的应答,遵照前述各步骤所遵守的逻辑,在本步骤中,将经前一步骤递归查询得到的域名解析记录形成应答数据包应答相应的域名解析请求,以使该域名解析请求中的域名能够得到有效的解析。
根据本发明的方法的上述多个实施例的揭示可以看出,本发明在实质通过结合机器学习技术实现了智能攻击行为判定的功能,尽管本文仅给出部分实施例,但依据与本发明的相同的原理,本领域技术人员可以在本文的基础上继续变化出多种判定方法。这种行为判定功能,再结合底层实现,可以实现DNS服务器的更安全的防御效果。
例如,在本发明的一种实施例中,对于接收的每个域名解析请求相对应的网络数据包,可以以类似前述机器学习的方式判断出该网络数据包对应的DNS行为类型,并根据确定的DNS行为类型确定对该网络数据包进行处理的处理主体,进而将该网络数据包转至确定的处理主体进行处理。在本发明实施例中,处理主体可以由两层组成,分别是内核层、应用层。内核层包括网络层、驱动层等,可以实现高速缓存、攻击防护等功能,而应用层可以对网络数据包进行基本解析,包括域名解析后的地址、数据存储地址的获取等。与现有技术中的DNS行为的处理方法相比较,将网络数据包分别划分至内核层和应用层处理,可以将DNS请求根据实际请求处理,若遇到一秒几百万次的DNS请求攻击,也可以由处理能力较强的内核对其进行处理,而遇见时效性要求相对较低的DNS请求,则可以由应用层处理。采用内核和应用层分别处理DNS请求,考虑到内核的巨大的处理能力,能够实现大流量的DNS查询。并且,因DNS请求所导致的修改或启动导致加载时,因内核和应用层是分别处理的,因此可以利用其中之一处理当前DNS请求,另一继续对外提供服务。因此,本发明实施例提高了单机的业务处理能力,大大提高系统的处理能力和安全防护能力的同时,还能实现快速域名动态管理和配置,进而实现很多定制化的复杂功能需求。
当DNS行为类型确定为攻击行为时,那么,可以确定处理主体为内核,而当DNS行为类型为域名解析行为时,可以确定处理主体为应用层。为了提升域名解析服务的响应速度、处理性能及安全防护能力,根据DNS的解析原理,在内核模块中可以实现高速缓存和安全防护,正常情况内核模块能高效、稳定地处理98%的解析请求和绝大部分的攻击防护。而处理逻辑相对复杂,对性能要求并不是那么高的基础解析和管理功能放在应用层实现。
因此,处理主体为内核时,由内核检测所述网络数据包,过滤将网络数据包中携带的DNS攻击行为;以及,将过滤后的网络数据包转发至应用层进行处理。内核检测网络数据包时,可以启动防DDOS攻击策略、IP限速策略、域名限速策略等策略,相应的,可以在内核中为每个策略设置独立的内部模块,用于实现不同策略。
此处需要说明的是,每个网络数据包都具备一个特征码,且每个特征码是独一无二的,因此,可以根据特征码判断网络数据包的DNS请求的属性,识破伪装成正常数据包的DNS攻击操作。现根据如下步骤判断所述网络数据包中是否携带有DNS攻击行为:
步骤A、计算网络数据包的特征码;
步骤B、判断特征码是否是DNS攻击行为的特征码,若是,执行步骤C,若否,执行步骤D;
步骤C、若是,则确定网络数据包中携带有DNS攻击行为;
步骤D、若否,则确定网络数据包中未携带有DNS攻击行为。
其中,数据库中通常存储有已知DNS攻击行为的特征码的集合,当需要校验时,将步骤A中计算出的特征码与数据库的集合进行匹配,若步骤A计算出的特征码存在所述集合中,则是DNS攻击行为,反之则不是。
其中,特征码可以根据IP或域名等域名信息确定,例如,计算指定时间内接收的来自同一IP的网络数据包数得到特征码,和/或计算指定时间内接收的来自同一域名的网络数据包数。若1秒内从同一IP或同一域名接收的网络数据包数远远大于应该接收的包数,就证明该IP地址或域名已被变成攻击源。这也是IP限速策略、域名限速策略的基本原理。被证明变为攻击源的IP地址或域名,之后再接收到来自这一源头的网络数据包,可以直接舍弃或过滤掉,避免被其攻击,提高系统安全性能及处理效率。
内核对攻击行为进行过滤之后,将网络数据包发至应用层进行处理。应用层可以对网络数据包进行解析,获取域名对应的地址信息,从而获取相关数据反馈给客户端。以及,应用层可以对域名信息等数据进行管理,实现数据管理功能。
依据本发明所实现的DNS服务器,还可以结合虚拟根节点等提供安全服务,当根节点出现DNS解析故障时,虚拟根节点能够代替根节点实现DNS解析功能。为实现虚拟根节点这一功能,可以利用历史域名解析记录构造一个授权信息数据库,授权信息数据库中必须存储有足够的信息,即,授权信息数据库中存储指定区域内的所有DNS请求及对应的授权信息,这样虚拟根节点才能够有足够的资源对DNS请求进行应答。因此,虚拟根节点的实现是在授权信息数据库的基础上实现的。结合新增的授权信息数据库以及虚拟根节点,能够在根节点解析故障的时候为客户端提供DNS解析功能,能够降低DNS单点故障和提高DNS防御攻击能力,同时还可以对虚拟根节点设置访问权限控制,屏蔽DNS的攻击数据,提高DNS解析的安全性及稳定性。对于危险DNS攻击,从授权信息数据库中查询不到具体的授权信息,则虚拟根节点不会为其提供解析服务等。
利用模块化思维,以下将本发明的机器学习型域名系统安全防御方法演化为一种机器学习型域名系统安全防御装置,请参阅图6,该装置具体包括对比单元11、解析单元12、应答单元13以及学习单元2,在部分实施例中,还可以进一步包括一检测单元10。
所述的对比单元11,用于将所接收的域名解析请求所含的数据与依据给定规则对历史域名解析记录运算而得的学习结果数据进行特征对比。
需要优先指出的是,本发明的实施,通常发生在DNS服务器负载过重时,判定负载过重的一个方式,可以通过一个检测单元10来比较DNS服务器的至少一个机器参数是否超过预设阈值来实现。而在平常的工作状态下,DNS服务器在接收到客户端的DNS解析请求后,即调用递归系统,通过根域服务器和域名层次的各级DNS服务器来实现递归解析,最终获取包含相对应的IP地址的域名解析记录,用于应答该DNS解析请求。
所述用于判定是否触发本发明运行的机器参数,可以根据人为意愿而加以机器表达而实现。例如,可以将该机器参数视为本机在单位时间内所接收的域名解析请求的请求量,也可以视为本机的CPU的占用幅度和/或内存占用比例,当然也可以是这些参数的结合运用,还可以是其它诸如系统告警日志、人为设定等因素,当这些参数超过预设的阈值时,则视为满足触发条件,从而执行本发明的功能。其余情况下,均按DNS服务器的正常功能执行。诚然,这一触发条件不应理解为对本发明的限制,本发明也完全可以在不考虑这一检测单元10的情况下加以实施。
如前所述,所述的域名解析记录实际上即构成本发明的历史域名解析记录数据的一部分。因此,可以将历史域名解析记录数据理解为本发明所设定的一个缓存数据库,尽管其可能是以日志文件的形式或者数据库的形式加以表征的,利用这个缓存数据库,不仅可以服务于本发明的机器学习过程,而且,在其他根域服务器或域名层次相对应的各级DNS服务器不可到达时,也可利用这一缓存数据库,也即历史域名解析记录数据实现应急的域名解析功能,用以应答所述的域名解析请求,部分且临时地解决互联网域名解析安全问题。
进一步,可以为缓存数据库中的每条域名解析记录赋予一个生命周期,在该生命周期内,该记录有效,超过该生命周期,则可由本发明予以删除或者忽略。本发明在需要使用该缓存数据库用于解析域名时,优先依据请求数据中的域名,检索所述的缓存数据库,找到相应的有效的记录,获得相应的IP地址,然后应答相应的域名解析请求。当然,如果超过所述的生命周期,或者缓存数据库中不存在相应的记录,则仍需通过递归系统来实现查询。由于同一个终端设备一般由同一用户使用,其上网行为表现出一定的惯性,惯于访问部分特定网站,因此,通过这一缓存数据库及其相关技术,可以为用户提高更高效更快速的DNS解析服务,并且可以节省一些移动终端设备的流量消耗。
所述的历史域名解析记录数据,可以仅仅包括上述常规状态下生成的域名解析记录,这些记录未经本对比单元11对比,也非经本对比单元11对比后解析生成,但也可以包括实施本发明的过程中,即进行后续的对比后产生的域名解析记录,具体可由本领域技术人员按需灵活确定。
众所周知,DNS协议是通过UDP协议的53号端口进行通信的,因此,应用了本发明的DNS服务器,便在UDP的53号端口监听互联网上的客户端发起的DNS解析请求。一旦用户通过浏览器发起基于域名的网页访问,便会生成DNS解析请求,该请求便能被本发明接收,从而获得一个域名解析请求。为了后续更易于理解,以下以一个网页访问为例,说明其工作机理:
1)数据从应用层产生(HTTP协议)。
2)数据被从应用层送到传输层,这时候必须包含端口信息以便构造传输层的TCP协议的头部。由于是WEB应用,目标端口就是80,本地端口由操作系统自动产生。
3)数据被送到IP层。IP层要求应用提供源和目的端的IP地址。由于用户输入的是域名,这时候,请求DNS应用,即计算机上的DNS应用需要向DNS服务器发出一个DNS请求。
4)从应用层(DNS协议)产生DNS请求包,送入传输层(UDP),加上UDP头部后,送入IP层,加上IP头部后(此时,本机和DNS的IP都已知,可以构成IP头)。送入链路层。
5)链路层构造头部需要加上本机及网关的MAC地址。此时,需发送ARP请求。
6)所以,计算机首先会发出ARP请求包(这是链路层的工作)。
7)收到ARP应答后,就立即发出DNS请求包。
8)收到DNS应答后,就可以启动TCP协议,进行三次握手,进行连接。
9)TCP建立连接后,HTTP协议就可以发送,HTTP的请求,这时,应用层之间就可以互相进行通讯了。
由以上过程可以看出,在步骤4)之后,在链路层中,已经完成了UDP头部的封装,在步骤7)之后,会立刻发出最终的DNS请求包,等候DNS服务器反馈应答数据。本发明的DNS服务器因此将通过UDP协议的53号端口收到相应的域名解析请求,这一请求不论其在网络协议的不同层次中如何变化其形态,在本质上均是基于一个域名发起的一个要求DNS服务器解析该域名的IP地址的请求。
如前所述,应用了本发明的技术的DNS服务器,能够对其所接收的域名解析请求进行采集,利用该些请求所包含的数据进行特征提取,这些特征将与本发明的学习结果数据的特征进行对比。依照这一原则,首先需要利用一个所述的学习单元2来确定一个学习结果数据,然后据此进行特征对比。可以采用两种具体实施方式来满足这一原则。
不管利用何种具体实施方式来满足上述的原则,均需要依赖于一个给定规则。在以下即将揭示的满足该项原则的两个具体实施例中,这个给定规则包含用于表征对历史域名解析记录进行统计运算的各划分时段,或者据以确定该些划分时段的时间密度。但是,在一些变化实施例中,所述给定规则还可以包括用于进行运算的算法表达式或者指示在运算阶段对已知算法进行选择的选项等。这些变例中,其中的算法表达式可以指导后续执行的数学运算过程,据该算法表达式进行数学运算,从而得出学习结果数据。或者,这些表达式可能已经在编程时被内置有多个,由此,该给定规则只需给出这些多个内置表达式的选择项即可。也就是说,本发明实现了依照给定规则对历史域名解析记录的数据进行运算以得到学习结果数据,但所述的给定规则既可以是一个可变内容,也可以是一个预设定的内容;所述的运算的算法也既可以是依照所述给定规则灵活变化的内容,也可以是预先给定的内容。
满足前一原则的第一种具体实施方式中学习单元2进行所述的学习结果数据的确定,是依照给定规则对历史域名解析记录进行运算而得到的。依照前述,该实施例中,所述给定规则给出了多个划分时段,这个划分时段例如可以表达为一天24小时的多个区间,例如7:00:00-7:59:59、8:00:00-8:59:59……这样的划分时段,一般也可以用时间密度来代替,例如,可以在给定规则中仅仅给出“1”,表示以1小时为一个时间跨度,再由本发明将其理解为上述的划分时段。
本实施例的给定规则已知的基础上,依据默认的运算算法,可以明确学习结果数据的数据类型,请参阅如下表3所示:
域名(A) | 划分时段(P) | 次数(Q) |
www.360.cn | 7:00:00-7:59:59 | 10000 |
www.360.cn | 19:00:00-19:59:59 | 30000 |
www.sina.com.cn | 8:00:00-8:59:59 | 20000 |
www.sina.com.cn | 19:00:00-19:59:59 | 35000 |
该表仅用于示例,不应用于限制本发明的具体灵活实施。实际开发时,本领域技术人员可以运用多种公知技术灵活设计学习结果数据的存储结构和形式。
该表中:
域名(A)是指从所述缓存数据库的历史域名解析记录数据中提取的域名,也就是本DNS服务器在相应划分时段(P)期间应答的DNS解析请求所要求解析的域名,按照上述的时段(P)划分原则,统计出其相应的请求量,即次数(Q)。
划分时段(P)是依据上述给定规则给出的划分时段参数直接确定的,或者依据所述给定原则的时间密度来对一天24小时进行的划分。可以非常精细,也可以跨度较大,粒度大小可自由确定。
次数(Q)是指该划分时段跨度之内,某一域名总共被请求解析的次数,也就是本DNS服务器接收到的对应于该域名的DNS域名解析请求量,或者也可以是本DNS服务器对应于该域名的成功应答的DNS域名解析记录的数量。
为了依照所述给定规则得出所述的学习结果数据,请参阅图7,可以采用一个子进程或者独立进程构造本第一实施例的学习单元2,使该学习单元2具体包括读取模块21、执行模块22以及生成模块23:
读取模块21,用于读取用于记载历史域名解析记录的第一数据集。
如前文所述,历史域名解析记录实质上是本DNS服务器正常工作情况下将已经成功解析的域名解析记录进行存储形成的缓存数据库,因此,这一缓存数据库便是记载了历史使用过程中形成的域名解析记录的第一数据集。读取该第一数据集,即是基于访问目的,利用相应的数据库访问技术,对该缓存数据库进行诸如遍历、查询等常规访问。
执行模块22,被配置为依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果。
如前所述,本第一具体实施例的给定规则已知,关于运行的算法由程序设计时所默认,因此,本模块中,以所述的划分时段(或者依据时间密度灵活确定划分时段)为唯一性特征,由于历史域名解析记录中必然包含有产生该记录的时间参数,因此,可以以时间参数属于每个相应划分时段的记录为单位进行数量统计,也即进行数学上的累加,这样,便可以确定每个划分时段中,每个域名被进行了多少次解析。这里,所述的域名、划分时段、次数均可以得出,并且可以按照彼此间的映射关系加以表征。经过这一执行模块22的执行,显然可以得到相应的统计结果。
生成模块23,用于将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
执行模块22的统计结果,如前所述,存在域名、划分时段、次数之间的映射关系,因此可以直接参照表3的格式进行存储,适宜以一个数据表的形式加以表达,但不受此限,所形成的这个数据集,便是前述的学习结果数据。
明确要得出的上述的学习结果数据的表达形式,将更有利于理解后续关于满足前述原则的第一具体实施例的详细说明。具体而言,请参阅图8,第一具体实施例中,以如下结构具体实现所述的对比单元11:
第一特征确定模块111,用于统计单位时段内接收的域名解析请求,以域名解析请求中各域名的请求量为第一特征。
本模块的主要任务是在于从DNS服务器所接收的海量的域名解析请求中,提取出其数据,其中较为重要的是需要进行解析的域名,当然也可论据本发明的变化实施例的需要,提取出该些请求中的发起时间、接收时间等数据。由于在单位时间(例如10ms)内能够获取海量的域名解析请求数,而这些域名解析请求中所要求解析的域名往往是不同的,因此,这种情况下,需要对这些域名进行分类汇总,以便去除重复的域名,了解每个域名所包含的总请求量,甚至了解每个域名在不同钟表时间下的分布情况等。确定所述的域名之后,便能够针对每个域名所统计得出的请求量,尤其是按照钟表时间分布得出的不同划分时段的请求量作为所述的第一特征。此处所称的按钟表时间分布,可以理解为在24小时内,例如以每个具体分钟为一个划分时段,尽管前面限定了单位时间为10ms,但有时候刚好被统计的海量域名解析请求跨越了一分钟,如从第一分钟的56秒至第二分钟的05秒。由于后续即将揭示的学习结果数据可能是按第51-60秒……第1-10秒来划分时段的,因此,这种情况下可以考虑依照学习结果数据的划分关系来将所述的单位时间内的海量域名解析请求划分为两部分来分别进行后续的对比,以便得到更精确的对比效果。
第二特征确定模块112,被配置为以所述学习结果数据中给定的划分时段内针对相应域名发起的域名解析请求的次数为第二特征。
这里所称的学习结果数据,参照前述表3,已经明确给出了常规访问量情况下,每天中的特定划分时段内,针对各个域名发起请求量的总量(次数(Q))。因此,一旦学习结果数据已经被形成,在需要针对第一特征确定模块111统计出来的域名进行对比时,便可以在学习结果数据中查询到相应的域名和相应的时段,获得相应的次数(Q),以该次数(Q)为相应的第二特征。
数学运算模块113,被配置为以域名相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定基于该相同域名后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
本实施例中,通过约束域名相同的第一特征和第二特征,将这两个特征进行对比,使两者建立对应性,由此可以进行有意义的比较。当第一特征在于第二特征时,则表征单位时间内发起的请求量已经大于,或者即将大于历史使用行为习惯的请求量(次数),由此,为了减轻DNS服务器的负担,或者将这一不再相似的行为习惯理解为对该域名所指向的网站的攻击,这时,便可在这里做出判定。具体而言,当第一特征的数量大于第二特征的数量时,可以确定后续发起的域名解析请求与第二特征的对比不相符,由此后续可以对这些新请求进行丢包处理;当不大于第二特征的数量时,则可以确定后续发起的域名解析请求与第二特征的对比是相符的,则后续可以继续处理新请求。
仔细研读上述的说明可以看出,统计单位时段内接收的域名解析请求的数量,与学习结果数据中得出的数量,它们的划分时段其实是不同的,因此,首先应当理解,以上的说明仅用于示例,其次,本发明进一步可以缩小给定规则中的划分时段的跨度,或者说进一步细分学习结果数据中的划分时段,使统计的划分时段的时间长度基本与本发明的所述划分时段基本吻合。或者,本发明也可以采用数学求平均的方式,例如,学习结果数据中划分时段的时间长度为1秒,而统计的单位时段的时间长度为10ms,则这时可以将学习结果数据中相应的次数(Q)乘以1/100秒作为第二特征,再与10ms统计单位时段内的请求量(第一特征)进行比较,由此得到更有效的比较结果。显然,实现第一特征与第二特征的这些细节考虑,可以由本领域技术人员依据数学常识灵活变通。由于考虑到机器进行运算时会消耗一定的时间,因此,所述用于确定第一特征的单位时间段的时间长度可以略小于所述用于确定第二划分时段的时间长度。
可以明确,通过上述对比单元11的构造模块的执行,以及通过学习单元2的各个构造模块的执行,可以实现确定学习结果数据的过程,便实现了满足前述原则的对比单元11的第一具体实施例。
以下继续说明满足前述原则的对比单元11的第二种具体实施例。
满足前述原则的第二种具体实施方式中的学习单元2,进行所述的学习结果数据的确定,同时也是依照给定规则对历史域名解析记录进行运算而得到的。依照前述,本实施例中,所述给定规则给出了多个划分时段,这个划分时段例如可以表达为一天24小时的多个区间,例如7:00:00-7:59:59、8:00:00-8:59:59……这样的划分时段,一般也可以用时间密度来代替,例如,可以在给定规则中仅仅给出“1”,表示以1小时为一个时间跨度,再由本发明将其理解为上述的划分时段。
本实施例的给定规则已知的基础上,依据默认的运算算法,可以明确学习结果数据的数据类型,请参阅如下表4所示:
源IP地址/源IP地址段(A) | 划分时段(P) | 次数(Q) |
114.114.114.114 | 7:00:00-7:59:59 | 10000 |
114.114.114.114 | 19:00:00-19:59:59 | 30000 |
114.114.211.33-114.114.211.254 | 8:00:00-8:59:59 | 20000 |
211.211.211.0 | 19:00:00-19:59:59 | 35000 |
同理,该表仅用于示例,不应用于限制本发明的具体灵活实施。实际开发时,本领域技术人员可以运用多种公知技术灵活设计学习结果数据的存储结构和形式。
该表中:
源IP地址/源IP地址段(A)是指从所述缓存数据库的历史域名解析记录数据中提取的源IP地址,或者依据这些源IP地址汇总出的源IP地址段(区间),也就是本DNS服务器在相应划分时段(P)期间应答的DNS解析请求的发起源端的公网IP地址,按照上述的时段(P)划分原则,统计出其相应的请求量,即次数(Q)。
划分时段(P)是依据上述给定规则给出的划分时段参数直接确定的,或者依据所述给定原则的时间密度来对一天24小时进行的划分。可以非常精细,也可以跨度较大,粒度大小可自由确定。
次数(Q)是指该划分时段跨度之内,某一源IP地址/源IP地址段总共发起域名解析请求的次数,也就是本DNS服务器接收到的对应于该源IP地址/源IP地址段的DNS域名解析请求量,或者也可以是本DNS服务器对应于该源IP地址/源IP地址段的成功应答的DNS域名解析记录的数量。
为了依照所述给定规则得出所述的学习结果数据,可以采用一个子进程或者独立进程来构造并执行所述的学习单元2,具体可以参照如图7所示的如下的构造实现:
读取模块21,用于读取用于记载历史域名解析记录的第一数据集。
如前文所述,历史域名解析记录实质上是本DNS服务器正常工作情况下将已经成功解析的域名解析记录进行存储形成的缓存数据库,因此,这一缓存数据库便是记载了历史使用过程中形成的域名解析记录的第一数据集。读取该第一数据集,即是基于访问目的,利用相应的数据库访问技术,对该缓存数据库进行诸如遍历、查询等常规访问。
执行模块22,被配置为依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果。
如前所述,本第二具体实施例的给定规则已知,关于运行的算法由程序设计时所默认,因此,本执行模块22中,以所述的划分时段(或者依据时间密度灵活确定划分时段)为唯一性特征,由于历史域名解析记录中必然包含有产生该记录的时间参数,因此,可以以时间参数属于每个相应划分时段的记录为单位进行数量统计,也即进行数学上的累加,这样,便可以确定每个划分时段中,每个域名被进行了多少次解析。这里,由于每个域名解析请求均包含有其源IP地址,由此也可以确定源IP地址段,因此,所述的源IP地址/源IP地址段、划分时段、次数均可以得出,并且可以按照彼此间的映射关系加以表征。经过这一执行模块22的执行,显然可以得到相应的统计结果。
生成模块23,用于将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
前一执行模块22的统计结果,如前所述,存在源IP地址/源IP地址段、划分时段、次数之间的映射关系,因此可以直接参照表4的格式进行存储,适宜以一个数据表的形式加以表达,但不受此限,所形成的这个数据集,便是前述的学习结果数据。
明确要得出的上述的学习结果数据的表达形式,将更有利于理解后续关于满足前述原则的第二具体实施例的详细说明。具体而言,请参阅图8,第二具体实施例中,所述对比单元11可以包括如下模块:
第一特征确定模块111,用于统计单位时段内接收的域名解析请求,以域名解析请求中各域名解析请求中各源IP地址/源IP地址段的请求量为第一特征。
第一特征确定模块111的主要任务是在于从DNS服务器所接收的海量的域名解析请求中,提取出其数据,其中较为重要的是其源IP地址,进一步可以由该源IP地址汇总出源IP地址段,当然也可论据本发明的变化实施例的需要,提取出该些请求中的发起时间、接收时间等数据。由于在单位时间(例如10ms)内能够获取海量的域名解析请求数,而这些域名解析请求的发起方的源IP地址往往是不同的,因此,这种情况下,可以对这些源IP地址进行分类汇总,以便去除重复的源IP地址,确定其所属的源IP地址段,使其突出地域特征,以此为基础进一步了解每个源IP地址/源IP地址段所发起的总请求量,甚至了解每个源IP地址在不同钟表时间下发起域名解析请求的数量分布情况等。确定所述的源IP地址之后,便能够针对每个源IP地址/源IP地址段所统计得出的请求量,尤其是按照钟表时间分布得出的不同划分时段的请求量作为所述的第一特征。此处所称的按钟表时间分布,可以理解为在24小时内,例如以每个具体分钟为一个划分时段,尽管前面限定了单位时间为10ms,但有时候刚好被统计的海量域名解析请求跨越了一分钟,如从第一分钟的56秒至第二分钟的05秒。由于后续即将揭示的学习结果数据可能是按第51-60秒……第1-10秒来划分时段的,因此,这种情况下可以考虑依照学习结果数据的划分关系来将所述的单位时间内的海量域名解析请求划分为两部分来分别进行后续的对比,以便得到更精确的对比效果。
第二特征确定模块112,被配置为以所述学习结果数据中给定的划分时段内相应源IP地址/源IP地址段发起的域名解析请求的次数为第二特征。
这里所称的学习结果数据,参照前述表4,已经明确给出了常规访问量情况下,每天中的特定划分时段内,针对各个源IP地址/源IP地址段发起请求量的总量(次数(Q))。因此,一旦学习结果数据已经被形成,在需要针对第一特征确定模块111统计出来的源IP地址/源IP地址段进行对比时,便可以在学习结果数据中查询到相应的源IP地址/源IP地址段和相应的时段,获得相应的次数(Q),以该次数(Q)为相应的第二特征。
数学运算模块113,被配置为以源IP地址/源IP地址段相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定该些源IP地址/源IP地址段后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
本实施例中,通过约束该些源IP地址/源IP地址段相同或相属(集合意义上)的第一特征和第二特征,将这两个特征进行对比,使两者建立对应性,由此可以进行有意义的比较。当第一特征在于第二特征时,则表征单位时间内发起的请求量已经大于,或者即将大于历史使用行为习惯的请求量(次数),由此,为了减轻DNS服务器的负担,或者将这一不再相似的行为习惯理解为对源IP地址所指向的设备(即请求方)正在发起对互联网的攻击,这时,便可在这里做出判定。具体而言,当第一特征的数量大于第二特征的数量时,可以确定后续发起的域名解析请求与第二特征的对比不相符,由此后续可以对这些新请求进行丢包处理;当不大于第二特征的数量时,则可以确定后续发起的域名解析请求与第二特征的对比是相符的,则后续可以继续处理新请求。
仔细研读上述的说明可以看出,统计单位时段内接收的域名解析请求的数量,与学习结果数据中得出的数量,它们的划分时段其实是不同的。因此,首先应当理解,以上的说明仅用于示例,其次,本发明进一步可以缩小给定规则中的划分时段的跨度,或者说进一步细分学习结果数据中的划分时段,使统计的划分时段的时间长度基本与本发明的所述划分时段基本吻合。或者,本发明也可以采用数学求平均的方式,例如,学习结果数据中划分时段的时间长度为1秒,而统计的单位时段的时间长度为10ms,则这时可以将学习结果数据中相应的次数(Q)乘以1/100秒作为第二特征,再与10ms统计单位时段内的请求量(第一特征)进行比较,由此得到更有效的比较结果。显然,实现第一特征与第二特征的这些细节考虑,可以由本领域技术人员依据数学常识灵活变通。由于考虑到机器进行运算时会消耗一定的时间,因此,所述用于确定第一特征的单位时间段的时间长度可以略小于所述用于确定第二划分时段的时间长度。
可以明确,经过上述的对比单元11结构模块的运行,结合学习单元2确定学习结果数据的功能,便实现了满足前述原则的对比单元11的第二具体实施例。
通过上述本对比单元11及相应的学习单元2的两个具体实施例的揭示,本领域技术人员可以知晓,本对比单元11毫无疑问可以完成一个特征对比过程,并且是以机器学习的方式进行的。机器学习的环境,是海量的历史域名解析请求;机器学习的执行算法,既可被本领域技术人员在编程时确定,也可在所述给定规则中给出;机器学习所形成的知识库,即形成所述的学习结果数据。通过娴熟地将机器学习的这些原理运用到本发明的技术实现过程中,使本发明首先具备了一种判定访问异常的能力。
需要指出的是,尽管本发明的实现需要依赖于机器学习所得的学习结果数据,但机器学习的过程,与本发明的对比单元11的执行并不需要同步。通常,可以通过定期或者不定期执行的方式,来实现本发明的机器学习过程,以便获得或者更新所述的学习结果数据。此外,本发明可以对所接收的域名解析请求,进行相对频繁密集的统计,这样每个特征对比过程将变得更加快速,由此便可以实现类似实时的处理效果。特别地,前述各实施例中,如果统计的密度足够频繁,理论上可以先不响应接收到的域名解析请求,而是在先行做出本发明的特征对比后,再确定是否响应这些收到的域名解析请求。这种情况,也应当视为本发明的另一类替代实施方式。
执行本对比单元11后,本发明将能获得特征对比结果,后续可以依据该特征对比结果来实现更为智能化的控制,改善DNS服务器的运行性能,防御互联网恶意攻击。
解析单元12,被配置为仅针对特征相符的域名解析请求进行解析,生成域名解析记录。
由于对比单元11已经对单位时间段内所接收到的域名解析请求量进行了有机统计,并且将之与利用机器学习而得的学习结果数据中的相应数据进行了对应性比较,得出一个特征对比结果,因此,本解析单元12可以据此做出响应。具体而言,本解析单元12的主要任务是按照DNS服务器的正常解析服务功能,对特征相符的当前未获解析的域名解析请求,或者对后续需解析的域名解析请求进行响应,调用DNS服务器固有的递归控制功能,实施域名查询,获得相对应的IP地址,应答相应的域名解析请求。注意,仅仅就特征相符的域名解析请求执行这种惯常的解析和应答过程。
作为本解析单元12的另一种实施例,只要得出特征不相符的对比结果,本解析单元12可以直接丢弃以过滤掉不具有相符特征的域名解析请求,将这些请求的数据包予以忽略,也就直接地达到了前种实现方式的完全相同的效果,后续也无需对相应的域名解析记录做出应答。
应答单元13,用于以该域名解析记录应答相应的域名解析请求。
作为对所述域名解析请求的应答,遵照前述本装置所遵守的逻辑,在本应答单元13中,将经解析单元12递归查询得到的域名解析记录形成应答数据包应答相应的域名解析请求,以使该域名解析请求中的域名能够得到有效的解析。
根据本发明的装置的上述多个实施例的揭示可以看出,本发明在实质通过结合机器学习技术实现了智能攻击行为判定的功能,尽管本文仅给出部分实施例,但依据与本发明的相同的原理,本领域技术人员可以在本文的基础上继续变化出多种判定方法。这种行为判定功能,再结合底层实现,可以实现DNS服务器的更安全的防御效果。
例如,在本发明的一种实施例中,对于接收的每个域名解析请求相对应的网络数据包,可以以类似前述机器学习的方式判断出该网络数据包对应的DNS行为类型,并根据确定的DNS行为类型确定对该网络数据包进行处理的处理主体,进而将该网络数据包转至确定的处理主体进行处理。在本发明实施例中,处理主体可以由两层组成,分别是内核层、应用层。内核层包括网络层、驱动层等,可以实现高速缓存、攻击防护等功能,而应用层可以对网络数据包进行基本解析,包括域名解析后的地址、数据存储地址的获取等。与现有技术中的DNS行为的处理方法相比较,将网络数据包分别划分至内核层和应用层处理,可以将DNS请求根据实际请求处理,若遇到一秒几百万次的DNS请求攻击,也可以由处理能力较强的内核对其进行处理,而遇见时效性要求相对较低的DNS请求,则可以由应用层处理。采用内核和应用层分别处理DNS请求,考虑到内核的巨大的处理能力,能够实现大流量的DNS查询。并且,因DNS请求所导致的修改或启动导致加载时,因内核和应用层是分别处理的,因此可以利用其中之一处理当前DNS请求,另一继续对外提供服务。因此,本发明实施例提高了单机的业务处理能力,大大提高系统的处理能力和安全防护能力的同时,还能实现快速域名动态管理和配置,进而实现很多定制化的复杂功能需求。
当DNS行为类型确定为攻击行为时,那么,可以确定处理主体为内核,而当DNS行为类型为域名解析行为时,可以确定处理主体为应用层。为了提升域名解析服务的响应速度、处理性能及安全防护能力,根据DNS的解析原理,在内核模块中可以实现高速缓存和安全防护,正常情况内核模块能高效、稳定地处理98%的解析请求和绝大部分的攻击防护。而处理逻辑相对复杂,对性能要求并不是那么高的基础解析和管理功能放在应用层实现。
因此,处理主体为内核时,由内核检测所述网络数据包,过滤将网络数据包中携带的DNS攻击行为;以及,将过滤后的网络数据包转发至应用层进行处理。内核检测网络数据包时,可以启动防DDOS攻击策略、IP限速策略、域名限速策略等策略,相应的,可以在内核中为每个策略设置独立的内部模块,用于实现不同策略。
此处需要说明的是,每个网络数据包都具备一个特征码,且每个特征码是独一无二的,因此,可以根据特征码判断网络数据包的DNS请求的属性,识破伪装成正常数据包的DNS攻击操作。现根据如下步骤判断所述网络数据包中是否携带有DNS攻击行为:
步骤A、计算网络数据包的特征码;
步骤B、判断特征码是否是DNS攻击行为的特征码,若是,执行步骤C,若否,执行步骤D;
步骤C、若是,则确定网络数据包中携带有DNS攻击行为;
步骤D、若否,则确定网络数据包中未携带有DNS攻击行为。
其中,数据库中通常存储有已知DNS攻击行为的特征码的集合,当需要校验时,将步骤A中计算出的特征码与数据库的集合进行匹配,若步骤A计算出的特征码存在所述集合中,则是DNS攻击行为,反之则不是。
其中,特征码可以根据IP或域名等域名信息确定,例如,计算指定时间内接收的来自同一IP的网络数据包数得到特征码,和/或计算指定时间内接收的来自同一域名的网络数据包数。若1秒内从同一IP或同一域名接收的网络数据包数远远大于应该接收的包数,就证明该IP地址或域名已被变成攻击源。这也是IP限速策略、域名限速策略的基本原理。被证明变为攻击源的IP地址或域名,之后再接收到来自这一源头的网络数据包,可以直接舍弃或过滤掉,避免被其攻击,提高系统安全性能及处理效率。
内核对攻击行为进行过滤之后,将网络数据包发至应用层进行处理。应用层可以对网络数据包进行解析,获取域名对应的地址信息,从而获取相关数据反馈给客户端。以及,应用层可以对域名信息等数据进行管理,实现数据管理功能。
依据本发明所实现的DNS服务器,还可以结合虚拟根节点等提供安全服务,当根节点出现DNS解析故障时,虚拟根节点能够代替根节点实现DNS解析功能。为实现虚拟根节点这一功能,可以利用历史域名解析记录构造一个授权信息数据库,授权信息数据库中必须存储有足够的信息,即,授权信息数据库中存储指定区域内的所有DNS请求及对应的授权信息,这样虚拟根节点才能够有足够的资源对DNS请求进行应答。因此,虚拟根节点的实现是在授权信息数据库的基础上实现的。结合新增的授权信息数据库以及虚拟根节点,能够在根节点解析故障的时候为客户端提供DNS解析功能,能够降低DNS单点故障和提高DNS防御攻击能力,同时还可以对虚拟根节点设置访问权限控制,屏蔽DNS的攻击数据,提高DNS解析的安全性及稳定性。对于危险DNS攻击,从授权信息数据库中查询不到具体的授权信息,则虚拟根节点不会为其提供解析服务等。
综上所述,本发明的实施,使DNS服务器能够更智能地理解DNS攻击,优化运行效率,起到灾备系统的作用。
应当注意,在此提供的算法和公式不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解本发明各个方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法和装置解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网站安全检测设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (22)
1.一种机器学习型域名系统安全防御方法,其特征在于,包括如下步骤:
将所接收的域名解析请求所含的数据与依据给定规则对历史域名解析记录运算而得的学习结果数据进行特征对比;
统计单位时段内接收的域名解析请求,以域名解析请求中各域名的请求量为第一特征;
以所述学习结果数据中给定的划分时段内针对相应域名发起的域名解析请求的次数为第二特征,所述单位时间段的时间长度小于所述划分时段的时间长度;
以域名相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定基于该相同域名后续发起的域名解析请求的特征对比不相符,否则特征对比相符;
仅针对特征相符的域名解析请求进行解析,生成域名解析记录;
以该域名解析记录应答相应的域名解析请求。
2.根据权利要求1所述的机器学习型域名系统安全防御方法,其特征在于,本方法以至少一个机器参数超过预设阈值而触发,所述机器参数包括本机所接收的域名解析请求的请求量、本机CPU和/或内存占用比例。
3.根据权利要求1所述的机器学习型域名系统安全防御方法,其特征在于,所述历史域名解析记录既包括经本方法对比后进行解析生成的域名解析记录,也包括未经本方法对比而直接解析生成的域名解析记录。
4.根据权利要求1所述的机器学习型域名系统安全防御方法,其特征在于,所述给定规则包含用于表征对历史域名解析记录进行统计运算的各划分时段或据以确定该些划分时段的时间密度。
5.根据权利要求4所述的机器学习型域名系统安全防御方法,其特征在于,所述学习结果数据包括存在映射关系的如下数据类型:从历史域名解析记录中提取的域名、依据给定规则确定的划分时段、基于该相应划分时段下相应域名被请求解析的次数。
6.根据权利要求5所述的机器学习型域名系统安全防御方法,其特征在于,所述依据给定规则对历史域名解析记录运算的过程,包括定期或不定期执行的如下步骤:
读取用于记载历史域名解析记录的第一数据集;
依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果;
将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
7.根据权利要求4所述的机器学习型域名系统安全防御方法,其特征在于,所述学习结果数据包括存在映射关系的如下数据类型:从历史域名解析记录中提取并划分的源IP地址/源IP地址段、依据给定规则确定的划分时段、基于该相应划分时段下相应源IP地址/源IP地址段发起域名解析请求的次数。
8.根据权利要求7所述的机器学习型域名系统安全防御方法,其特征在于,所述依据给定规则对历史域名解析记录运算的过程,包括定期或不定期执行的如下步骤:
读取用于记载历史域名解析记录的第一数据集;
依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果;
将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
9.根据权利要求1所述的机器学习型域名系统安全防御方法,其特征在于,进行特征对比的步骤包括如下子步骤:
统计单位时段内接收的域名解析请求,以域名解析请求中各源IP地址/源IP地址段发起的请求量为第一特征;
以所述学习结果数据中给定的划分时段内相应源IP地址/源IP地址段发起的域名解析请求的次数为第二特征;
以源IP地址/源IP地址段相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定该些源IP地址/源IP地址段后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
10.根据权利要求9所述的机器学习型域名系统安全防御方法,其特征在于,所述单位时间段的时间长度小于所述划分时段的时间长度。
11.根据权利要求1至10中任意一项所述的机器学习型域名系统安全防御方法,其特征在于:对于特征对比不相符的域名解析请求,直接过滤忽略其请求包。
12.一种机器学习型域名系统安全防御装置,其特征在于,包括:
对比单元,用于将所接收的域名解析请求所含的数据与依据给定规则对历史域名解析记录运算而得的学习结果数据进行特征对比;
第一特征确定模块,用于统计单位时段内接收的域名解析请求,以域名解析请求中各域名的请求量为第一特征;
第二特征确定模块,被配置为以所述学习结果数据中给定的划分时段内针对相应域名发起的域名解析请求的次数为第二特征,所述单位时间段的时间长度小于所述划分时段的时间长度;
数学运算模块,被配置为以域名相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定基于该相同域名后续发起的域名解析请求的特征对比不相符,否则特征对比相符;
解析单元,被配置为仅针对特征相符的域名解析请求进行解析,生成域名解析记录;
应答单元,用于以该域名解析记录应答相应的域名解析请求。
13.根据权利要求12所述的机器学习型域名系统安全防御装置,其特征在于,本装置包括检测单元,被配置为以至少一个机器参数超过预设阈值而运行本装置的其他单元,所述机器参数包括本机所接收的域名解析请求的请求量、本机CPU和/或内存占用比例。
14.根据权利要求12所述的机器学习型域名系统安全防御装置,其特征在于,所述历史域名解析记录既包括经对比单元对比后进行解析生成的域名解析记录,也包括未经对比单元对比而直接解析生成的域名解析记录。
15.根据权利要求12所述的机器学习型域名系统安全防御装置,其特征在于,所述给定规则包含用于表征对历史域名解析记录进行统计运算的各划分时段或据以确定该些划分时段的时间密度。
16.根据权利要求15所述的机器学习型域名系统安全防御装置,其特征在于,所述学习结果数据包括存在映射关系的如下数据类型:从历史域名解析记录中提取的域名、依据给定规则确定的划分时段、基于该相应划分时段下相应域名被请求解析的次数。
17.根据权利要求16所述的机器学习型域名系统安全防御装置,其特征在于,本装置还包括学习单元,用于依据给定规则对历史域名解析记录执行运算以生成所述的学习结果数据,该学习单元包括:
读取模块,用于读取用于记载历史域名解析记录的第一数据集;
执行模块,被配置为依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果;
生成模块,用于将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
18.根据权利要求13所述的机器学习型域名系统安全防御装置,其特征在于,所述学习结果数据包括存在映射关系的如下数据类型:从历史域名解析记录中提取并划分的源IP地址/源IP地址段、依据给定规则确定的划分时段、基于该相应划分时段下相应源IP地址/源IP地址段发起域名解析请求的次数。
19.根据权利要求18所述的机器学习型域名系统安全防御装置,其特征在于,本装置还包括学习单元,用于依据给定规则对历史域名解析记录执行运算以生成所述的学习结果数据,该学习单元包括:
读取模块,用于读取用于记载历史域名解析记录的第一数据集;
执行模块,被配置为依据所述给定规则给出的划分时段或用于确定该划分时段的时间密度,按划分时段对第一数据集中一段预设时间范围内的域名解析记录进行数学统计运算,获得相应的统计结果;
生成模块,用于将该统计结果按照所述学习结果数据的映射关系存储于学习结果数据中。
20.根据权利要求12所述的机器学习型域名系统安全防御装置,其特征在于,所述对比单元包括用于执行所述特征对比的对比单元,该对比单元包括如下子模块:
第一特征确定模块,用于统计单位时段内接收的域名解析请求,以域名解析请求中各源IP地址/源IP地址段发起的请求量为第一特征;
第二特征确定模块,被配置为以所述学习结果数据中给定的划分时段内相应源IP地址/源IP地址段发起的域名解析请求的次数为第二特征;
数学运算模块,被配置为以源IP地址/源IP地址段相同为约束条件,将第一特征与第二特征进行对比,当第一特征大于第二特征时,确定该些源IP地址/源IP地址段后续发起的域名解析请求的特征对比不相符,否则特征对比相符。
21.根据权利要求20所述的机器学习型域名系统安全防御装置,其特征在于,所述单位时间段的时间长度小于所述划分时段的时间长度。
22.根据权利要求12至21中任意一项所述的机器学习型域名系统安全防御装置,其特征在于:所述应答单元,被配置为对于特征对比不相符的域名解析请求,直接过滤忽略其请求包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410829121.7A CN104506538B (zh) | 2014-12-26 | 2014-12-26 | 机器学习型域名系统安全防御方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410829121.7A CN104506538B (zh) | 2014-12-26 | 2014-12-26 | 机器学习型域名系统安全防御方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104506538A CN104506538A (zh) | 2015-04-08 |
CN104506538B true CN104506538B (zh) | 2018-01-19 |
Family
ID=52948253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410829121.7A Active CN104506538B (zh) | 2014-12-26 | 2014-12-26 | 机器学习型域名系统安全防御方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104506538B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842060B1 (en) * | 2016-07-13 | 2017-12-12 | Seagate Technology Llc | Cache over-provisioning in a data storage device |
CN109313676B (zh) * | 2016-09-23 | 2022-01-25 | 惠普发展公司,有限责任合伙企业 | 基于安全级别和访问历史的ip地址访问 |
CN106713303A (zh) * | 2016-12-19 | 2017-05-24 | 北京启明星辰信息安全技术有限公司 | 一种恶意域名检测方法及系统 |
CN109495423A (zh) * | 2017-09-11 | 2019-03-19 | 网宿科技股份有限公司 | 一种防止网络攻击的方法及系统 |
CN107707569A (zh) * | 2017-11-10 | 2018-02-16 | 北京知道创宇信息技术有限公司 | Dns请求处理方法及dns系统 |
CN109284833B (zh) * | 2018-08-22 | 2023-07-18 | 中国平安人寿保险股份有限公司 | 为机器学习模型获取特征数据的方法、设备和存储介质 |
CN111865876B (zh) * | 2019-04-29 | 2021-10-15 | 华为技术有限公司 | 网络的访问控制方法和设备 |
CN110784483B (zh) * | 2019-11-04 | 2020-11-27 | 北京航空航天大学 | 一种基于dga异常域名的事件检测系统及方法 |
CN110891030B (zh) * | 2019-12-26 | 2021-03-16 | 南京烽火星空通信发展有限公司 | 一种基于机器学习的http流量特征识别与提取方法 |
CN111131285B (zh) * | 2019-12-30 | 2022-03-01 | 深圳网基科技有限公司 | 一种针对随机域名攻击的主动防护方法 |
CN111813856A (zh) * | 2020-07-01 | 2020-10-23 | 浪潮云信息技术股份公司 | 一种PostgreSQL高可用性的实现方法 |
CN113556342A (zh) * | 2021-07-21 | 2021-10-26 | 江南信安(北京)科技有限公司 | 一种dns缓存服务器前缀变化攻击防护方法及装置 |
CN115208625A (zh) * | 2022-06-01 | 2022-10-18 | 阿里巴巴(中国)有限公司 | 数据处理方法以及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152442A (zh) * | 2013-01-31 | 2013-06-12 | 中国科学院计算机网络信息中心 | 一种僵尸网络域名的检测与处理方法及系统 |
CN103685599A (zh) * | 2013-12-09 | 2014-03-26 | 中国科学院计算机网络信息中心 | 一种域名递归服务的预判干预方法 |
CN103944788A (zh) * | 2014-05-06 | 2014-07-23 | 国家计算机网络与信息安全管理中心 | 基于网络通信行为的未知木马检测方法 |
CN103957195A (zh) * | 2014-04-04 | 2014-07-30 | 上海聚流软件科技有限公司 | Dns系统以及dns攻击的防御方法和防御装置 |
CN103957201A (zh) * | 2014-04-18 | 2014-07-30 | 上海聚流软件科技有限公司 | 基于dns的域名信息处理方法、装置及系统 |
CN104219335A (zh) * | 2013-05-30 | 2014-12-17 | 张大顺 | 一种dns请求的处理方法、装置及系统 |
-
2014
- 2014-12-26 CN CN201410829121.7A patent/CN104506538B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152442A (zh) * | 2013-01-31 | 2013-06-12 | 中国科学院计算机网络信息中心 | 一种僵尸网络域名的检测与处理方法及系统 |
CN104219335A (zh) * | 2013-05-30 | 2014-12-17 | 张大顺 | 一种dns请求的处理方法、装置及系统 |
CN103685599A (zh) * | 2013-12-09 | 2014-03-26 | 中国科学院计算机网络信息中心 | 一种域名递归服务的预判干预方法 |
CN103957195A (zh) * | 2014-04-04 | 2014-07-30 | 上海聚流软件科技有限公司 | Dns系统以及dns攻击的防御方法和防御装置 |
CN103957201A (zh) * | 2014-04-18 | 2014-07-30 | 上海聚流软件科技有限公司 | 基于dns的域名信息处理方法、装置及系统 |
CN103944788A (zh) * | 2014-05-06 | 2014-07-23 | 国家计算机网络与信息安全管理中心 | 基于网络通信行为的未知木马检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104506538A (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104506538B (zh) | 机器学习型域名系统安全防御方法和装置 | |
CN107465651B (zh) | 网络攻击检测方法及装置 | |
US10044737B2 (en) | Detection of beaconing behavior in network traffic | |
US11032304B2 (en) | Ontology based persistent attack campaign detection | |
US8051484B2 (en) | Method and security system for indentifying and blocking web attacks by enforcing read-only parameters | |
CN104509034B (zh) | 模式合并以识别恶意行为 | |
CN107819783A (zh) | 一种基于威胁情报的网络安全检测方法及系统 | |
US8117655B2 (en) | Detecting anomalous web proxy activity | |
CN104579773B (zh) | 域名系统分析方法及装置 | |
CN108353079A (zh) | 对针对基于云的应用的网络威胁的检测 | |
CN107404465A (zh) | 网络数据分析方法及服务器 | |
CN107835149A (zh) | 基于dns流量分析的网络窃密行为检测方法以及装置 | |
CN107294982A (zh) | 网页后门检测方法、装置及计算机可读存储介质 | |
CN110677384B (zh) | 钓鱼网站的检测方法及装置、存储介质、电子装置 | |
EP3322157A1 (en) | Profiling domain name system (dns) traffic | |
EP3662401B1 (en) | Detecting malicious configuration change for web applications | |
CN110213208A (zh) | 一种处理请求的方法和装置以及存储介质 | |
US11882147B2 (en) | Method and apparatus for determining a threat using distributed trust across a network | |
CN114615016B (zh) | 一种企业网络安全评估方法、装置、移动终端及存储介质 | |
Ramadhan et al. | Sudomy: information gathering tools for subdomain enumeration and analysis | |
EP3704585A1 (en) | Consumer threat intelligence service | |
CN107612925A (zh) | 一种基于访问行为特征的WebShell挖掘方法 | |
CN110149319A (zh) | Apt组织的追踪方法及装置、存储介质、电子装置 | |
CN108400955A (zh) | 一种网络攻击的防护方法及系统 | |
WO2018025258A1 (en) | Method and system for detecting movement of malware and other potential threats |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220808 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |