本发明属于网络安全领域,涉及到一种svm分类方法和基于以太网的网络化倒立摆实验平台。
背景技术:
随着科技的逐步发展,信息物理系统(即cps)的类型越来越多样化,影响着我们的生产生活。例如:电网、工业控制系统、交通系统、医疗设备、家用电器等。但是,随着cps与外部网络的连接越密切,使得该系统的漏洞增多,即可受到外部的攻击方式增多。漏洞产生的原因有多种,例如:零日漏洞,即被发现后立即被恶意利用的安全漏洞;设备的使用者的安全意识不足,不能及时地安装安全补丁;很多工控网络都属于“裸奔”状态,极易受到外部入侵。
近些年,国际上发生了很多网络攻击的大事件,如:第一次真正意义上的网络攻击,2010年,震网病毒入侵伊朗核电站,使得设备功能瘫痪,无法正常运行;2015年,乌克兰某些地区的电力系统遭受了网络攻击,造成大面积的停电事故,对人们生活造成极大影响。
从上述例子中,可以看出,如今的网络安全并不只是个人的信息安全,而是影响到社会公共设施安全,甚至影响到国家的安全。因此,网络安全逐渐受到研究人员的高度重视,攻击者与防御者之间相互的博弈拉开序幕。在软件层面上,传统的it防护网络注重网络层的数据安全,然而忽略了物理属性,即忽略了有关系统物理状态的重要信息。而在工控网络中,一旦传输的信息受到篡改,通过控制反馈后,会对物理设备产生影响。由于工控网络的脆弱性,攻击者容易侵入网络内部,利用嗅探工具,监听工控系统中的通信数据,进而得到系统的状态模型。此时,攻击者可以对系统进行不同类型的攻击,如:虚假数据注入、几何攻击、浪涌攻击等。作为防御者,针对不同的攻击,需要做出相应的措施区分和识别,这样有利于提高系统的安全能力。
网络化倒立摆系统具有cps的基本特点,可以通过远程网络控制倒立摆的运动行为。对网络化倒立摆系统的攻击是cps攻击的缩影。
技术实现要素:
为了克服虚假信息注入对网络工业设备稳定性的影响,本发明提供了一种基于svm的虚假数据注入攻击的分类方法,以倒立摆系统的反馈输出为样本,能够有效地将掺杂在正确数据中的虚假数据进行区分。
为达到上述效果,本发明采用的技术方案如下:
一种基于svm的虚假数据注入攻击的分类方法,包括以下步骤:
步骤1,特征数据的提取:使用udp/ip协议通讯,采集网络化倒立摆系统在正常状态下运行的特征数据,所述特征数据包括小车的位移、速度,摆杆的角度以及角速度,定义该四个数据量为一组特征向量;
步骤2,虚假数据的定义:从所述特征数据中抽取部分,定义所注入的虚假信息数据为
其中e(t)为均值为0,方差为1的高斯白噪声;y是正常运行下的特征数据;ε,μ为自定义的常数,定义该组为虚假攻击产生的数据集,并且在每组篡改的特征向量前附上false_label为-1的标签;
步骤3,训练集与测试集的获取:在其余采集数据的每组特征向量前附上label为1的标签,定义为正常的数据集;与步骤2中的数据整合,记为训练集train_data_inst,标签为label和false_label的组合,记为train_data_label。定义每组特征向量与其标签的组合为一个样本。记数据集为m*n的矩阵,m表示样本的总个数,n表示样本的特征维数。重新获取设备正常运行的特征数据,随机抽取部分数据,作为测试集标签为1的样本集合m;随机抽取等量的另一部分数据,更改公式(1)中的ε,μ取值,注入虚假数据,作为测试标签为-1的样本集合n。整合样本,获得测试集test_data_inst及其标签test_data_label;
步骤4,使用svm建模:为区分虚假数据与正常数据进行,引入svm,通过对训练集数据的训练获取模型;
步骤5,计算分类准确率:测试集数据经过模型的预测后,得到预测的标签,将预测标签与测试集标签进行判别,提取正确分类的标签数,将其与标签总数比较,求得分类的准确率,即:
其中,accuracy为准确率,right_predict为正确分类的标签数,testdata_num为标签总数。
进一步,所述步骤4中,svm的运算过程为:
4.1数据集为m*n的矩阵,记xi为第i组特征向量,yi为第i组特征向量的标签,且yi∈{-1,1};最终目标是求取一个超平面,将实验数据分类;
令超平面为:ωt·x+b=0,其中ω为法向量,b为截距;
svm原始优化问题为:
其中c为惩罚参数,ξi为松弛变量。
构建拉格朗日函数,转化为对偶问题:
其中α为引入的拉格朗日算子;
4.2根据关系式:
求出ω,得到决策函数:
其中,sign为取计算结果的正负符号,最终所得的g(x)为预测的标签。
再进一步,所述步骤1中,倒立摆系统采用基于爱克曼公式的状态反馈控制方法:
假设系统是状态完全能控的,给定的闭环极点为η1,η2,η3,...,ηm,利用线性状态反馈控制器u=-kx,可得闭环系统状态方程为
其中,a,b为已知的常数矩阵,k为所求状态反馈矩阵,x为系统状态矩阵;
令
其中,η为
由凯莱-哈密尔顿定理,
将公式(9)推广到m阶的单输入系统,得
k=[00...01][bab....am-1b]-1φ(a)(10)
其中,φ(η)是期望的闭环特征多项式。
本发明的有益效果主要表现在:在对初始数据进行获取后,采用了svm进行分类,运行速度快,误差小,效率高,很好地解决了网络攻击中虚假数据注入对信息物理系统的影响。
附图说明
图1为基于svm的虚假数据注入攻击的分类方法的实验流程图。
图2为基于svm的虚假数据注入攻击的分类方法的部分特征数据展示图。
图3为基于svm的虚假数据注入攻击的分类方法的数据分析图。
图4为基于svm的虚假数据注入攻击的分类方法的效果比较图。
具体实施方式
为了使本发明的技术方案、设计思路能更加清晰,下面结合附图再进行详尽的描述。
参照图1~图4,一种基于svm的虚假数据注入攻击的分类方法,包括以下步骤:
步骤1:特征数据的获取:实验平台主要使用网络化控制倒立摆平台,与倒立摆直接相连的控制端为服务器端,远程控制端为客户端,两者通过udp/ip进行通讯,控制方法为艾克曼方法;
倒立摆系统的状态空间模型为:
其中x为小车位移,
给定期望闭环极点为[-2,-3,-4+3i,-4-3i]。经运算,可得状态反馈增益矩阵k值为k=[-5.0505-5.82435.25026.2750](12)
采集的部分数据如图2所示,其中,从左置右依次为小车的位移、速度,摆杆的角度、角速度;此四项为数据集的四个特征数据;
步骤2,虚假数据的定义:从采集的多组数据中取出四组,其中每组数据含有1000行特征向量,每行含有4个特征数据。添加不同的高斯白噪声,即ε,u不同,如:0.2*e(t)-0.1,即产生-0.1~0.1之间的白噪声。这些数据记为标签为-1的虚假数据,即训练集中虚假数据,共4000组特征向量;同理,取出700组数据,添加虚假数据:
步骤3,训练集与测试集的获取:对上述的数据进行整理,在其余数据中每组特征向量前附上label为1的标签,定义该组为正常的数据集,训练集数据总共有9701组,其中虚假数据4000组。测试集数据共有1400组,虚假数据与正常数据各占700组;
步骤4,使用svm建模:调用libsvm库,首先选择合适的核函数,由于样本的特征维度不高,样本的数量适量,故选择径向基函数。径向基函数可以将样本映射到一个更高维的空间,其形式为:
其中
4.1交叉验证获取最优参数c与g,其中c为惩罚参数;g为核函数中的λ,将原始数据进行分组,一部分作为训练集,另一部分作为验证集,首先通过训练集的训练得到模型,再利用验证集来测试训练得到的模型,以此证明模型的准确性,准确性最高时的c与g即为最优的,根据上述的训练集train_data_inst和标签train_data_label,在matlab中调试的结果为c=0.25,g=2,数据归一化虽然很重要,但是经过多次测试,将数据单纯的归一化后,c和g的取值过大,容易造成过拟合,故未进行归一化处理;
4.2设置标签类1和标签类-1的权重,由于训练集中虚假数据的数量较少,可适当增大其权重,所以设置标签1与-1的权重各为1和1.8;其余参数默认,进行训练与预测;
步骤5,分类准确率计算:最后实验的效果如图3所示,准确率超过了98%,正常数据的辨认为100%,说明实验具有较好的分类能力。
与常用的机器学习方法,如knn、决策树进行比较,结果对比如图4所示。可看出支持向量机效果最好,决策树其次,knn的准确率较低,耗时最长。
knn的设计思想简单,能够用于非线性分类,但是计算量大,需要计算出每一个测试样本与所有的训练集样本的欧氏距离,找到距离最近的k个点,表决出类别,耗时长,并且当样本分布分散不均匀时,预测的类别准确度较低,基本不具备学习能力;决策树计算简单,在处理不相关特征上有较好的效果,但是容易发生过拟合现象,在实验中,能够实现分类功能,效果较好;支持向量机能够通过核函数将线性不可分的样本映射到维度更高的特征空间中,实现线性可分,适用于二分类。本次实验就是将虚假信息与正常信息区分的二分类情况,svm具有很好的分类效果。