基于SVM 算法的工业防火墙智能过滤研究应用

2021-01-20 08:44梅足辉古春生
科学技术创新 2021年1期
关键词:封包数据包防火墙

梅足辉 古春生

(江苏理工学院 机械工程学院,江苏 常州213001)

互联网技术的发展使得传统工业控制网络突破了空间的限制,实现了远程操作、异地操作的功能,同时也带了不少安全隐患,一款高效的工业防火墙能有效保护系统安全。

传统防火墙主要有两种技术实现:包过滤防火墙,状态检测防火墙。包过滤防火墙通过对系统五元组进行过滤。状态检测防火墙会维系一张与系统连接的网络访问表,对进出流量进行监控。然而此类防火墙在规则过滤方法中仍使用规则匹配的算法模式,这种方式不仅对硬件设备资源要求高,同时需要大量人力,并且不断更新特征库,有很大的安全隐患。

SVM(Support Vector Machine,支持向量机)是以统计学习理论的VC 维理论和结构风险最小原理为基础的一种机器学习算法[1],擅长解决小样本、非线性及高维模式识别的问题。在工业防火墙的实际问题中,数据维度复杂,正常流量比例远大于异常流量,因此采用SVM算法作为分类器算法。

基于以上情况,本文提出一种基于SVM算法的NDIS 工业防火墙系统模型,使用NDIS 与LSP 框架捕获流经网络的数据包并进行协议解析提取其特征值,在内核态使用SVM算法对数据包进行分类操作,并使用IOCTL 与共享内存的方式传回判决数据,完成对系统的安全防护。

1 系统设计

本系统是以LSP 与NDIS 为基础过滤技术设计的、使用SVM 算法作为过滤规则算法的一款基于WINDOWS 系统的工业防火墙系统。

系统采用了双层过滤的模式,在初始化时加载LSP 钩子与NDIS 中间层过滤设备,LSP 钩子将挂载于系统的网络层,HOOK住WINSOCK API 函数,NDIS 中间层过滤驱动设备将挂载在内核层面,当有数据流传输时,若使用WINSOCK API,会调用socket 函数,将被钩子模块捕获,若绕过了系统API 直接调用WINDOWS SPI 函数或者TDI 驱动等非常规通信方式将被NDIS 驱动捕获。因为SVM算法对解决高纬度分类问题有良好的效率[2],所以设计了双层过滤的模式过滤系统数据封包同时使用支持向量机算法对封包进行判决处理,根据判决结果生成的防火墙规则信息将会通过通信模块的共享内存与IOCTL 方式通知防火墙主模块,并根据判决信息动态添加过滤规则,完成对恶意封包的过滤。

1.1 工业协议特征提取

使用NDIS 与LSP 技术过滤封包后将对协议进行解析处理[3,4],以广泛使用的MODBUS 协议为例,通过协议解析模块将数据包解析为系统能够识别的格式。完成后将会对数据进行标准化处理并提取特征与归一化处理。在特征值选取时,提取的特征越多,越能代表了原始数据包的信息。一个封包信息繁多,因此算法需要解决高特征维度的问题。SVM算法虽然受特征维度影响不大,但计算量也会因此上升,因此在提取特征值时需要进行标准化、归一化等处理。

如一个MODBUS 包的原始格式为:(00 01 00 00 00 06 01 02 00 00 00 12),系统将按照协议格式标准化为统一格式:<Transaction identifier,Protocol,Len,Unit ID,Function code,Data>(1,0,6,1,2,12),并对其进行归一化在(-1,1)的区间内,方便系统训练判决。

1.2 SVM算法

SVM(Support Vector Machine,支持向量机),是一种机器学习的分类算法。有很多线性分类的问题可以使用分类算法,但是面对非线性问题时,这些算法需要将其中特征相互作用产生新的特征来得到一个非线性边界,这个过程容易造成过度拟合。SVM算法引入了核函数,将原始特征的分线性问题映射到高纬空间,变成一个高纬线性可分的问题,解决非线性问题[5]。公式如下:

是核函数中的惩罚系数,代表与标准样本与当前样本的误差容忍度。当过大时,此时高斯核的衰减极高,此时核函数的映射效果极弱,数值上与映射前相差不大,容易产生欠拟合的效果。当过小时,核函数映射距离极大,虽然能够拟合任何非线性问题,但会造成过度拟合的效果,实际准确率反而不高。在函数库中还有gamma 参数控制核函数结果[6]。因此需要使用网格搜索算法对参数进行优化,选取最佳参数。

线性回归是一种常用的解决线性分类问题的算法,构造其代价函数公式为:

SVM算法的代价函数与线性回归类似,然而线性回归算法对非线性问题的处理十分繁琐,SVM算法引入了核函数的概念能够有效解决非线性问题。SVM算法在原代价函数的基础上将原样本改为原样本的核函数,原特征数也改为了高斯核选取的样本数,将原问题变为最小化核特征的问题,构造其代价函数公式为:

在工业控制网络中主要将正常数据包与恶意数据包分类,以样本集为例{(x1,y1),(x2,y2)....(xn,yn)},其中x 为样本特征,y 为样本类别以1 代表正常数据包,-1 代表恶意数据包。样本的判决函数为:

将特征提取步骤中提取的特征值X,代入算法训练产生的假设函数hθ(x)中得出结果,若结果为1 则为正常数据包。若判断结果为-1 则为恶意数据包。

2 仿真实验

为验证防火墙算法的完备性,使用KDD 数据集中样本验证本文SVM算法的准确性。本文随机抽取数据集中正常数据包与异常攻击数据包构成测试样本,验证防火墙过滤算法对数据集判断准确性。

非均衡载集对训练结果有很大影响,由于实际情况中正常流量远大于异常流量,因此在训练时也需注意非均衡载集的问题。本文使用MATLAB 作算法仿真实验,选取KDD 数据集2000个正常样本,同时研究分均衡载集问题,选取不同数量异常数据,其比例分别为1/100、1/80、1/60、1/40、1/20 并依次编号样本。选取测试样本200,其中正常数据与异常数据比例为1/1。

首先取正常样本与异常样本差别最大的1 号数据作为训练集,提取特征、训练算法、进行验证,测试5 组数据,测试预测正常数据与异常数据的准确度,结果如图2 所示。

图2 不均衡数据集精度

从图中可知当样本不均衡比例较大时,预测结果中正常数据预测准确率都在90%以上。然而对异常数据预测精度极低。

由于非均衡载集训练算法对异常攻击数据预测精度极低,因此调整异常样本数据比例进行测试。同时使用改进网格搜索算法重新优化参数,其改进参数如表1 所示。导入MATLAB 软件对测试样本进行预测,其结果如图3 所示。

表1 网格搜索参数表

图3 不同数据比例精度测试

从图3 的结果可知,当异常攻击数据与正常数据比例相差较大时,正常数据预测精度较高,多在90%以上,然而对异常攻击数据的预测精度较低,大多低于40%。当训练数据集中异常攻击数据与正常数据比例改进,比例缩小后,对正常数据预测精度影响不大,在样本比例为1/25 时降到最低,仍维持在85%以上。对异常攻击数据预测精度大幅度上升,从29%提高到了91%。

实验结果证明,SVM 算法在工业协议智能过滤问题中有良好的表现,可以有效解决非线性分类问题,同时非均衡载集对训练结果精度有很大的影响,通过改进参数与改进样本间异常攻击数据与正常数据比例能够大幅度提升算法判别结果精度。改进后的SVM算法能够有效过滤异常攻击数据,保护系统安全。

3 结论

目前许多防火墙仍使用规则匹配白名单机制对数据进行安全过滤,同时使用人工配置规则,这使得防火墙存在一些安全隐患,同时影响防火墙的性能效率。本文使用NDIS 与LSP 双层过滤作为过滤技术,能够有效捕获流经网络的所有数据封包,并使用SVM算法作为过滤算法,智能解析提取数据包特征,并对其进行分类。使用抽样法抽取数据集中不均衡数据集并对其研究得到最优数据集,同时使用改进网格搜索法优化算法参数,使算法对数据分类精确度达到预期目标,完成智能过滤模块,加固了工业控制网络安全性。

猜你喜欢
封包数据包防火墙
中药封包在急诊老年急性胃肠炎患者中的临床应用
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
“一封家书”寄深情 筑牢疫情“防火墙”
全民总动员,筑牢防火墙
护肤 巧用保鲜膜
构建防控金融风险“防火墙”
一种无人机回收系统的安全优化
C#串口高效可靠的接收方案设计
在舌尖上筑牢抵御“僵尸肉”的防火墙