CN113516162A - 一种基于OCSVM和K-means算法的工控系统流量异常检测方法与系统 - Google Patents
一种基于OCSVM和K-means算法的工控系统流量异常检测方法与系统 Download PDFInfo
- Publication number
- CN113516162A CN113516162A CN202110453157.XA CN202110453157A CN113516162A CN 113516162 A CN113516162 A CN 113516162A CN 202110453157 A CN202110453157 A CN 202110453157A CN 113516162 A CN113516162 A CN 113516162A
- Authority
- CN
- China
- Prior art keywords
- value
- flow data
- flow
- matrix
- industrial control
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 50
- 239000011159 matrix material Substances 0.000 claims abstract description 57
- 230000002159 abnormal effect Effects 0.000 claims abstract description 54
- 239000013598 vector Substances 0.000 claims abstract description 37
- 230000009467 reduction Effects 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000000513 principal component analysis Methods 0.000 claims abstract description 17
- 238000012706 support-vector machine Methods 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 42
- 238000012549 training Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 13
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 claims description 3
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 claims description 3
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 230000009977 dual effect Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 2
- 230000003068 static effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 48
- 230000008901 benefit Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 241000700605 Viruses Species 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- VNWKTOKETHGBQD-UHFFFAOYSA-N methane Chemical compound C VNWKTOKETHGBQD-UHFFFAOYSA-N 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- ZPUCINDJVBIVPJ-LJISPDSOSA-N cocaine Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003345 natural gas Substances 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2135—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明公开了一种基于OCSVM和K‑means算法的工控系统流量异常检测方法,包括:使用流量获取工具从工控系统中获取正常流量数据集,针对流量数据集中的每一个流量数据而言,对该流量数据进行协议解析,以得到该流量数据的属性及其属性值,该流量数据对应的所有属性值构成属性值向量,所有流量数据对应的属性值向量构成大小为m*n的待检测数据矩阵,使用主成分分析法PCA对待检测数据矩阵进行降维处理,以得到降维处理后的矩阵;将降维处理后的矩阵中的每一行输入训练好的单类支持向量机OCSVM检测模型中,以得到该行对应的标签值,矩阵中所有行对应的标签值构成标签值列向量。本发明能够解决现有工控系统流量异常检测方法存在的异常流量少或者难以获取的技术问题。
Description
技术领域
本发明属于工业控制系统的入侵检测技术领域,更具体地,涉及一种基于OCSVM和K-means算法的工控系统流量异常检测方法和系统。
背景技术
工业控制系统是监控与数据采集系统、分布式控制系统、能源管理系统等系统的统称。工业控制系统广泛应用于电力、石油、天然气、水利等国家重要基础行业,一旦遭受攻击,将对整个国家和社会造成无法估计的损失和隐患。近年来,对于工控系统的攻击事件层出不穷:2010年,第一个针对工控系统的蠕虫病毒攻击了位于伊朗纳坦兹的核设施,2015年,名为”黑暗能量“(BlackEnergy)的病毒攻击了乌克兰电网。日益增多的针对工控系统的攻击事件使得工控系统安全形势愈发严峻,目前,工控系统安全已经上升到国家安全的层面。随着技术的发展,工业控制系统也在不断的发生变化,从封闭的系统到与互联网、物联网融合的系统。在工业控制系统不断进步的过程中,随之而来的安全性问题也越来也多,相应的安全性要求也越来越高。
与传统网络的安全性问题不同,工业控制系统由于它的特殊性,需要寻找专门针对工业控制系统的安全技术。入侵检测技术是一种根据已获取的数据建立检测模型,随后将建立的模型应用于系统中,根据实时获取的数据判断是否存在入侵的技术。流量异常检测是入侵检测技术中的一种,通过研究系统中的流量特征进行入侵检测。目前,针对工控系统的入侵检测技术主要通过对已有标签的流量数据集使用机器学习的算法进行训练,得到分类预测模型对待检测进行检测,从而识别正常流量和异常流量。
然而,当前的工控系统流量异常检测方法存在着以下几个缺陷:第一,目前的绝大多数工控系统流量异常检测方法需要具有标签的训练集进行模型训练,然而实际的工控环境中绝大多数为正常流量,异常流量少或者难以获取。第二,当前的工控系统流量异常检测方法根据已有类型标签进行学习,只能检测已知的攻击类型,对未知的攻击类型检测能力低。第三,现有的工控系统流量异常检测方法存在较高的误报率。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于OCSVM和K-means算法的工控系统流量异常检测方法与系统。其目的在于,解决现有工控系统流量异常检测方法存在的异常流量少或者难以获取的技术问题,以及只能检测已知的攻击类型、对未知的攻击类型检测能力低的技术问题,以及其存在较高误报率的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于OCSVM和K-means算法的工控系统流量异常检测方法,包括以下步骤:
(1)使用流量获取工具从工控系统中获取正常流量数据集;
(2)针对流量数据集中的每一个流量数据而言,对该流量数据进行协议解析,以得到该流量数据的属性及其属性值,该流量数据对应的所有属性值构成属性值向量,所有流量数据对应的属性值向量构成大小为m*n的待检测数据矩阵,其中m表示流量数据集中的流量数据总数,n表示每个流量数据对应的属性值的总数;
(3)使用主成分分析法PCA对步骤(2)得到的待检测数据矩阵进行降维处理,以得到降维处理后的矩阵;
(4)将步骤(3)降维处理后的矩阵中的每一行输入训练好的单类支持向量机OCSVM检测模型中,以得到该行对应的标签值,矩阵中所有行对应的标签值构成标签值列向量;
(5)针对步骤(4)得到的标签值列向量中每个取值为-1的标签值而言,获取该标签值在待检测数据矩阵中所对应的行中的所有属性值,获取的所有属性值构成新的矩阵,使用聚簇中心值为2的K-means算法对该新的矩阵中的每一行进行聚类处理,以得到该行所对应的聚类类别标签(其等于1或2);
(6)使用K-means方法对步骤(5)得到的所有聚类类别标签为2的所有对应行进行二次处理,以得到每一行对应的聚类类别标签,并根据得到的聚类类别标签的总数确定流量数据异常类别数量。
优选地,步骤(1)具体为,将流量获取工具部署在工控系统的路由旁路,在工控系统正常运行时,采取分时段随机的方式采集多条流量数据构成正常流量数据集。
优选地,如果步骤(2)得到的待检测数据矩阵中的某个位置处存在空的元素,则使用平均插值法在该位置进行插值处理。
优选地,在使用PCA进行降维处理的过程中,取累计方差贡献率达到95%的前N个主成分,其中N的取值范围为大于0,小于待检测数据矩阵的列数n。
优选地,步骤(4)中的OCSVM检测模型是通过以下步骤训练得到的:
(4-1)使用流量获取工具从工控系统中获取正常流量数据和待检测的系统流量数据,将该正常流量数据作为训练集X={xi,i=1,2,...,d},将待检测的系统流量数据作为待检测集,其中x表示样本,d表示训练集中的样本总数,每个样本的维度为N;
(4-2)使用函数Φ(x)∈H将训练集中的每个样本映射到高维特征空间H;
(4-3)在高维特征空间H中寻找一个超平面ωΦ(x)-ρ=0,将样本与原点分开,并且使得超平面与原点之间的距离足够大,将此过程用数学描述,得到一个二次规划问题:
s.t.Φ(xi)ω≥ρ-ξi,ξi≥0
其中v为权衡参数,v的小大决定了训练集中异常样本数据的比例上限和训练集中支持向量的下界,d为训练集中的样本数量,ξ为松弛变量,代表样本被错误分类的容忍程度,ω为超平面的法向量,ρ为超平面与原点的距离。
(4-4)引入拉格朗日函数,将步骤(4-3)得到的二次规划求解问题转换为拉格朗日函数Lp的极值问题:
其中,αi、βi为拉格朗日因子。
(4-5)使用核函数,将上述二次规划问题转化为对偶求解问题LD:
其中核函数是使用高斯核函数和多项式核函数混合的混合核函数,其表达式为:
K(x,y)=<Φ(x),Φ(y)>=0.5*exp(-g||x-y||2)+0.5*(αxty+c)b
其中g为高斯核函数的参数,α为多项式核函数的斜率,c为多项式核函数的常数项,b为多项式核函数的度。
(4-6)根据αi及其对应的xi获取超平面的与原点的距离ρ:
(4-7)根据步骤(4-6)得到的ρ,获取决策函数:
其中sgn()表示符号函数,对大于0的自变量sgn函数输出1,对于小于等于0的自变量sgn函数输出-1。
(4-8)将步骤(4-1)得到的待检测集中的每个样本输入决策函数中,以得到决策函数值,将决策函数值等于1对应的样本作为正常点,将决策函数值等于-1的样本作为异常点。
优选地,在步骤(5)的K-means算法执行过程中,其异常簇中心第一个坐标的取值,等于步骤(4)得到的标签值列向量中所有为-1的标签值,在步骤(3)得到的降维处理后的矩阵中位于第一列和对应行的所有元素的均值,其异常簇中心的第二个坐标取值,等于步骤(4)得到的标签值列向量中所有为-1的标签值,在步骤(3)得到的降维处理后的矩阵中位于第二列和对应行的所有元素的均值,…,以此类推,得到维数大小为n的异常簇中心位置坐标。
优选地,在步骤(5)中,如果聚类类别标签为2,则表示聚类类别标签对应的数据异常,否则表示正常。
优选地,步骤(6)使用K-means方法的过程中,是用Gap statistic方法寻找最佳簇中心个数K;
步骤(6)中,如果最后得到的聚类类别标签的最大值为Num,则最终确定的流量数据异常类别数量为Num。
按照本发明的另一方面,提供了一种基于OCSVM和K-means算法的工控系统流量异常检测系统,包括:
第一模块,用于使用流量获取工具从工控系统中获取正常流量数据集;
第二模块,用于针对流量数据集中的每一个流量数据而言,对该流量数据进行协议解析,以得到该流量数据的属性及其属性值,该流量数据对应的所有属性值构成属性值向量,所有流量数据对应的属性值向量构成大小为m*n的待检测数据矩阵,其中m表示流量数据集中的流量数据总数,n表示每个流量数据对应的属性值的总数;
第三模块,用于使用主成分分析法PCA对第二模块得到的待检测数据矩阵进行降维处理,以得到降维处理后的矩阵;
第四模块,用于将第三模块得到降维处理后的矩阵中的每一行输入训练好的单类支持向量机OCSVM检测模型中,以得到该行对应的标签值,矩阵中所有行对应的标签值构成标签值列向量;
第五模块,用于针对第四模块得到的标签值列向量中每个取值为-1的标签值而言,获取该标签值在待检测数据矩阵中所对应的行中的所有属性值,获取的所有属性值构成新的矩阵,使用聚簇中心值为2的K-means算法对该新的矩阵中的每一行进行聚类处理,以得到该行所对应的聚类类别标签(其等于1或2);
第六模块,用于使用K-means方法对第五模块得到的所有聚类类别标签为2的所有对应行进行二次处理,以得到每一行对应的聚类类别标签,并根据得到的聚类类别标签的总数确定流量数据异常类别数量。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
1、本发明由于采用了步骤(1)到步骤(4),其使用基于PCA降维和混合核函数的OCSVM算法建立检测模型,因此能够解决现有工控系统流量异常检测方法由于异常流量少或者难以获取导致检测准确率偏低的技术问题;
2、本发明由于采用了步骤(5),其使用K-means算法异常数据进行二分聚类,将异常数据中误报为异常数据的正常数据找出。因此能够解决现有工控系统流量异常检测方法误报率高的问题;
3、本发明由于采用了步骤(6),其使用基于Gap statistic的K-means算法对于异常流量数据进行多分类,可以确定异常流量类型数和每种异常流量类型对应的数量。因此能够解决现有工控系统流量异常检测方法中不能对未知异常类型分类的问题。
4、本发明提出的工控系统流量异常检测方法对于未知攻击具有较好的检测效果。
附图说明
图1是本发明基于OCSVM和K-means算法的工控系统流量异常检测方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的基本思路在于,提供一种基于OCSVM和K-means算法的工控系统流量异常检测方法与系统,其针对真实的工控环境中缺少具有标签的数据集的问题,提出使用单类支持向量机(One-class support vector machine,简称OCSVM)建立流量异常检测模型,使用正常流量数据进行训练即可建立检测模型。为了提高OCSVM模型训练和检测数据的效率,提出了一种数据预处理方法,使用PCA算法降低工控流量数据维度。同时,为了解决OCSVM算法建立的流量异常检测模型存在着较高的误报率问题,提出了一种OCSVM和K-means算法,将K-means算法与OCSVM算法结合,对OCSVM检测为异常流量的异常流量数据集进行再处理,将错误归类为异常的流量数据重新划分为正常数据,从而降低误报率。最后,为了解决OCSVM算法不能对异常数据类型进一步分析的问题,使用两次K-means对异常流量数据集进行再处理,通过聚类的方式对于属于相同攻击类型的异常数据进行归类,从而判断异常流量数据所属类别。
如图1所示,本发明提供了一种基于OCSVM和K-means算法的工控系统流量异常检测方法,包括以下步骤:
(1)使用流量获取工具从工控系统中获取正常流量数据集;
由于OCSVM算法进行模型训练只需要正常数据即可,因此本发明在获取工控系统正常运行环境下的流量数据即可。
具体而言,上述获取工控系统的流量数据集的方法为:将流量获取工具(如:snort、wireshark等)部署在工控系统的路由旁路,在工控系统正常运行时,采取分时段随机的方式采集多条流量数据构成流量数据集。
本步骤(1)的优点在于,通过分时段随机采集流量数据的方式提高了采集到的流量数据的代表性。
(2)针对流量数据集中的每一个流量数据而言,对该流量数据进行协议解析,以得到该流量数据的属性及其属性值,该流量数据对应的所有属性值构成属性值向量,所有流量数据对应的属性值向量构成大小为m*n的待检测数据矩阵,其中m表示流量数据集中的流量数据总数,n表示每个流量数据对应的属性值的总数;
具体而言,针对不同的工控系统,其对应的流量数据的协议也并不相同,本发明中的协议可以S7、Modbus等。
流量数据的属性包括但不局限于流量数据的IP地址、端口号等。
需要注意的是,如果得到的待检测数据矩阵中的某个位置处存在空的元素,则使用平均插值法在该位置进行插值处理。
上述步骤(1)和(2)的优点在于,可以获得具有真实性且便于建立异常检测模型的数据。
(3)使用主成分分析法(Primary component analysis,简称PCA)对步骤(2)得到的待检测数据矩阵进行降维处理,以得到降维处理后的矩阵;
具体而言,在使用PCA进行降维处理的过程中,取累计方差贡献率达到95%的前N个主成分,其中N的取值范围为大于0,小于待检测数据矩阵的列数n。
(4)将步骤(3)降维处理后的矩阵中的每一行输入训练好的单类支持向量机(One-class support vectormachine,简称OCSVM)检测模型中,以得到该行对应的标签值,矩阵中所有行对应的标签值构成标签值列向量;
本步骤中的OCSVM检测模型是通过以下步骤训练得到的:
(4-1)使用流量获取工具从工控系统中获取正常流量数据和待检测的系统流量数据,将该正常流量数据作为训练集X={xi,i=1,2,...,d},将待检测的系统流量数据作为待检测集,其中x表示样本,d表示训练集中的样本总数,每个样本的维度为N;
(4-2)使用函数Φ(x)∈H将训练集中的每个样本映射到高维特征空间H;
(4-3)在高维特征空间H中寻找一个超平面ωΦ(x)-ρ=0,将样本与原点分开,并且使得超平面与原点之间的距离足够大,将此过程用数学描述,得到一个二次规划问题:
s.t.Φ(xi)ω≥ρ-ξi,ξi≥0
其中:v为权衡参数,v的小大决定了训练集中异常样本数据的比例上限和训练集中支持向量的下界,d为训练集中的样本数量,ξ为松弛变量,代表样本被错误分类的容忍程度,ω为超平面的法向量,ρ为超平面与原点的距离。
(4-4)引入拉格朗日函数,将步骤(4-3)得到的二次规划求解问题转换为拉格朗日函数Lp的极值问题:
其中,αi、βi为拉格朗日因子。
(4-5)使用核函数,将上述二次规划问题转化为对偶求解问题LD:
常用的核函数有线性核函数、多项式核函数、高斯核函数、Sigmod核函数,本发明使用高斯核函数和多项式核函数混合的混合核函数作为核函数,其表达式为:
K(x,y)=<Φ(x),Φ(y)>=0.5*exp(-g||x-y||2)+0.5*(αxty+c)b
其中g为高斯核函数的参数,α为多项式核函数的斜率,c为多项式核函数的常数项,b为多项式核函数的度。
上述步骤(4-5)的优点在于,使用混合核函数作为核函数,提高了检测模型的检测精度。
(4-6)根据αi及其对应的xi获取超平面的与原点的距离ρ:
(4-7)根据步骤(4-6)得到的ρ,获取决策函数:
其中sgn()表示符号函数,对大于0的自变量sgn函数输出1,对于小于等于0的自变量sgn函数输出-1。
(4-8)将步骤(4-1)得到的待检测集中的每个样本输入决策函数中,以得到决策函数值,将决策函数值等于1对应的样本作为正常点,将决策函数值等于-1的样本作为异常点。
上述步骤(4-1)到(4-7)的优点在于,只使用正常数据即训练得到了流量异常检测模型。
(5)针对步骤(4)得到的标签值列向量中每个取值为-1的标签值而言,获取该标签值在待检测数据矩阵中所对应的行中的所有属性值,获取的所有属性值构成新的矩阵,使用聚簇中心值为2的K-means算法对该新的矩阵中的每一行进行聚类处理,以得到该行所对应的聚类类别标签(其等于1或2);
在本步骤的K-means算法执行过程中,其异常簇中心第一个坐标的取值,等于步骤(4)得到的标签值列向量中所有为-1的标签值,在步骤(3)得到的降维处理后的矩阵中位于第一列和对应行的所有元素的均值,其异常簇中心的第二个坐标取值,等于步骤(4)得到的标签值列向量中所有为-1的标签值,在步骤(3)得到的降维处理后的矩阵中位于第二列和对应行的所有元素的均值,…,以此类推,得到维数大小为n的异常簇中心位置坐标。
在本步骤中,如果聚类类别标签为2,则表示聚类类别标签对应的数据异常,否则表示正常。
上述步骤(5)的优点在于对步骤(4)得到的标签值列向量中每个取值为-1的行进行二分聚类,将本步骤中得到的聚类类别为1的步骤(4)得到的标签值列向量中每个取值为-1的行标签值修改为1,提高了流量检测的精度,降低了误报率。
(6)使用K-means方法对步骤(5)得到的所有聚类类别标签为2的所有对应行进行二次处理,以得到每一行对应的聚类类别标签,并根据得到的聚类类别标签的总数确定流量数据异常类别数量。
具体而言,本步骤中使用K-means方法过程中,是用Gap statistic方法寻找最佳簇中心个数K。
本步骤中,如果最后得到的聚类类别标签的最大值为Num,则最终确定的流量数据异常类别数量为Num。
上述步骤(6)的优点在于,对异常流量数据进行了多分类,预测了异常流量可能包含的类型数量以及每种类型的异常流量数量。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于OCSVM和K-means算法的工控系统流量异常检测方法,其特征在于,包括以下步骤:
(1)使用流量获取工具从工控系统中获取正常流量数据集;
(2)针对流量数据集中的每一个流量数据而言,对该流量数据进行协议解析,以得到该流量数据的属性及其属性值,该流量数据对应的所有属性值构成属性值向量,所有流量数据对应的属性值向量构成大小为m*n的待检测数据矩阵,其中m表示流量数据集中的流量数据总数,n表示每个流量数据对应的属性值的总数;
(3)使用主成分分析法PCA对步骤(2)得到的待检测数据矩阵进行降维处理,以得到降维处理后的矩阵;
(4)将步骤(3)降维处理后的矩阵中的每一行输入训练好的单类支持向量机OCSVM检测模型中,以得到该行对应的标签值,矩阵中所有行对应的标签值构成标签值列向量;
(5)针对步骤(4)得到的标签值列向量中每个取值为-1的标签值而言,获取该标签值在待检测数据矩阵中所对应的行中的所有属性值,获取的所有属性值构成新的矩阵,使用聚簇中心值为2的K-means算法对该新的矩阵中的每一行进行聚类处理,以得到该行所对应的聚类类别标签(其等于1或2);
(6)使用K-means方法对步骤(5)得到的所有聚类类别标签为2的所有对应行进行二次处理,以得到每一行对应的聚类类别标签,并根据得到的聚类类别标签的总数确定流量数据异常类别数量。
2.根据权利要求1所述的基于OCSVM和K-means算法的工控系统流量异常检测方法,其特征在于,步骤(1)具体为,将流量获取工具部署在工控系统的路由旁路,在工控系统正常运行时,采取分时段随机的方式采集多条流量数据构成正常流量数据集。
3.根据权利要求1或2所述的基于OCSVM和K-means算法的工控系统流量异常检测方法,其特征在于,如果步骤(2)得到的待检测数据矩阵中的某个位置处存在空的元素,则使用平均插值法在该位置进行插值处理。
4.根据权利要求1至3中任意一项所述的基于OCSVM和K-means算法的工控系统流量异常检测方法,其特征在于,在使用PCA进行降维处理的过程中,取累计方差贡献率达到95%的前N个主成分,其中N的取值范围为大于0,小于待检测数据矩阵的列数n。
5.根据权利要求1所述的基于OCSVM和K-means算法的工控系统流量异常检测方法,其特征在于,步骤(4)中的OCSVM检测模型是通过以下步骤训练得到的:
(4-1)使用流量获取工具从工控系统中获取正常流量数据和待检测的系统流量数据,将该正常流量数据作为训练集X={xi,i=1,2,...,d},将待检测的系统流量数据作为待检测集,其中x表示样本,d表示训练集中的样本总数,每个样本的维度为N;
(4-2)使用函数Φ(x)∈H将训练集中的每个样本映射到高维特征空间H;
(4-3)在高维特征空间H中寻找一个超平面ωΦ(x)-ρ=0,将样本与原点分开,并且使得超平面与原点之间的距离足够大,将此过程用数学描述,得到一个二次规划问题:
s.t.Φ(xi)ω≥ρ-ξi,ξi≥0
其中v为权衡参数,v的小大决定了训练集中异常样本数据的比例上限和训练集中支持向量的下界,d为训练集中的样本数量,ξ为松弛变量,代表样本被错误分类的容忍程度,ω为超平面的法向量,ρ为超平面与原点的距离。
(4-4)引入拉格朗日函数,将步骤(4-3)得到的二次规划求解问题转换为拉格朗日函数Lp的极值问题:
其中,αi、βi为拉格朗日因子。
(4-5)使用核函数,将上述二次规划问题转化为对偶求解问题LD:
其中核函数是使用高斯核函数和多项式核函数混合的混合核函数,其表达式为:
K(x,y)=<Φ(x),Φ(y)>=0.5*exp(-g||x-y||2)+0.5*(αxty+c)b
其中g为高斯核函数的参数,α为多项式核函数的斜率,c为多项式核函数的常数项,b为多项式核函数的度。
(4-6)根据αi及其对应的xi获取超平面的与原点的距离ρ:
(4-7)根据步骤(4-6)得到的ρ,获取决策函数:
其中sgn()表示符号函数,对大于0的自变量sgn函数输出1,对于小于等于0的自变量sgn函数输出-1。
(4-8)将步骤(4-1)得到的待检测集中的每个样本输入决策函数中,以得到决策函数值,将决策函数值等于1对应的样本作为正常点,将决策函数值等于-1的样本作为异常点。
6.根据权利要求1所述的基于OCSVM和K-means算法的工控系统流量异常检测方法,其特征在于,在步骤(5)的K-means算法执行过程中,其异常簇中心第一个坐标的取值,等于步骤(4)得到的标签值列向量中所有为-1的标签值,在步骤(3)得到的降维处理后的矩阵中位于第一列和对应行的所有元素的均值,其异常簇中心的第二个坐标取值,等于步骤(4)得到的标签值列向量中所有为-1的标签值,在步骤(3)得到的降维处理后的矩阵中位于第二列和对应行的所有元素的均值,…,以此类推,得到维数大小为n的异常簇中心位置坐标。
7.根据权利要求1所述的基于OCSVM和K-means算法的工控系统流量异常检测方法,其特征在于,在步骤(5)中,如果聚类类别标签为2,则表示聚类类别标签对应的数据异常,否则表示正常。
8.根据权利要求1所述的基于OCSVM和K-means算法的工控系统流量异常检测方法,其特征在于,
步骤(6)使用K-means方法的过程中,是用Gap statistic方法寻找最佳簇中心个数K;
步骤(6)中,如果最后得到的聚类类别标签的最大值为Num,则最终确定的流量数据异常类别数量为Num。
9.一种基于OCSVM和K-means算法的工控系统流量异常检测系统,其特征在于,包括:
第一模块,用于使用流量获取工具从工控系统中获取正常流量数据集;
第二模块,用于针对流量数据集中的每一个流量数据而言,对该流量数据进行协议解析,以得到该流量数据的属性及其属性值,该流量数据对应的所有属性值构成属性值向量,所有流量数据对应的属性值向量构成大小为m*n的待检测数据矩阵,其中m表示流量数据集中的流量数据总数,n表示每个流量数据对应的属性值的总数;
第三模块,用于使用主成分分析法PCA对第二模块得到的待检测数据矩阵进行降维处理,以得到降维处理后的矩阵;
第四模块,用于将第三模块降维处理后的矩阵中的每一行输入训练好的单类支持向量机OCSVM检测模型中,以得到该行对应的标签值,矩阵中所有行对应的标签值构成标签值列向量;
第五模块,用于针对第四模块得到的标签值列向量中每个取值为-1的标签值而言,获取该标签值在待检测数据矩阵中所对应的行中的所有属性值,获取的所有属性值构成新的矩阵,使用聚簇中心值为2的K-means算法对该新的矩阵中的每一行进行聚类处理,以得到该行所对应的聚类类别标签(其等于1或2);
第六模块,用于使用K-means方法对第五模块得到的所有聚类类别标签为2的所有对应行进行二次处理,以得到每一行对应的聚类类别标签,并根据得到的聚类类别标签的总数确定流量数据异常类别数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110453157.XA CN113516162A (zh) | 2021-04-26 | 2021-04-26 | 一种基于OCSVM和K-means算法的工控系统流量异常检测方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110453157.XA CN113516162A (zh) | 2021-04-26 | 2021-04-26 | 一种基于OCSVM和K-means算法的工控系统流量异常检测方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113516162A true CN113516162A (zh) | 2021-10-19 |
Family
ID=78063480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110453157.XA Pending CN113516162A (zh) | 2021-04-26 | 2021-04-26 | 一种基于OCSVM和K-means算法的工控系统流量异常检测方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113516162A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115766227A (zh) * | 2022-11-16 | 2023-03-07 | 国网福建省电力有限公司 | 基于单类支持向量机ocsvm的流量异常检测方法 |
CN117970858A (zh) * | 2024-04-02 | 2024-05-03 | 山西久远爱思普软件股份有限公司 | 基于物联网的医疗设备监控方法及系统 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291279A (zh) * | 2011-08-18 | 2011-12-21 | 西北工业大学 | P2p网络流量检测方法 |
CN102457525A (zh) * | 2011-12-19 | 2012-05-16 | 河海大学 | 一种基于负荷的异常入侵检测方法及系统 |
CN102663412A (zh) * | 2012-02-27 | 2012-09-12 | 浙江大学 | 基于最小二乘支持向量机的电力设备载流故障趋势预测方法 |
US20160188876A1 (en) * | 2014-12-30 | 2016-06-30 | Battelle Memorial Institute | Anomaly detection for vehicular networks for intrusion and malfunction detection |
CN106502234A (zh) * | 2016-10-17 | 2017-03-15 | 重庆邮电大学 | 基于双轮廓模型的工业控制系统异常检测方法 |
US9792562B1 (en) * | 2016-04-21 | 2017-10-17 | Sas Institute Inc. | Event prediction and object recognition system |
US20180127823A1 (en) * | 2016-08-17 | 2018-05-10 | The Broad Institute, Inc. | Method for determination and identification of cell signatures and cell markers |
CN108829715A (zh) * | 2018-05-04 | 2018-11-16 | 慧安金科(北京)科技有限公司 | 用于检测异常数据的方法、设备和计算机可读存储介质 |
CN109543756A (zh) * | 2018-11-26 | 2019-03-29 | 重庆邮电大学 | 一种基于主动学习的标签查询与更改方法 |
CN109543713A (zh) * | 2018-10-16 | 2019-03-29 | 北京奇艺世纪科技有限公司 | 训练集的修正方法及装置 |
CN109740630A (zh) * | 2018-12-06 | 2019-05-10 | 中科恒运股份有限公司 | 异常数据处理方法及装置 |
CN110008983A (zh) * | 2019-01-17 | 2019-07-12 | 西安交通大学 | 一种基于分布式模糊支持向量机的自适应模型的网络流量分类方法 |
CN110602034A (zh) * | 2019-07-08 | 2019-12-20 | 湖南大学 | 一种基于pso-svm检测s7协议异常通讯行为的方法和系统 |
CN111224984A (zh) * | 2020-01-06 | 2020-06-02 | 重庆邮电大学 | 一种基于数据挖掘算法的Snort改进方法 |
CN111401420A (zh) * | 2020-03-06 | 2020-07-10 | 普迪飞半导体技术(上海)有限公司 | 晶圆测试的异常数据聚类方法、装置、电子设备与介质 |
CN111832647A (zh) * | 2020-07-10 | 2020-10-27 | 上海交通大学 | 异常流量检测系统及方法 |
CN112041815A (zh) * | 2018-05-15 | 2020-12-04 | 国际商业机器公司 | 恶意软件检测 |
-
2021
- 2021-04-26 CN CN202110453157.XA patent/CN113516162A/zh active Pending
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291279A (zh) * | 2011-08-18 | 2011-12-21 | 西北工业大学 | P2p网络流量检测方法 |
CN102457525A (zh) * | 2011-12-19 | 2012-05-16 | 河海大学 | 一种基于负荷的异常入侵检测方法及系统 |
CN102663412A (zh) * | 2012-02-27 | 2012-09-12 | 浙江大学 | 基于最小二乘支持向量机的电力设备载流故障趋势预测方法 |
US20160188876A1 (en) * | 2014-12-30 | 2016-06-30 | Battelle Memorial Institute | Anomaly detection for vehicular networks for intrusion and malfunction detection |
US9792562B1 (en) * | 2016-04-21 | 2017-10-17 | Sas Institute Inc. | Event prediction and object recognition system |
US20180127823A1 (en) * | 2016-08-17 | 2018-05-10 | The Broad Institute, Inc. | Method for determination and identification of cell signatures and cell markers |
CN106502234A (zh) * | 2016-10-17 | 2017-03-15 | 重庆邮电大学 | 基于双轮廓模型的工业控制系统异常检测方法 |
CN108829715A (zh) * | 2018-05-04 | 2018-11-16 | 慧安金科(北京)科技有限公司 | 用于检测异常数据的方法、设备和计算机可读存储介质 |
CN112041815A (zh) * | 2018-05-15 | 2020-12-04 | 国际商业机器公司 | 恶意软件检测 |
CN109543713A (zh) * | 2018-10-16 | 2019-03-29 | 北京奇艺世纪科技有限公司 | 训练集的修正方法及装置 |
CN109543756A (zh) * | 2018-11-26 | 2019-03-29 | 重庆邮电大学 | 一种基于主动学习的标签查询与更改方法 |
CN109740630A (zh) * | 2018-12-06 | 2019-05-10 | 中科恒运股份有限公司 | 异常数据处理方法及装置 |
CN110008983A (zh) * | 2019-01-17 | 2019-07-12 | 西安交通大学 | 一种基于分布式模糊支持向量机的自适应模型的网络流量分类方法 |
CN110602034A (zh) * | 2019-07-08 | 2019-12-20 | 湖南大学 | 一种基于pso-svm检测s7协议异常通讯行为的方法和系统 |
CN111224984A (zh) * | 2020-01-06 | 2020-06-02 | 重庆邮电大学 | 一种基于数据挖掘算法的Snort改进方法 |
CN111401420A (zh) * | 2020-03-06 | 2020-07-10 | 普迪飞半导体技术(上海)有限公司 | 晶圆测试的异常数据聚类方法、装置、电子设备与介质 |
CN111832647A (zh) * | 2020-07-10 | 2020-10-27 | 上海交通大学 | 异常流量检测系统及方法 |
Non-Patent Citations (8)
Title |
---|
MAGLARAS L A ET AL.: "A novel intrusion detection method based on OCSVM and K-means recursive clustering", 《EAI ENDORSED TRANSACTIONS ON SECURITY & SAFETY》, vol. 2, no. 3, 30 January 2015 (2015-01-30), pages 1 - 10 * |
常文兵 等: "《可靠性工程中的大数据分析》", 30 September 2019, 国防工业出版社, pages: 218 * |
朱明: "《数据挖掘导论》", 中国科学技术大学出版社, pages: 178 - 179 * |
王佳楠 等: "基于语义向量与OCSVM的工控网络异常行为识别", 《计算机系统应用》 * |
王佳楠 等: "基于语义向量与OCSVM的工控网络异常行为识别", 《计算机系统应用》, vol. 27, no. 7, 27 June 2018 (2018-06-27), pages 1 - 10 * |
葛愿: "《网络化控制系统随机时延研究》", 30 November 2020, 《中国纺织出版社》, pages: 178 - 179 * |
马乐乐 等: "SDN环境下基于机器学习算法的DDoS攻击检测模型", 《微电子学与计算机》 * |
马乐乐 等: "SDN环境下基于机器学习算法的DDoS攻击检测模型", 《微电子学与计算机》, vol. 35, no. 5, 31 May 2018 (2018-05-31) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115766227A (zh) * | 2022-11-16 | 2023-03-07 | 国网福建省电力有限公司 | 基于单类支持向量机ocsvm的流量异常检测方法 |
CN117970858A (zh) * | 2024-04-02 | 2024-05-03 | 山西久远爱思普软件股份有限公司 | 基于物联网的医疗设备监控方法及系统 |
CN117970858B (zh) * | 2024-04-02 | 2024-06-11 | 山西久远爱思普软件股份有限公司 | 基于物联网的医疗设备监控方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301759B2 (en) | Detective method and system for activity-or-behavior model construction and automatic detection of the abnormal activities or behaviors of a subject system without requiring prior domain knowledge | |
CN110826648B (zh) | 一种利用时序聚类算法实现故障检测的方法 | |
Jianliang et al. | The application on intrusion detection based on k-means cluster algorithm | |
CN102291392B (zh) | 一种基于Bagging算法的复合式入侵检测方法 | |
Acampora et al. | A fuzzy-based approach to programming language independent source-code plagiarism detection | |
CN110826642B (zh) | 一种针对传感器数据的无监督异常检测方法 | |
Chang et al. | Anomaly detection for industrial control systems using k-means and convolutional autoencoder | |
CN113516162A (zh) | 一种基于OCSVM和K-means算法的工控系统流量异常检测方法与系统 | |
CN114124482B (zh) | 基于lof和孤立森林的访问流量异常检测方法及设备 | |
CN112134862B (zh) | 基于机器学习的粗细粒度混合网络异常检测方法及装置 | |
CN105376193A (zh) | 安全事件的智能关联分析方法与装置 | |
Mbow et al. | An intrusion detection system for imbalanced dataset based on deep learning | |
CN112532652A (zh) | 一种基于多源数据的攻击行为画像装置及方法 | |
CN113705714A (zh) | 基于行为序列的配电物联网设备异常行为检测方法及装置 | |
CN113205134A (zh) | 一种网络安全态势预测方法及系统 | |
CN117081858A (zh) | 一种基于多决策树入侵行为检测方法、系统、设备及介质 | |
Yuan et al. | Intrusion detection model based on improved support vector machine | |
CN111881159A (zh) | 一种基于代价敏感极端随机森林的故障检测方法及装置 | |
CN116582300A (zh) | 基于机器学习的网络流量分类方法及装置 | |
Müller et al. | Assessment of cyber-physical intrusion detection and classification for industrial control systems | |
CN109902731B (zh) | 一种基于支持向量机的性能故障的检测方法及装置 | |
Soheily-Khah et al. | Intrusion detection in network systems through hybrid supervised and unsupervised mining process-a detailed case study on the ISCX benchmark dataset | |
Wang et al. | Classification of ship trajectories by using naive Bayesian algorithm | |
CN112016597A (zh) | 一种机器学习中基于贝叶斯不平衡度量的深度采样方法 | |
CN116662899A (zh) | 一种基于自适应策略的含噪数据异常检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211019 |