CN106487756B - 一种检测交换机信息泄露的方法及装置 - Google Patents
一种检测交换机信息泄露的方法及装置 Download PDFInfo
- Publication number
- CN106487756B CN106487756B CN201510540183.0A CN201510540183A CN106487756B CN 106487756 B CN106487756 B CN 106487756B CN 201510540183 A CN201510540183 A CN 201510540183A CN 106487756 B CN106487756 B CN 106487756B
- Authority
- CN
- China
- Prior art keywords
- flow table
- test
- entry
- flow
- entries
- 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
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/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- 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/1433—Vulnerability analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种检测交换机信息泄露的方法和装置,该方法包括:获取目标交换机的流表项的Hard‑Timeout和Idle‑Timeout;根据Hard‑Timeout和Idle‑Timeout向目标交换机的流表中***测试流表项,并记录每个测试流表项***流表的RTT;根据各个测试流表项***流表的RTT和***的测试流表项的状态,确定目标交换机的流表容量的测量值N1,或者测试流表项***之前所述流表已有的流表项数量的测量值N2;当N1与目标交换机的标配参数中的流表容量的差值在预设范围内,或者N2与目标交换机的标配参数中的用户占用的流表项数量的差值在预设范围内时,确定目标交换机存在信息泄露的漏洞。采用本发明能够提高交换机信息的保密性,增强网络的安全。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种检测交换机信息泄露的方法及装置。
背景技术
软件定义网络(Software-Defined Network,SDN)是一种新型网络架构,通过将各个网络设备的控制功能从物理设备中抽取出来,形成逻辑上集中的控制器,全网流量由控制器统一管理。控制器确定所有转发节点的流表(flow table),并通过OpenFlow(即SDN网络中用于控制器与交换机之间通信的标准协议)等协议向交换机(即OpenFlow交换机)发送与该交换机对应的流表。交换机的硬件参数是数据中心一项重要参数,该硬件参数一旦泄露,将会成为攻击者对目标网络进行攻击的重要信息,对数据中心的安全造成威胁。为了防止该硬件参数泄露,SDN网络需要预先对硬件参数是否可能存在泄露进行检测。
现有技术中的有一种测试SDN攻击的方法,该方法包括:测试方获取待测试的SDN中对外提供服务的服务器的IP(Internet Protocol,互联网协议)地址,以及该服务器提供服务的端口号;测试方根据服务器的IP地址以及服务器提供服务的端口号构造第一测试报文和第二测试报文,并将第一测试报文及第二测试报文先后发送给服务器;当测试方没有收到所述服务器对第二测试报文的应答时,等待一随机时间段再将第二测试报文发送给服务器。该测试方法能够在SDN网络难以察觉到异常的境况下,持续不断的通过刷新流表中的攻击类流表项进行网络攻击测试,使得交换机的攻击类流表项一直处于合法的生存周期内,不能被删除,从而不能接收新的合法的流表项,导致交换机不能进行正常的数据转发工作。
从上可知,上述现有技术虽然能够实现对于目标SDN网络的交换机流表溢出攻击的测试,但是该种攻击测试仅仅可以使得交换机的攻击类流表项一直处于合法的生存周期内,不能被删除,对于构建安全可靠的SDN数据中心网络应用价值较为有限。
发明内容
本发明实施例提供一种检测交换机信息泄露的方法及装置,可对交换机信息泄露的漏洞进行检测,提高交换机信息的保密性,增强网络安全性。
本发明实施例第一方面提供了一种检测交换机信息泄露的方法,所述方法包括:
获取目标交换机的流表项的硬件老化时间Hard-Timeout和软件老化时间Idle-Timeout,其中,所述Hard-Timeout为所述流表项在流表中存储的时长,所述Idle-Timeout为所述流表项最后一次被数据包匹配的时间点至所述流表项被删除的时间点之间的时长;
根据所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,并记录每个所述测试流表项***所述流表的往返时延RTT;
根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,或者确定测试流表项***之前所述流表已有的流表项数量的测量值N2;
当所述N1与所述目标交换机的标准配置参数中的流表容量的差值在第一预设范围内,或者所述N2与所述目标交换机的标识配置参数中的用户占用的流表项数量的差值在第二预设范围内时,确定所述目标交换机存在信息泄露的漏洞。
结合第一方面,在第一种可能的实现方式中,所述获取目标交换机的流表项的Hard-Timeout和Idle-Timeout,包括:
按照第一时间间隔向所述目标交换机发送第一测试数据包,并根据获取到的所述第一测试数据包的RTT确定所述目标交换机的流表项的Hard-Timeout;
按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,并根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述按照第一时间间隔向所述目标交换机发送第一测试数据包,并根据获取到的所述第一测试数据包的RTT确定所述目标交换机的流表项的Hard-Timeout,包括:
在第一时间节点发送所述第一测试数据包给目标交换机,并将本次发送的所述第一测试数据包的RTT记录为T1;
在第二时间节点上向所述目标交换机发送所述第一测试数据包,所述第二时间节点和所述第一时间节点的时间间隔为所述第一时间间隔;
当所述第二时间节点发送的所述第一测试数据包的RTT小于T1时,将本次发送的所述第一测试数据包的RTT记录为T0,并根据所述第一时间间隔继续向所述目标交换机发送所述第一测试数据包,获取每次向所述目标交换机发送的每个所述第一测试数据包的RTT;
当第N次发送给所述目标交换机的所述第一测试数据包的RTT恢复为T1时,计算所述第N次发送所述第一测试数据包给所述目标交换机的时间节点与所述第一时间节点的目标时间间隔,并将所述目标时间间隔确定为所述目标交换机的流表项的Hard-Timeout;
其中,所述T1大于所述T0,所述N为自然数。
结合第一方面第一种可能的实现方式或第一方面第二种可能的实现方式,在第三种可能的实现方式中,所述按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,包括:
在第三时间节点发送所述第二测试数据包给目标交换机,并将本次发送的所述第二测试数据包的RTT记录为T11;
在第四时间节点上向所述目标交换机发送所述第二测试数据包,所述第四时间节点和所述第三时间节点的时间间隔为所述第二时间间隔;
当所述第四时间节点发送的所述第二测试数据包的RTT小于T11时,将本次发送的所述第二测试数据包的RTT记录为T01,并加大向所述目标交换机发送所述第二测试数据的时间间隔,以按照调整后的时间间隔继续向所述目标交换机发送所述第二测试数据包。
结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,所述根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout,包括:
根据调整后的时间间隔发送所述第二测试数据包给所述目标交换机;
当所述第二测试数据包的RTT从小于T11恢复为T11时,将本次向所述目标交换机发送所述第二测试数据包的时间间隔确定为第三时间间隔,并将所述第三时间间隔确定为所述目标交换机的流表项的Idle-Timeout。
结合第一方面至第一方面第四种可能的实现方式中任一种,在第五种可能的实现方式中,
所述根据所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,包括:
根据所述Hard-Timeout和所述Idle-Timeout,确定将测试流表项***所述流表的***时间间隔;
按照所述***时间间隔生成用于***所述目标交换机的流表的测试流表项,并将所述测试流表项***所述目标交换机的流表中。
结合第一方面至第一方面第五种可能的实现方式中任一种,在第六种可能的实现方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,包括:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M2确定为所述目标交换机的流表容量的测量值N1。
结合第一方面至第一方面第五种可能的实现方式中任一种,在第七种可能的实现方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定测试流表项***之前所述流表已有的流表项数量的测量值N2,包括:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M2,并将所述M2与所述M1的数量差标记为所述流表已有的流表项数量的测量值N2。
结合第一方面至第一方面第五种可能的实现方式中任一种,在第八种可能的实现方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,包括:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M4确定为所述目标交换机的流表容量的测量值N1。
结合第一方面至第一方面第五种可能的实现方式中任一种,在第九种可能的实现方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定测试流表项***之前所述流表已有的流表项数量的测量值N2,包括:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M4,并将所述M4与所述M3的数量差标记为所述流表已有的流表项数量的测量值N2。
本发明实施例第二方面提供了一种检测交换机信息泄露的装置,其可包括:
获取模块,用于获取目标交换机的流表项的硬件老化时间Hard-Timeout和软件老化时间Idle-Timeout,其中,所述Hard-Timeout为所述流表项在流表中存储的时长,所述Idle-Timeout为所述流表项最后一次被数据包匹配的时间点至所述流表项被删除的时间点之间的时长;
***模块,用于根据所述获取模块获取的所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,并记录每个所述测试流表项***所述流表的往返时延RTT;
确定模块,用于根据所述***模块记录的各个所述测试流表项***所述流表的RTT,和所述***模块***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,或者确定测试流表项***之前所述流表已有的流表项数量的测量值N2;
检测模块,用于在所述确定模块确定的所述N1与所述目标交换机的标准配置参数中的流表容量的差值在第一预设范围内,或者所述N2与所述目标交换机的标识配置参数中的用户占用的流表项数量的差值在第二预设范围内时,确定所述目标交换机存在信息泄露的漏洞。
结合第二方面,在第一种可能的实现方式中,所述获取模块包括:
第一处理单元,用于按照第一时间间隔向所述目标交换机发送第一测试数据包,并根据获取到的所述第一测试数据包的RTT确定所述目标交换机的流表项的Hard-Timeout;
第二处理单元,用于按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,并根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout。
结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一处理单元具体用于:
在第一时间节点发送所述第一测试数据包给目标交换机,并将本次发送的所述第一测试数据包的RTT记录为T1;
在第二时间节点上向所述目标交换机发送所述第一测试数据包,所述第二时间节点和所述第一时间节点的时间间隔为所述第一时间间隔;
当所述第二时间节点发送的所述第一测试数据包的RTT小于T1时,将本次发送的所述第一测试数据包的RTT记录为T0,并根据所述第一时间间隔继续向所述目标交换机发送所述第一测试数据包,获取每次向所述目标交换机发送的每个所述第一测试数据包的RTT;
当第N次发送给所述目标交换机的所述第一测试数据包的RTT恢复为T1时,计算所述第N次发送所述第一测试数据包给所述目标交换机的时间节点与所述第一时间节点的目标时间间隔,并将所述目标时间间隔确定为所述目标交换机的流表项的Hard-Timeout;
其中,所述T1大于所述T0,所述N为自然数。
结合第二方面第一种可能的实现方式或第二方面第二种可能的实现方式,在第三种可能的实现方式中,所述第二处理单元具体用于:
在第三时间节点发送所述第二测试数据包给目标交换机,并将本次发送的所述第二测试数据包的RTT记录为T11;
在第四时间节点上向所述目标交换机发送所述第二测试数据包,所述第四时间节点和所述第三时间节点的时间间隔为所述第二时间间隔;
当所述第四时间节点发送的所述第二测试数据包的RTT小于T11时,将本次发送的所述第二测试数据包的RTT记录为T01,并加大向所述目标交换机发送所述第二测试数据的时间间隔,以按照调整后的时间间隔继续向所述目标交换机发送所述第二测试数据包。
结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,所述第二处理单元具体用于:
根据调整后的时间间隔发送所述第二测试数据包给所述目标交换机;
当所述第二测试数据包的RTT从小于T11恢复为T11时,将本次向所述目标交换机发送所述第二测试数据包的时间间隔确定为第三时间间隔,并将所述第三时间间隔确定为所述目标交换机的流表项的Idle-Timeout。
结合第二方面至第二方面第四种可能的实现方式中任一种,在第五种可能的实现方式中,
所述***模块具体用于:
根据所述Hard-Timeout和所述Idle-Timeout,确定将测试流表项***所述流表的***时间间隔;
按照所述***时间间隔生成用于***所述目标交换机的流表的测试流表项,并将所述测试流表项***所述目标交换机的流表中。
结合第二方面至第二方面第五种可能的实现方式中任一种,在第六种可能的实现方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M2确定为所述目标交换机的流表容量的测量值N1。
结合第二方面至第二方面第五种可能的实现方式中任一种,在第七种可能的实现方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M2,并将所述M2与所述M1的数量差标记为所述流表已有的流表项数量的测量值N2。
结合第二方面至第二方面第五种可能的实现方式中任一种,在第八种可能的实现方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M4确定为所述目标交换机的流表容量的测量值N1。
结合第二方面至第二方面第五种可能的实现方式中任一种,在第九种可能的实现方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M4,并将所述M4与所述M3的数量差标记为所述流表已有的流表项数量的测量值N2。
实施本发明实施例,具有如下有益效果:
在本发明实施例中,获取目标交换机的流表项的Hard-Timeout和Idle-Timeout之后,可根据上述目标交换机的流表项的Hard-Timeout和Idle-Timeout确定向目标交换机的流表中***流表项的时间间隔,进而可按照上述时间间隔向流表中***测试流表项。进一步的,还可根据各个时间节点***流表中的测试流表项的RTT以及***的测试流表项的状态确定目标交换机的流表容量的测量值,或者目标交换机的流表中用户所占用的流表项的数量的测量值等信息,将上述获取得的测量值与目标交换机的标准配置中的配置值进行匹配,确定测量值是否与配置值相近,以此判断目标交换机是否存在信息泄露的漏洞,提高交换机信息的保密性,增强网络安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的检测交换机信息泄露的方法的第一实施例流程示意图;
图2是本发明实施例提供的数据包在交换机中处理的流程示意图;
图3是本发明实施例提供的检测交换机信息泄露的方法的第二实施例流程示意图;
图4是本发明实施例提供的测试数据包的RTT的一探测示意图;
图5是本发明实施例提供的测试数据包的RTT的另一探测示意图;
图6是本发明实施例提供的目标交换机的流表项的Hard-Timeout的探测示意图;
图7是本发明实施例提供的目标交换机的流表项的Idle-Timeout的探测示意图;
图8a是本发明实施例提供的目标交换机的流表容量和用户占用的流表项的数量的探测方法一对应的一探测示意图;
图8b是本发明实施例提供的目标交换机的流表容量和用户占用的流表项的数量的探测方法一对应的另一探测示意图;
图8c是本发明实施例提供的目标交换机的流表容量和用户占用的流表项的数量的探测方法一对应的另一探测示意图;
图8d是本发明实施例提供的目标交换机的流表容量和用户占用的流表项的数量的探测方法一对应的另一探测示意图;
图9a是本发明实施例提供的目标交换机的流表容量和用户占用的流表项的数量的探测方法二对应的一探测示意图;
图9b是本发明实施例提供的目标交换机的流表容量和用户占用的流表项的数量的探测方法二对应的另一探测示意图;
图9c是本发明实施例提供的目标交换机的流表容量和用户占用的流表项的数量的探测方法二对应的另一探测示意图;
图9d是本发明实施例提供的目标交换机的流表容量和用户占用的流表项的数量的探测方法二对应的另一探测示意图;
图10是本发明实施例提供的检测交换机信息泄露的装置的一实施例结构示意图;
图11是本发明实施例提供的检测交换机信息泄露的装置的另一实施例结构示意图;
图12是本发明实施例提供的检测终端的实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实现中,本发明实施例中所描述的交换机具体可为SDN网络中的OpenFlow交换机,即,SDN网络中使用OpenFlow协议进行通信的交换机。OpenFlow交换机内的流表均采用三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)缓存制成,TCAM主要用于快速查找访问控制列表(Access Control List,ACL)或者路由等表项,具有查找速度快,操作简单的优点。同时,它也具有3个明显的缺点:成本高、功耗大和路由更新复杂。TCAM缓存的高成本造成OpenFlow交换机中的流表容量极为有限,例如,日本电气股份有限公司(NEC Corporation)的PF5820交换机的流表容量仅为750条,在2013年开放网络峰会(Open Networking Summit,ONS)中被评为最佳SDN交换机的盛科V350流表容量也仅为2000条。
与OpenFlow交换机极为有限的流表容量相对应的是,在数据中心内,网络流数可以达到5k~10k条流/秒,网络流数远远超过OpenFlow交换机中的流表数量。因此,如果网络流量较大,则每个网络流到来时OpenFlow交换机都需要根据该条流的特征向流表中写入对应的规则(flow entry),这种精确匹配的流表生成机制极易造成流表被完全占用。流表被完全占用后,如果有新的网络流到达,且该网络流在流表内尚无对应规则进行处理,则会导致以下后果:
根据OpenFlow协议,OpenFlow交换机需要与控制器进行频繁交互,将网络流信息封装在Packet_In(OpenFlow协议中所定义的由交换机发送至控制器的一类消息)消息内发送给控制器,由控制器计算并下发新的流表规则。交换机与控制器之间的频繁交互会造成网络性能的严重降低,而该种网络性能的降低可以通过诸如往返时延(Round-Trip Time,RTT)等参数进行测量。此外,交换机流表内存在对应流表规则(即流表中存在与网络流中的数据包相匹配的流表项)与不存在对应流表规则(即流表中不存在与网络流中的数据包相匹配的流表项)时的数据包转发性能也有较大差异,该种差异也可以通过RTT等参数的测量进行区分。
攻击者可以通过生成一系列具有特定数据包序列的网络流量,来影响甚至控制OpenFlow交换机内流表规则(即交换机流表中的流表项)的存活时间;而交换机流表的状态(包括流表规则是否存在于交换机流表中以及交换机流表是否溢出等)可以通过对RTT等网络参数的测量来判定。攻击者将注入网络中的数据包序列与通过RTT等网络参数的测量判断得到的对应流表规则状态相结合,即可推测OpenFlow交换机的内部状态,并进一步推测OpenFlow交换机的TCAM流表容量以及与攻击者连接至同一台OpenFlow交换机的其他用户的实时网络流量(即其他用户所占用的流表项数量),从而造成OpenFlow交换机所在网络的关键参数发生信息泄露。
为了提高OpenFlow交换机的信息的保密性,增强OpenFlow交换机的安全性,本发明实施例提供了一种检测交换机信息泄露的方法,可利用检测工具对于现有的OpenFlow交换机进行检测,如果发现存在OpenFlow交换机的信息泄漏安全漏洞,则需要采取相应的防御措施,防止OpenFlow交换机信息的泄露。
具体实现中,本发明实施例中所描述的检测交换机信息泄露的方法的执行主体可为用于检测交换机信息泄露的漏洞的检测工具或者检测终端,下面将简单以检测终端(或简称终端)为例进行具体说明。
本发明实施例中所描述的交换机信息泄露的检测参数主要是交换机的流表容量,以及与检测终端连接至同一部OpenFlow交换机(即目标交换机)的其他用户所占用的流表项的数量等。上述流表容量即其他用户所占用的流表项的数量等参数仅是举例,而非穷举,在此不做限制。本发明实施例主要通过上述两个参数的测量对判断交换机是否存在信息泄露的漏洞,适用于基于OpenFlow协议的SDN架构,同样也适用于其他SDN架构,在此不做限制。
在本发明实施例中,检测终端可通过检测交换机流表中的流表项的硬件老化时间(Hard-Timeout)以及流表项的软件老化时间(Idle-Timeout)等流表参数来确定交换机的流表容量的测量值,或者交换机的流表中其他用户所占用的流表项的数量的测量值等信息,进而将上述流表容量的测量值和其他用户所占用的流表项的数量的测量值,与交换机的标识配置中配置的流表容量的配置值以及其他用户所占用的流表项数量的配置值进行比较,根据比较结果确定交换机是否存储信息泄露的漏洞。下面将图1至图12对本发明实施例提供的检测交换机信息泄露的方法及装置的具体实施方式进行描述。
参见图1,是本发明实施例提供的检测交换机信息泄露的方法的第一实施例流程示意图。本发明实施例中所描述的检测方法,包括步骤:
S101,获取目标交换机的流表项的硬件老化时间Hard-Timeout和软件老化时间Idle-Timeout。
在一些可行的实施方式中,RTT在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认信息(接收端收到数据后便立即发送确认)总共经历的时延。具体实现中,终端测试目标交换机的流表项的Hard-Timeout时,可首先设定向目标交换机发送测试数据包的时间间隔(即第一时间间隔),并按照上述预先设定的第一时间间隔向上述目标交换机发送第一测试数据包。当数据包到达目标交换机,目标交换机可首先对该数据包进行解析,提取用于匹配的数据报头部字段,随后送入流水线进行处理。
流水线首先可根据提取得到的数据报头部字段对流表进行匹配查询,如果流表中有与该数据包相匹配的流表项,则按照该流表项的操作对数据包进行转发,数据包随后离开交换机。该种情况下的数据包处理过程如图2中最内层虚线矩形所示,图2为数据包在交换机中的处理过程。
如果流表中未发现与该数据包相匹配的流表项,目标交换机则需要先对流表状态进行检查,如果流表未满,则目标交换机将该数据包通过Packet_In消息上报至下发流表项信息的指定交换机,并随后安装由上述指定交换机计算并下发的新流表项(与上述数据包相匹配的流表项),最后,该数据包根据新流表项的操作进行转发,数据包离开交换机。该种情况下的数据包处理过程如图2中中间层虚线矩形所示。
如果流表状态检查显示流表已满,目标交换机则需要先对流表执行清理,即根据指定流表替换算法对流表中已有的某些流表项进行删除,从而为后续添加新的流表项提供流表空间。该种情况下的数据包处理过程如图2中最外层虚线矩形所示。
由此可以看出,图2中三个矩形分别对应“流表中存在匹配流表项”、“流表中不存在匹配流表项且流表未满”、“流表中不存在匹配流表项且流表已满”三种状态下的数据包转发处理流程,以下分别用状态1、状态2、状态3表示。
相比状态1,状态2需要额外的Packet_In数据包上报、控制器流表计算生成、流表下发等操作,因此状态2的处理时间要长于状态1;相比状态2,状态3又引入了额外的流表清理与删除操作,因此状态3的处理时间要长于状态2,综上可知,假设上述三种状态的处理时间分别为T0、T1和T2,则T0<T1<T2。
由上述OpenFlow交换机数据包处理流程的分析可知,终端可通过一个数据包在目标交换机中的处理时间来判断目标交换机流表的状态,包括:流表中是否有对应的流表项以及流表是否已被充满等。由于RTT可反映数据包在交换机中的处理时间,因此,终端可通过测量数据包的RTT判断交换机流表的状态,进而可确定流表中的流表项的其他状态。
在一些可行的实施方式中,终端按照第一时间间隔发送第一测试数据包给目标交换机之后,则可在每次向目标交换机发送第一测试数据包之后获取第一测试数据包的RTT,根据上述第一时间间隔对应的每个时间节点获取到的第一测试数据包的RTT确定上述流表项的Hard-Timeout。其中,上述流表项的Hard-Timeout为上述流表项在流表中存储的物理时间,即上述流表项在流表中存储的时长。若上述流表项下发到上述流表的时间大于该流表项的Hard-Timeout,则该流表项将从上述流表中删除。终端可根据不同时间节点发送给目标交换机的第一测试数据包的RTT判断与第一测试数据包相匹配的流表项下发到流表的时间,以及从流表中删除的时间,进而可确定上述流表项的Hard-Timeout。
在一些可行的实施方式中,终端检测目标交换机的流表项的Hard-Timeout之后,还可进行目标交换机的流表项的Idle-Timeout的检测。具体实现中,终端可预先设定检测目标交换机的流表项的Idle-Timeout时,向目标交换机发送测试数据包的时间间隔,即第二时间间隔,进而可按照上述第二时间间隔向目标交换机发送第二测试数据包。其中,上述目标交换机的流表项的Idle-Timeout为流表项从最后一次被数据包匹配的时间点到流表项被删除的时间点之间的时长。当流表项从最后一次被数据包匹配的时间点到当前时间点之间的时间间隔大于上述Idle-Timeout的值时,该流表项将从流表中删除。其中,上述第一时间间隔和第二时间间隔可为相同的时间间隔,也可为不同的时间间隔,具体可根据实际操作场景确定,在此不做限制。
具体实现中,若终端向目标交换机发送第二测试数据包的时间间隔始终不变,则目标交换机的流表中的流表项每次被数据包匹配到的时间间隔均为相同的时间间隔,无法确定流表项从最后一次被数据包匹配的时间点到当前检测时刻的时间间隔的最大时长为多少。例如,若发送第二测试数据包给目标交换机的时间间隔始终大于目标交换机的流表项的Idle-Timeout,则每次第二测试数据包到达目标交换机时,目标交换机的流表中与第二测试数据包的流表项已经被删除了,无法确定何时被删除的,即无法确定目标交换机的流表项的Idle-Timeout值大概是多少。若发送第二测试数据包给目标交换机的时间间隔始终小于目标交换机的流表项的Idle-Timeout,则目标交换机的流表中的流表项的每次数据包的匹配时间间隔将均小于其Idle-Timeout,无法确定目标交换机的流表项的Idle-Timeout值大概是多少。为了测试目标交换机的流表项的Idle-Timeout,终端需要在按照第二时间间隔发送第二测试数据包给目标交换机之后,获取第二时间间隔的每个时间点发送给目标交换机的第二测试数据包的RTT,根据获取到的各个测试数据包的RTT判断流表中与测试数据包相匹配的流表项的存活状态,进而可根据流表项在流表中的存活状态调整发送第二测试数据包到目标交换机的时间间隔。
在一些可行的实施方式中,当终端根据发送到目标交换机的第二测试数据包的RTT将发送第二测试数据包到目标终端的时间间隔调整至第三时间间隔时,若第一次按照上述第三时间间隔向目标交换机发送第二测试数据包,根据第二测试数据包的RTT确定目标交换机中存储与其相匹配的流表项,第二次按照第三时间间隔发送第二测试数据包之后,根据第二测试数据包的RTT确定目标交换机中已经没有与其相匹配的流表项了,则可将上述第三时间间隔确定为目标交换机的流表项的Idle-Timeout。
S102,根据所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,并记录每个所述测试流表项***所述流表的往返时延RTT。
在一些可行的实施方式中,终端确定了目标交换机的流表项的Hard-Timeout和Idle-Timeout之后,则可根据上述Hard-Timeout和Idle-Timeout确定向目标交换机的流表中***测试流表项的***时间间隔,进而可按照上述***时间间隔向目标交换机的流表***测试流表项。具体实现中,上述测试流表项为用于测试目标交换机的流表容量等参数的流表项,终端可根据实际测试场景的需求自行生成,在此不做限制。具体实现中,终端向目标交换机的流表中***测试流表项之后,还可记录***的每个测试流表项的RTT,以根据每个测试流表项的RTT判断目标交换机的流表是否已满。
S103,根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,或者确定测试流表项***之前所述流表已有的流表项数量的测量值N2。
在一些可行的实施方式中,终端可将流表维护成一个固定长度的队列,队列的长度即为目标交换机的流表容量,测试流表项***流表之前流表中已有的流表项即为其他用户所占用的流表项的数量。***一个测试流表项到上述队列中时,上述测试流表项将被***上述队列的尾部,并将队列中现有的所有流表项依次向前移动一项;当需要删除某一条流表项时,则从队列头部进行删除。***流表项到上述队列的过程,若队列未满,即,流表未满,则可直接将流表项***中上述队列中,此时***的测试流表项的RTT假设为RTT1;若上述队列已满,则确定流表已满,此时***的测试流表项的RTT假设为RTT2。由于队列已满的状态下***测试流表项,终端需要先对队列头部的流表项进行删除,空出流表空间来接收***的测试流表项,此时流表项的RTT(即RTT2)应该大于流表未满时***的测试流表项的RTT(即RTT1),即RTT2>RTT1。终端向目标交换机的流表中***测试流表项的过程中,可对测试流表项的RTT进行监控,根据***的测试流表项的RTT确定流表是否已满。若终端根据***流表的测试流表项的RTT确定流表已满,则可记录距离到流表已满的时刻为止***的测试流表项的数量,假设为M1,即,此时流表中所有的空间都已被测试流表项填满,测试流表项的数量加上流表中已有的用户占用的流表项的数量,即为流表容量的测量值N1。进一步,终端检测得到目标交换机的流表已满之后,还可继续向流表中***测试流表项,此时,由于流表已满,流表接收新的测试流表项时,需要将流表的头部的流表项进行删除,空出流表空间接收***的新的测试流表项。
在一些可行的实施方式中,终端检测得到流表已满之后,可继续往流表中***测试流表项,并对已经***的测试流表项在流表中的存储状态,以判断***的第一个测试流表项何时被删除。若***的第一个测试流表项被删除了,则流表中所有的流表项均为***的测试流表项,计算当前已***的测试流表项的数量则可确定目标交换机的流表容量。具体的,终端检测得到***的第一个测试流表项被删除时,可计算截止第一个测试流表项被删除时,终端已***流表的测试流表项的总数量,假设为M2。由于此时目标交换机的流表已经被***的测试流表项充满,计算已***的测试流表项的数量即为目标交换机的流表容量,即可将M2标记为目标交换机的流表容量N2。进一步的,又因为M1+其他用户占用的流表项的数量(即测试流表项***之前流表已有的流表项数量)=M2,可得其他用户占用的流表项的数量为M2-M1,即N2=M2-M1。具体实现中,终端可根据上述测试流表项***流表的RTT和***的测试流表项的状态确定流表容量的测量值N1,或者,根据上述测试流表项***流表的RTT和***的测试流表项的状态确定测试流表项***流表之前流表已有的流表项数量的测量值N2中的任意一个或者两个参数,具体可根据实际应用场景确定,在此不做限制。
S104,当所述N1与所述目标交换机的标准配置参数中的流表容量的差值在第一预设范围内,或者所述N2与所述目标交换机的标识配置参数中的用户占用的流表项数量的差值在第二预设范围内时,确定所述目标交换机存在信息泄露的漏洞。
在一些可行的实施方式中,终端获取得到目标交换机的流表容量的测量值N1,或者测试流表项***之前流表已有的流表项的数量的测量值N2之后,则可将上述获取得到的测量值N1与目标交换机的标准配置参数中的流表容量进行匹配,判断上述测量值N1是否接近于目标交换机的标准配置。若上述测量值N1与目标交换机的标准配置参数中的流表容量相近,即上述测量值N1与目标交换机的标准配置参数中的流表容量的差值在预先设定的第一预设范围内,则可确定终端对目标交换机的流表容量的估计测量值N1近似于目标交换机的标准配置,目标交换机存在信息泄露的漏洞,终端(或者攻击者)可利用该漏洞对目标交换机进行攻击,获取目标交换机的信息。
进一步的,终端也可将上述获取得到的测量值N2与目标交换机的标准配置参数中的用户占用的流表项数量进行匹配,判断上述测量值N2是否接近于目标交换机的标准配置。若上述测量值N2与目标交换机的标准配置参数中的用户占用的流表项数量相近,即上述测量值N2与目标交换机的标准配置参数中的用户占用的流表项数量的差值在预先设定的第二预设范围内,则可确定终端对目标交换机的流表容量的估计测量值N2近似于目标交换机的标准配置,目标交换机存在信息泄露的漏洞。终端用户通过上述终端检测得到目标交换机存在信息泄露的漏洞之后,则可针对上述漏洞采取补救措施,预防目标交换机的信息泄露。
在本发明实施例中,终端可通过向目标交换机发送测试数据包,根据测试数据包的RTT确定目标交换机的流表项的Hard-Timeout和Idle-Timeout,进而可根据上述目标交换机的流表项的Hard-Timeout和Idle-Timeout确定向目标交换机的流表中***流表项的时间间隔,进而可按照上述时间间隔向流表中***测试流表项。终端可根据各个时间节点***流表中的测试流表项的RTT以及测试流表项在流表中的存活状态,结合***的测试流表项的数量确定目标交换机的流表容量的测量值,以及目标交换机的流表中用户所占用的流表项的数量的测量值等信息,将上述获取得的测量值与目标交换机的标准配置中的配置值进行匹配,确定测量值是否与配置值相近,以此判断目标交换机是否存在信息泄露的漏洞,提高交换机信息的保密性,增强网络安全性。
参见图3,是本发明实施例提供的检测交换机信息泄露的方法的第二实施例流程示意图。本发明实施例中所描述的检测方法,包括步骤:
S201,按照第一时间间隔发送第一测试数据包给目标交换机,获取按照所述第一时间间隔发送的每个所述第一测试数据包的RTT,根据第一测试数据包的RTT确定流表中的流表项状态。
在一些可行的实施方式中,根据上述第一实施例中所描述的实现方式可知,RTT可反映数据包在交换机中的处理时间,终端可通过测量数据包的RTT判断交换机流表的状态,进而可确定流表中的流表项的其他状态。具体实现中,终端可获取按照上述第一时间间隔发送给目标交换机的每个第一测试数据包的RTT。当上述测试数据包的RTT小于或者等于第一时延值T04时,确定上述目标交换机的流表未满,并且流表中存在与第一测试数据包相匹配的流表项,即对应于上述状态1所描述的流表状态。当上述测试数据包的RTT大于T04并且小于或者等于第二时延值T14时,可确定目标交换机的流表未满,并且流表中不存在与第一测试数据包相匹配的流表项,即对应于上述状态2所描述的流表状态。当上述测试数据包的RTT大于T14并且小于或者等于第三时延值T24时,可确定目标交换机的流表已满,并且流表中不存在与第一测试数据包相匹配的流表项,即对应于上述状态3所描述的流表状态。其中,上述T04小于T14,T14小于T24。
下面将结合图4和图5,对生成用于判断目标交换机的流表状态的RTT阈值的探测过程进行简单介绍:
步骤1,终端可生成具有某一{源IP,目的IP,源MAC,目的MAC}组合的测试数据包,记为Pkt1,将Pkt1发送至目标交换机。此时,由于Pkt1是新的数据包,目标交换机中还没有与Pkt1相匹配的流表项,目标交换机需要向流表项的下发终端请求与上述Pkt1相匹配的流表项。即,此时目标交换机的流表未满,但没有与Pkt1相匹配的流表项,即可对应于上述状态2,此时,可记录该Pkt1的RTT为T1(对应于上述T14),如图4。
步骤2,终端可在预设时间间隔之后,再次发送数据包Pkt1给目标交换机,此时,由于第一次发送Pkt1给目标交换机之后,目标交换机向相应的流表项的下发终端请求了上述Pkt1相匹配的流表项。故此,再次发送Pkt1给目标交换机时,目标交换机中已有刚刚添加的与Pkt1相对应的流表项,此时,流表未满并且存在匹配流表项,即对应于上述状态1,此时可记录该Pkt1的RTT往返时延值为T0(对应于上述T04),如图4。
步骤3,终端可在预设时间间隔的各个时间节点连续不断地生成具有彼此不同的{源IP,目的IP,源MAC,目的MAC}组和的数据包Pkt2、Pkt3、Pkt4….PktN,将这些生成的数据包依次持续发送至目标交换机,如图5。由于此时目标交换机中无对应的流表项,则每个数据包的RTT应大致与T1相同,终端将PktN发送完毕后,再次发送Pkt1,此时,若目标交换机中无与Pkt1相对应的流表项且流表已满,则对应于上述状态3,此时,可记录该Pkt1的RTT为T2(对应于上述T24),如图4。由该探测过程可知,T0、T1、T2分别与三种流表状态相对应,该测量可重复多次并取平均值作为流表状态判断的RTT阈值。
通过实际测量,数据包的RTT可有效区分不同的流表状态与流表项状态,例如,在某个自行搭建的OpenFlow实验网络中,与三种状态相对应的数据包RTT统计结果如下表1所示,表1为不同流表状态下数据包的RTT统计结果。
表1
流表状态 | 流表项状态 | 数据包RTT |
流表未满 | 存在匹配流表项 | 0.2-0.3ms |
流表未满 | 不存在匹配流表项 | 3-5ms |
流表已满 | 存在匹配流表项 | 0.2-0.3ms |
流表已满 | 不存在匹配流表项 | 8-10ms |
由此,用于判定该网络中目标OpenFlow交换机流表状态的RTT阈值为:若RTT小于0.3ms,则可判定流表未满且流表内存在匹配流表项;若RTT大于3ms小于5ms,则可判定流表未满且流表内不存在匹配流表项;若RTT大于8ms小于10ms,则可判定流表已满且流表内不存在匹配流表项。
S202,根据获取到的所述第一测试数据包的RTT确定所述目标交换机的流表项的Hard-Timeout。
具体实现中,上述确定目标交换机的流表项的Hard-Timeout的具体实现过程可参见上述第一实施例中的步骤S101中所描述的实现方式,在此不再赘述。
进一步的,在一些可行的实施方式中,终端可在第一时间节点发送第一测试数据包给目标交换机以触发目标交换机向目标终端(即目标交换机的流表项的下发终端)获取与上述第一测试数据包相匹配的目标流表项,并将本次发送的所述第一测试数据包的RTT记录为T1(具体实现中,该T1可与上述图4中所描述的T1为相同的值,也可为不同的值,但具体代表意义应为相同的,均为对应于状态2的RTT阈值,下述T0也与上述图4中的T0为相同的具体代表意义,为上述状态1所对应的RTT阈值,下面不再赘述)。
具体实现中,终端还可在第二时间节点上向目标交换机发送第一测试数据包,其中,上述第二时间节点和第一时间节点的时间间隔为第一时间间隔。当终端确定上述第二时间节点发送的所述第一测试数据包的RTT小于T1时,将本次发送的第一测试数据包的RTT记录为T0,即此时目标交换机的流表中已存在着与第一测试数据包相匹配的流表项,此时可根据上述第一时间间隔继续向目标交换机发送第一测试数据包,获取每次向目标交换机发送的每个第一测试数据包的RTT。当终端第N次发送给目标交换机的第一测试数据包的RTT恢复为T1时,即此时目标交换机的流表项中已经没有与上述第一测试数据包相匹配的流表项了,该流表项已被删除。此时,终端可计算第N次发送第一测试数据包给目标交换机的时间节点与第一时间节点的目标时间间隔,并将目标时间间隔确定为目标交换机的流表项的Hard-Timeout,即将第一次发送第一测试数据包给目标交换机的时间与目标交换机中的目标流表项被删除的时间之间的时间间隔设定为目标交换机的流表项的Hard-Timeout。其中,N为自然数。其中,上述第一次发送第一测试数据包给目标交换机的时间可设定为第一测试数据包的流表项的生成时间,第N次发送第一测试数据包给目标交换机时,该流表项已从流表中删除,则第一次和第N次发送第一测试数据包的时间间隔即为第一测试数据包相匹配的流表项在目标交换机的流表中存活的时间长度,即,目标交换机的流表项的Hard-Timeout。
下面将结合图6,对目标交换机的流表项的Hard-Timeout的测量值的确定过程进行分析:
如图6,目标交换机的流表项的Hard-Timeout值探测过程如下:选择一个较小的数据包发送时间间隔ΔT(即第一时间间隔,图6将以数据包间隔的形式进行说明),如选择数据包间隔为0.1s;然后持续发送具有ΔT包间隔的一系列数据包,其中,第一个数据包的RTT应该为T1,此时目标交换机的流表中还没有该数据包相匹配的流表项。第二个数据包开始目标交换机的流表项中将存在该数据包相匹配的流表项,第二个数据包开始的各个数据包的RTT应该为T0,直至目标交换机的流表中与该数据包相匹配的流表项被删除,此时测得的数据包RTT将会增大至T1时。从开始发送数据包至观察到数据包RTT增大至T1之间的时间间隔即为目标交换机的流表项的Hard-Timeout值(测量值)。
S203,按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,并根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout。
具体实现中,上述确定目标交换机的流表项的Idle-Timeout的具体实现过程可参见上述第一实施例中的步骤S101中所描述的实现方式,在此不再赘述。
进一步的,在一些可行的实施方式中,终端可在第三时间节点发送第二测试数据包给目标交换机以触发目标交换机向目标终端(即流表项的下发终端)获取与第二测试数据包相匹配的目标流表项,并将本次发送的第二测试数据包的RTT记录为T11(具体实现中,该T11可与上述图4中所描述的T1为相同的值,也可为不同的值,但具体代表意义应为相同的,均为对应于状态2的RTT阈值,下述T01也与上述图4中的T0为相同的具体代表意义,为上述状态1所对应的RTT阈值,下面不再赘述)。终端还可在第四时间节点上向目标交换机发送第二测试数据包,其中,上述第四时间节点和第三时间节点的时间间隔为第二时间间隔。当第四时间节点发送的第二测试数据包的RTT小于T11时,终端可将本次发送的第二测试数据包的RTT记录为T01,并加大向目标交换机发送第二测试数据的时间间隔,以按照调整后的时间间隔继续向目标交换机发送所述第二测试数据包。当第二测试数据包发送给目标交换机的RTT从小于T11恢复为T11时,将本次向目标交换机发送第二测试数据包的时间间隔确定为第三时间间隔,并将第三时间间隔确定为目标交换机的流表项的Idle-Timeout。即,终端需要不断加大向目标交换机发送测试数据包的时间间隔,以更准确地确定目标交换机的流表项从最后一次被匹配的时间点到因为长时间未被匹配而被删除的时间点之间的时间间隔,即目标交换机的流表项的Idle-Timeout的测量值。
下面将结合图7,对目标交换机的流表项的Idle-Timeout的测量值的确定过程进行分析:
如图7,目标交换机的流表项的Idle-Timeout值探测过程如下:首先选择一个数据包间隔的初始值ΔT1(即第二时间间隔),例如,选择0.1s作为数据包间隔的初始值,将该数据包(即第二测试数据包)发送至目标交换机。根据前文可知,此时,该数据包的RTT将会在T1左右(目标交换机的流表中没有相匹配的流表项),进一步的,终端可将数据包的发送间隔逐渐增大为ΔT2,ΔT3等,其中,上述数据包的发送间隔的增大方式可以采用二分法等算法来进行,在此不做限制。终端将具有逐渐增大的发送间隔的这一系列数据包发送至目标OpenFlow交换机并测量每个数据包的RTT,此时,由于流表中已存在与该数据包相匹配的流表项,则终端测得数据包的RTT将会在T0左右。当终端观察到RTT值突然增大到T1时,意味着此时流表中原有的与上述数据包相匹配的流表项已经由于两个数据包之间的发送间隔过长导致空闲超时而被删除,因此此时的数据包发送间隔即可为目标交换机的流表项的Idle-Timeout的测量值。
S204,根据所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,并记录每个所述测试流表项***所述流表的RTT。
具体实现中,上述***测试流表项的具体实现过程可参见上述第一实施例中的步骤S103中所描述的实现方式,在此不再赘述。
进一步的,在一些可行的实施方式中,终端确定了目标交换机的流表项的Hard-Timeout和Idle-Timeout之后,可根据Hard-Timeout和Idle-Timeout确定将测试流表项***流表的***时间间隔,进而可按照上述***时间间隔生成用于***目标交换机的流表的测试流表项,并将测试流表项***所述目标交换机的流表中。其中,上述测试流表项***流表的时间间隔可在Min{Hard-Timeout,Idle-Timeout}中选择,具体可根据实际应用场景确定,在此不做限制。
S205,根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,或者确定测试流表项***之前所述流表已有的流表项数量的测量值N2。
具体实现中,上述确定目标交换机的流表容量及用户占用的流表项数量的测量值的具体实现过程可参见上述第一实施例中的步骤S104中所描述的实现方式,在此不再赘述。
进一步的,在一些可行的实施方式中,上述***的测试流表项的状态可包括:测试流表项在流表中的存活状态,和测试流表项的数量等。终端可将获取到的每一个测试流表项的RTT与时延值T12进行匹配,当获取得到***上述流表的某个测试流表项的RTT大于或者等于所述T12时,确定上述流表已满,并记录已***流表的测试流表项的数量M1。其中,上述T12可对应于上述描述中目标交换机的流表已满的状态(即状态3)下的数据包的RTT,即T2,即本发明实施例中所描述的T12可为T2,也可为另外一个参数,用于指代流表状态已满时***的流表项的RTT。终端还可记录M1个测试流表项***流表(即流表已满)之后继续***上述流表的测试流表项的数量,同时还可检测M1个测试流表项在流表中的存活状态。即,终端在目标交换机的流表已满的状态下继续***流表项到流表中,可将位于流表头部的流表项挤出流表为***的流表项腾出流表空间,即此时流表会溢出。终端持续***测试流表项,将流表中原有的流表项挤出流表,若继续***测试流表项,则可能将先***的测试流表项挤出流表,故此,终端需要对***的测试流表项在流表中的存活状态进行判断,确定***的测试流表项是否被删除,即是否溢出流表。
在一些可行的实施方式中,当终端检测得到M1个测试流表项中第一个***流表的目标测试流表项已从流表中删除时,可确定当前已***流表的测试流表项的总数量M2,进而可将上述已***流表的测试流表项的总数量M2确定为目标交换机的流表容量的测量值N1。即,当***的第一个测试流表项从流表中删除时,流表中存活的流表项将全部是测试流表项,即测试流表项***之前流表中已有的用户占用的流表项将全部被删除,此时则可确定目标交换机的流表容量为M2,进而可将M2标记为目标交换机的流表容量的测量值N1。进一步的,确定测试流表项***流表之前流表已有的流表项的数量的测量值N2时,也可按照上述方式确定流表容量的测量值N1,在根据上述流表容量的测量值N1进一步确定上述N2。具体的,由于***M1个测试流表项时,流表已满,此时流表中包含的流表项有用户占用的流表项和测试流表项,***M2个测试流表项时,流表也依然是满的,只是此时流表中包含的流表项均为测试流表项,综上可知,M2与M1的差值即为测试流表项***之前用户占用的流表项的数量的测量值,即终端可将M2与M1的数量差标记为流表已有的流表项数量的测量值N2。
在一些可行的实施方式中,本发明实施例可采用先进先出(First-In-First-out,FIFO)算法对目标交换机的流表容量和用户占用的流表项的数量进行检测,下面将结合图8a-图8d对上述流表容量和用户占用的流表项的数量进行探测的检测过程进行描述。
FIFO是最简单的页面置换算法,其基本思想是:当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。如果将FIFO替换算法作为目标交换机的流表替换算法,则流表维护操作为:将流表维护成一个固定长度的队列,该队列的长度即为目标交换机的流表容量;当***一条新流表项时,将该流表项***队列尾部,并将之前流表项依次向前移动一项;当需要删除某一条流表项时,则从队列头部进行删除。
图8a-8d所示为FIFO替换算法探测过程中目标交换机的流表变化情况,分别对应ABCD四个阶段,其中白色矩形代表来自同一台交换机下连接的用户所占用的流表项,灰色矩形代表终端生成并***的测试流表项。
如图8a,A代表探测开始时的流表状态,此时流表中的流表项均来自终端之外的其他用户,探测开始后,终端可在短时间内生成并***测试流表项,由FIFO算法,新***的流表项将会把其他用户所占用的流表项“推”向流表前部,如图8b的B阶段所示。
***流表项过程中,终端需要不断记录***的测试流表项的RTT,一旦记录到与状态3相对应的RTT值,即流表已被流表项充满时所对应的RTT值,即记录到当前时刻为止已***的流表项M1。此时,目标交换机的流表状态如图8c的C阶段所示,流表内原有的剩余空间已经全部被探测者***的流表项充满。
随后终端继续***新的测试流表项,同时不断探测之前已经***的测试流表项的存活状态,一旦记录到已经***的第一条测试流表项已从流表中被删除,即记录到该时刻为止已***的测试流表项M2,此时流表状态如图d的D阶段所示。流表已经全部被终端***的测试流表项充满,此时已***的流表项总数M2即可设定为流表的容量的测量值N1。又因为图8c的C阶段所示状态中M1+其他用户所占用的流表项=流表容量M2,可得其他用户所占用的流表项=流表容量M2-M1,即可设定其他用户所占用的流表项的数量的测量值N2=M2-M1。
具体实现中,FIFO替换算法下的检测算法伪代码如下所示:
进一步的,在一些可行的实施方式中,终端还可使用最近最少使用算法(Least-Recently-Used,LRU)算法对目标交换机的流表容量和其他用户所占用的流表项的数量进行探测。具体实现中,终端可在测试流表项的***过程中,保持对已***的各个测试流表项的访问,以防止测试流表项因为最近最少使用(即预设时间内未被访问)而被删除。具体的,终端可将每一个所测试流表项的RTT与时延值T13进行匹配,当获取得到***流表的某个测试流表项的RTT大于或者等于T13时,确定流表已满,并记录已***流表的测试流表项的数量M3。其中,上述T13可对应于上述描述中目标交换机的流表已满的状态(即状态3)下的数据包的RTT,即T2,即本发明实施例中所描述的T13可为T2,也可为另外一个参数,用于指代流表状态已满时***的流表项的RTT。
终端可记录M3个测试流表项***流表之后继续***上述流表的测试流表的数量,并检测上述已***的M3个测试流表项在上述流表中的存活状态。当检测得到上述M3个测试流表项中第一个***流表的目标测试流表项已从流表中删除时,可确定当前已***流表的测试流表项的总数量M4,并可将上述M4确定为目标交换机的流表容量的测量值N1。进一步的,终端还可将上述M4与M3的数量差标记为目标交换机的流表已有的流表项数量的测量值N2。
下面将结合图9a-图9d对终端使用LRU算法对目标交换机的流表容量和用户占用的流表项的数量进行探测的检测过程进行描述。
LRU算法,即最近最少使用算法,这种算法的基本思想是:利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰。如果将LRU算法作为目标交换机的流表替换算法,则流表维护操作操作为:将流表维护成一个固定长度的队列,该队列的长度即为目标交换机的流表容量。当***一条新流表项时,将该流表项***队列尾部,并将之前的流表项依次向前移动一项;当某条流表项被访问时,将该流表项移至队列尾部,并将原本位于该流表项至队列尾部之间的流表项向前移动一项;当需要删除某一条流表项时,则从队列头部进行删除。
图9a-9d所示为LRU算法探测过程中目标交换机的流表变化情况,分别对应于ABCD四个阶段,其中白色矩形代表来自同一台交换机下连接的其他用户所占用的流表项,灰色矩形代表终端生成并***的测试流表项。
图9a代表探测开始时的流表状态,此时流表中的流表项均来自其他用户,探测开始后,终端可在短时间内生成并***测试流表项,由LRU算法,最近被访问过的流表项将会被移至流表后部,并把其他用户的流表项“推”向流表前部,如图9b的B阶段所示。为保证终端***的测试流表项始终位于流表后部,需要额外的流表项维护操作,即终端需要在探测过程中不断对之前***的测试流表项进行重复访问。终端***测试流表项过程中,可不断记录***测试流表项所需要的RTT,一旦记录到与状态3,即流表已被充满的状态相对应的RTT值,即记录到当前时刻为止已***的测试流表项M3,此时流表状态如图9c的C阶段所示,流表内原有的剩余空间已经全部被终端***的流表项充满。
随后终端继续***新的测试流表项,同时不断探测之前已经***的测试流表项的存活状态,一旦记录到已经***的第一条测试流表项已从流表中被删除,即记录到该时刻为止已***的流表项M4。此时流表状态如图9d的D阶段所示,流表已经全部被探测者***的测试流表项充满,此时已***的测试流表项总数M4即为流表的容量的测量值N1。又因为图9c的C阶段所示状态中M3+其他用户所占用的流表项=流表容量M4,可得其他用户所占用的流表项的测量值=流表容量的测量值-M3=M4-M3,即,N2=M4-M3。
由于LRU算法的特殊性,其在维护流表的过程中会不断将被访问的流表项移至流表队列尾部,若终端***一条测试流表项后不对其进行持续访问,则该测试流表项将会因一段时间内没有被访问而被很快删除,因此为了使测试流表项尽可能完全占据流表内的剩余空间并将其他用户的流表项尽可能“推向”流表队列头部,终端需要在探测过程中不断重复访问先前已经***的测试流表项,从而维护已经***的测试流表项避免其被删除,额外的流表项维护算法伪代码如下所示。
LRU算法下的检测算法伪代码如下所示:
S206,当所述N1与所述目标交换机的标准配置参数中的流表容量的差值在第一预设范围内,或者所述N2与所述目标交换机的标识配置参数中的用户占用的流表项数量的差值在第二预设范围内时,确定所述目标交换机存在信息泄露的漏洞。
具体实现中,上述根据目标交换机的流表容量的测量值,和目标交换机的流表中的用户占用的流表项数量的测量值确定目标交换机是否存在信息泄露的漏洞的具体实现过程可参见上述第一实施例中的步骤S105所描述的实现方式,在此不再赘述。
在本发明实施例中,终端可通过向目标交换机发送测试数据包,根据测试数据包的RTT确定目标交换机的流表项的Hard-Timeout和Idle-Timeout,进而可根据上述目标交换机的流表项的Hard-Timeout和Idle-Timeout确定向目标交换机的流表中***流表项的时间间隔,进而可按照上述时间间隔向流表中***测试流表项。终端可采用FIFO或者LRU等算法根据各个时间节点***流表中的测试流表项的RTT以及测试流表项在流表中的存活状态,结合***的测试流表项的数量确定目标交换机的流表容量的测量值,或者目标交换机的流表中用户所占用的流表项的数量的测量值等信息。终端还可将上述获取得的测量值与目标交换机的标准配置中的配置值进行匹配,确定测量值是否与配置值相近,以此判断目标交换机是否存在信息泄露的漏洞,提高了交换机流表状态的判断的准确性,增强了交换机信息的保密性,增强网络安全性。
参见图10,是本发明实施例提供的检测交换机信息泄露的装置的一实施例结构示意图。本发明实施例中所描述的装置,包括:
获取模块10,用于获取目标交换机的流表项的硬件老化时间Hard-Timeout和软件老化时间Idle-Timeout,其中,所述Hard-Timeout为所述流表项在流表中存储的时长,所述Idle-Timeout为所述流表项最后一次被数据包匹配的时间点至所述流表项被删除的时间点之间的时长。
***模块20,用于根据所述获取模块获取的所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,并记录每个所述测试流表项***所述流表的往返时延RTT。
确定模块30,用于根据所述***模块记录的各个所述测试流表项***所述流表的RTT,和所述***模块***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,或者确定测试流表项***之前所述流表已有的流表项数量的测量值N2。
检测模块40,用于在所述确定模块确定的所述N1与所述目标交换机的标准配置参数中的流表容量的差值在第一预设范围内,或者所述N2与所述目标交换机的标识配置参数中的用户占用的流表项数量的差值在第二预设范围内时,确定所述目标交换机存在信息泄露的漏洞。
在一些可行的实施方式中,如图11,上述获取模块10包括:
第一处理单元11,用于按照第一时间间隔向所述目标交换机发送第一测试数据包,并根据获取到的所述第一测试数据包的RTT确定所述目标交换机的流表项的Hard-Timeout。
第二处理单元12,用于按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,并根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout。
在一些可行的实施方式中,上述第一处理单元11具体用于:
在第一时间节点发送所述第一测试数据包给目标交换机,并将本次发送的所述第一测试数据包的RTT记录为T1;
在第二时间节点上向所述目标交换机发送所述第一测试数据包,所述第二时间节点和所述第一时间节点的时间间隔为所述第一时间间隔;
当所述第二时间节点发送的所述第一测试数据包的RTT小于T1时,将本次发送的所述第一测试数据包的RTT记录为T0,并根据所述第一时间间隔继续向所述目标交换机发送所述第一测试数据包,获取每次向所述目标交换机发送的每个所述第一测试数据包的RTT;
当第N次发送给所述目标交换机的所述第一测试数据包的RTT恢复为T1时,计算所述第N次发送所述第一测试数据包给所述目标交换机的时间节点与所述第一时间节点的目标时间间隔,并将所述目标时间间隔确定为所述目标交换机的流表项的Hard-Timeout;
其中,所述T1大于所述T0,所述N为自然数。
在一些可行的实施方式中,上述第二处理单元12具体用于:
在第三时间节点发送所述第二测试数据包给目标交换机,并将本次发送的所述第二测试数据包的RTT记录为T11;
在第四时间节点上向所述目标交换机发送所述第二测试数据包,所述第四时间节点和所述第三时间节点的时间间隔为所述第二时间间隔;
当所述第四时间节点发送的所述第二测试数据包的RTT小于T11时,将本次发送的所述第二测试数据包的RTT记录为T01,并加大向所述目标交换机发送所述第二测试数据的时间间隔,以按照调整后的时间间隔继续向所述目标交换机发送所述第二测试数据包。
在一些可行的实施方式中,上述第二处理单元12具体用于:
根据调整后的时间间隔发送所述第二测试数据包给所述目标交换机;
当所述第二测试数据包的RTT从小于T11恢复为T11时,将本次向所述目标交换机发送所述第二测试数据包的时间间隔确定为第三时间间隔,并将所述第三时间间隔确定为所述目标交换机的流表项的Idle-Timeout。
在一些可行的实施方式中,上述***模块20具体用于:
根据所述Hard-Timeout和所述Idle-Timeout,确定将测试流表项***所述流表的***时间间隔;
按照所述***时间间隔生成用于***所述目标交换机的流表的测试流表项,并将所述测试流表项***所述目标交换机的流表中。
在一些可行的实施方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
上述确定模块30具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M2确定为所述目标交换机的流表容量的测量值N1。
在一些可行的实施方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
上述确定模块30具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M2,并将所述M2与所述M1的数量差标记为所述流表已有的流表项数量的测量值N2。
在一些可行的实施方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
上述确定模块30具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M4确定为所述目标交换机的流表容量的测量值N1。
在一些可行的实施方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
上述确定模块30具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M4,并将所述M4与所述M3的数量差标记为所述流表已有的流表项数量的测量值N2。
在一些可行的实施方式中,上述第一处理单元11还用于:
获取按照所述第一时间间隔发送的每个所述第一测试数据包的RTT;
当所述RTT小于或者等于第一时延值T04时,确定所述目标交换机的流表未满,并且所述流表中存在与所述第一测试数据包相匹配的流表项;
当所述RTT大于所述T04并且小于或者等于第二时延值T14时,确定所述流表未满,并且所述流表中不存在与所述第一测试数据包相匹配的流表项;
当所述RTT大于所述T14并且小于或者等于第三时延值T24时,确定所述流表已满,并且所述流表中不存在与所述第一测试数据包相匹配的流表项;
其中,所述T04小于所述T14,所述T14小于所述T24。
具体实现中,本发明实施例中所描述的检测交换机信息泄露的装置可通过其包含的获取模块、***模块、确定模块、检测模块以及获取模块中包含的第一处理单元和第二处理单元等模块,执行上述本发明实施例中所描述的检测交换机信息泄露的方法中各个步骤所执行的实现方式。具体实现中,上述各个模块或者单元的具体实现过程可参见上述检测交换机信息泄露的方法的第一实施例和第二实施例中各个步骤所描述的实现方式,在此不再赘述。
参见图11,是本发明实施例提供的检测终端的实施例结构示意图。本发明实施例中所描述的检测终端,包括:存储器1000、发送器2000、接收器3000和处理器4000;上述存储器1000、发送器2000、接收器3000和处理器4000通过总线5000连接。
所述存储器1000,用于存储程序代码;
所述发送器2000、所述接收器3000和所述处理器4000,用于调用所述存储器1000中存储的所述程序代码,执行如下操作:
所述处理器4000,用于获取目标交换机的流表项的硬件老化时间Hard-Timeout和软件老化时间Idle-Timeout,其中,所述Hard-Timeout为所述流表项在流表中存储的时长,所述Idle-Timeout为所述流表项最后一次被数据包匹配的时间点至所述流表项被删除的时间点之间的时长。
所述处理器4000,还用于根据所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,并记录每个所述测试流表项***所述流表的往返时延RTT。
所述处理器4000,还用于根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,或者确定测试流表项***之前所述流表已有的流表项数量的测量值N2。
所述处理器4000,还用于在所述N1与所述目标交换机的标准配置参数中的流表容量的差值在第一预设范围内,或者所述N2与所述目标交换机的标识配置参数中的用户占用的流表项数量的差值在第二预设范围内时,确定所述目标交换机存在信息泄露的漏洞。
在一些可行的实施方式中,所述处理器4000具体用于:
通过所述发送器2000按照第一时间间隔向所述目标交换机发送第一测试数据包,并根据获取到的所述第一测试数据包的RTT确定所述目标交换机的流表项的Hard-Timeout;
通过所述发送器2000按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,并根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout。
在一些可行的实施方式中,所述处理器4000具体用于:
通过所述发送器2000在第一时间节点发送所述第一测试数据包给目标交换机,并将本次发送的所述第一测试数据包的RTT记录为T1;
通过所述发送器2000在第二时间节点上向所述目标交换机发送所述第一测试数据包,所述第二时间节点和所述第一时间节点的时间间隔为所述第一时间间隔;
当所述第二时间节点发送的所述第一测试数据包的RTT小于T1时,将本次发送的所述第一测试数据包的RTT记录为T0,并根据所述第一时间间隔继续向所述目标交换机发送所述第一测试数据包,获取每次向所述目标交换机发送的每个所述第一测试数据包的RTT;
当第N次发送给所述目标交换机的所述第一测试数据包的RTT恢复为T1时,计算所述第N次发送所述第一测试数据包给所述目标交换机的时间节点与所述第一时间节点的目标时间间隔,并将所述目标时间间隔确定为所述目标交换机的流表项的Hard-Timeout;
其中,所述T1大于所述T0,所述N为自然数。
在一些可行的实施方式中,所述处理器4000具体用于:
通过所述发送器2000在第三时间节点发送所述第二测试数据包给目标交换机,并将本次发送的所述第二测试数据包的RTT记录为T11;
通过所述发送器2000在第四时间节点上向所述目标交换机发送所述第二测试数据包,所述第四时间节点和所述第三时间节点的时间间隔为所述第二时间间隔;
当所述第四时间节点发送的所述第二测试数据包的RTT小于T11时,将本次发送的所述第二测试数据包的RTT记录为T01,并加大向所述目标交换机发送所述第二测试数据的时间间隔,以按照调整后的时间间隔继续向所述目标交换机发送所述第二测试数据包。
在一些可行的实施方式中,所述处理器4000具体用于:
通过所述发送器2000根据调整后的时间间隔发送所述第二测试数据包给所述目标交换机;
当所述第二测试数据包的RTT从小于T11恢复为T11时,将本次向所述目标交换机发送所述第二测试数据包的时间间隔确定为第三时间间隔,并将所述第三时间间隔确定为所述目标交换机的流表项的Idle-Timeout。
在一些可行的实施方式中,所述处理器4000具体用于:
根据所述Hard-Timeout和所述Idle-Timeout,确定将测试流表项***所述流表的***时间间隔;
按照所述***时间间隔生成用于***所述目标交换机的流表的测试流表项,并将所述测试流表项***所述目标交换机的流表中。
在一些可行的实施方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述处理器4000具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M2确定为所述目标交换机的流表容量的测量值N1。
在一些可行的实施方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述处理器4000具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M2,并将所述M2与所述M1的数量差标记为所述流表已有的流表项数量的测量值N2。
在一些可行的实施方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述处理器4000具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M4确定为所述目标交换机的流表容量的测量值N1。
在一些可行的实施方式中,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述处理器4000具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M4,并将所述M4与所述M3的数量差标记为所述流表已有的流表项数量的测量值N2。
在一些可行的实施方式中,所述处理器4000还用于:
通过所述接收器3000获取按照所述第一时间间隔发送的每个所述第一测试数据包的RTT;
当所述RTT小于或者等于第一时延值T04时,确定所述目标交换机的流表未满,并且所述流表中存在与所述第一测试数据包相匹配的流表项;
当所述RTT大于所述T04并且小于或者等于第二时延值T14时,确定所述流表未满,并且所述流表中不存在与所述第一测试数据包相匹配的流表项;
当所述RTT大于所述T14并且小于或者等于第三时延值T24时,确定所述流表已满,并且所述流表中不存在与所述第一测试数据包相匹配的流表项;
其中,所述T04小于所述T14,所述T14小于所述T24。
具体实现中,本发明实施例中所描述的检测终端可通过其包含的发送器2000、接收器3000和处理器4000等模块,执行上述本发明实施例中所描述的检测交换机信息泄露的方法中各个步骤所执行的实现方式。具体实现中,上述发送器2000、接收器3000和处理器4000的具体实现过程可参见上述检测交换机信息泄露的方法的第一实施例和第二实施例中各个步骤所描述的实现方式,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (34)
1.一种检测交换机信息泄露的方法,其特征在于,包括:
获取目标交换机的流表项的硬件老化时间Hard-Timeout和软件老化时间Idle-Timeout,其中,所述Hard-Timeout为所述流表项在流表中存储的时长,所述Idle-Timeout为所述流表项最后一次被数据包匹配的时间点至所述流表项被删除的时间点之间的时长;
根据所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,并记录每个所述测试流表项***所述流表的往返时延RTT;
根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,或者确定测试流表项***之前所述流表已有的流表项数量的测量值N2;
当所述N1与所述目标交换机的标准配置参数中的流表容量的差值在第一预设范围内,或者所述N2与所述目标交换机的标识配置参数中的用户占用的流表项数量的差值在第二预设范围内时,确定所述目标交换机存在信息泄露的漏洞。
2.如权利要求1所述的方法,其特征在于,所述获取目标交换机的流表项的Hard-Timeout和Idle-Timeout,包括:
按照第一时间间隔向所述目标交换机发送第一测试数据包,并根据获取到的所述第一测试数据包的RTT确定所述目标交换机的流表项的Hard-Timeout;
按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,并根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout。
3.如权利要求2所述的方法,其特征在于,所述按照第一时间间隔向所述目标交换机发送第一测试数据包,并根据获取到的所述第一测试数据包的RTT确定所述目标交换机的流表项的Hard-Timeout,包括:
在第一时间节点发送所述第一测试数据包给目标交换机,并将本次发送的所述第一测试数据包的RTT记录为T1;
在第二时间节点上向所述目标交换机发送所述第一测试数据包,所述第二时间节点和所述第一时间节点的时间间隔为所述第一时间间隔;
当所述第二时间节点发送的所述第一测试数据包的RTT小于T1时,将本次发送的所述第一测试数据包的RTT记录为T0,并根据所述第一时间间隔继续向所述目标交换机发送所述第一测试数据包,获取每次向所述目标交换机发送的每个所述第一测试数据包的RTT;
当第N次发送给所述目标交换机的所述第一测试数据包的RTT恢复为T1时,计算所述第N次发送所述第一测试数据包给所述目标交换机的时间节点与所述第一时间节点的目标时间间隔,并将所述目标时间间隔确定为所述目标交换机的流表项的Hard-Timeout;
其中,所述T1大于所述T0,所述N为自然数。
4.如权利要求2所述的方法,其特征在于,所述按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,包括:
在第三时间节点发送所述第二测试数据包给目标交换机,并将本次发送的所述第二测试数据包的RTT记录为T11;
在第四时间节点上向所述目标交换机发送所述第二测试数据包,所述第四时间节点和所述第三时间节点的时间间隔为所述第二时间间隔;
当所述第四时间节点发送的所述第二测试数据包的RTT小于T11时,将本次发送的所述第二测试数据包的RTT记录为T01,并加大向所述目标交换机发送所述第二测试数据的时间间隔,以按照调整后的时间间隔继续向所述目标交换机发送所述第二测试数据包。
5.如权利要求3所述的方法,其特征在于,所述按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,包括:
在第三时间节点发送所述第二测试数据包给目标交换机,并将本次发送的所述第二测试数据包的RTT记录为T11;
在第四时间节点上向所述目标交换机发送所述第二测试数据包,所述第四时间节点和所述第三时间节点的时间间隔为所述第二时间间隔;
当所述第四时间节点发送的所述第二测试数据包的RTT小于T11时,将本次发送的所述第二测试数据包的RTT记录为T01,并加大向所述目标交换机发送所述第二测试数据的时间间隔,以按照调整后的时间间隔继续向所述目标交换机发送所述第二测试数据包。
6.如权利要求4所述的方法,其特征在于,所述根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout,包括:
根据调整后的时间间隔发送所述第二测试数据包给所述目标交换机;
当所述第二测试数据包的RTT从小于T11恢复为T11时,将本次向所述目标交换机发送所述第二测试数据包的时间间隔确定为第三时间间隔,并将所述第三时间间隔确定为所述目标交换机的流表项的Idle-Timeout。
7.如权利要求5所述的方法,其特征在于,所述根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout,包括:
根据调整后的时间间隔发送所述第二测试数据包给所述目标交换机;
当所述第二测试数据包的RTT从小于T11恢复为T11时,将本次向所述目标交换机发送所述第二测试数据包的时间间隔确定为第三时间间隔,并将所述第三时间间隔确定为所述目标交换机的流表项的Idle-Timeout。
8.如权利要求1-7任一项所述的方法,其特征在于,所述根据所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,包括:
根据所述Hard-Timeout和所述Idle-Timeout,确定将测试流表项***所述流表的***时间间隔;
按照所述***时间间隔生成用于***所述目标交换机的流表的测试流表项,并将所述测试流表项***所述目标交换机的流表中。
9.如权利要求1-7任一项所述的方法,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,包括:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M2确定为所述目标交换机的流表容量的测量值N1。
10.如权利要求8所述的方法,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,包括:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M2确定为所述目标交换机的流表容量的测量值N1。
11.如权利要求1-7任一项所述的方法,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定测试流表项***之前所述流表已有的流表项数量的测量值N2,包括:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M2,并将所述M2与所述M1的数量差标记为所述流表已有的流表项数量的测量值N2。
12.如权利要求8所述的方法,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定测试流表项***之前所述流表已有的流表项数量的测量值N2,包括:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M2,并将所述M2与所述M1的数量差标记为所述流表已有的流表项数量的测量值N2。
13.如权利要求1-7任一项所述的方法,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,包括:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M4确定为所述目标交换机的流表容量的测量值N1。
14.如权利要求8所述的方法,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,包括:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M4确定为所述目标交换机的流表容量的测量值N1。
15.如权利要求1-7任一项所述的方法,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定测试流表项***之前所述流表已有的流表项数量的测量值N2,包括:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M4,并将所述M4与所述M3的数量差标记为所述流表已有的流表项数量的测量值N2。
16.如权利要求8所述的方法,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述根据各个所述测试流表项***所述流表的RTT和***的所述测试流表项的状态,确定测试流表项***之前所述流表已有的流表项数量的测量值N2,包括:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M4,并将所述M4与所述M3的数量差标记为所述流表已有的流表项数量的测量值N2。
17.一种检测交换机信息泄露的装置,其特征在于,包括:
获取模块,用于获取目标交换机的流表项的硬件老化时间Hard-Timeout和软件老化时间Idle-Timeout,其中,所述Hard-Timeout为所述流表项在流表中存储的时长,所述Idle-Timeout为所述流表项最后一次被数据包匹配的时间点至所述流表项被删除的时间点之间的时长;
***模块,用于根据所述获取模块获取的所述Hard-Timeout和所述Idle-Timeout向所述目标交换机的流表中***测试流表项,并记录每个所述测试流表项***所述流表的往返时延RTT;
确定模块,用于根据所述***模块记录的各个所述测试流表项***所述流表的RTT,和所述***模块***的所述测试流表项的状态,确定所述目标交换机的流表容量的测量值N1,或者确定测试流表项***之前所述流表已有的流表项数量的测量值N2;
检测模块,用于在所述确定模块确定的所述N1与所述目标交换机的标准配置参数中的流表容量的差值在第一预设范围内,或者所述N2与所述目标交换机的标识配置参数中的用户占用的流表项数量的差值在第二预设范围内时,确定所述目标交换机存在信息泄露的漏洞。
18.如权利要求17所述的装置,其特征在于,所述获取模块包括:
第一处理单元,用于按照第一时间间隔向所述目标交换机发送第一测试数据包,并根据获取到的所述第一测试数据包的RTT确定所述目标交换机的流表项的Hard-Timeout;
第二处理单元,用于按照第二时间间隔向所述目标交换机发送第二测试数据包,根据获取到的所述第二测试数据包的RTT调整发送所述第二测试数据包的时间间隔,并根据调整后的时间间隔发送的所述第二测试数据包的RTT确定所述目标交换机的流表项的Idle-Timeout。
19.如权利要求18所述的装置,其特征在于,所述第一处理单元具体用于:
在第一时间节点发送所述第一测试数据包给目标交换机,并将本次发送的所述第一测试数据包的RTT记录为T1;
在第二时间节点上向所述目标交换机发送所述第一测试数据包,所述第二时间节点和所述第一时间节点的时间间隔为所述第一时间间隔;
当所述第二时间节点发送的所述第一测试数据包的RTT小于T1时,将本次发送的所述第一测试数据包的RTT记录为T0,并根据所述第一时间间隔继续向所述目标交换机发送所述第一测试数据包,获取每次向所述目标交换机发送的每个所述第一测试数据包的RTT;
当第N次发送给所述目标交换机的所述第一测试数据包的RTT恢复为T1时,计算所述第N次发送所述第一测试数据包给所述目标交换机的时间节点与所述第一时间节点的目标时间间隔,并将所述目标时间间隔确定为所述目标交换机的流表项的Hard-Timeout;
其中,所述T1大于所述T0,所述N为自然数。
20.如权利要求18所述的装置,其特征在于,所述第二处理单元具体用于:
在第三时间节点发送所述第二测试数据包给目标交换机,并将本次发送的所述第二测试数据包的RTT记录为T11;
在第四时间节点上向所述目标交换机发送所述第二测试数据包,所述第四时间节点和所述第三时间节点的时间间隔为所述第二时间间隔;
当所述第四时间节点发送的所述第二测试数据包的RTT小于T11时,将本次发送的所述第二测试数据包的RTT记录为T01,并加大向所述目标交换机发送所述第二测试数据的时间间隔,以按照调整后的时间间隔继续向所述目标交换机发送所述第二测试数据包。
21.如权利要求19所述的装置,其特征在于,所述第二处理单元具体用于:
在第三时间节点发送所述第二测试数据包给目标交换机,并将本次发送的所述第二测试数据包的RTT记录为T11;
在第四时间节点上向所述目标交换机发送所述第二测试数据包,所述第四时间节点和所述第三时间节点的时间间隔为所述第二时间间隔;
当所述第四时间节点发送的所述第二测试数据包的RTT小于T11时,将本次发送的所述第二测试数据包的RTT记录为T01,并加大向所述目标交换机发送所述第二测试数据的时间间隔,以按照调整后的时间间隔继续向所述目标交换机发送所述第二测试数据包。
22.如权利要求20所述的装置,其特征在于,所述第二处理单元具体用于:
根据调整后的时间间隔发送所述第二测试数据包给所述目标交换机;
当所述第二测试数据包的RTT从小于T11恢复为T11时,将本次向所述目标交换机发送所述第二测试数据包的时间间隔确定为第三时间间隔,并将所述第三时间间隔确定为所述目标交换机的流表项的Idle-Timeout。
23.如权利要求21所述的装置,其特征在于,所述第二处理单元具体用于:
根据调整后的时间间隔发送所述第二测试数据包给所述目标交换机;
当所述第二测试数据包的RTT从小于T11恢复为T11时,将本次向所述目标交换机发送所述第二测试数据包的时间间隔确定为第三时间间隔,并将所述第三时间间隔确定为所述目标交换机的流表项的Idle-Timeout。
24.如权利要求17-23任一项所述的装置,其特征在于,所述***模块具体用于:
根据所述Hard-Timeout和所述Idle-Timeout,确定将测试流表项***所述流表的***时间间隔;
按照所述***时间间隔生成用于***所述目标交换机的流表的测试流表项,并将所述测试流表项***所述目标交换机的流表中。
25.如权利要求17-23任一项所述的装置,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M2确定为所述目标交换机的流表容量的测量值N1。
26.如权利要求24所述的装置,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M2确定为所述目标交换机的流表容量的测量值N1。
27.如权利要求17-23任一项所述的装置,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M2,并将所述M2与所述M1的数量差标记为所述流表已有的流表项数量的测量值N2。
28.如权利要求24所述的装置,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
将每一个所述测试流表项的RTT与时延值T12进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T12时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M1;
记录所述M1个测试流表项***所述流表之后继续***所述流表的测试流表项的数量,并检测所述M1个所述测试流表项在所述流表中的存活状态;
当检测得到所述M1个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M2,并将所述M2与所述M1的数量差标记为所述流表已有的流表项数量的测量值N2。
29.如权利要求17-23任一项所述的装置,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M4确定为所述目标交换机的流表容量的测量值N1。
30.如权利要求24所述的装置,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,将当前已***所述流表的测试流表项的总数量M4确定为所述目标交换机的流表容量的测量值N1。
31.如权利要求17-23任一项所述的装置,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M4,并将所述M4与所述M3的数量差标记为所述流表已有的流表项数量的测量值N2。
32.如权利要求24所述的装置,其特征在于,所述***的所述测试流表项的状态包括:所述测试流表项在所述流表中的存活状态,和所述测试流表项的数量;
所述确定模块具体用于:
在所述测试流表项的***过程中,保持对已***的各个所述测试流表项的访问,以防止所述测试流表项因为预设时间内未被访问而被删除;
将每一个所述测试流表项的RTT与时延值T13进行匹配,当获取得到***所述流表的某个测试流表项的RTT大于或者等于所述T13时,确定所述流表已满,并记录已***所述流表的测试流表项的数量M3;
记录所述M3个测试流表项***所述流表之后继续***所述流表的测试流表的数量,并检测所述M3个所述测试流表项在所述流表中的存活状态;
当检测得到所述M3个测试流表项中第一个***所述流表的目标测试流表项已从所述流表中删除时,记录当前已***所述流表的测试流表项的总数量M4,并将所述M4与所述M3的数量差标记为所述流表已有的流表项数量的测量值N2。
33.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质存储有计算机程序,所述计算机程序被硬件执行时能够实现权利要求1至16任意一项所述的方法。
34.一种检测交换机信息泄露的装置,其特征在于,包括:
处理器和存储器;
其中,所述处理器用于存储计算机程序;
所述处理器用于执行所述计算机程序,以实现权利要求1至16任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510540183.0A CN106487756B (zh) | 2015-08-28 | 2015-08-28 | 一种检测交换机信息泄露的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510540183.0A CN106487756B (zh) | 2015-08-28 | 2015-08-28 | 一种检测交换机信息泄露的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106487756A CN106487756A (zh) | 2017-03-08 |
CN106487756B true CN106487756B (zh) | 2019-12-06 |
Family
ID=58234965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510540183.0A Active CN106487756B (zh) | 2015-08-28 | 2015-08-28 | 一种检测交换机信息泄露的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106487756B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512766B (zh) * | 2018-03-26 | 2020-09-11 | 南京邮电大学 | 一种OpenFlow交换机流表调节方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281317A (zh) * | 2013-05-09 | 2013-09-04 | 浙江师范大学 | 一种软件定义网络的攻击测试方法 |
CN104660565A (zh) * | 2013-11-22 | 2015-05-27 | 华为技术有限公司 | 恶意攻击的检测方法和装置 |
CN104704779A (zh) * | 2012-10-08 | 2015-06-10 | 瑞典爱立信有限公司 | 用于加速软件定义网络中的转发的方法和设备 |
CN104869064A (zh) * | 2014-02-21 | 2015-08-26 | 华为技术有限公司 | 一种流表更新方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9172651B2 (en) * | 2014-02-14 | 2015-10-27 | Telefonaktiebolaget L M Ericsson (Publ) | Denial of service prevention in a software defined network |
-
2015
- 2015-08-28 CN CN201510540183.0A patent/CN106487756B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104704779A (zh) * | 2012-10-08 | 2015-06-10 | 瑞典爱立信有限公司 | 用于加速软件定义网络中的转发的方法和设备 |
CN103281317A (zh) * | 2013-05-09 | 2013-09-04 | 浙江师范大学 | 一种软件定义网络的攻击测试方法 |
CN104660565A (zh) * | 2013-11-22 | 2015-05-27 | 华为技术有限公司 | 恶意攻击的检测方法和装置 |
CN104869064A (zh) * | 2014-02-21 | 2015-08-26 | 华为技术有限公司 | 一种流表更新方法及装置 |
Non-Patent Citations (1)
Title |
---|
主动测量SDN性能的机制;陈鸣等;《通信学报》;20150630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106487756A (zh) | 2017-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3289707B1 (en) | Signature-based latency extraction systems and related methods for network packet communications | |
CN109714343B (zh) | 一种网络流量异常的判断方法及装置 | |
US9961000B2 (en) | Estimation of network path segment delays | |
CN107454037B (zh) | 网络攻击的识别方法和*** | |
EP1603273A1 (en) | Accelerated per-flow traffic estimation | |
EP1603274A1 (en) | Per-flow traffic estimation | |
CN107634964B (zh) | 一种针对waf的测试方法及装置 | |
WO2017052973A1 (en) | Technologies for performance inspection at an endpoint node | |
US20190020551A1 (en) | Apparatus and method for measurements at intermediate nodes in end-to-end performance test | |
US10129899B2 (en) | Network apparatus | |
KR101409758B1 (ko) | 콘텐츠 중심 네트워크에서의 서비스 거부 공격 탐지 장치 및 방법 | |
CN106487756B (zh) | 一种检测交换机信息泄露的方法及装置 | |
JP4311675B2 (ja) | 品質劣化切り分け方法、及びその装置 | |
CN107864110B (zh) | 僵尸网络主控端检测方法和装置 | |
WO2018107756A1 (zh) | 网络节点设备的时延测量方法、装置及网络节点设备 | |
CN112737940A (zh) | 一种数据传输的方法和装置 | |
US20190356605A1 (en) | Information processing apparatus and verification system | |
CN109302433A (zh) | 远程命令执行漏洞的检测方法、装置、设备及存储介质 | |
CN107438268B (zh) | 一种用于为移动设备加速无线网络的方法与设备 | |
RU2472211C1 (ru) | Способ защиты информационно-вычислительных сетей от компьютерных атак | |
Basso et al. | Strengthening measurements from the edges: application-level packet loss rate estimation | |
CN110475244B (zh) | 终端管理方法、***、装置、终端及存储介质 | |
CN109728950B (zh) | 网络质量优化方法、装置、设备及计算机存储介质 | |
CN113114584B (zh) | 一种网络设备的保护方法及装置 | |
RU2531878C1 (ru) | Способ обнаружения компьютерных атак в информационно-телекоммуникационной сети |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |