著录项信息
专利名称 | 一种网络攻击过滤方法及装置 |
申请号 | CN201210226566.7 | 申请日期 | 2012-06-29 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2012-10-17 | 公开/公告号 | CN102739683A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6;;;H;0;4;L;2;9;/;1;2查看分类表>
|
申请人 | 杭州迪普科技有限公司 | 申请人地址 | 浙江省杭州市滨江区通和路68号中财大厦6层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 杭州迪普科技股份有限公司 | 当前权利人 | 杭州迪普科技股份有限公司 |
发明人 | 李鑫 |
代理机构 | 北京博思佳知识产权代理有限公司 | 代理人 | 林祥 |
摘要
本发明提供一种网络攻击过滤方法,应用于安全设备上,为DNS服务器提供网络攻击过滤的服务,该方法包括:A、在收到用户的DNS请求报文时判断是否为首次发送,如果否,转步骤B处理,否则丢弃该报文并将该DNS会话信息以及用户行为参数作为保存到DNS会话表中;B、从DNS会话表中获取与当前DNS请求报文携带的会话信息对应的用户行为参数,并判断当前报文携带的用户行为参数与DNS会话表中记录的用户行为参数之间的差异是否符合正常用户行为标准,如果是则合法,否则丢弃该报文。本发明用户协议栈上的行为特点,有效地过滤了对于DNS服务器的攻击。
1.一种网络攻击过滤装置,应用于安全设备上,为DNS服务器提供网络攻击过滤的服务,该装置包括报文区分单元以及行为分析单元,其特征在于:
报文区分单元,用于在收到用户的DNS请求报文时判断DNS请求报文携带的DNS会话信息在DNS会话表中是否有相应的记录,如果是,则提交行为分析单元进行处理,否则丢弃该DNS请求报文以促使用户重传该DNS请求报文,并将该DNS请求报文携带的DNS会话信息以及用户行为参数作为一条记录保存到DNS会话表中,其中所述DNS会话信息至少包括目的域名以及源IP地址;
行为分析单元,用于从DNS会话表中获取与当前DNS请求报文携带的会话信息对应的用户行为参数,并判断当前DNS请求报文携带的用户行为参数与DNS会话表中记录的用户行为参数之间的差异是否符合正常用户行为标准,如果是则确定该DNS请求报文合法,否则确定该DNS请求报文不合法,并丢弃该DNS请求报文;
其中,所述用户行为参数为DNS请求报文的接收时间和/或DNS请求报文携带的IP ID;所述正常用户行为标准相应为当前DNS请求报文的接收时间与DNS会话表中记录的接收时间的差值在预设的范围内,和/或当前DNS请求报文携带的IP ID与DNS会话表中记录的IP ID不相同。
2.如权利要求1所述的装置,其特征在于,所述DNS会话信息进一步包括DNS请求报文的目的IP地址。
3.如权利要求1所述的装置,其特征在于,所述行为分析单元用于在确定当前DNS请求报文携带的用户行为参数与DNS会话表中记录的用户行为参数之间的差异符合正常用户行为标准时,进一步判断当前DNS请求报文的重传次数是否达到预设的阈值,如果是则确定该DNS请求报文合法,否则丢弃该DNS请求报文以促使用户重传该DNS请求报文。
4.如权利要求3所述的装置,其特征在于,所述预设的阈值大于或者等于2。
5.一种网络攻击过滤方法,应用于安全设备上,为DNS服务器提供网络攻击过滤的服务,其特征在于,该方法包括:
A、在收到用户的DNS请求报文时判断DNS请求报文携带的DNS会话信息在DNS会话表中是否有相应的记录,如果是,转步骤B处理,否则丢弃该DNS请求报文以促使用户重传该DNS请求报文,并将该DNS请求报文携带的DNS会话信息以及用户行为参数作为一条记录保存到DNS会话表中,其中所述DNS会话信息至少包括目的域名以及源IP地址;
B、从DNS会话表中获取与当前DNS请求报文携带的会话信息对应的用户行为参数,并判断当前DNS请求报文携带的用户行为参数与DNS会话表中记录的用户行为参数之间的差异是否符合正常用户行为标准,如果是则确定该DNS请求报文合法,否则确定该DNS请求报文不合法,并丢弃该DNS请求报文;
其中,所述用户行为参数为DNS请求报文的接收时间和/或DNS请求报文携带的IP ID;所述正常用户行为标准相应为当前DNS请求报文的接收时间与DNS会话表中记录的接收时间的差值在预设的范围内,和/或当前DNS请求报文携带的IP ID与DNS会话表中记录的IP ID不相同。
6.如权利要求5所述的方法,其特征在于,所述DNS会话信息进一步包括DNS请求报文的目的IP地址。
7.如权利要求5所述的方法,其特征在于,所述步骤B进一步包括:在确定当前DNS请求报文携带的用户行为参数与DNS会话表中记录的用户行为参数之间的差异符合正常用户行为标准时,进一步判断当前DNS请求报文的重传次数是否达到预设的阈值,如果是则确定该DNS请求报文合法,否则丢弃该DNS请求报文以促使用户重传该DNS请求报文。
8.如权利要求7所述的方法,其特征在于,所述预设的阈值大于或者等于2。
一种网络攻击过滤方法及装置\n技术领域\n[0001] 本发明涉及网络安全技术,尤其涉及一种应用于安全设备上保护DNS服务器的网络攻击过滤方法及装置。\n背景技术\n[0002] 人们的工作和生活正在从不断进步的网络技术上受益,然而随着网络规模的迅速扩大,网络安全问题变得日益严峻。网络上的各种攻击行为层出不穷,DoS(Denial of Service拒绝服务)攻击就是其中最为典型的网络攻击行为。DDoS(分布式拒绝服务)攻击自从2000年首次出现后,DDoS攻击事件每天都在发生,而且呈现出越演越烈的状态。许多个人用户和各类企业网络遭受到DDoS攻击。DDos攻击可导致网络拥塞、服务器或其他主机停止处理用户请求、企业网站瘫痪、企业网络不能工作等问题。这些问题严重影响人们的生活和社会的工作。\n[0003] 攻击者往往会选择网络中的关键节点展开攻击,比如针对DNS服务器进行攻击。\n因为DNS服务器较容易接触,恶意攻击者易于发起针对DNS服务器的DDoS攻击。然而DNS服务器又很重要,一旦DNS服务器被攻击,可能会导致整个区域网络不可用,甚至因为DNS的递归查询方式导致整个DNS服务群瘫痪,因此保证DNS服务器的安全尤为重要。\n[0004] 现有的DNS服务器防DDoS攻击的方案通常是在被保护DNS服务器前增加检测防护设备(以下简称安全设备),安全设备的工作机制包括:\n[0005] 机制A:实时检测每个用户的DNS请求数,当检测到某用户DNS请求报文数量超过设定的每个用户请求的正常阀值,则判定DNS服务器遭受到该用户攻击,此时启动针对该用户的限速防护策略,把该用户流量限制到可接受范围,从而保护DNS服务器。\n[0006] 机制B:实时检测DNS请求报文的总数量,当检测到DNS请求报文的总数量超过设定的正常阀值,则判定DNS服务器可能遭受到分布式拒绝服务攻击,此时启动总的限速防护策略,把总流量限制DNS服务器可承受范围,从而保护DNS服务器。\n[0007] 机制A需要监测每个用户的DNS请求报文的数量,即需要维护每个用户的请求报文数量的统计,当面对成千上万的用户时维护的难度成倍增加。而且恶意攻击者可能伪装成正常用户,发出大量伪装DNS请求报文,此时限速机制可能导致该正常用户无法正常使用网络。而且如果恶意攻击者采用分布式,离散性的攻击方式导致机制A无法区分正常访问和恶意访问,只能通过机制B进行总体限速,然而机制B的限速手段会导致正常访问用户也受到限速影响。\n[0008] 此外,无论是机制A还是机制B,都存在检测可能不及时的问题,当攻击呈现出突发与大量特点时,虽然可以被安全设备检测到,但由于检测可能存在滞后性,大量恶意攻击流量可能在这段检测滞后的时间段越过安全设备访问了DNS服务器,而DNS服务器也很可能因为瞬间大量突发攻击流量而瘫痪,安全设备的保护失去了意义。如何确保DNS设备免受DDoS攻击并尽可能地将对用户正常访问的影响降到最低,是目前安全设备提供商迫切需要解决的问题。\n发明内容\n[0009] 本发明提供一种网络攻击过滤装置,应用于安全设备上,为DNS服务器提供网络攻击过滤的服务,该装置包括报文区分单元以及行为分析单元,其中:\n[0010] 报文区分单元,用于在收到用户的DNS请求报文时判断DNS请求报文携带的DNS会话信息在DNS会话表中是否有相应的记录,如果是,则提交行为分析单元进行处理,否则丢弃该DNS请求报文以促使用户重传该DNS请求报文,并将该DNS请求报文携带的DNS会话信息以及用户行为参数作为一条记录保存到DNS会话表中,其中所述DNS会话信息至少包括目的域名以及源IP地址;\n[0011] 行为分析单元,用于从DNS会话表中获取与当前DNS请求报文携带的会话信息对应的用户行为参数,并判断当前DNS请求报文携带的用户行为参数与DNS会话表中记录的用户行为参数之间的差异是否符合正常用户行为标准,如果是则确定该DNS请求报文合法,否则确定该DNS请求报文不合法,并丢弃该DNS请求报文。\n[0012] 本发明还提供一种网络攻击过滤方法,应用于安全设备上,为DNS服务器提供网络攻击过滤的服务,该方法包括:\n[0013] A、在收到用户的DNS请求报文时判断DNS请求报文携带的DNS会话信息在DNS会话表中是否有相应的记录,如果是,转步骤B处理,否则丢弃该DNS请求报文以促使用户重传该DNS请求报文,并将该DNS请求报文携带的DNS会话信息以及用户行为参数作为一条记录保存到DNS会话表中,其中所述DNS会话信息至少包括目的域名以及源IP地址;\n[0014] B、从DNS会话表中获取与当前DNS请求报文携带的会话信息对应的用户行为参数,并判断当前DNS请求报文携带的用户行为参数与DNS会话表中记录的用户行为参数之间的差异是否符合正常用户行为标准,如果是则确定该DNS请求报文合法,否则确定该DNS请求报文不合法,并丢弃该DNS请求报文。\n[0015] 本发明巧妙地利用了DNS流程中用户协议栈上的行为特点,有效地过滤了对于DNS服务器的攻击,对于DDoS这样的攻击过滤效果显著,并且对于用户上网体验的影响非常轻微,难以被感知到。\n附图说明\n[0016] 图1是本发明一种实施方式中网络攻击过滤装置的逻辑结构图。\n[0017] 图2是本发明一种典型的组网示意图。\n[0018] 图3是本发明一种实施方式网络攻击过滤方法的处理流程图。\n具体实施方式\n[0019] 本发明为DNS服务器提供一种精确的网络攻击过滤方法及装置,其设计原理不再像现有技术那样从报文数量以及速率着手进行粗犷式地防护,而是从用户对DNS服务器正常访问的行为特点着手,甄别出用户正常的访问与恶意攻击。请参考图1,以计算机程序实现为例(本发明并不排除其他实现方式),本发明一种网络攻击过滤装置应用于安全设备上,为DNS服务器提供网络攻击过滤的服务,该装置包括:报文区分单元以及行为分析单元。安全设备可以采用流行的硬件架构,其主要包括CPU、内存、存储器以及包括业务插卡在内的各种业务硬件(并不是必须的)。在一种基础性的实施方式中,请参考图2以及图3,所述网络攻击过滤装置运行时主要包括以下步骤:\n[0020] 步骤101,报文区分单元收到用户的DNS请求报文,判断DNS请求报文携带的DNS会话信息在DNS会话表中是否有相应的记录,如果是,则转步骤102提交行为分析单元进行处理,否则丢弃该DNS请求报文以促使用户重传该DNS请求报文,并将该DNS请求报文携带的DNS会话信息以及用户行为参数作为一条记录保存到DNS会话表中,其中所述DNS会话信息至少包括目的域名以及源IP地址。\n[0021] 步骤102,行为分析单元从DNS会话表中获取与当前DNS请求报文携带的会话信息对应的用户行为参数,并判断当前DNS请求报文携带的用户行为参数与DNS会话表中记录的用户行为参数之间的差异是否符合正常用户行为标准,如果是则确定该DNS请求报文合法,否则确定该DNS请求报文不合法,并丢弃该DNS请求报文。\n[0022] 在本发明中,首先需要从DNS请求这个应用维度来记录每个用户的DNS会话信息。\nDNS会话信息用来唯一标识一个DNS会话,DNS会话是一种应用级的会话,通常对应表示用户(比如某个IP地址)针对一个特定域名(比如Sina)的DNS请求。如果用户针对Sina进行第一次域名解析失败,比如DNS请求报文因为各种原因在传输过程中被丢弃了,通常用户操作系统的协议栈会在预设的时间内重新发送DNS请求报文,如果第二次DNS请求依然没有成功,那么协议栈会进行再次重新发送DNS请求报文。每次重新发送的时间间隔可能并不一样,比如XP系统中第一次重传的时间间隔大约为1秒,而第二次重传与第一次重传的时间间隔则会提高到大约2秒。不同的操作系统,重传的时间间隔的设计上可能略有差异,但这种差异并不影响本发明的具体实现。由于攻击者往往是通过构造DNS请求报文进行攻击的,攻击者并不会像正常用户的协议栈那样等待数秒的时间对DNS请求报文进行重传,首先攻击者的主机无法承受这样的处理压力,而且等待这么长的时间,攻击已经显然会失去意义。在一种较佳的实施方式中,本发明正是利用用户这种正常重传行为来过滤攻击者构造的攻击报文。\n[0023] 请参考表1的示例,假设用户(192.168.1.2)首次发送DNS请求向DNS服务器(10.10.1.25)请求解析Sina的IP地址,其发送的DNS请求报文会被安全设备收到,上送到报文区分单元进行处理,报文区分单元提取DNS请求报文携带的DNS会话信息(比如报文的源IP地址以及目的域名)去匹配DNS会话表(初始为空),由于用户是首次请求解析Sina的IP地址,不会匹配到任何一条对应的记录。报文区分单元将该报文携带DNS会话信息以及对应的报文接收时间作为一条新的记录保存到DNS会话表中,并将该DNS请求报文丢弃。\n在优选的实施方式中,DNS会话信息还可以进一步包括目的IP地址和/或TTL值。在少数情况中,用户可能会向不同的DNS服务器(比如说主备两个DNS服务器)发送DNS请求报文,这两个请求显然属于不同的会话,因为会话的对象不一样了。因此可以引入报文的目的IP地址到DNS会话信息中,这样DNS会话信息对DNS会话的标识将更加精确。当然为了,更加精确地标识,还可以引入TTL值,因为大部分的操作系统的协议栈在重传DNS请求报文时都会使用相同的TTL值。\n[0024] \n 源IP地址 目的IP地址 目的域名 TTL IP ID 接收时间 重传次数\n 192.168.1.5 10.10.1.25 Google a 123 X 1\n 192.168.1.6 10.10.1.25 Baidu b 254 Y 2\n 192.168.1.7 10.10.1.25 Sina c 584 Z 1\n ...... ...... ...... ...... ...... ...... ......\n[0025] 表1\n[0026] 由于用户首次发送的DNS请求报文被丢弃,用户操作系统的协议栈会在等待预定的时间间隔后进行DNS请求报文第一次重传。由于DNS请求报文的DNS会话信息已经被保存到DNS会话列表中。报文区分单元收到重传的DNS请求报文,会从报文中提取到与首次DNS请求报文同样DNS会话信息,因而查找DNS会话表会命中一条记录,此时需要转步骤\n102提交行为分析单元进行处理。\n[0027] 行为分析单元获取DNS会话表中与DNS会话信息对应的报文接收时间(也就是上次DNS请求报文的接收时间),然后将当前DNS请求报文的接收时间与获取的报文接收时间进行对比,如果两者的差值符合预设的重传时间间隔标准,那么当前的DNS请求报文可以确定为合法的DNS请求报文,否则确定为攻击报文。以XP系统为例,假设XP系统的重传间隔为1秒,那么接收用户首次发送的DNS请求报文到接收到用户重传DNS请求报文的时间间隔必然大于等于1秒,考虑到网络延迟的因素,这个时间间隔可能会大于1S,因此可以根据实际情况预设一个正常的重传时间间隔标准,比如说大于1秒小于等于1.5秒这样一个范围。如果行为分析单元分析后发现时间间隔不再上述范围中,则说明当前DNS请求报文并不是用户正常重传的DNS请求报文,多数是攻击者仿冒用户发送的DNS请求报文,于是可以确定当前DNS请求报文的是不合法的,并将该报文丢弃。\n[0028] 在上述的实施方式中,是以报文接收时间作为用户行为参数进行示例说明的。在另一实施方式中,还可以使用DNS请求报文携带的IP ID作为用户行为参数。DNS请求报文是一个IP报文,正常用户的协议栈每发送一个IP报文均会将IP ID加1,这样一来对于安全设备来说,收到一个重传的DNS请求报文,其IP ID必然与前一次收到的DNS请求报文的IP ID不同。而攻击者往往并不是按照正常协议栈去处理报文的IP ID的,因为那样太浪费攻击者的计算机处理资源,因此攻击报文的IP ID很多时候都是相同的。在本实施方式中,可以选用IP ID作为用户行为参数来使用。行为分析单元可以比较重传的DNS请求报文IP ID与DNS会话表中记录的IP ID之间的差异,如果两者相同,则可以确定当前DNS请求报文是不合法的,如果不同,则可以确定为合法的。\n[0029] 在优选的实施方式中,报文接收时间以及IP ID除了可以单独使用,还可以结合使用,行为分析单元只有确定IP ID的差异以及报文接收时间的差异均符合对应的正常用户行为标准时才确定当前DNS请求报文是合法的,否则确定为非法的。将两个用户行为参数一起使用,可以让攻击者仿冒用户发送攻击报文的难度变得更大。即便其知晓了本发明这样的防范机制也难以实施攻击。因为本发明会故意将DNS会话中的首次发送的DNS请求报文丢弃,攻击者要想绕过本发明的过滤机制,必须要使得自己的行为与正常用户的行为一样,按照协议栈的正常流程去走,而攻击者往往是大量发送报文,每个报文都按照协议栈的正常流程再进行一次重传,这将需要巨大的计算资源,而且每两个报文中只有一个报文能通过,相当攻击效率下降了50%。需要说明的是,虽然本发明也要求合法用户重传DNS请求报文,但事实上对用户上网体验影响很小,难以被感知到,因为用户可能在首次访问Sina时需要多等待1秒(因为DNS请求需要重传),一旦DNS请求被DNS服务器应答之后,用户获得Sina的IP地址之后就会在本地形成DNS缓存,用户再次访问Sina则不需要进行解析,因为用户本地的DNS缓存会保存Sina与其IP地址的对应关系,只要用户不清空本地的DNS缓存,下次访问Sina时,并不需要发送DNS请求报文来解析Sina的IP地址了。\n[0030] 进一步来说,为了进一步提高本发明的过滤机制安全等级,可以要求用户进行多次重传。行为分析单元在确定当前DNS请求报文携带的用户行为参数与DNS会话表中记录的用户行为参数之间的差异符合正常用户行为标准时,进一步判断DNS会话表中对应的重传次数(初始均为0)是否达到预设的重传阈值,如果是则确定当前DNS请求报文合法,否则将该DNS请求报文丢弃,并将重传次数加1。假设预设的重传阈值是2,则意味着正常用户需要重传两次才能通过行为分析单元的合法性检查。同样的道理,由于用户操作系统有DNS缓存机制,所以对于用户的影响仅仅是首次访问一个网站时等待需要等待3-4秒,这样的时间通常是可以被容忍的,其影响是轻微的。然而对于攻击者的攻击而言,对正常用户的协议栈的模拟要非常彻底,这要消耗极其巨大的计算资源,攻击难度大幅度提高。即便攻击者能够获得这样的计算资源,假设重传阈值为2,那就意味着攻击者发送3个报文才有1个能通过,攻击效率又大幅度降低。本发明巧妙地利用了DNS流程中用户协议栈上的行为特点,有效地过滤了对于DNS服务器的攻击,对于DDoS这样的攻击过滤效果显著,并且对于用户上网体验的影响非常轻微,难以被感知到。\n[0031] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
法律信息
- 2017-03-01
专利权人的姓名或者名称、地址的变更
专利权人由杭州迪普科技有限公司变更为杭州迪普科技股份有限公司
地址由310000 浙江省杭州市滨江区通和路68号中财大厦6层变更为310000 浙江省杭州市滨江区通和路68号中财大厦6层
- 2015-09-09
- 2012-12-12
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201210226566.7
申请日: 2012.06.29
- 2012-10-17
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-09-14
|
2011-05-27
| | |
2
| |
2009-11-04
|
2009-02-10
| | |
3
| |
2010-07-28
|
2010-01-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |