本发明属于计算机网络安全领域,具体涉及一种基于ann和启发式规则的tcp协议滥用的防御方法。
背景技术:
1、tcp协议滥用是利用tcp协议的漏洞发起的攻击,会消耗被攻击目标的资源,造成网络性能的下降。tcp协议滥用包含多种类型的攻击,如syn泛洪(synchronous flooding)攻击、tcp序列号推断(tcp sequence number inference)攻击、拒绝服务(denial ofservice,dos)攻击等。
2、乐观ack攻击是tcp协议滥用的一种攻击形式,它利用了tcp拥塞控制机制中速率由接收方控制的特点。攻击者为尚未接收到的段发送确认报文,使发送方错误地认为网络情况比实际情况更好,从而提高发送速率。这样,恶意tcp连接会耗尽中间链路的带宽,导致网络性能下降。
3、ecn滥用是tcp协议滥用的一种攻击形式,它利用了ecn机制的特性。在正常情况下,当发生拥塞时,接收方应将ece标志位的值置为1。因此,一种ecn滥用行为是:在交换机通知接收方拥塞后,接收方不改变ece标志位,使得发送方不会降低传输速率,从而导致ecn机制失效,网络性能下降。
4、sdn作为一种新兴的网络体系结构,将传统的tcp/ip网络中的网络层数据和控制平面解耦,降低了数据平面的复杂度,丰富了控制平面的功能,提供了良好的可编程性,极大便利了计算机网络领域内的应用部署和创新;可编程数据平面进一步将数据平面与网络设备解耦,从而满足不断变化的网络需求。
5、目前,大部分关于乐观ack攻击和ecn滥用的防御方法都是部署在传统网络中的,且这些方法基本上都需要修改tcp协议或终端主机,这使得这些方法难以实际部署。而在可编程数据平面中防御乐观ack攻击和ecn滥用的研究项目很少,因此在可编程数据平面中部署防御方法具有一定研究意义。
6、本发明针对tcp协议滥用的两种攻击形式,提出了数据平面中基于ann和启发式规则的防御方法。对于乐观ack攻击,在可编程交换机中载入收集流量特征数据的程序,使用收集到的特征数据训练ann;将乐观ack攻击检测模型部署于瓶颈链路的上游可编程交换机中,利用构建的乐观ack攻击检测模型对每条流进行检测,根据检测模型的输出结果判断该流中是否存在乐观ack攻击。当判定该流为可疑流时,使用启发式规则比较预期的确认号和实际的确认号,以此为依据判断乐观ack流,将乐观ack流放入丢包列表中进行丢包处理,对乐观ack攻击进行及时地缓解。对于ecn滥用,在可编程交换机中载入收集流量特征数据的程序,使用收集到的特征数据训练ann;将ecn滥用检测模型部署于数据平面中,利用构建的ecn滥用检测模型对每条流进行检测,根据检测模型的输出结果判断该流是处于正常状态还是拥塞状态。使用启发式规则对处于正常状态或拥塞状态的流分别进行处理,使其符合ecn的规则,从而实现ecn滥用的缓解。本发明提出的方法可以实现可编程网络中对乐观ack攻击和ecn滥用的防御,具有较高的准确率和召回率,此外,该方法具有更好的缓解效果,能够恢复更多的吞吐量和拥塞窗口,是有效的乐观ack攻击和ecn滥用防御方法。
技术实现思路
1、本发明针对现有防御方法存在的评估指标不够精确、恢复效果不够好等问题,提出了一种基于ann和启发式规则的tcp协议滥用防御方法,并以乐观ack攻击和ecn滥用这两种攻击形式作为样例。对于乐观ack攻击,首先采集检测窗口中接收方最初的报文和最后的报文中的确认号。通过计算这两者的差值得到ack序号步长,完成数据的采样和处理步骤后,使用人工神经网络将流检测为正常和可疑两类,再根据启发式规则对可疑流判断一次,对确定为乐观ack的流进行丢包处理。对于ecn滥用,使用p4自带的元数据收集交换机出口队列的长度,采用人工神经网络将流检测为正常情况下的流和拥塞情况下的流两类,再利用启发式规则对流进行修改报文的操作。与现有的防御方法相比较,本方法具有更精确的评估指标,以及较强的鲁棒性。
2、本发明为实现上述目标所采用的技术方案为:该tcp协议滥用防御方法主要包括三个步骤:数据收集、攻击检测以及攻击缓解。
3、1.乐观ack攻击数据收集。针对乐观ack攻击的特点,选择ack序号步长这一特征用于乐观ack攻击检测模型的预训练。通过分析存在乐观ack攻击的流和正常流的数据确认情况,发现存在乐观ack攻击的流比起正常的流在相同时间内确认的数据量更多,因此ack序号步长能够判断流中是否存在乐观ack攻击。ack序号步长的定义为单个检测窗口内接受方确认的数据量,计算ack序号步长的公式为(1):
4、step=acklast-ackfirst (1)
5、其中,step是ack序号步长;acklast是检测窗口中接收方最后一个报文中的确认号;ackfirst是检测窗口中接收方最初的报文中的确认号。
6、2.乐观ack攻击检测。乐观ack检测模型使用神经网络将流检测为正常流和可疑流两类,在瓶颈链路的上游交换机中,标签1代表该流为可疑流,标签0代表该流为正常流,从而实现乐观ack攻击的检测。
7、3.乐观ack攻击缓解。建立一个丢包列表,对于所有可疑流量,再做一次判断,在流中存在乐观ack攻击的情况下,攻击者提前发送ack报文,导致确认的数据数量比正常情况下更大,通过计算发送方报文的序列号和有效负载的值,获得期望的确认号,将预期的确认号与实际的接收方报文中的确认号进行比较,如果实际的确认号大于预期的确认号,则确定该流是乐观ack攻击流,将该流放入丢包列表中以进行丢弃。
8、4.ecn滥用数据收集。针对ecn滥用的特点,选择交换机出口队列的长度这一特征用于ecn滥用检测模型的预训练。通过分析发生拥塞的情况和正常情况下交换机出口队列的状态,发现拥塞时会有更多报文在交换机中等待转发,因此交换机出口队列程度能够量化网络的拥塞程度,判断流所处的状态。
9、5.ecn滥用检测。ecn滥用检测模型使用人工神经网络将流检测为两类:正常情况下的流和拥塞情况下的流,若分类结果为0,则判定该流为正常情况下的流,若分类结果为1,则判定该流为拥塞情况下的流,从而实现ecn滥用的检测。
10、6.ecn滥用缓解。采用控制状态转换的方法来控制交换机的行为,其中有两种状态,分别是安全状态和拥塞状态,当链路拥塞并且接收方有不恰当的行为时,交换机采取缓解措施,并由安全状态转换为拥塞状态,当交换机处于安全状态时,接收方的报文中ece标志位被设置为0;交换机处于拥塞状态时,接收方的报文中ece标志位被设置为1。
11、有益效果
12、该tcp协议滥用防御方法,对乐观ack攻击和ecn滥用的检测召回率较高,吞吐量和拥塞窗口的恢复效果优于现有的可编程数据平面中的方法,同时算法具有精确的评估指标以及较强的鲁棒性。因此,该检测方法适用于防御tcp协议滥用。
1.基于ann和启发式规则的tcp协议滥用防御方法,其特征在于,其中ann是指人工神经网络,tcp协议滥用是指利用tcp协议的漏洞发起的攻击,会造成网络性能的下降,乐观ack攻击和显示拥塞通知ecn滥用是tcp协议滥用的两种攻击形式,在可编程数据平面中防御tcp协议滥用不需要对终端主机或协议进行修改,所述攻击防御方法,具体包括如下步骤:
2.根据权利要求1中所述的攻击防御方法,其特征在于,步骤s1中乐观ack攻击防御中选择ack序号步长作为特征,ack序号步长的定义为单个检测窗口内接受方确认的数据量,计算ack序号步长的公式为:
3.根据权利要求1中所述的攻击防御方法,其特征在于,步骤s4中ecn滥用防御中选择交换机出口队列的长度作为特征,以量化网络的拥塞程度。
4.根据权利要求1中所述的攻击防御方法,其特征在于,步骤s2和步骤s5中人工神经网络中的归一化特征使用最长前缀匹配流表项来实现,具体为:可编程数据平面中的表结构以二元组<匹配,动作>的形式存储流规则,并且每个流表条目都存储一个对应于前缀的掩码,用于匹配的每个前缀表示一个区间范围内的特征的输入值,匹配到该前缀时的输出为: