CN103688508B - 报文识别方法和防护设备 - Google Patents

报文识别方法和防护设备 Download PDF

Info

Publication number
CN103688508B
CN103688508B CN201380000558.3A CN201380000558A CN103688508B CN 103688508 B CN103688508 B CN 103688508B CN 201380000558 A CN201380000558 A CN 201380000558A CN 103688508 B CN103688508 B CN 103688508B
Authority
CN
China
Prior art keywords
message
mtu
value
preventer
source node
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
Application number
CN201380000558.3A
Other languages
English (en)
Other versions
CN103688508A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103688508A publication Critical patent/CN103688508A/zh
Application granted granted Critical
Publication of CN103688508B publication Critical patent/CN103688508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种攻击防范处理方法和防护设备,该攻击防范处理方法包括:防护设备接收第一报文;如果确定第一报文为ICMPv6分组太大报文,则解析第一报文,获得第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值;根据源节点的IP地址和目的节点的IP地址,确定源节点和目的节点之间路径上合法的MTU的范围;如果确定上述MTU的值不属于合法的MTU的范围,则对第一报文进行攻击防范处理。本发明可以实现在防护设备上识别正常的ICMPv6分组太大报文和攻击的ICMPv6分组太大报文,进而可以实现对路径MTU攻击进行防护。

Description

报文识别方法和防护设备
技术领域
本发明涉及通信技术,尤其涉及一种报文识别方法和防护设备。
背景技术
当前,因特网协议版本4(InternetProtocolversion4;以下简称:IPv4)在使用过程中逐渐暴露了地址资源短缺和对新业务支持的不足的问题,因特网协议版本6(InternetProtocolversion6;以下简称:IPv6)处于小规模试点到大规模使用阶段,随着IPv6的大规模使用,其安全问题越来越突出,将影响运营商的运营。
路径最大传输单元(MaximumTransmissionUnit;以下简称:MTU)是一种各种协议用来寻找因特网(Internet)上整条路径中支持的MTU的技术,小于MTU限制的数据可以不用进行分片传输。路径MTU发现机制利用因特网控制报文协议版本6(InternetControlMessageProtocolversion6;以下简称:ICMPv6)协议来发现从源节点到目的节点之间所有路径上的最小MTU。
由于IPv6协议规定数据转发节点不进行分片操作,由源节点执行分片,由目的节点进行分片重组,如果不采用路径MTU发现机制,那么IPv6网络中的节点将使用默认的1280字节作为路径MTU,凡是大于1280字节的数据包均需要经过分片操作,因此采用路径MTU发现机制可以降低分片的概率,同时提高网络传输的效率。
恶意节点基于上述路径MTU发现机制可以通过向受攻击节点发送伪造的因特网控制报文协议(InternetControlMessageProtocol;以下简称:ICMP)虚假消息,增加受攻击节点的处理负荷,造成受攻击节点堆栈过载、或者受攻击节点与其他节点的正常通信中断。
目前,通常只能通过关闭路径MTU发现机制这一功能来避免路径MTU攻击,但是这会降低网络的传输效率,因此现有技术并未提供有效的防护措施。
发明内容
本发明提供一种报文识别方法和防护设备,以解决现有技术不能对路径MTU攻击进行有效防护的问题。
本发明第一方面提供一种攻击防范处理方法,包括:
防护设备接收第一报文;
如果所述防护设备确定所述第一报文为因特网控制报文协议版本6ICMPv6分组太大报文,则所述防护设备解析所述第一报文,获得所述第一报文携带的源节点的因特网协议IP地址、目的节点的IP地址和最大传输单元MTU的值;
所述防护设备根据所述源节点的IP地址和所述目的节点的IP地址,确定所述源节点和所述目的节点之间路径上合法的MTU的范围;
如果所述防护设备确定所述MTU的值不属于所述源节点和所述目的节点之间路径上合法的MTU的范围,则所述防护设备对所述第一报文进行攻击防范处理。
结合第一方面,在第一方面的第一种可能的实现方式中,所述防护设备根据所述源节点的IP地址和所述目的节点的IP地址,确定所述源节点和所述目的节点之间路径上合法的MTU的范围包括:
所述防护设备根据所述源节点的IP地址和所述目的节点的IP地址,获得所述防护设备保存的所述源节点至所述目的节点路径上MTU的值和所述目的节点至所述源节点路径上MTU的值,确定所述源节点和所述目的节点之间路径上合法的MTU的范围的上限值为所述源节点至所述目的节点路径上MTU的值和所述目的节点至所述源节点路径上MTU的值中的较大值,确定所述源节点和所述目的节点之间路径上合法的MTU的范围的下限值为所述源节点至所述目的节点路径上MTU的值和所述目的节点至所述源节点路径上MTU的值中的较小值;或者,
所述防护设备根据所述源节点的IP地址和所述目的节点的IP地址,从保存的IP地址对与路径MTU的范围的对应关系中,查询得到为所述源节点和所述目的节点之间的路径配置的路径MTU的范围。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述防护设备对所述第一报文进行攻击防范处理包括:
如果所述防护设备确定所述第一报文为所述第一报文所属数据流的首报文,则所述防护设备丢弃所述第一报文,以触发ICMPv6分组太大报文的重传;
如果所述防护设备在预设的第一时间长度内接收到重传的第二报文,所述第二报文是ICMPv6分组太大报文,则所述防护设备确定所述第一报文为正常的ICMPv6分组太大报文,并放行所述第二报文。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
如果所述防护设备确定所述第一报文不是所述第一报文所属数据流的首报文,或者所述防护设备在预设的第一时间长度内未接收到重传的第二报文,则所述防护设备生成探测报文,并向所述源节点发送所述探测报文,所述探测报文的报文长度大于所述防护设备从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;
如果所述防护设备在预设的第二时间长度内接收到第三报文,所述第三报文是ICMPv6分组太大报文,则所述防护设备判断所述第三报文中是否包括认证字段;
如果包括,则所述防护设备判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;
如果相同,则所述防护设备比较所述第一报文和所述第三报文携带的MTU的值;
如果所述第一报文和第三报文所携带的MTU的值之差小于预设阈值,则所述防护设备确定第一报文为正常的ICMPv6分组太大报文。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述防护设备对所述第一报文进行攻击防范处理包括:
所述防护设备生成探测报文,并向所述源节点发送所述探测报文,所述探测报文的报文长度大于所述防护设备从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;
如果所述防护设备在预设的第二时间长度内接收到第三报文,所述第三报文为ICMPv6分组太大报文,则所述防护设备判断所述第三报文中是否包括认证字段;
如果包括,则所述防护设备判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;
如果相同,则所述防护设备比较所述第一报文和所述第三报文携带的MTU的值;
如果所述第一报文和所述第三报文所携带的MTU的值之差小于预设阈值,则所述防护设备确定所述第一报文为正常的ICMPv6分组太大报文。
结合第一方面的第二种、第三种或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述防护设备确定所述第一报文为正常的ICMPv6分组太大报文之后,还包括:
所述防护设备将保存的所述源节点至所述目的节点路径上MTU的值更新为所述防护设备从所述第一报文中获得的MTU的值。
结合第一方面,在第一方面的第六种可能的实现方式中,所述防护设备接收第一报文之后,还包括:
如果所述防护设备确定所述第一报文不是ICMPv6分组太大报文,并且所述防护设备确定所述第一报文为正常的业务报文,则所述防护设备解析所述第一报文,获得所述第一报文携带的源节点的IP地址和目的节点的IP地址,并判断所述第一报文的报文长度是否大于保存的所述源节点至所述目的节点路径上MTU的值;
如果所述第一报文是正常的业务报文、且所述第一报文的报文长度大于保存的所述源节点至所述目的节点路径上MTU的值,则所述防护设备将所述源节点至所述目的节点路径上MTU的值更新为所述第一报文的报文长度。
本发明第二方面提供一种防护设备,包括:
接收模块,用于接收第一报文;
确定模块,用于确定所述接收模块接收的第一报文是否为因特网控制报文协议版本6ICMPv6分组太大报文;
解析模块,用于当所述确定模块确定所述第一报文为ICMPv6分组太大报文时,解析所述第一报文,获得所述第一报文携带的源节点的因特网协议IP地址、目的节点的IP地址和最大传输单元MTU的值;
所述确定模块,还用于根据所述解析模块获得的所述源节点的IP地址和所述目的节点的IP地址,确定所述源节点和所述目的节点之间路径上合法的MTU的范围;以及确定所述解析模块获得的MTU的值是否属于所述源节点和所述目的节点之间路径上合法的MTU的范围;
防护模块,用于当所述确定模块确定所述解析模块获得的MTU的值不属于所述源节点和所述目的节点之间路径上合法的MTU的范围时,对所述接收模块接收的第一报文进行攻击防范处理。
结合第二方面,在第二方面的第一种可能的实现方式中,所述防护模块包括:
确定单元,用于确定所述接收模块接收的第一报文是否为所述第一报文所属数据流的首报文;
丢弃单元,用于当所述确定单元确定所述第一报文为所述第一报文所属数据流的首报文时,丢弃所述第一报文,以触发ICMPv6分组太大报文的重传;
第一放行单元,用于当在预设的第一时间长度内接收到重传的第二报文,所述第二报文是ICMPv6分组太大报文时,确定所述第一报文为正常的ICMPv6分组太大报文,并放行所述第二报文。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述防护模块还包括:
第一生成单元,用于当所述确定单元确定所述第一报文不是所述第一报文所属数据流的首报文,或者在预设的第一时间长度内未接收到重传的第二报文时,生成探测报文,所述探测报文的报文长度大于所述解析模块从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;
第一发送单元,用于向所述源节点发送所述第一生成单元生成的探测报文;
第一判断单元,用于当在预设的第二时间长度内接收到第三报文,所述第三报文是ICMPv6分组太大报文时,判断所述第三报文中是否包括认证字段;以及当所述第三报文中包括认证字段时,判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;
第一比较单元,用于当所述第一判断单元确定所述第三报文中的认证字段的值与所述探测报文中的认证字段的值相同时,比较所述第一报文和所述第三报文携带的MTU的值;
所述第一放行单元,还用于当所述第一比较单元确定所述第一报文和所述第三报文携带的MTU的值之差小于预设阈值时,确定所述第一报文为正常的ICMPv6分组太大报文。
结合第二方面,在第二方面的第三种可能的实现方式中,所述防护模块包括:
第二生成单元,用于生成探测报文,所述探测报文的报文长度大于所述解析模块从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;
第二发送单元,用于向所述源节点发送所述第二生成单元生成的探测报文;
第二判断单元,用于当在预设的第二时间长度内接收到第三报文,所述第三报文为ICMPv6分组太大报文时,判断所述第三报文中是否包括认证字段;以及当所述第三报文中包括认证字段时,判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;
第二比较单元,用于当所述第二判断单元确定所述第三报文中的认证字段的值与所述探测报文中的认证字段的值相同时,比较所述第一报文和所述第三报文携带的MTU的值;
第二放行单元,用于当所述第二比较单元确定所述第一报文和所述第三报文携带的MTU的值之差小于预设阈值时,确定所述第一报文为正常的ICMPv6分组太大报文。
结合第二方面的第一种、第二种或第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述防护设备还包括:
更新模块,用于在确定所述第一报文为正常的ICMPv6分组太大报文之后,将保存的所述源节点至所述目的节点路径上MTU的值更新为所述解析模块从所述第一报文中获得的MTU的值。
结合第二方面,在第二方面的第五种可能的实现方式中,所述防护设备还包括:更新模块;
所述解析模块,还用于当所述确定模块确定所述第一报文不是ICMPv6分组太大报文,并且所述确定模块确定所述第一报文为正常的业务报文时,解析所述第一报文,获得所述第一报文携带的源节点的IP地址和目的节点的IP地址;
所述确定模块,还用于判断所述第一报文的报文长度是否大于保存的所述源节点至所述目的节点路径上MTU的值;
所述更新模块,用于当所述确定模块确定所述第一报文是正常的业务报文、且所述报文的报文长度大于保存的所述源节点至所述目的节点路径上MTU的值时,将所述源节点至所述目的节点路径上MTU的值更新为所述第一报文的报文长度。
本发明第三方面提供一种防护设备,包括:发射机、接收机、存储器以及分别与所述发射机、所述接收机和所述存储器连接的处理器;
所述接收机,用于接收第一报文;
所述存储器,用于存储程序代码;
所述处理器,用于调用并执行所述存储器中存储的程序代码,以实现如下功能:当确定所述接收机接收的第一报文为因特网控制报文协议版本6ICMPv6分组太大报文时,解析所述第一报文,获得所述第一报文携带的源节点的因特网协议IP地址、目的节点的IP地址和最大传输单元MTU的值;以及根据所述源节点的IP地址和所述目的节点的IP地址,确定所述源节点和所述目的节点之间路径上合法的MTU的范围;以及当确定所述MTU的值不属于所述源节点和所述目的节点之间路径上合法的MTU的范围时,对所述第一报文进行攻击防范处理。
结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器用于对所述第一报文进行攻击防范处理包括:
所述处理器,具体用于当确定所述第一报文为所述第一报文所属数据流的首报文时,丢弃所述第一报文,以触发ICMPv6分组太大报文的重传;如果所述接收机在预设的第一时间长度内接收到重传的第二报文,所述第二报文是ICMPv6分组太大报文,则确定所述第一报文为正常的ICMPv6分组太大报文,并放行所述第二报文。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器,还用于当确定所述第一报文不是所述第一报文所属数据流的首报文,或者所述接收机在预设的第一时间长度内未接收到重传的第二报文时,生成探测报文,所述探测报文的报文长度大于所述处理器从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;以及在所述发射机向所述源节点发送所述探测报文之后,当所述接收机在预设的第二时间长度内接收到第三报文,所述第三报文是ICMPv6分组太大报文时,判断所述第三报文中是否包括认证字段;如果包括,则判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;如果相同,则比较所述接收机接收到的所述第一报文和所述第三报文携带的MTU的值;如果所述第一报文和所述第三报文携带的MTU的值之差小于预设阈值,则确定所述第一报文为正常的ICMPv6分组太大报文;
所述发射机,用于向所述源节点发送所述处理器生成的探测报文。
结合第三方面,在第三方面的第三种可能的实现方式中,所述处理器用于对所述第一报文进行攻击防范处理包括:
所述处理器,具体用于生成探测报文,所述探测报文的报文长度大于所述处理器从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;以及在所述发射机向所述源节点发送所述探测报文之后,当所述接收机在预设的第二时间长度内接收到第三报文,所述第三报文是ICMPv6分组太大报文时,判断所述第三报文中是否包括认证字段;如果包括,则判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;如果相同,则比较所述接收机接收到的所述第一报文和所述第三报文携带的MTU的值;如果所述第一报文和所述第三报文携带的MTU的值之差小于预设阈值,则确定所述第一报文为正常的ICMPv6分组太大报文;
所述发射机,用于向所述源节点发送所述处理器生成的探测报文。
结合第三方面的第一种、第二种或第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述处理器,还用于在确定所述第一报文为正常的ICMPv6分组太大报文之后,将所述源节点至所述目的节点路径上MTU的值更新为所述处理器从所述第一报文中获得的MTU的值。
结合第三方面,在第三方面的第五种可能的实现方式中,所述处理器,还用于当确定所述接收机接收的第一报文不是ICMPv6分组太大报文,并且确定所述接收机接收的第一报文为正常的业务报文时,解析所述第一报文,获得所述第一报文携带的源节点的IP地址和目的节点的IP地址,并判断所述第一报文的报文长度是否大于所述源节点至所述目的节点路径上MTU的值;如果是,则将所述源节点至所述目的节点路径上MTU的值更新为所述第一报文的报文长度。
本发明的技术效果是:防护设备接收第一报文之后,如果确定该第一报文为ICMPv6分组太大报文,则上述防护设备解析第一报文,获得第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值;如果防护设备确定该MTU的值不属于上述源节点和上述目的节点之间路径上合法的MTU的范围,则防护设备确定上述第一报文为攻击的ICMPv6分组太大报文,于是防护设备对上述第一报文进行攻击防范处理,从而可以实现在防护设备上识别正常的ICMPv6分组太大报文和攻击的ICMPv6分组太大报文,进而可以实现对路径MTU攻击进行防护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明攻击防范处理方法一个实施例的流程图;
图1b为本发明防护设备对第一报文进行攻击防范处理的方式一个实施例的流程图;
图1c为本发明防护设备对ICMPv6分组太大报文进行攻击防范处理的方式另一个实施例的流程图;
图2a为本发明攻击防范处理方法另一个实施例的流程图;
图2b为本发明攻击防范处理方法再一个实施例的流程图;
图3为本发明应用场景一个实施例的示意图;
图4为本发明防护设备一个实施例的结构示意图;
图5为本发明防护设备另一个实施例的结构示意图;
图6为本发明防护设备再一个实施例的结构示意图;
图7为本发明防护设备再一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人在实现本发明的过程中,对现有利用路径MTU发现机制进行攻击的原理进行分析,发现主要有以下两种:
方式一,伪造ICMP虚假消息故意减小路径MTU。
具体地,恶意节点A可能伪造一个ICMP虚假消息来通知节点B该路径允许的MTU,如果该ICMP虚假消息通知的MTU比实际路径MTU小得多,便会使节点B以后需发送小得多的报文给节点A,这样不仅增加了节点B的处理开销,而且还占用了更多的网络带宽(由此增加的数据报文的报文头均属于额外开销),进而会导致通信效率下降。如果恶意节点A通知的MTU非常小的话,还可能引起节点B本地系统的传输控制协议(TransmissionControlProtocol;以下简称:TCP)/因特网协议(InternetProtocol;以下简称:IP)堆栈过载。
方式二,伪造ICMP虚假消息故意增大路径MTU。
具体地,恶意节点A仿冒节点C,给节点C的上一跳节点B发送ICMP虚假消息,该ICMP虚假消息告知的MTU比节点B与节点C之间路径的MTU大很多,这样可能增加节点B与节点C之间路径的MTU,使节点C无法获得或无法处理由节点B发送的报文,从而导致暂时的通信中断。
图1a为本发明攻击防范处理方法一个实施例的流程图,如图1a所示,该报文识别方法可以包括:
步骤101,防护设备接收第一报文。
步骤102,如果上述防护设备确定上述第一报文为ICMPv6分组太大报文,则该防护设备解析上述第一报文,获得上述第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值。
具体地,防护设备确定上述第一报文为ICMPv6分组太大报文可以为:防护设备获得上述第一报文的IP头部中携带的协议字段的值,如果该协议字段的值指示IP层所封装的上层协议类型为ICMPv6,则防护设备确定上述报文为ICMPv6报文,进一步地,防护设备获得该ICMPv6报文的基础头中ICMP类型字段的值,根据该ICMP类型字段的值确定上述报文为ICMPv6分组太大报文。
步骤103,防护设备根据上述源节点的IP地址和上述目的节点的IP地址,确定上述源节点和上述目的节点之间路径上合法的MTU的范围。
步骤104,如果上述防护设备确定上述MTU的值不属于源节点和目的节点之间路径上合法的MTU的范围,则上述防护设备对上述ICMPv6分组太大报文进行攻击防范处理。
具体地,步骤103中,防护设备根据上述源节点的IP地址和上述目的节点的IP地址,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的方式包括但不限于以下两种:防护设备根据上述源节点的IP地址和上述目的节点的IP地址,获得防护设备保存的上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较大值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较小值;或者,
上述防护设备根据上述源节点的IP地址和上述目的节点的IP地址,从保存的IP地址对与路径MTU的范围的对应关系中,查询得到为上述源节点和上述目的节点之间的路径配置的路径MTU的范围。这时,防护设备可以确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述配置的路径MTU的范围的上限值,上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述配置的路径MTU的范围的下限值。其中,为上述源节点和上述目的节点之间的路径配置的路径MTU的范围可以在具体实现时自行设定,在此不做限定。
则步骤104中,上述防护设备确定上述MTU的值不属于源节点和目的节点之间路径上合法的MTU的范围可以为:防护设备确定上述MTU的值小于上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值,或者,防护设备确定上述MTU的值大于上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值。
下面对步骤104中,防护设备对第一报文进行攻击防范处理的方式进行介绍。
图1b为本发明防护设备对第一报文进行攻击防范处理的方式一个实施例的流程图,如图1b所示,可以包括:
步骤a1,防护设备确定第一报文是否为该第一报文所属数据流的首报文。如果是,则执行步骤a2;可选地,如果防护设备确定第一报文不是上述第一报文所属数据流的首报文,则执行步骤a5。
步骤a2,防护设备丢弃上述第一报文,以触发ICMPv6分组太大报文的重传。
步骤a3,防护设备判断在预设的第一时间长度内是否接收到重传的第二报文,该第二报文是ICMPv6分组太大报文。如果是,则执行步骤a4;可选地,如果防护设备确定在预设的第一时间长度内未接收到重传的第二报文,则执行步骤a5。
其中,上述预设的第一时间长度可以在具体实现时根据系统性能等自行设定,本实施例对上述预设的第一时间长度的长短不作限定,举例来说,上述预设的第一时间长度可以为5秒。
步骤a4,防护设备确定第一报文为正常的ICMPv6分组太大报文,并放行第二报文。可选地,该防护设备接下来可以放行后续来自上述源节点的ICMPv6分组太大报文。本次流程结束。
步骤a5,防护设备生成探测报文,并向源节点发送上述探测报文。
其中,上述探测报文的报文长度大于防护设备从上述第一报文中获得的MTU的值,并且上述探测报文中包括认证字段。
本实施例中,上述探测报文中认证字段的值可以是防护设备根据预定的算法自动生成的值,也可以是预先设置的值,本实施例对探测报文中认证字段的值的设置方式不作限定。
步骤a6,防护设备判断在预设的第二时间长度内是否接收到第三报文,该第三报文是ICMPv6分组太大报文。如果是,则执行步骤a7;如果防护设备在预设的第二时间长度内没有接收到第三报文,则执行步骤a11。
其中,上述预设的第二时间长度可以在具体实现时自行设定,本实施例对上述预设的第二时间长度的长度不作限定,举例来说,上述预设的第二时间长度的长度可以为5秒。
步骤a7,防护设备判断第三报文中是否包括认证字段。如果包括,则执行步骤a8;如果防护设备确定第三报文中不包括认证字段,则执行步骤a11。
步骤a8,防护设备判断第三报文中的认证字段的值与上述探测报文中的认证字段的值是否相同。如果相同,则执行步骤a9;如果防护设备确定第三报文中的认证字段的值与上述探测报文中的认证字段的值不同,则执行步骤a11。
步骤a9,防护设备比较第一报文和第三报文携带的MTU的值,判断第一报文和第三报文所携带的MTU的值之差是否小于预设阈值。如果是,则执行步骤a10;如果防护设备确定第一报文和第三报文所携带的MTU的值之差大于或等于预设阈值,则执行步骤a11。
其中,上述预设阈值可以在具体实现时自行设定,本实施例对上述预设阈值的大小不作限定。
步骤a10,防护设备确定第一报文为正常的ICMPv6分组太大报文。本次流程结束。
接下来,可选地,防护设备可以放行后续来自上述源节点的ICMPv6分组太大报文。
步骤a11,防护设备确定第一报文为攻击的ICMPv6分组太大报文。本次流程结束。
接下来,防护设备可以对后续来自上述源节点的ICMPv6分组太大报文进行丢弃处理。
图1c为本发明防护设备对ICMPv6分组太大报文进行攻击防范处理的方式另一个实施例的流程图,如图1c所示,可以包括:
步骤b1,防护设备生成探测报文,并向源节点发送上述探测报文。
其中,上述探测报文的报文长度大于防护设备从第一报文中获得的MTU的值,并且上述探测报文中包括认证字段。
本实施例中,上述探测报文中认证字段的值可以是防护设备根据预定的算法自动生成的值,也可以是预先设置的值,本实施例对探测报文中认证字段的值的设置方式不作限定。
步骤b2,防护设备判断在预设的第二时间长度内是否接收到第三报文,该第三报文是ICMPv6分组太大报文。如果是,则执行步骤b3;如果防护设备在预设的第二时间长度内没有接收到第三报文,则执行步骤b7。
其中,上述预设的第二时间长度可以在具体实现时自行设定,本实施例对上述预设的第二时间长度的长度不作限定,举例来说,上述预设的第二时间长度的长度可以为5秒。
步骤b3,防护设备判断第三报文中是否包括认证字段。如果包括,则执行步骤b4;如果防护设备确定第三报文中不包括认证字段,则执行步骤b7。
步骤b4,防护设备判断第三报文中的认证字段的值与上述探测报文中的认证字段的值是否相同。如果相同,则执行步骤b5;如果防护设备确定第三报文中的认证字段的值与上述探测报文中的认证字段的值不同,则执行步骤b7。
步骤b5,防护设备比较第一报文和第三报文携带的MTU的值,判断第一报文和第三报文所携带的MTU的值之差是否小于预设阈值。如果是,则执行步骤b6;如果防护设备确定第一报文和所述第三报文所携带的MTU的值之差大于或等于预设阈值,则执行步骤b7。
其中,上述预设阈值可以在具体实现时自行设定,本实施例对上述预设阈值的大小不作限定。
步骤b6,防护设备确定第一报文为正常的ICMPv6分组太大报文,本次流程结束。
接下来,防护设备可以放行第一报文,以及后续来自上述源节点的ICMPv6分组太大报文。
步骤b7,防护设备确定第一报文为攻击的ICMPv6分组太大报文,本次流程结束。
接下来,防护设备可以丢弃第一报文,以及后续来自上述源节点的ICMPv6分组太大报文。
进一步地,本实施例中,防护设备确定第一报文为正常的ICMPv6分组太大报文之后,防护设备还可以将保存的上述源节点至上述目的节点路径上MTU的值更新为防护设备从上述第一报文中获得的MTU的值。
本实施例中,步骤101之后,如果防护设备确定第一报文不是ICMPv6分组太大报文,并且上述防护设备确定该第一报文为正常的业务报文,则防护设备解析上述第一报文,获得上述第一报文携带的源节点的IP地址和目的节点的IP地址,并判断上述第一报文的报文长度是否大于保存的上述源节点至上述目的节点路径上MTU的值;如果第一报文是正常的业务报文、且第一报文的报文长度大于保存的上述源节点至上述目的节点路径上MTU的值,则防护设备将上述源节点至上述目的节点路径上MTU的值更新为上述第一报文的报文长度。
其中,上述防护设备确定第一报文为正常的业务报文可以为:防护设备获得上述第一报文的IP头部中携带的协议字段的值,如果该协议字段的值指示IP层所封装的上层协议类型为TCP或用户数据报协议(UserDatagramProtocol;以下简称:UDP)等传输协议,则防护设备确定上述第一报文为正常的业务报文。
本实施例中,如果上述防护设备确定上述第一报文携带的MTU的值属于源节点和目的节点之间路径上合法的MTU的范围,则防护设备不会对接收的第一报文进行攻击防范处理,而是直接放行接收到的第一报文。
上述实施例中,防护设备接收第一报文之后,如果确定该第一报文为ICMPv6分组太大报文,则上述防护设备解析第一报文,获得第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值;如果防护设备确定该MTU的值不属于上述源节点和上述目的节点之间路径上合法的MTU的范围,则防护设备确定上述第一报文为攻击的ICMPv6分组太大报文,于是防护设备对上述第一报文进行攻击防范处理,从而可以实现在防护设备上识别正常的ICMPv6分组太大报文和攻击的ICMPv6分组太大报文,进而可以实现对路径MTU攻击进行防护。
图2a为本发明攻击防范处理方法另一个实施例的流程图,如图2a所示,该报文识别方法可以包括:
步骤201,防护设备接收第一报文。
步骤202,防护设备判断第一报文是否为ICMPv6分组太大报文。如果是,则执行步骤203;如果防护设备确定第一报文不是ICMPv6分组太大报文,则结束本次流程。
具体地,防护设备确定上述第一报文为ICMPv6分组太大报文可以为:防护设备获得上述第一报文的IP头部中携带的协议字段的值,如果该协议字段的值指示IP层所封装的上层协议类型为ICMPv6,则防护设备确定上述报文为ICMPv6报文,进一步地,防护设备获得该ICMPv6报文的基础头中ICMP类型字段的值,根据该ICMP类型字段的值确定上述报文为ICMPv6分组太大报文。
步骤203,防护设备解析上述第一报文,获得上述第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值。
步骤204,防护设备根据上述源节点的IP地址和上述目的节点的IP地址确定上述源节点和上述目的节点之间路径上合法的MTU的范围。
具体地,防护设备根据上述源节点的IP地址和上述目的节点的IP地址确定上述源节点和上述目的节点之间路径上合法的MTU的范围可以为:防护设备根据上述源节点的IP地址和上述目的节点的IP地址,获得防护设备保存的上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较大值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较小值;或者,
上述防护设备根据上述源节点的IP地址和上述目的节点的IP地址,从保存的IP地址对与路径MTU的范围的对应关系中,查询得到为上述源节点和上述目的节点之间的路径配置的路径MTU的范围。这时,防护设备可以确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述配置的路径MTU的范围的上限值,上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述配置的路径MTU的范围的下限值。其中,为上述源节点和上述目的节点之间的路径配置的路径MTU的范围可以在具体实现时自行设定,在此不做限定。
步骤205,防护设备判断上述MTU的值是否属于源节点和目的节点之间路径上合法的MTU的范围。如果是,则执行步骤206;如果防护设备确定上述MTU的值不属于源节点和目的节点之间路径上合法的MTU的范围,则执行步骤207。
具体地,防护设备判断上述MTU的值是否属于源节点和目的节点之间路径上合法的MTU的范围可以为:防护设备判断上述MTU的值是否大于或等于上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值,并且小于或等于上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值。
步骤206,防护设备确定上述第一报文为正常的ICMPv6分组太大报文,并放行第一报文。本次流程结束。
步骤207,防护设备判断该防护设备是否配置首包丢弃功能。
如果是,则执行步骤208;如果防护设备确定该防护设备未配置首包丢弃功能,则执行步骤212。
步骤208,防护设备确定上述第一报文是否为该第一报文所属数据流的首报文。如果是,则执行步骤209;如果防护设备确定第一报文不是该第一报文所属数据流的首报文,则执行步骤212。
步骤209,防护设备丢弃上述第一报文,以触发ICMPv6分组太大报文的重传。
步骤210,防护设备判断在预设的第一时间长度内是否接收到重传的第二报文,该第二报文是ICMPv6分组太大报文。如果是,则执行步骤211;如果防护设备确定在预设的第一时间长度内未接收到重传的第二报文,则执行步骤213。
其中,上述预设的第一时间长度可以在具体实现时根据系统性能等自行设定,本实施例对上述预设的第一时间长度的长短不作限定,举例来说,上述预设的第一时间长度可以为5秒。
步骤211,防护设备确定第一报文为正常的ICMPv6分组太大报文,并放行第二报文。可选地,该防护设备接下来可以放行后续来自上述源节点的ICMPv6分组太大报文。本次流程结束。
步骤212,防护设备放行上述第一报文。本次流程结束。
步骤213,防护设备确定第一报文为攻击的ICMPv6分组太大报文。本次流程结束。
可选地,防护设备可以丢弃后续来自上述源节点的ICMPv6分组太大报文。
上述实施例可以实现在防护设备上区分出正常的ICMPv6分组太大报文,和攻击的ICMPv6分组太大报文,以达到对路径MTU攻击的防范。
进一步地,图2a所示实施例中,步骤206或步骤211之后,即确定上述第一报文为正常的ICMPv6分组太大报文之后,防护设备可以将上述源节点至上述目的节点路径上MTU的值更新为防护设备从上述第一报文中获得的MTU的值。
图2b为本发明攻击防范处理方法再一个实施例的流程图,如图2b所示,该报文识别方法可以包括:
步骤301,防护设备接收第一报文。
步骤302,防护设备判断第一报文是否为ICMPv6分组太大报文。如果是,则执行步骤303;如果防护设备确定第一报文不是ICMPv6分组太大报文,则结束本次流程。
步骤303,防护设备解析上述第一报文,获得上述第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值。
步骤304,防护设备根据上述源节点的IP地址和上述目的节点的IP地址确定上述源节点和上述目的节点之间路径上合法的MTU的范围。
具体地,防护设备根据上述源节点的IP地址和上述目的节点的IP地址确定上述源节点和上述目的节点之间路径上合法的MTU的范围可以为:防护设备根据上述源节点的IP地址和上述目的节点的IP地址,获得防护设备保存的上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较大值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较小值;或者,
上述防护设备根据上述源节点的IP地址和上述目的节点的IP地址,从保存的IP地址对与路径MTU的范围的对应关系中,查询得到为上述源节点和上述目的节点之间的路径配置的路径MTU的范围。这时,防护设备可以确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述配置的路径MTU的范围的上限值,上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述配置的路径MTU的范围的下限值。其中,为上述源节点和上述目的节点之间的路径配置的路径MTU的范围可以在具体实现时自行设定,在此不做限定。
步骤305,防护设备判断上述MTU的值是否属于源节点和目的节点之间路径上合法的MTU的范围。如果是,则执行步骤306;如果防护设备确定上述MTU的值不属于源节点和目的节点之间路径上合法的MTU的范围,则执行步骤307或步骤312。
具体地,防护设备判断上述MTU的值是否属于源节点和目的节点之间路径上合法的MTU的范围可以为:防护设备判断上述MTU的值是否大于或等于上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值,并且小于或等于上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值。
步骤306,防护设备确定上述第一报文为正常的ICMPv6分组太大报文,并放行第一报文。本次流程结束。
步骤307,防护设备判断该防护设备是否配置首包丢弃功能。
如果是,则执行步骤308;如果防护设备确定该防护设备未配置首包丢弃功能,则执行步骤312。
步骤308,防护设备确定上述第一报文是否为该第一报文所属数据流的首报文。如果是,则执行步骤309;如果防护设备确定第一报文不是该第一报文所属数据流的首报文,则执行步骤312。
步骤309,防护设备丢弃上述第一报文,以触发ICMPv6分组太大报文的重传。
步骤310,防护设备判断在预设的第一时间长度内是否接收到重传的第二报文,该第二报文是ICMPv6分组太大报文。如果是,则执行步骤311;如果防护设备确定在预设的第一时间长度内未接收到重传的第二报文,则执行步骤312。
其中,上述预设的第一时间长度可以在具体实现时根据系统性能等自行设定,本实施例对上述预设的第一时间长度的长短不作限定,举例来说,上述预设的第一时间长度可以为5秒。
步骤311,防护设备确定第一报文为正常的ICMPv6分组太大报文,并放行第二报文。可选地,该防护设备接下来可以放行后续来自上述源节点的ICMPv6分组太大报文。本次流程结束。
步骤312,防护设备判断该防护设备是否配置源探测认证功能。
如果是,则执行步骤313;如果防护设备确定该防护设备未配置源探测认证功能,则结束本次流程。
需要说明的是,当步骤307中防护设备确定该防护设备未配置首包丢弃功能,并且步骤312中防护设备确定该防护设备未配置源探测认证功能时,防护设备放行上述第一报文,结束本次流程;或者,当步骤308中防护设备确定上述第一报文不是该第一报文所属数据流的首报文,并且步骤312中防护设备确定该防护设备未配置源探测认证功能时,防护设备放行上述第一报文,结束本次流程;或者,当步骤310中防护设备确定在预设的第一时间长度内未接收到重传的第二报文,并且步骤312中防护设备确定该防护设备未配置源探测认证功能时,防护设备确定上述第一报文为攻击的ICMPv6分组太大报文,丢弃第二报文,以及后续来自上述源节点的ICMPv6分组太大报文,结束本次流程。
步骤313,防护设备生成探测报文,并向源节点发送上述探测报文。
其中,上述探测报文的报文长度大于防护设备从上述ICMPv6分组太大报文中获得的MTU的值,并且上述探测报文中包括认证字段。
本实施例中,上述探测报文中认证字段的值可以是防护设备根据预定的算法自动生成的值,也可以是预先设置的值,本实施例对探测报文中认证字段的值的设置方式不作限定。
步骤314,防护设备判断在预设的第二时间长度内是否接收到第三报文。如果否,则执行步骤319;如果防护设备确定在预设的第二时间长度内接收到第三报文,则执行步骤315。
其中,上述预设的第二时间长度可以在具体实现时自行设定,本实施例对上述预设的第二时间长度的长度不作限定,举例来说,上述预设的第二时间长度的长度可以为5秒。
步骤315,防护设备判断第三报文中是否包括认证字段。
如果是,则执行步骤316;如果防护设备确定第三报文中不包括认证字段,则执行步骤319。
步骤316,防护设备判断第三报文中的认证字段的值与上述探测报文中的认证字段的值是否相同。
如果相同,则执行步骤317;如果防护设备确定第三报文中的认证字段的值与上述探测报文中的认证字段的值不同,则执行步骤319。
步骤317,防护设备判断第一报文和第三报文所携带的MTU的值之差是否小于预设阈值。如果是,则执行步骤318;如果防护设备确定第一报文和第三报文所携带的MTU的值之差大于或等于预设阈值,则执行步骤319。
其中,上述预设阈值可以在具体实现时自行设定,本实施例对上述预设阈值的大小不作限定。
步骤318,防护设备确定第一报文为正常的ICMPv6分组太大报文,本次流程结束。
接下来,防护设备可以放行第一报文,以及后续来自上述源节点的ICMPv6分组太大报文。
步骤319,防护设备确定第一报文为攻击的ICMPv6分组太大报文,本次流程结束。
接下来,防护设备可以丢弃第一报文,以及后续来自上述源节点的ICMPv6分组太大报文。
上述实施例可以实现在防护设备上区分出正常的ICMPv6分组太大报文,和攻击的ICMPv6分组太大报文,以达到对路径MTU攻击的防范。
进一步地,图2b所示实施例中,步骤306或步骤318之后,即确定第一报文为正常的ICMPv6分组太大报文之后,防护设备可以将上述源节点至上述目的节点路径上MTU的值更新为防护设备从上述第一报文中获得的MTU的值。
另外,图2a和图2b所示实施例中,防护设备接收第一报文之后,如果防护设备确定第一报文不是ICMPv6分组太大报文,并且上述防护设备确定该第一报文为正常的业务报文,则防护设备解析上述第一报文,获得上述第一报文携带的源节点的IP地址和目的节点的IP地址,并判断上述第一报文的报文长度是否大于上述源节点至上述目的节点路径上MTU的值;如果是,则防护设备将上述源节点至上述目的节点路径上MTU的值更新为上述第一报文的报文长度。这样,防护设备可以通过对报文的监控,实现对源节点至上述目的节点路径上MTU的值的学习,以作为判断接收到的ICMPv6分组太大报文是否为攻击的ICMPv6分组太大报文的参考依据。其中,上述防护设备确定第一报文为正常的业务报文可以为:防护设备获得上述第一报文的IP头部中携带的协议字段的值,如果该协议字段的值指示IP层所封装的上层协议类型为TCP或UDP等传输协议,则防护设备确定上述第一报文为正常的业务报文。
本发明图1a、图1b、图1c、图2a和图2b所示实施例提供的方法可以应用于图3所示的场景中,图3为本发明应用场景一个实施例的示意图,图3中,用户A向用户B发送正常IPv6业务报文,如图3中线1所示;攻击者向用户A发送攻击的ICMPv6分组太大报文,对用户A发动路径MTU攻击,如图3中线2所示。如果防护设备开启路径MTU攻击防范,则通过本发明图1a、图1b、图1c、图2a和图2b所示实施例提供的方法,防护设备将丢弃攻击者发送的攻击的ICMPv6分组太大报文。
而如果防护设备不开启路径MTU攻击防范,攻击的ICMPv6分组太大报文会一直到达用户A,如图3中线3所示。
对于网络中向用户A发送的正常的ICMPv6分组太大报文,通过本发明图1a、图1b、图1c、图2a和图2b所示实施例提供的方法,防护设备进行路径MTU攻击防范,允许正常的ICMPv6分组太大报文通过,也就是说,网络中向用户A发送的正常的ICMPv6分组太大报文能够通过防护设备到达用户A,如图3中线4所示。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明防护设备一个实施例的结构示意图,本实施例中的防护设备4可以实现本发明图1所示实施例的流程,如图4所示,该防护设备4可以包括:接收模块41、确定模块42、解析模块43和防护模块44;
其中,接收模块41,用于接收第一报文;
确定模块42,用于确定接收模块41接收的第一报文是否为ICMPv6分组太大报文;
解析模块43,用于当确定模块42确定接收模块41接收的第一报文为ICMPv6分组太大报文时,解析上述第一报文,获得上述第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值;
确定模块42,还用于根据解析模块43获得的源节点的IP地址和目的节点的IP地址,确定源节点和目的节点之间路径上合法的MTU的范围;以及确定解析模块43获得的MTU的值是否属于源节点和目的节点之间路径上合法的MTU的范围;
防护模块44,用于当确定模块42确定解析模块43获得的MTU的值不属于上述源节点和上述目的节点之间路径上合法的MTU的范围时,对接收模块41接收的第一报文进行攻击防范处理。
本实施例中,确定模块42用于根据解析模块43获得的源节点的IP地址和目的节点的IP地址,确定源节点和目的节点之间路径上合法的MTU的范围可以为:确定模块42,具体用于根据上述源节点的IP地址和上述目的节点的IP地址,获得防护设备保存的上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较大值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较小值;或者,
确定模块42,具体用于根据上述源节点的IP地址和上述目的节点的IP地址,从保存的IP地址对与路径MTU的范围的对应关系中,查询得到为上述源节点和上述目的节点之间的路径配置的路径MTU的范围。这时,确定模块42可以确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述配置的路径MTU的范围的上限值,上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述配置的路径MTU的范围的下限值。其中,为上述源节点和上述目的节点之间的路径配置的路径MTU的范围可以在具体实现时自行设定,在此不做限定。
则,确定模块42确定解析模块43获得的MTU的值是否属于源节点和目的节点之间路径上合法的MTU的范围可以为:确定模块42确定上述MTU的值是否大于或等于上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值,并且小于或等于上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值。
上述实施例中,接收模块41接收第一报文之后,如果确定模块42确定该第一报文为ICMPv6分组太大报文,则解析模块43解析第一报文,获得第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值;如果确定模块42确定该MTU的值不属于上述源节点和上述目的节点之间路径上合法的MTU的范围,则确定上述第一报文为攻击的ICMPv6分组太大报文,于是防护模块44对上述第一报文进行攻击防范处理,从而可以实现在防护设备上识别正常的ICMPv6分组太大报文和攻击的ICMPv6分组太大报文,进而可以实现对路径MTU攻击进行防护。
图5为本发明防护设备另一个实施例的结构示意图,与图4所示的防护设备4相比,不同之处在于,图5所示的防护设备5中,防护模块44可以包括:确定单元441、丢弃单元442和第一放行单元443;
其中,确定单元441,用于确定接收模块41接收的第一报文是否为该第一报文所属数据流的首报文;
丢弃单元442,用于当确定单元41确定上述第一报文为该第一报文所属数据流的首报文时,丢弃上述第一报文,以触发ICMPv6分组太大报文的重传;
第一放行单元443,用于当在预设的第一时间长度内接收到重传的第二报文,该第二报文是ICMPv6分组太大报文时,确定上述第一报文为正常的ICMPv6分组太大报文,并放行第二报文。接下来,第一放行单元443可以放行后续来自上述源节点的ICMPv6分组太大报文。
进一步地,上述防护模块44还可以包括:第一生成单元444、第一发送单元445、第一判断单元446和第一比较单元447;
其中,第一生成单元444,用于当确定单元441确定上述第一报文不是该第一报文所属数据流的首报文,或者在预设的第一时间长度内未接收到重传的第二报文时,生成探测报文,上述探测报文的报文长度大于解析模块43从上述第一报文中获得的MTU的值,并且上述探测报文中包括认证字段;
第一发送单元445,用于向上述源节点发送第一生成单元444生成的探测报文;
第一判断单元446,用于当在预设的第二时间长度内接收到第三报文,该第三报文是ICMPv6分组太大报文时,判断第三报文中是否包括认证字段;以及当第三报文中包括认证字段时,判断第三报文中的认证字段的值与上述探测报文中的认证字段的值是否相同;
第一比较单元447,用于当第一判断单元446确定第三报文中的认证字段的值与上述探测报文中的认证字段的值相同时,比较第一报文和第三报文携带的MTU的值;
第一放行单元443,还用于当第一比较单元447确定第一报文和第三报文携带的MTU的值之差小于预设阈值时,确定上述第一报文为正常的ICMPv6分组太大报文。接下来,第一放行单元443可以放行后续来自上述源节点的ICMPv6分组太大报文。
进一步地,本实施例的一种实现方式中,上述防护设备5还可以包括:更新模块45;
其中,更新模块45,用于在确定第一报文为正常的ICMPv6分组太大报文之后,将保存的上述源节点至上述目的节点路径上MTU的值更新为解析模块43从上述第一报文中获得的MTU的值。
本实施例的另一种实现方式中,上述防护设备5还可以包括:更新模块45;
其中,解析模块43,还用于当确定模块42确定第一报文不是ICMPv6分组太大报文,并且确定模块42确定上述第一报文为正常的业务报文时,解析上述第一报文,获得上述第一报文携带的源节点的IP地址和目的节点的IP地址;
确定模块42,还用于判断上述第一报文的报文长度是否大于保存的上述源节点至上述目的节点路径上MTU的值;
更新模块45,用于当确定模块42确定第一报文是正常的业务报文、且上述第一报文的报文长度大于保存的上述源节点至上述目的节点路径上MTU的值时,将上述源节点至上述目的节点路径上MTU的值更新为上述第一报文的报文长度。
上述防护设备,可以实现在防护设备上识别正常的ICMPv6分组太大报文和攻击的ICMPv6分组太大报文,进而可以实现对路径MTU攻击进行防护。
图6为本发明防护设备再一个实施例的结构示意图,与图4所示的防护设备4相比,不同之处在于,图6所示的防护设备6中,防护模块44可以包括:第二生成单元448、第二发送单元449、第二判断单元4410、第二比较单元4411和第二放行单元4412;
其中,第二生成单元448,用于生成探测报文,上述探测报文的报文长度大于解析模块43从上述第一报文中获得的MTU的值,并且上述探测报文中包括认证字段;
第二发送单元449,用于向源节点发送第二生成单元448生成的探测报文;
第二判断单元4410,用于当在预设的第二时间长度内接收到第三报文,该第三报文是ICMPv6分组太大报文时,判断第三报文中是否包括认证字段;以及当第三报文中包括认证字段时,判断第三报文中的认证字段的值与上述探测报文中的认证字段的值是否相同;
第二比较单元4411,用于当第二判断单元4410确定第三报文中的认证字段的值与上述探测报文中的认证字段的值相同时,比较第一报文和第三报文携带的MTU的值;
第二放行单元4412,用于当第二比较单元4411确定第一报文和第三报文所携带的MTU的值之差小于预设阈值时,确定第一报文为正常的ICMPv6分组太大报文;接下来,第二放行单元4412可以放行后续来自上述源节点的ICMPv6分组太大报文。
进一步地,本实施例的一种实现方式中,上述防护设备5还可以包括:更新模块45;
其中,更新模块45,用于在确定第一报文为正常的ICMPv6分组太大报文之后,将保存的上述源节点至上述目的节点路径上MTU的值更新为解析模块43从上述第一报文中获得的MTU的值。
本实施例的另一种实现方式中,上述防护设备5还可以包括:更新模块45;
其中,解析模块43,还用于当确定模块42确定第一报文不是ICMPv6分组太大报文,并且确定模块42确定上述第一报文为正常的业务报文时,解析上述第一报文,获得上述第一报文携带的源节点的IP地址和目的节点的IP地址;
确定模块42,还用于判断上述第一报文的报文长度是否大于保存的上述源节点至上述目的节点路径上MTU的值;
更新模块45,用于当确定模块42确定第一报文是正常的业务报文、且上述第一报文的报文长度大于保存的上述源节点至上述目的节点路径上MTU的值时,将上述源节点至上述目的节点路径上MTU的值更新为上述第一报文的报文长度。
上述防护设备,可以实现在防护设备上识别正常的ICMPv6分组太大报文和攻击的ICMPv6分组太大报文,进而可以实现对路径MTU攻击进行防护。
图7为本发明防护设备再一个实施例的结构示意图,本实施例中的防护设备可以实现本发明图1所示实施例的流程,如图7所示,该防护设备可以包括发射机71、接收机72、存储器73以及分别与发射机71、接收机72和存储器73连接的处理器74。当然,可选地,防护设备还可以包括总线和/或输入输出装置等通用部件,本实施例在此不作任何限制。
其中,接收机72,用于接收第一报文;
存储器73,用于存储程序代码;
处理器74,用于调用并执行存储器73中存储的程序代码,以实现如下功能:当确定接收机72接收的第一报文为ICMPv6分组太大报文时,解析上述第一报文,获得上述第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值;以及根据上述源节点的IP地址和上述目的节点的IP地址,确定上述源节点和上述目的节点之间路径上合法的MTU的范围;以及当确定上述MTU的值不属于上述源节点和上述目的节点之间路径上合法的MTU的范围时,对第一报文进行攻击防范处理。
本实施例中,处理器74用于根据上述源节点的IP地址和上述目的节点的IP地址,确定上述源节点和上述目的节点之间路径上合法的MTU的范围可以为:处理器74,具体用于根据上述源节点的IP地址和上述目的节点的IP地址,获得防护设备保存的上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较大值,确定上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述源节点至上述目的节点路径上MTU的值和上述目的节点至上述源节点路径上MTU的值中的较小值;或者,
处理器74,具体用于根据上述源节点的IP地址和上述目的节点的IP地址,从保存的IP地址对与路径MTU的范围的对应关系中,查询得到为上述源节点和上述目的节点之间的路径配置的路径MTU的范围。这时,处理器74可以确定上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值为上述配置的路径MTU的范围的上限值,上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值为上述配置的路径MTU的范围的下限值。其中,为上述源节点和上述目的节点之间的路径配置的路径MTU的范围可以在具体实现时自行设定,在此不做限定。
则,处理器74确定上述MTU的值不属于源节点和目的节点之间路径上合法的MTU的范围可以为:处理器74确定上述MTU的值小于上述源节点和上述目的节点之间路径上合法的MTU的范围的下限值,或者大于上述源节点和上述目的节点之间路径上合法的MTU的范围的上限值。
本实施例的一种实现方式中,处理器74用于对上述第一报文进行攻击防范处理可以为:处理器74,具体用于当确定上述第一报文为该第一报文所属数据流的首报文时,丢弃上述第一报文,以触发ICMPv6分组太大报文的重传;如果接收机72在预设的第一时间长度内接收到重传的第二报文,该第二报文为ICMPv6分组太大报文,则确定第一报文为正常的ICMPv6分组太大报文,并放行上述第二报文。接下来,处理器74可以放行后续来自上述源节点的ICMPv6分组太大报文。
进一步地,处理器74,还用于当确定上述第一报文不是该第一报文所属数据流的首报文,或者接收机72在预设的第一时间长度内未接收到重传的第二报文时,生成探测报文,上述探测报文的报文长度大于处理器74从第一报文中获得的MTU的值,并且上述探测报文中包括认证字段;以及在发射机71向上述源节点发送上述探测报文之后,当接收机72在预设的第二时间长度内接收到第三报文,该第三报文是ICMPv6分组太大报文时,判断第三报文中是否包括认证字段;如果包括,则判断第三报文中的认证字段的值与上述探测报文中的认证字段的值是否相同;如果相同,则比较接收机72接收到的第一报文和第三报文携带的MTU的值;如果第一报文和第三报文携带的MTU的值之差小于预设阈值,则确定第一报文为正常的ICMPv6分组太大报文;接下来,处理器74可以放行后续来自上述源节点的ICMPv6分组太大报文;
发射机71,用于向上述源节点发送处理器74生成的探测报文。
本实施例的另一种实现方式中,处理器74用于对上述第一报文进行攻击防范处理可以为:处理器74,具体用于生成探测报文,上述探测报文的报文长度大于处理器74从第一报文中获得的MTU的值,并且上述探测报文中包括认证字段;以及在发射机71向上述源节点发送上述探测报文之后,当接收机72在预设的第二时间长度内接收到第三报文,该第三报文是ICMPv6分组太大报文时,判断第三报文中是否包括认证字段;如果包括,则判断第三报文中的认证字段的值与上述探测报文中的认证字段的值是否相同;如果相同,则比较接收机72接收到的第一报文和第三报文携带的MTU的值;如果第一报文和第三报文携带的MTU的值之差小于预设阈值,则确定第一报文为正常的ICMPv6分组太大报文;接下来,处理器74可以放行后续来自上述源节点的ICMPv6分组太大报文;
发射机71,用于向上述源节点发送处理器74生成的探测报文。
进一步地,处理器74,还用于在确定第一报文为正常的ICMPv6分组太大报文之后,将上述源节点至上述目的节点路径上MTU的值更新为处理器74从上述第一报文中获得的MTU的值。
本实施例中,处理器74,还用于当确定接收机72接收的第一报文不是ICMPv6分组太大报文,并且确定接收机72接收的第一报文为正常的业务报文时,解析上述第一报文,获得上述第一报文携带的源节点的IP地址和目的节点的IP地址,并判断上述第一报文的报文长度是否大于上述源节点至上述目的节点路径上MTU的值;如果是,则将上述源节点至上述目的节点路径上MTU的值更新为上述第一报文的报文长度。
上述实施例中,接收机72接收第一报文之后,如果处理器74确定该第一报文为ICMPv6分组太大报文,则处理器74解析第一报文,获得第一报文携带的源节点的IP地址、目的节点的IP地址和MTU的值;如果处理器74确定该MTU的值不属于上述源节点和上述目的节点之间路径上合法的MTU的范围,则确定上述第一报文为攻击的ICMPv6分组太大报文,于是对上述第一报文进行攻击防范处理,从而可以实现在防护设备上识别正常的ICMPv6分组太大报文和攻击的ICMPv6分组太大报文,进而可以实现对路径MTU攻击进行防护
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (21)

1.一种攻击防范处理方法,其特征在于,包括:
防护设备接收第一报文;
如果所述防护设备确定所述第一报文为因特网控制报文协议版本6ICMPv6分组太大报文,则所述防护设备解析所述第一报文,获得所述第一报文携带的源节点的因特网协议IP地址、目的节点的IP地址和最大传输单元MTU的值;
所述防护设备根据所述源节点的IP地址和所述目的节点的IP地址,确定所述源节点和所述目的节点之间路径上合法的MTU的范围;
如果所述防护设备确定所述MTU的值不属于所述源节点和所述目的节点之间路径上合法的MTU的范围,则所述防护设备对所述第一报文进行攻击防范处理。
2.根据权利要求1所述的方法,其特征在于,所述防护设备根据所述源节点的IP地址和所述目的节点的IP地址,确定所述源节点和所述目的节点之间路径上合法的MTU的范围包括:
所述防护设备根据所述源节点的IP地址和所述目的节点的IP地址,获得所述防护设备保存的所述源节点至所述目的节点路径上MTU的值和所述目的节点至所述源节点路径上MTU的值,确定所述源节点和所述目的节点之间路径上合法的MTU的范围的上限值为所述源节点至所述目的节点路径上MTU的值和所述目的节点至所述源节点路径上MTU的值中的较大值,确定所述源节点和所述目的节点之间路径上合法的MTU的范围的下限值为所述源节点至所述目的节点路径上MTU的值和所述目的节点至所述源节点路径上MTU的值中的较小值;或者,
所述防护设备根据所述源节点的IP地址和所述目的节点的IP地址,从保存的IP地址对与路径MTU的范围的对应关系中,查询得到为所述源节点和所述目的节点之间的路径配置的路径MTU的范围。
3.根据权利要求1或2所述的方法,其特征在于,所述防护设备对所述第一报文进行攻击防范处理包括:
如果所述防护设备确定所述第一报文为所述第一报文所属数据流的首报文,则所述防护设备丢弃所述第一报文,以触发ICMPv6分组太大报文的重传;
如果所述防护设备在预设的第一时间长度内接收到重传的第二报文,所述第二报文是ICMPv6分组太大报文,则所述防护设备确定所述第一报文为正常的ICMPv6分组太大报文,并放行所述第二报文。
4.根据权利要求3所述的方法,其特征在于,还包括:
如果所述防护设备确定所述第一报文不是所述第一报文所属数据流的首报文,或者所述防护设备在预设的第一时间长度内未接收到重传的第二报文,则所述防护设备生成探测报文,并向所述源节点发送所述探测报文,所述探测报文的报文长度大于所述防护设备从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;
如果所述防护设备在预设的第二时间长度内接收到第三报文,所述第三报文是ICMPv6分组太大报文,则所述防护设备判断所述第三报文中是否包括认证字段;
如果包括,则所述防护设备判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;
如果相同,则所述防护设备比较所述第一报文和所述第三报文携带的MTU的值;
如果所述第一报文和第三报文所携带的MTU的值之差小于预设阈值,则所述防护设备确定第一报文为正常的ICMPv6分组太大报文。
5.根据权利要求1或2所述的方法,其特征在于,所述防护设备对所述第一报文进行攻击防范处理包括:
所述防护设备生成探测报文,并向所述源节点发送所述探测报文,所述探测报文的报文长度大于所述防护设备从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;
如果所述防护设备在预设的第二时间长度内接收到第三报文,所述第三报文为ICMPv6分组太大报文,则所述防护设备判断所述第三报文中是否包括认证字段;
如果包括,则所述防护设备判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;
如果相同,则所述防护设备比较所述第一报文和所述第三报文携带的MTU的值;
如果所述第一报文和所述第三报文所携带的MTU的值之差小于预设阈值,则所述防护设备确定所述第一报文为正常的ICMPv6分组太大报文。
6.根据权利要求3所述的方法,其特征在于,所述防护设备确定所述第一报文为正常的ICMPv6分组太大报文之后,还包括:
所述防护设备将保存的所述源节点至所述目的节点路径上MTU的值更新为所述防护设备从所述第一报文中获得的MTU的值。
7.根据权利要求4所述的方法,其特征在于,所述防护设备确定所述第一报文为正常的ICMPv6分组太大报文之后,还包括:
所述防护设备将保存的所述源节点至所述目的节点路径上MTU的值更新为所述防护设备从所述第一报文中获得的MTU的值。
8.根据权利要求5所述的方法,其特征在于,所述防护设备确定所述第一报文为正常的ICMPv6分组太大报文之后,还包括:
所述防护设备将保存的所述源节点至所述目的节点路径上MTU的值更新为所述防护设备从所述第一报文中获得的MTU的值。
9.根据权利要求1所述的方法,其特征在于,所述防护设备接收第一报文之后,还包括:
如果所述防护设备确定所述第一报文不是ICMPv6分组太大报文,并且所述防护设备确定所述第一报文为正常的业务报文,则所述防护设备解析所述第一报文,获得所述第一报文携带的源节点的IP地址和目的节点的IP地址,并判断所述第一报文的报文长度是否大于保存的所述源节点至所述目的节点路径上MTU的值;
如果所述第一报文是正常的业务报文、且所述第一报文的报文长度大于保存的所述源节点至所述目的节点路径上MTU的值,则所述防护设备将所述源节点至所述目的节点路径上MTU的值更新为所述第一报文的报文长度。
10.一种防护设备,其特征在于,包括:
接收模块,用于接收第一报文;
确定模块,用于确定所述接收模块接收的第一报文是否为因特网控制报文协议版本6ICMPv6分组太大报文;
解析模块,用于当所述确定模块确定所述第一报文为ICMPv6分组太大报文时,解析所述第一报文,获得所述第一报文携带的源节点的因特网协议IP地址、目的节点的IP地址和最大传输单元MTU的值;
所述确定模块,还用于根据所述解析模块获得的所述源节点的IP地址和所述目的节点的IP地址,确定所述源节点和所述目的节点之间路径上合法的MTU的范围;以及确定所述解析模块获得的MTU的值是否属于所述源节点和所述目的节点之间路径上合法的MTU的范围;
防护模块,用于当所述确定模块确定所述解析模块获得的MTU的值不属于所述源节点和所述目的节点之间路径上合法的MTU的范围时,对所述接收模块接收的第一报文进行攻击防范处理。
11.根据权利要求10所述的防护设备,其特征在于,所述防护模块包括:
确定单元,用于确定所述接收模块接收的第一报文是否为所述第一报文所属数据流的首报文;
丢弃单元,用于当所述确定单元确定所述第一报文为所述第一报文所属数据流的首报文时,丢弃所述第一报文,以触发ICMPv6分组太大报文的重传;
第一放行单元,用于当在预设的第一时间长度内接收到重传的第二报文,所述第二报文是ICMPv6分组太大报文时,确定所述第一报文为正常的ICMPv6分组太大报文,并放行所述第二报文。
12.根据权利要求11所述的防护设备,其特征在于,所述防护模块还包括:
第一生成单元,用于当所述确定单元确定所述第一报文不是所述第一报文所属数据流的首报文,或者在预设的第一时间长度内未接收到重传的第二报文时,生成探测报文,所述探测报文的报文长度大于所述解析模块从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;
第一发送单元,用于向所述源节点发送所述第一生成单元生成的探测报文;
第一判断单元,用于当在预设的第二时间长度内接收到第三报文,所述第三报文是ICMPv6分组太大报文时,判断所述第三报文中是否包括认证字段;以及当所述第三报文中包括认证字段时,判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;
第一比较单元,用于当所述第一判断单元确定所述第三报文中的认证字段的值与所述探测报文中的认证字段的值相同时,比较所述第一报文和所述第三报文携带的MTU的值;
所述第一放行单元,还用于当所述第一比较单元确定所述第一报文和所述第三报文携带的MTU的值之差小于预设阈值时,确定所述第一报文为正常的ICMPv6分组太大报文。
13.根据权利要求10所述的防护设备,其特征在于,所述防护模块包括:
第二生成单元,用于生成探测报文,所述探测报文的报文长度大于所述解析模块从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;
第二发送单元,用于向所述源节点发送所述第二生成单元生成的探测报文;
第二判断单元,用于当在预设的第二时间长度内接收到第三报文,所述第三报文为ICMPv6分组太大报文时,判断所述第三报文中是否包括认证字段;以及当所述第三报文中包括认证字段时,判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;
第二比较单元,用于当所述第二判断单元确定所述第三报文中的认证字段的值与所述探测报文中的认证字段的值相同时,比较所述第一报文和所述第三报文携带的MTU的值;
第二放行单元,用于当所述第二比较单元确定所述第一报文和所述第三报文携带的MTU的值之差小于预设阈值时,确定所述第一报文为正常的ICMPv6分组太大报文。
14.根据权利要求11、12或13所述的防护设备,其特征在于,还包括:
更新模块,用于在确定所述第一报文为正常的ICMPv6分组太大报文之后,将保存的所述源节点至所述目的节点路径上MTU的值更新为所述解析模块从所述第一报文中获得的MTU的值。
15.根据权利要求10所述的防护设备,其特征在于,还包括:更新模块;
所述解析模块,还用于当所述确定模块确定所述第一报文不是ICMPv6分组太大报文,并且所述确定模块确定所述第一报文为正常的业务报文时,解析所述第一报文,获得所述第一报文携带的源节点的IP地址和目的节点的IP地址;
所述确定模块,还用于判断所述第一报文的报文长度是否大于保存的所述源节点至所述目的节点路径上MTU的值;
所述更新模块,用于当所述确定模块确定所述第一报文是正常的业务报文、且所述报文的报文长度大于保存的所述源节点至所述目的节点路径上MTU的值时,将所述源节点至所述目的节点路径上MTU的值更新为所述第一报文的报文长度。
16.一种防护设备,其特征在于,包括:发射机、接收机、存储器以及分别与所述发射机、所述接收机和所述存储器连接的处理器;
所述接收机,用于接收第一报文;
所述存储器,用于存储程序代码;
所述处理器,用于调用并执行所述存储器中存储的程序代码,以实现如下功能:当确定所述接收机接收的第一报文为因特网控制报文协议版本6ICMPv6分组太大报文时,解析所述第一报文,获得所述第一报文携带的源节点的因特网协议IP地址、目的节点的IP地址和最大传输单元MTU的值;以及根据所述源节点的IP地址和所述目的节点的IP地址,确定所述源节点和所述目的节点之间路径上合法的MTU的范围;以及当确定所述MTU的值不属于所述源节点和所述目的节点之间路径上合法的MTU的范围时,对所述第一报文进行攻击防范处理。
17.根据权利要求16所述的防护设备,其特征在于,所述处理器用于对所述第一报文进行攻击防范处理包括:
所述处理器,具体用于当确定所述第一报文为所述第一报文所属数据流的首报文时,丢弃所述第一报文,以触发ICMPv6分组太大报文的重传;如果所述接收机在预设的第一时间长度内接收到重传的第二报文,所述第二报文是ICMPv6分组太大报文,则确定所述第一报文为正常的ICMPv6分组太大报文,并放行所述第二报文。
18.根据权利要求17所述的防护设备,其特征在于,
所述处理器,还用于当确定所述第一报文不是所述第一报文所属数据流的首报文,或者所述接收机在预设的第一时间长度内未接收到重传的第二报文时,生成探测报文,所述探测报文的报文长度大于所述处理器从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;以及在所述发射机向所述源节点发送所述探测报文之后,当所述接收机在预设的第二时间长度内接收到第三报文,所述第三报文是ICMPv6分组太大报文时,判断所述第三报文中是否包括认证字段;如果包括,则判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;如果相同,则比较所述接收机接收到的所述第一报文和所述第三报文携带的MTU的值;如果所述第一报文和所述第三报文携带的MTU的值之差小于预设阈值,则确定所述第一报文为正常的ICMPv6分组太大报文;
所述发射机,用于向所述源节点发送所述处理器生成的探测报文。
19.根据权利要求16所述的防护设备,其特征在于,所述处理器用于对所述第一报文进行攻击防范处理包括:
所述处理器,具体用于生成探测报文,所述探测报文的报文长度大于所述处理器从所述第一报文中获得的MTU的值,并且所述探测报文中包括认证字段;以及在所述发射机向所述源节点发送所述探测报文之后,当所述接收机在预设的第二时间长度内接收到第三报文,所述第三报文是ICMPv6分组太大报文时,判断所述第三报文中是否包括认证字段;如果包括,则判断所述第三报文中的认证字段的值与所述探测报文中的认证字段的值是否相同;如果相同,则比较所述接收机接收到的所述第一报文和所述第三报文携带的MTU的值;如果所述第一报文和所述第三报文携带的MTU的值之差小于预设阈值,则确定所述第一报文为正常的ICMPv6分组太大报文;
所述发射机,用于向所述源节点发送所述处理器生成的探测报文。
20.根据权利要求17、18或19所述的防护设备,其特征在于,
所述处理器,还用于在确定所述第一报文为正常的ICMPv6分组太大报文之后,将所述源节点至所述目的节点路径上MTU的值更新为所述处理器从所述第一报文中获得的MTU的值。
21.根据权利要求16所述的防护设备,其特征在于,
所述处理器,还用于当确定所述接收机接收的第一报文不是ICMPv6分组太大报文,并且确定所述接收机接收的第一报文为正常的业务报文时,解析所述第一报文,获得所述第一报文携带的源节点的IP地址和目的节点的IP地址,并判断所述第一报文的报文长度是否大于所述源节点至所述目的节点路径上MTU的值;如果是,则将所述源节点至所述目的节点路径上MTU的值更新为所述第一报文的报文长度。
CN201380000558.3A 2013-06-26 2013-06-26 报文识别方法和防护设备 Active CN103688508B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/078003 WO2014205675A1 (zh) 2013-06-26 2013-06-26 报文识别方法和防护设备

Publications (2)

Publication Number Publication Date
CN103688508A CN103688508A (zh) 2014-03-26
CN103688508B true CN103688508B (zh) 2016-07-06

Family

ID=50323340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380000558.3A Active CN103688508B (zh) 2013-06-26 2013-06-26 报文识别方法和防护设备

Country Status (4)

Country Link
US (1) US9912643B2 (zh)
EP (1) EP2953311B1 (zh)
CN (1) CN103688508B (zh)
WO (1) WO2014205675A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142250B2 (en) * 2015-01-26 2018-11-27 Hfi Innovation Inc. Maximum transmission unit size reporting using AT commands
CN112887209B (zh) * 2019-11-30 2023-06-20 华为技术有限公司 关于数据传输的表项建立方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325076A (zh) * 2011-05-24 2012-01-18 中兴通讯股份有限公司 一种路径最大传输单元发现方法和节点
CN102412924A (zh) * 2010-09-21 2012-04-11 中国电信股份有限公司 路径最大传输单元的探测方法和装置
CN102594810A (zh) * 2012-02-08 2012-07-18 神州数码网络(北京)有限公司 一种IPv6网络防止PMTU攻击的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7304959B1 (en) 2003-04-07 2007-12-04 Novell, Inc. Utility based filtering mechanism for PMTU probing
CN100459576C (zh) * 2005-08-05 2009-02-04 华为技术有限公司 一种探测路径最大传输单元的方法
US8677473B2 (en) * 2008-11-18 2014-03-18 International Business Machines Corporation Network intrusion protection
US8576847B2 (en) * 2010-08-26 2013-11-05 International Business Machines Corporation Mechanisms for discovering path maximum transmission unit
KR20140014932A (ko) * 2012-07-27 2014-02-06 주식회사 코닉글로리 IPv6 패킷 탐지 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412924A (zh) * 2010-09-21 2012-04-11 中国电信股份有限公司 路径最大传输单元的探测方法和装置
CN102325076A (zh) * 2011-05-24 2012-01-18 中兴通讯股份有限公司 一种路径最大传输单元发现方法和节点
CN102594810A (zh) * 2012-02-08 2012-07-18 神州数码网络(北京)有限公司 一种IPv6网络防止PMTU攻击的方法和装置

Also Published As

Publication number Publication date
CN103688508A (zh) 2014-03-26
US20160021062A1 (en) 2016-01-21
EP2953311A1 (en) 2015-12-09
US9912643B2 (en) 2018-03-06
EP2953311B1 (en) 2019-01-16
EP2953311A4 (en) 2016-03-30
WO2014205675A1 (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
US11784928B2 (en) System and method for dataplane-signaled packet capture in IPv6 environment
US10972391B2 (en) Full-path validation in segment routing
US10164851B2 (en) Transmission and reception of a diagnostic request in an IP network
JP5883920B2 (ja) パケット重複排除のためのシステムおよび方法
US10218592B2 (en) Method, device and system for performing bidirectional forwarding detection on aggregated link
EP3151482B1 (en) Method and device for updating processing manner of service flow packet
CN110191066B (zh) 一种确定最大传输单元pmtu的方法、设备及系统
US10715426B2 (en) Processing rule modification method, apparatus and device
US8910267B2 (en) Method for managing connections in firewalls
CN107612890B (zh) 一种网络监测方法及系统
CN111371740B (zh) 一种报文流量监控方法、系统及电子设备
US11695858B2 (en) Packet fragmentation control
WO2015184771A1 (zh) 一种业务功能链操作、管理和维护方法及节点设备
CN108924000B (zh) 一种基于tcp协议实现的新型网络路径探测方法
CN103688508B (zh) 报文识别方法和防护设备
CN104601469A (zh) 组播报文转发方法和设备
JP7412363B2 (ja) データストリームのプロトコルの識別
CN111669318A (zh) 一种Linux系统下数据包转发的方法及装置
WO2023222028A1 (zh) 一种网络编程技术处理方法、系统及存储介质
Kumar DDoS Detection and Mitigation Using OpenFlow
Jahan et al. Active Network Service Composition

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant