本发明属于互联网中网络安全的,尤其涉及一种面向工业互联网的ddos防御方法。
背景技术:
1、伴随着工业互联网中it(information technology)网络与ot(operationaltechnology)网络之间模态隔离的打破,传统互联网的安全威胁向工业领域不断渗透并延伸。由于传统封闭的工业网络环境造成了工业设备安全防护能力普遍薄弱的现状,更加大了工业系统和设备的攻击面。其中,网络攻击和异常占比最大,并且有95%为分布式拒绝服务攻击(distributed denial of service,ddos)。
2、ddos攻击是一种使目标负载加重,服务瘫痪的网络攻击,具有高流量、多样性、动态性、隐蔽性强等特点。其前身dos(denial of service)攻击兴起于上世纪80年代,攻击者利用系统漏洞或协议原理向目标服务器/主机发送数据包,通过耗尽其网络资源或计算资源,试图阻止其与合法用户建立连接并提供服务。上世纪末,ddos攻击发起者不再受单台机器限制,而是指派大量机器组成分布式网络,发动规模流量巨大flood攻击。
3、随着it网络与ot网络之间模态融合进程的加速,越来越多ot设备暴露在it网络攻击者的视野之下,工业互联网面临的ddos威胁与日俱增。此类现象的原因主要源于攻击者低成本、高破坏力和身份隐藏的优势。同时,工业互联网设备的特定应用、有限计算能力和高安全要求使得防御部署变得困难,进一步加剧了ddos攻击的威胁。因此,在工业互联网中对ddos防御机制展开深入透彻的研究具有重要的理论意义和应用价值。
4、当前,ddos检测方案根据不同环境有不同的实现。ml方法适合部署于互联网交换点的中央服务器,但其检测时延较高,不适合工业互联网设备端部署。fl方法相对更适合工业场景,但目前大多数fl检测工作仍停留在仿真环境下,并未真正部署至完整的防御系统内部;缓解方案中sdn的本质仍依赖于cpu处理数据包,不适合工业互联网场景。虽然可编程交换机的兴起带来了新的可能性,但现有大多数基于可编程交换机的缓解方法缺乏学习能力和自适应性。
5、针对工业场景,优先考虑性能和覆盖面时,部署ml/fl检测模型会增加数据包处理时延。相对地,优先考虑保证数据包处理的时延,使用高处理性能的可编程交换机设计防御原语,但防御策略仍依赖程序员手动设计,缺乏自动化和自适应性。因此,针对工业应用中ddos攻击具有多样性、动态性和无先验知识等特点,以及工业互联网ddos防御部署难的特性,实现工业互联网场景中ddos精准检测和快速缓解具有重要的理论和应用价值。
技术实现思路
1、发明目的,本发明正是针对现有技术中在工业互联网场景下ddos攻击新变体检测难和机器学习模型部署难,ddos攻击类型异构且动态缓解难和防御程序部署难的问题,提供一种面向工业互联网的ddos防御机制,引入边缘服务器,服务器上部署cnn分类模型,并引入联邦学习训练模型,设计自适应设备分组算法,将不同设备的流量引导至同一边缘服务器上用于本地训练,在中心服务器全局聚合时使用k-means分层聚类算法;数据平面利用p4语言设计一系列模块化的原语,多条原语组合成不同防御策略,控制平面读取网络状况以及fl检测模型回传的检测结果,自适应动态调整交换机中执行的防御策略;原语的执行分开放置在交换机和服务器上,利用草图数据结构存储流量日志。本发明方法基于联邦学习的ddos检测方法和基于可编程交换机的ddos缓解策略,在训练数据传输和隐私保护、计算能力受限、内存资源有限的条件下实现ddos攻击精准检测和动态快速缓解。
2、技术方案,为了实现上述目的,本发明提出一种面向工业互联网的ddos防御方法,该方法包括以下步骤:
3、s1,在可编程交换机处根据原语,接受数据包并周期性地统计数据,对可识别类型的数据包执行策略对应的操作;
4、s2,防御程序无法识别和用于模型训练的数据包,将被转发至边缘服务器,为后续联邦学习框架部署的机器学习模型提供识别与训练数据;
5、s3,引入边缘服务器部署联邦学习框架机器学习模型,通过转发的流量预训练cnn模型,并利用其检测交换机处无法识别的数据包类型;
6、s4,边缘服务器推理结果回传至可编程交换机,根据防御策略将原语以表项形式写入可编程交换机中,由此更新原语的统计规则。
7、进一步的,所述步骤s1具体为:
8、s11,交换机利用基于p4编程语言的模块化的防御原语,针对不同类型的ddos攻击设计了针对化的防御策略部署并运行在其上,机制设计了两类模块化的原语,分别为monitor原语和action原语,monitor原语:aggregate(p),利用bloom过滤器存储/统计一段时间内符合条件p的数据包;count(p),经过hash后利用寄存器统计一段时间内符合条件p的数据包数量;action原语:forward()转发数据包,drop()将数据包丢弃,confuse()转发至边缘服务器进一步检测;captcha()向数据包源ip发送身份验证;
9、s12,自适应调整防御策略机制根据常驻monitor原语监控结果动态调整可编程交换机上的防御策略,在数据平面,对于每种可以用于发动攻击协议的数据包类型设置常驻monitor原语统计一段时间内该类型数据包数量;在控制平面,当monitor原语监测到某种数据包数量大于预设值时,调用相应策略,将各原语以表项的形式写入运行中的可编程交换机,对进行数据包流进行处理;
10、s13,原语运行时为最大化交换机的处理量,利用基于0-1整数线性规划,将防御程序中的原语经过编排算法处理后放置在可编程交换机和边缘服务器上,具体解决如下0-1整数线性规划(ilp)问题:
11、利用现有的优化工具获得最佳原语放置方案,问题中需要放置p个防御程序,每个程序有np个原语,每个原语需要的sram大小为sramp,n,需要的计算单元状态alu数为actionp,n,流经每个原语的流量大小tp,n,交换机总可用sram大小为sram,交换机总可用状态alu数量为action,算法将策略编排为完整的两部分,第一部分是交换机部分和第二部分为服务器部分,避免将数据包来回地在服务器和交换机之间传输,确保只传输一次;且仅当第p个程序的第n个原语放置在交换机上时,定义xp,n=1,否则=0,第p个程序的最后一个放置在交换机上的原语为第last个原语时,优化的目标就是对于所有程序,分配给数据包处理的sram不能超过交换机总sram,sram约束对于所有程序,分配给数据包处理的状态alu数不能超过交换机总状态alu数,状态alu数约束
12、s14,为最大化利用交换机的内存资源,利用基于草图的数据结构压缩流量信息,对于数据包的存储,引入草图数据结构bloom过滤器;初始化:开始时,初始化2l位的数组,初始值全为0;更新:将每个数据包的五元组,具体包含源ip、目标ip、源端口、目标端口、传输协议,共l位作为输入,其中每个元素分别占据32位、32位、16位、16位、8位。
13、经过k个hash函数索引到2l位的数组中,hash计算得到的位置标记为1,并且,为了避免碰撞,哈希函数满足:对于任意一个哈希函数对于不同数据包哈希碰撞概率pr[h(x)=h(y)]=1/(2n);查询:检验一个数据包是否存储在bloom寄存器中,hash计算得到有任何一个位置是0,则表明为未存储;hash计算如果k位全为1,则表明该数据包存储在过滤器中。
14、进一步的,所述步骤s2具体为:
15、s21,对于数据平面上,可编程交换机无法判断的异常流量数据包,执行confuse()原语将其拷贝转发至边缘服务器,利用机器学习模型进行检测;
16、s22,为了向边缘服务器模型提供可靠的训练数据,在可编程交换机上配置训练服务器转发表,将网络协议不同的设备数据包转发至同一服务器存储,以数据包协议、目的设备地址为输入,匹配训练服务器转发表,转发至对应边缘服务器进行存储训练,由于可编程交换机的使用,根据模型训练的性能或者网络情况的变化动态调整训练服务器转发表;对于执行confuse原语的可编程交换机,将待检测的数据包转发至空闲,即无训练和检测任务的边缘服务器检测模型上进行分类。
17、进一步的,所述步骤s3具体为:
18、s31,边缘服务器上部署卷积神经网络模型检测流量类型,由输入层、隐藏层和输出层构成,其中,隐藏层中包括密集连接的卷积层、最大池化层和全连接层,输入层将从交换机上转发来工业互联网设备入站数据包进行数据包解析,特征提取和编码组织一系列预处理操作以满足cnn模型输入格式;卷积层通过3×3的卷积核对提取的特征矩阵进行更高级特征处理;池化层利用最大池化的方法,对流量特征进行降维处理,选取局部区域内的最大值来实现特征降维;全连接层将所有流量特征图展开为一维向量;输出层通过变换该一维向量获得标签类,使用softmax激活函数预测类概率,最后输出概率分布最大的类标签;
19、s32,模型的本地训练前,使用smote-enn采样算法对边缘服务器采集流量数据样本进行预处理,使用过采样技术对少数类进行过采样。其中,少数类指样本数占样本总数小于10%的样本类型,多数类指样本数占样本总数大于70%的样本类型。对于每个少数类样本xi∈dminority,找到它的k个最近邻样本xi1,xi2,…,xik,根据它的k个最近邻样本之间的线性插值生成新的合成样本xsynth=xi+λ×(xij-xi),其中,λ∈[0,1],表示插值比例,xij为xi的一个最近邻样本,通过在少数类样本之间进生成新的合成样本,以增加少数类样本数量;根据欠采样倍率m,从多数类样本中选择删除样本,使得剩余多数类样本的数量为m×|dminority|,使用编辑最近邻算法,删除多数类样本中误分类的样本,通过删除多数类样本中的不同类样本清除噪声,以减少多数类样本数量;
20、s33,模型的本地训练时,将模型的输出结果与真实标签进行比较,计算交叉熵损失函数,利用反向传播算法,根据损失函数计算能力参数的梯度,通过链式法则,将梯度从输出层传播回输入层,更新模型的参数,使得损失函数尽可能减小,并利用随机梯度下降根据参数的梯度更新模型参数;
21、s34,联邦学习框架中,第t轮训练,将参与训练的边缘服务器本轮的模型参数发送到中心服务器,中心服务器接收到m个局部模型参数后
22、{ωt,1,ωt,2,…,ωt,m},对模型参数进行k-means聚类得到k组,每组的个数记为nk,k∈[1,k];对每组进行平均得到k个模型参数,将k个模型参数的平均值ωt+1作为新一轮的全局模型参数。
23、进一步的,所述步骤s4具体为:
24、s41,服务器将推理结果回传至可编程交换机,控制层代码调用相应防御策略,将原语以表项的形式写入运行中的可编程交换机,原语更新后,在下一统计周期执行新原语的统计规则。
25、有益效果,与现有技术相比,本发明具有的有益效果:
26、(1)针对工业场景下机器学习检测模型部署难的问题,数据传输和数据隐私问题以及模型性能低的问题,引入边缘服务器,服务器上部署cnn分类模型,并引入联邦学习训练模型,设计自适应设备分组算法,将不同设备的流量引导至同一边缘服务器上用于本地训练,在中心服务器全局聚合时使用k-means分层聚类算法,为工业互联网设备提供实时的ddos攻击精准检测服务。
27、(2)针对ddos多样性和动态性的问题,数据平面利用p4语言设计一系列模块化的原语,多条原语组合成不同防御策略,控制平面读取网络状况以及fl检测模型回传的检测结果,自适应动态调整交换机中执行的防御策略;针对计算能力和内存限制问题,将原语的执行分开放置在交换机和服务器上,利用草图数据结构存储流量日志,实现ddos攻击动态快速缓解。
1.一种面向工业互联网的ddos防御方法,其特征在于,该方法包括以下步骤:
2.根据权利要求1所述的一种面向工业互联网的ddos防御方法,其特征在于,所述步骤s1具体为:
3.根据权利要求1所述的一种面向工业互联网的ddos防御方法,其特征在于,所述步骤s2具体为:
4.如权利要求1所述的一种面向工业互联网的ddos防御方法,其特征在于,所述步骤s3具体为:
5.根据权利要求1所述的一种面向工业互联网的ddos防御方法,其特征在于,所述步骤s4具体为:
