CN105592087A - 一种基于向量机学习的dnp异常检测方法 - Google Patents
一种基于向量机学习的dnp异常检测方法 Download PDFInfo
- Publication number
- CN105592087A CN105592087A CN201510981949.9A CN201510981949A CN105592087A CN 105592087 A CN105592087 A CN 105592087A CN 201510981949 A CN201510981949 A CN 201510981949A CN 105592087 A CN105592087 A CN 105592087A
- Authority
- CN
- China
- Prior art keywords
- function code
- alpha
- vector machine
- function
- sample
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于向量机学习的DNP异常检测方法,选择DNP3.0协议应用层的功能码作为特征,通过功能码在DNP3.0协议本身中固有的合法组合的结合,使向量机学习得到特定组合,并作为深度包过滤技术的标准匹配;再通过捕获通讯流量提取功能码序列,使功能码序列与已知特征模式进行匹配,从而识别出防火墙未能识别的入侵攻击行为。
Description
技术领域
本发明属于工业控制系统信息安全领域,更为具体地讲,涉及一种基于向量机学习的DNP3.0异常检测方法。
背景技术
随着我国电力系统的信息网络的迅速发展,用于电力系统通讯的DNP(DistribtedNetworkProtoco)类协议的安全重要性也有目共睹,在本发明中,具体以DNP3.0协议为代表进行分析说明。
DNP3.0的设计结构具有灵活性和复杂性,这些灵活性和复杂性都使得攻击者更有可能利用协议本身的规则进行欺骗型攻击如命令注入攻击。命令注入攻击是命令本身合乎协议规则,属于欺骗型攻击,一旦插入系统网络后,正常和恶意代码一并执行,导致信息泄露或者正常数据的破坏,恶意命令掌控外站和网络,最终引起系统的崩坏。传统防火墙技术缺乏对于应用层协议的支持,无法应对利用应用层协议缺陷发起的攻击行为,这种攻击防火墙系统规则发现和阻止不了。因此有必要提出一种可以对数据包执行基于应用层的数据过滤的深度包过滤技术,通过该方法作为防火墙安全技术的有力补充来阻止恶意入侵。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于向量机学习的DNP异常检测方法,通过深度包过滤技术作用于应用层,有效阻止命令注入攻击。
为实现上述发明目的,本发明一种基于向量机学习的DNP异常检测方法,其特征在于,包括以下步骤:
(1)、流量采集
(1.1)、采集DNP3.0通讯流量,剔除该通讯流量中外站对应的数据包,得到功能码;
(1.2)、将功能码按照时间先后顺序排列,得到DNP3.0功能码序列;
(1.3)、设置单位时间T,再根据单位时间T将DNP3.0功能码序列分割成不等长度的DNP3.0功能码短序列;
(1.4)、依次判断所有的DNP3.0功能码短序列中的功能码是否有非法配合1X(X不为0),如果有,则将该DNP3.0功能码短序列标记为异常数据;如果没有,则保持不变;
(2)、数据预处理
(2.1)、将所有的DNP3.0功能码短序列放置于样本集合An,(n=1,2,…,N)中,N为DNP3.0功能码短序列的总个数,即样本总个数;将样本集合An中包含异常数据样本标记为-1,其余的样本标记为+1;
(2.2)、设定长度为d的滑动窗口,d不大于DNP功能码序列样本集合中的最小长度,用长度为d的滑动窗口依次处理样本集合An中的每一个样本,从而提取出所有长度为d的DNP3.0功能码短序列;
(2.3)、在所有满足长度为d的DNP3.0功能码短序列中,将每一个不同的d长度DNP3.0功能码短序列保留一份,其余重复相同的删除,得到d长度短序列集合M;
(3)、SVM异常检测
(3.1)、构建支持向量机模型;
(3.2)、将集合M中标记为+1的样本输入到支持向量机模型中,得到检测模型;
(3.3)、对检测模型本身进行测试;将标记为+1的样本输入到检测模型,通过检测模型可以计算出SVM的分类准确率,再将标记为-1的样本入到检测模型,计算出检测模型的异常通过率,当异常通过率大于预设的阀值K时,该条DNP3.0为异常,反正则为正常。
本发明的发明目的是这样实现的:
本发明一种基于向量机学习的DNP异常检测方法,选择DNP3.0协议应用层的功能码作为特征,通过功能码在DNP3.0协议本身中固有的合法组合的结合,使向量机学习得到特定组合,并作为深度包过滤技术的标准匹配;再通过捕获通讯流量提取功能码序列,使功能码序列与已知特征模式进行匹配,从而识别出防火墙未能识别的入侵攻击行为。
同时,本发明一种基于向量机学习的DNP异常检测方法还具有以下有益效果:
(1)、本发明选取DNP3.0应用层功能码这一重要字段作为深度包检测的特征,有效阻止传统防火墙无法识别的一些针对应用层协议缺陷发起的攻击行为,作为传统防火墙的有力补充阻止恶意入侵。
(2)、根据DNP3.0协议本身应用层功能码在通讯过程中研究发现,1X(X不为0)为非法配合,将此加入到对异常通讯的判定中,增大异常检测的准确性。
(3)、利用SVM方法建立了DNP3.0通讯的异常检测模型,可以辨识传统防火墙与入侵检测系统未能识别的异常行为。
附图说明
图1是简单工业控制系统的闭环控制拓扑结构;
图2是数据预处理部分流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图1是简单工业控制系统的闭环控制拓扑结构。
在本实施例中,如图1所示,简单工业控制系统的闭环控制拓扑结构包括:主站和外站。其中,主站通过人机接口控制主终端单元MTU(MasterTerminalUnit,MTU)发送请求命令到外站的远程终端设备RTU(RemoteTerminalUnit,),通过在MTU与RTU的通信之间增加深度包过滤技术,可以有效阻止欺骗型攻击。
下面对本发明所述的基于向量机学习的DNP异常检测方法进行详细说明,具体包括以下步骤:
S1、流量采集
S1.1、在主站和外站间利用linux的Netfilter机制联合socket采集DNP3.0通讯流量,剔除该通讯流量中外站对应的数据包,得到功能码;
S1.2、将功能码按照时间先后顺序排列,得到DNP3.0功能码序列,这样消除了DNP3.0通讯流量大量的冗余信息,减少了存储信息所需要的空间资源;
S1.3、设置单位时间T,由于单位时间T内通过的通讯流量是随机的,不能保证随机截断的DNP功能码序列包含相同数目的DNP功能码,因此,可以根据单位时间T将DNP3.0功能码序列分割成不等长度的DNP3.0功能码短序列,这样可以减少序分割方式对最终结果的影响;
S1.4、依次判断所有的DNP3.0功能码短序列,看每个DNP3.0功能码短序列中的功能码是否有非法组合1X(X非0),如果有,则将该DNP3.0功能码短序列标记为异常数据;如果没有,则保持不变;
功能码具有特定的合法组合,当主站发出不同的功能码时,外站可能处于立即处理模式,也可能处于确认后处理模式。因此,当主站发送功能码为“1”的读请求后,外站会返回一个“0”的确认后处理,当主站收到确认后处理,功能码进行合法组合,即为“10”,如果功能码进行组合后变为“1X”X非0,则表明该功能码为非法组合。
S2、数据预处理
S2.1、将所有的DNP3.0功能码短序列放置于样本集合An,(n=1,2,…,N)中,N为DNP3.0功能码短序列的总个数,即样本总个数;将样本集合An中包含异常数据的样本标记为-1,其余的样本标记为+1;
S2.2、设定长度为d的滑动窗口,d不大于DNP功能码序列样本集合中的最小长度,用长度为d的滑动窗口依次处理样本集合An中的每一个样本,从而提取出所有长度为d的DNP3.0功能码短序列;
S2.3、在所有满足长度为d的DNP3.0功能码短序列中,将每一个不同的d长度DNP3.0功能码短序列保留一份,其余重复相同的删除,得到d长度短序列集合M;再将集合M中的每一个样本均转换为SVM支持的向量模式;
在本实施例中,设第一个单位时间取到的序列是12345,第二个单位时间取到的序列是123456,设置滑动窗口d=3,那么,利用滑动窗口d=3对两个序列处理,得到的第一个时间段短序列为123、234、345,第二个时间段短序列是123、234、345、456;再将两个序列合并得到d长度短序列集合M,M=123、234、345、456。
S3、SVM异常检测
S3.1、构建支持向量机模型
1)、构造对偶求取支持向量机模型
其中,Q表示对偶运算,α=(α1,α2,...,αn)表示拉格朗日算子,(0,C)为区间,K(xi,xj)表示高斯径向基核函数,(xi,yi)为线性可分的样本集,且y∈{-1,+1};得解
2)、构造决策函数
其中,b*是支持向量机模型的最终决策函数的阈值,sgn()表示符号函数。
S3.2、将集合M中标记为+1的样本输入到支持向量机模型中,得到检测模型;
S3.3、对检测模型本身进行测试;将标记为+1的样本输入到检测模型,通过检测模型可以计算出SVM的分类准确率,再将标记为-1的样本入到检测模型,计算出检测模型的异常通过率,当异常通过率大于预设的阀值K时,该条DNP3.0为异常,反正则为正常。
实例
在本实施例中,采集了单位时间T=10s内的三个时间段共200个数据的功能码,取子序列长度d为7。经过数据预处理后,得到SVM向量机学习可支持的数据格式,其中123个标记为+1的正常样本,20个标记为-1的异常样本。将得到的标记为+1的正常样本输入支持向量机模块中,得到检测模型,模型参数如下:
nu=0.666667,obj=-1.250000,rho=-0.500000,nSV=3,nBSV=1,TotalnSV=123
对模型本身进行测试,将标记为+1的样本输入到检测模型,得到模型分类准确度达到90.2439%,将标记为-1的样本入到检测模型,异常通过率为0%。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (3)
1.一种基于向量机学习的DNP异常检测方法,其特征在于,包括以下步骤:
(1)、流量采集
(1.1)、采集DNP3.0通讯流量,剔除该通讯流量中外站对应的数据包,得到功能码;
(1.2)、将功能码按照时间先后顺序排列,得到DNP3.0功能码序列;
(1.3)、设置单位时间T,再根据单位时间T将DNP3.0功能码序列分割成不等长度的DNP3.0功能码短序列;
(1.4)、依次判断所有的DNP3.0功能码短序列中的功能码是否有非法配合1X(X不为0),如果有,则将该DNP3.0功能码短序列标记为异常数据;如果没有,则保持不变;
(2)、数据预处理
(2.1)、将所有的DNP3.0功能码短序列放置于样本集合An,(n=1,2,…,N)中,N为DNP3.0功能码短序列的总个数,即样本总个数;将样本集合An中包含异常数据样本标记为-1,其余的样本标记为+1;
(2.2)、设定长度为d的滑动窗口,d不大于DNP功能码序列样本集合中的最小长度,用长度为d的滑动窗口依次处理样本集合An中的每一一个样本,从而提取出所有长度为d的DNP3.0功能码短序列;
(2.3)、在所有满足长度为d的DNP3.0功能码短序列中,将每一个不同的d长度DNP3.0功能码短序列保留一份,其余重复相同的删除,得到d长度短序列集合M;
(3)、SVM异常检测
(3.1)、构建支持向量机模型;
(3.2)、将集合M中的所有样本输入到支持向量机模型中,得到检测模型;
(3.3)、对检测模型本身进行测试;将标记为+1的样本输入到检测模型,通过检测模型可以计算出SVM的分类准确率,再将标记为-1的样本入到检测模型,计算出检测模型的异常通过率,当异常通过率大于预设的阀值K时,该条DNP3.0为异常,反正则为正常。
2.根据权利要求1所述的一种基于向量机学习的DNP异常检测方法,其特征在于,所述的步骤(1.3)中,判断DNP3.0功能码短序列中的功能码是否有非法配合1X的方法为:当主站和外站通信时,主站会发送功能码为“1”的读请求,外站收到该读请求后返回一个“0”的确认后处理,当主站收到确认后处理时,功能码进行合法组合,即为“10”,如果功能码进行组合后变为“1X”X非0,则表明该功能码为非法组合。
3.根据权利要求1所述的一种基于向量机学习的DNP异常检测方法,其特征在于,所述的步骤(3.1)中,构建支持向量机模型的方法为:
(3.1)、构造对偶求取支持向量机模型
其中,Q表示对偶运算,α=(α1,α2,...,αn)表示拉格朗日算子,(0,C)为区间,K(xi,xj)表示高斯径向基核函数,(xi,yi)为线性可分的样本集,且y∈{-1,+1};解得
(3.2)、构造决策函数
其中,b*是支持向量机模型的最终决策函数的阈值,sgn()表示符号函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510981949.9A CN105592087A (zh) | 2015-12-23 | 2015-12-23 | 一种基于向量机学习的dnp异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510981949.9A CN105592087A (zh) | 2015-12-23 | 2015-12-23 | 一种基于向量机学习的dnp异常检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105592087A true CN105592087A (zh) | 2016-05-18 |
Family
ID=55931301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510981949.9A Pending CN105592087A (zh) | 2015-12-23 | 2015-12-23 | 一种基于向量机学习的dnp异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105592087A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108282482A (zh) * | 2018-01-30 | 2018-07-13 | 电子科技大学 | 一种基于svm的iec60870-5-104异常流量检测方法 |
CN108761250A (zh) * | 2018-07-26 | 2018-11-06 | 电子科技大学 | 一种基于工控设备电压电流的入侵检测方法 |
CN110968323A (zh) * | 2019-11-27 | 2020-04-07 | 中国银行股份有限公司 | 一种移动终端app功能码列表自动生成方法及系统 |
CN114363005A (zh) * | 2021-12-08 | 2022-04-15 | 北京六方云信息技术有限公司 | 基于机器学习的icmp检测方法、系统、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050169517A1 (en) * | 2004-01-19 | 2005-08-04 | Konica Minolta Medical & Graphic, Inc. | Medical image processing apparatus |
CN101707586A (zh) * | 2009-06-02 | 2010-05-12 | 中国南方电网有限责任公司电网技术研究中心 | 基于dnp协议的电力系统仿真器与电力系统的在线通讯方法 |
CN104702460A (zh) * | 2013-12-10 | 2015-06-10 | 中国科学院沈阳自动化研究所 | 基于SVM的Modbus TCP通讯的异常检测方法 |
-
2015
- 2015-12-23 CN CN201510981949.9A patent/CN105592087A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050169517A1 (en) * | 2004-01-19 | 2005-08-04 | Konica Minolta Medical & Graphic, Inc. | Medical image processing apparatus |
CN101707586A (zh) * | 2009-06-02 | 2010-05-12 | 中国南方电网有限责任公司电网技术研究中心 | 基于dnp协议的电力系统仿真器与电力系统的在线通讯方法 |
CN104702460A (zh) * | 2013-12-10 | 2015-06-10 | 中国科学院沈阳自动化研究所 | 基于SVM的Modbus TCP通讯的异常检测方法 |
Non-Patent Citations (1)
Title |
---|
王芬: "基于SVM分类的网络入侵检测研究", 《宁夏师范学院学报(自然科学)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108282482A (zh) * | 2018-01-30 | 2018-07-13 | 电子科技大学 | 一种基于svm的iec60870-5-104异常流量检测方法 |
CN108282482B (zh) * | 2018-01-30 | 2020-12-01 | 电子科技大学 | 一种基于svm的iec60870-5-104异常流量检测方法 |
CN108761250A (zh) * | 2018-07-26 | 2018-11-06 | 电子科技大学 | 一种基于工控设备电压电流的入侵检测方法 |
CN110968323A (zh) * | 2019-11-27 | 2020-04-07 | 中国银行股份有限公司 | 一种移动终端app功能码列表自动生成方法及系统 |
CN110968323B (zh) * | 2019-11-27 | 2023-06-20 | 中国银行股份有限公司 | 一种移动终端app功能码列表自动生成方法及系统 |
CN114363005A (zh) * | 2021-12-08 | 2022-04-15 | 北京六方云信息技术有限公司 | 基于机器学习的icmp检测方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110177108B (zh) | 一种异常行为检测方法、装置及验证系统 | |
US10261502B2 (en) | Modbus TCP communication behaviour anomaly detection method based on OCSVM dual-outline model | |
CN105703963B (zh) | 基于pso‑ocsvm的工业控制系统通信行为异常检测方法 | |
Gupta et al. | Towards detecting fake user accounts in facebook | |
CN105592087A (zh) | 一种基于向量机学习的dnp异常检测方法 | |
CN107341399B (zh) | 评估代码文件安全性的方法及装置 | |
CN108718298B (zh) | 一种恶意外连流量检测方法及装置 | |
CN104899513B (zh) | 一种工业控制系统恶意数据攻击的数据图检测方法 | |
CN104660594A (zh) | 一种面向社交网络的虚拟恶意节点及其网络识别方法 | |
CN104168288A (zh) | 一种基于协议逆向解析的自动化漏洞挖掘系统及方法 | |
CN104462509A (zh) | 垃圾评论检测方法及装置 | |
CN104735074A (zh) | 一种恶意url检测方法及其实现系统 | |
CN113283476A (zh) | 一种物联网网络入侵检测方法 | |
CN103500307A (zh) | 一种基于行为模型的移动互联网恶意应用软件检测方法 | |
CN104123496B (zh) | 一种流氓软件的拦截方法及装置、终端 | |
CN108063768B (zh) | 基于网络基因技术的网络恶意行为识别方法及装置 | |
CN103679018A (zh) | 一种检测csrf漏洞的方法和装置 | |
CN113965393B (zh) | 一种基于复杂网络和图神经网络的僵尸网络检测方法 | |
CN109889471B (zh) | 结构化查询语句sql注入检测方法和系统 | |
CN110768946A (zh) | 一种基于布隆过滤器的工控网络入侵检测系统及方法 | |
CN104484407A (zh) | 一种识别诈骗信息的方法和系统 | |
CN107454118A (zh) | 验证码获取方法及装置、登录方法及系统 | |
CN105718792A (zh) | 一种基于沙箱的二维码检测方法及系统 | |
CN105704099A (zh) | 一种检测隐藏在网站脚本中非法链接的方法 | |
CN104052737A (zh) | 一种网络数据报文的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160518 |
|
WD01 | Invention patent application deemed withdrawn after publication |