CN114844802A - 流量检测方法、装置、终端设备以及存储介质 - Google Patents
流量检测方法、装置、终端设备以及存储介质 Download PDFInfo
- Publication number
- CN114844802A CN114844802A CN202210776494.7A CN202210776494A CN114844802A CN 114844802 A CN114844802 A CN 114844802A CN 202210776494 A CN202210776494 A CN 202210776494A CN 114844802 A CN114844802 A CN 114844802A
- Authority
- CN
- China
- Prior art keywords
- flow
- real
- traffic
- time
- information
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0847—Transmission error
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种流量检测方法、装置、终端设备以及存储介质,其流量检测方法包括:获取第一实时流量,并提取所述第一实时流量中的第一流量信息;将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。本申请解决了流量检测的复杂度高、资源消耗高的问题。
Description
技术领域
本申请涉及工业系统检测领域,尤其涉及一种流量检测方法、装置、终端设备以及存储介质。
背景技术
以移动互联网、物联网、大数据、人工智能等为代表的新一代信息技术的蓬勃发展,加速了IT和OT技术全方位的深度融合发展。与此同时,工业互联网作为IT和OT技术融合的产业,其安全环境复杂多样。而工控网络安全关系着国家安全,从工控互联网的流量中发现威胁行为是保护工控系统的手段之一。
现在业界多采用的方案为使用机器学习的方法对过往流量进行模式学习和第一实时流量预测判断,通过工业控制系统(ICS)包括控制组件(例如电气、机械、液压、气动)的组合,共同作用以实现工业目标(例如制造、物质或能量的运输)。在ICS中,系统中的组件(PLC)和它们的控制系统(HMI)往往使用Modbus/TCP、S7等协议进行数据的传输和通信。
但是,在一个工业控制系统的局域网环境中,存在上千个设备逻辑控制器(PLC),每个PLC实时对工业数据进行监控和对设备进行控制,实时传输的数据量大,对于实时流量的检测需要更大的计算和存储能力;并且在工业环境中,每个设备逻辑控制器(PLC)与他们对应的监控设备(HMI)之间的流量各不相同,所有设备流量统一建立机器学习模型复杂度太高,需要大量工作来提升模型识别的准确性。
因此,需要一种简单、资源消耗低的方法来进行实时流量的检测。
发明内容
本申请的主要目的在于提供一种流量检测方法、装置、终端设备以及存储介质,旨在解决流量检测的复杂度高、资源消耗高的问题。
为实现上述目的,本申请提供一种流量检测方法,所述流量检测方法包括:
获取第一实时流量,并提取所述第一实时流量中的第一流量信息;
将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;
基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。
可选地,所述第一流量信息至少包括第一功能码及第一传输标识,所述第二流量信息至少包括第二功能码,所述基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常的步骤包括:
判断所述第一实时流量的流量类型;
若所述第一实时流量为请求流量,则保存所述第一传输标识至预设的标识库,并判断所述第一功能码及所述第二功能码是否匹配;
若是,则判定所述第一实时流量为正常情况;
若否,则判定所述第一实时流量为异常情况。
可选地,所述判断所述第一实时流量的流量类型的步骤之后,还包括:
若所述第一实时流量为响应流量,则判断所述第一传输标识与所述标识库中上一保存的目标传输标识是否匹配;
若否,则判定所述第一实时流量为所述异常情况;
若是,则判断所述第一功能码及所述第二功能码是否匹配;
若否,则判定所述第一实时流量为所述异常情况;
若是,则判定所述第一实时流量为所述正常情况。
可选地,所述判定所述第一实时流量为所述异常情况的步骤包括:
则判断所述第一传输标识与所述标识库中除所述目标传输标识以外的传输标识是否匹配;
若是,则判定所述第一实时流量的异常情况为重传;
若否,则判断功能码库与所述样本流量周期序列是否匹配,其中,所述功能码库中存储所述第一实时流量之后的若干流量所对应的功能码;
若是,则判定所述第一实时流量的异常情况为丢失;
若否,则判定所述第一实时流量的异常情况为错误。
可选地,所述将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到的步骤之前,还包括:
基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一流量的样本功能码以及每一流量在所述样本流量包中的逻辑关系;
基于所述样本功能码和所述逻辑关系,生成所述样本流量周期序列。
可选地,所述检测所述第一实时流量是否异常的步骤之后,还包括:
输出检测结果,并存储每一检测结果;
根据所述检测结果生成对应的特定序列,所述特定序列的长度为预设长度;
针对所述特定序列计算得到流量状态占比,并判断所述流量状态占比是否符合预设的阈值;
若否,则获取第二实时流量,并提取所述第二实时流量中的第三流量信息;
若是,则执行基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一个流量的样本功能码以及每个流量在所述样本流量包中的逻辑关系的步骤;
以此循环,更新所述样本流量周期序列。
可选地,所述将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息的步骤包括:
将所述第一流量信息输入所述流量检测模型进行以下处理:
通过预设的序列匹配算法将第一流量信息与样本流量周期序列进行匹配,得到对应的索引信息;
判断所述索引信息是否属于所述样本流量周期序列的唯一索引信息;
若是,则根据所述索引信息及所述样本流量周期序列,得到所述第二流量信息。
本申请实施例还提出一种流量检测装置,所述流量检测装置包括:
提取模块,用于获取第一实时流量,并提取所述第一实时流量中的第一流量信息;
匹配模块,用于将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;
检测模块,用于基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。
本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的流量检测程序,所述流量检测程序被所述处理器执行时实现如上所述的流量检测方法的步骤。
本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有流量检测程序,所述流量检测程序被处理器执行时实现如上所述的流量检测方法的步骤。
本申请实施例提出的流量检测方法、装置、终端设备以及存储介质,通过通过获取第一实时流量,并提取所述第一实时流量中的第一流量信息;将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。通过基于有限状态机算法的流量检测模型对网络中的实时流量进行学习并判断,从而检测出潜在的异常流量,可以解决流量检测的复杂度高、资源消耗高的问题。基于本申请方案,从真实世界中工业控制系统存在的流量检测的复杂度高、资源消耗高的问题出发,构建了一个工业控制系统的样本流量周期序列,并在该序列上验证了本申请提出的流量检测方法的有效性,最后经过本申请方法的流量检测的复杂度及资源消耗得到了明显降低。
附图说明
图1为本申请流量检测装置所属终端设备的功能模块示意图;
图2为本申请流量检测方法涉及的预测状态的流程示意图;
图3为本申请流量检测方法实时流量判断的流程示意图;
图4为本申请流量检测方法响应流量判断的流程示意图;
图5为本申请流量检测方法异常流量判断的流程示意图;
图6为本申请流量检测方法涉及的学习状态的流程示意图;
图7为本申请流量检测方法涉及的再学习状态的流程示意图;
图8为本申请流量检测方法的流量检测模型的状态转换意图;
图9为步骤S750的步骤细化流程示意图;
图10为本申请流量检测方法序列匹配的流程示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:获取第一实时流量,并提取所述第一实时流量中的第一流量信息;将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。通过基于有限状态机算法的流量检测模型对网络中的实时流量进行学习并判断,从而检测出潜在的异常流量,可以解决流量检测的复杂度高、资源消耗高的问题。基于本申请方案,从真实世界中工业控制系统存在的流量检测的复杂度高、资源消耗高的问题出发,构建了一个工业控制系统的样本流量周期序列,并在该序列上验证了本申请提出的流量检测方法的有效性,最后经过本申请方法的流量检测的复杂度及资源消耗得到了明显降低。
本申请实施例涉及的技术术语:
有限状态机,又称有限状态自动机,简称状态机。表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。
状态存储关于过去的信息:反映从系统开始到现在时刻的输入变化。转移指示状态变更,并且用必须满足确使转移发生的条件来描述它。动作是在给定时刻要进行的活动的描述。
在实际开发过程中,需要处理各种状态的切换,一般情况下用if…else if…或者switch case 就可以解决。但是在遇到一些比较复杂的逻辑,需要很多的状态,并且有一些状态还要处理一些复杂的逻辑,再用上面的方法严重影像后期的维护。有限状态机就是为了解决这种多状态切换的一种数学模型。
有限状态自动机在很多不同领域中是重要的,包括电子工程、语言学、计算机科学、哲学、生物学、数学和逻辑学。有限状态机是在自动机理论和计算理论中研究的一类自动机。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。
本申请实施例考虑到,在一个工业控制系统的局域网环境中,存在上千个设备逻辑控制器(PLC),每个PLC实时对工业数据进行监控和对设备进行控制,实时传输的数据量大,对实时流量的检测需要更大的计算和存储能力;并且在工业环境中,每个设备逻辑控制器(PLC)与他们对应的监控设备(HMI)之间的流量各不相同,所有设备流量统一建立机器学习模型复杂度太高,需要大量工作来提升模型识别的准确性。
因此,本申请实施例方案,从真实世界中工业控制系统存在的流量检测的复杂度高、资源消耗高的问题出发,结合有限状态机对正常流量的学习能力和模型建立方面的能力,设计一种基于有限状态机的流量检测模型,解决了流量检测的复杂度高、资源消耗高的问题。
具体地,参照图1,图1为本申请流量检测装置所属终端设备的功能模块示意图。该流量检测装置可以为独立于终端设备的、能够进行流量检测、网络模型学习的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
在本实施例中,该流量检测装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。存储器130中存储有操作系统以及流量检测程序,流量检测装置可以将获取的第一实时流量,并提取的所述第一实时流量中的第一流量信息,将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到的对应的第二流量信息,由所述流量检测模型学习得到的所述样本流量周期序列,基于所述第一流量信息、所述第二流量信息,检测的所述第一实时流量是否异常等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的流量检测程序被处理器执行时实现以下步骤:
获取第一实时流量,并提取所述第一实时流量中的第一流量信息;
将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;
基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。
进一步地,存储器130中的流量检测程序被处理器执行时还实现以下步骤:
判断所述第一实时流量的流量类型;
若所述第一实时流量为请求流量,则保存所述第一传输标识至预设的标识库,并判断所述第一功能码及所述第二功能码是否匹配;
若是,则判定所述第一实时流量为正常情况;
若否,则判定所述第一实时流量为异常情况。
进一步地,存储器130中的流量检测程序被处理器执行时还实现以下步骤:
若所述第一实时流量为响应流量,则判断所述第一传输标识与所述标识库中上一保存的目标传输标识是否匹配;
若否,则判定所述第一实时流量为所述异常情况;
若是,则判断所述第一功能码及所述第二功能码是否匹配;
若否,则判定所述第一实时流量为所述异常情况;
若是,则判定所述第一实时流量为所述正常情况。
进一步地,存储器130中的流量检测程序被处理器执行时还实现以下步骤:
则判断所述第一传输标识与所述标识库中除所述目标传输标识以外的传输标识是否匹配;
若是,则判定所述第一实时流量的异常情况为重传;
若否,则判断功能码库与所述样本流量周期序列是否匹配,其中,所述功能码库中存储所述第一实时流量之后的若干流量所对应的功能码;
若是,则判定所述第一实时流量的异常情况为丢失;
若否,则判定所述第一实时流量的异常情况为错误。
进一步地,存储器130中的流量检测程序被处理器执行时还实现以下步骤:
基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一流量的样本功能码以及每一流量在所述样本流量包中的逻辑关系;
基于所述样本功能码和所述逻辑关系,生成所述样本流量周期序列。
进一步地,存储器130中的流量检测程序被处理器执行时还实现以下步骤:
输出检测结果,并存储每一检测结果;
根据所述检测结果生成对应的特定序列,所述特定序列的长度为预设长度;
针对所述特定序列计算得到流量状态占比,并判断所述流量状态占比是否符合预设的阈值;
若否,则获取第二实时流量,并提取所述第二实时流量中的第三流量信息;
若是,则执行基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一个流量的样本功能码以及每个流量在所述样本流量包中的逻辑关系的步骤;
以此循环,更新所述样本流量周期序列。
进一步地,存储器130中的流量检测程序被处理器执行时还实现以下步骤:
将所述第一流量信息输入所述流量检测模型进行以下处理:
通过预设的序列匹配算法将第一流量信息与样本流量周期序列进行匹配,得到对应的索引信息;
判断所述索引信息是否属于所述样本流量周期序列的唯一索引信息;
若是,则根据所述索引信息及所述样本流量周期序列,得到所述第二流量信息。
本实施例通过上述方案,具体通过获取第一实时流量,并提取所述第一实时流量中的第一流量信息;将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。通过基于有限状态机算法的流量检测模型对网络中的实时流量进行学习并判断,从而检测出潜在的异常流量,可以解决流量检测的复杂度高、资源消耗高的问题。基于本申请方案,从真实世界中工业控制系统存在的流量检测的复杂度高、资源消耗高的问题出发,构建了一个工业控制系统的样本流量周期序列,并在该序列上验证了本申请提出的流量检测方法的有效性,最后经过本申请方法的流量检测的复杂度及资源消耗得到了明显降低。
基于上述终端设备架构但不限于上述架构,提出本申请方法实施例。
参照图2,图2为本申请流量检测方法涉及的预测状态的流程示意图。所述流量检测方法包括:
步骤S210,获取第一实时流量,并提取所述第一实时流量中的第一流量信息;
具体地,以移动互联网、物联网、大数据、人工智能等为代表的新一代信息技术的蓬勃发展,加速了IT和OT技术全方位的深度融合发展。与此同时,工业互联网作为IT和OT技术融合的产业,它的安全环境复杂多样,但是现有的工业流量协议往往未曾考虑IT与OT结合的复杂情况,多数协议的主要功能为流量传输的标准化,导致了工业安全问题尤其是工业控制系统的安全问题日益凸显。
所以,针对工业控制系统中的攻击行为即异常流量的检测行为成为了其中的一个重点关注问题。目前对于工业网络安全性,尤其是工业控制系统的研究都集中于两方面,一是工业控制系统入侵检测,二是工业控制系统固有脆弱性分析。而工控网络中的系统入侵行为体现在数据流量中的表现形式通常为全新的控制命令或常规控制命令的异常操作顺序,以上两种表现形式均表明了控制流量中存在异常,可能为潜在的攻击行为。
需要说明的是,本申请基于有限状态机实现了全自动化的持续学习和检测,通过转换模型的阶段状态从而进行流量检测。在本实施例中的流量检测模型为预测阶段。
在工业控制系统中,响应流量与请求流量是一对流量,两者相对对应,因此响应流量与请求流量为同一个传输标识,但两者的功能码具体的作用不相同。其中,功能码(function code)为控制命令中HMI对PLC的具体控制命令,包括但不限于读取命令、写入命令。
当模型进入预测(Predict)阶段,模型获取第一实时流量,对系统中第一实时流量进行读取和存储。在预测阶段的数据预处理过程中,每一个输入的第一实时流量的packet包被处理为一个Series结构(即第一流量信息)输入预测阶段的模型进行识别,其中,此Series结构包含功能码(function code)、传输ID(transition ID)等ModbusTCP协议包含的流量信息。
步骤S220,将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;
字符串匹配算法用于匹配第一实时流量与样本流量周期序列,得到索引信息,本实施例以KMP算法为优选,在其他实施例中也可以是用于字符串匹配的其他算法。
具体地,工业控制系统的流量总体上讲,大致具有周期性的规律。例如,按长度细分,带有S7协议应用层数据的数据包某些字段呈周期性变化规律;在时间维度上,带有S7协议应用层字段的数据包具有极高的时间周期性。因此,流量检测模型使用时间复杂度为O(m+n)的KMP算法针对实时流量与样本流量周期序列进行序列字符串的匹配,从而定位在学习到的序列中的具体位置,得到索引信息。
需要说明的是,流量检测模型会判断上述索引信息在样本流量周期序列中是否重复出现无法定位唯一索引的情况,若是,则流量检测模型自动等待第一实时流量的下一位流量的输入,从而进行第二次的KMP算法匹配,直到匹配索引长度为1,模型输出唯一索引信息,停止序列匹配。完成索引定位后,得到索引信息,流量检测模型根据索引信息,在样本流量周期序列中查找对应的第二流量信息。
步骤S230,基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。
具体地,第一流量信息至少包括第一功能码及第一传输标识,第二流量信息至少包括第二功能码,流量检测模型通过索引位置的第二功能码、第一实时流量的第一功能码及第一传输标识,检测第一实时流量是否异常,其中,工业控制系统中的流量类型包括但不限于请求流量及响应流量,功能码(function code)为控制命令中HMI对PLC的具体控制命令,包括但不限于读取命令、写入命令。标识库中存储有历史流量的传输标识,用于判断第一实时流量的异常情况。具体检测第一实时流量的步骤可以包括:
若第一实时流量为请求流量,则保存第一传输标识至标识库,并判断第一功能码及第二功能码是否匹配;
若请求流量的第一功能码和样本流量周期序列的第二功能码匹配,则判定第一实时流量为正常情况,并输出正常情况的检测结果;
若请求流量的第一功能码和样本流量周期序列的第二功能码不匹配,则判定第一实时流量为异常情况,并输出异常情况的检测结果。
若第一实时流量为响应流量,则判断响应流量的第一传输标识与标识库中上一保存的目标传输标识是否匹配;
若响应流量的第一传输标识与标识库中上一保存的目标传输标识不匹配,则判定第一实时流量为异常情况,并输出异常情况的检测结果;
若响应流量的第一传输标识与标识库中上一保存的目标传输标识匹配,则进一步判断第一功能码与第二功能码是否匹配;
若响应流量的第一功能码和样本流量周期序列的第二功能码不匹配,则判定第一实时流量为异常情况,并输出异常情况的检测结果;
若响应流量的第一功能码和样本流量周期序列的第二功能码匹配,则判定第一实时流量为正常情况,并输出正常情况的检测结果。
本实施例通过上述方案,具体通过获取第一实时流量,并提取所述第一实时流量中的第一流量信息;将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。针对每个设备逻辑控制器(PLC)与他们的监控设备(HMI)之间进行单独建立模型,通过基于有限状态机算法的流量检测模型对网络中的实时流量进行学习并判断,从而检测出潜在的异常流量,可以解决流量检测的复杂度高、资源消耗高的问题,并适用于各种工业控制系统中的具有周期性流量模式的流量学习,以及异常流量行为检测。
参照图3,图3为本申请流量检测方法实时流量判断的流程示意图。基于上述图2所示的实施例,所述第一流量信息至少包括第一功能码及第一传输标识,所述第二流量信息至少包括第二功能码,步骤S230,基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常的步骤包括:
步骤S310,判断所述第一实时流量的流量类型;
具体地,判断第一实时流量的流量类型,其中,工业控制系统中的流量类型包括但不限于请求流量及响应流量,本实施例以请求流量为优选进行举例。
步骤S320,若所述第一实时流量为请求流量,则保存所述第一传输标识至预设的标识库,并判断所述第一功能码及所述第二功能码是否匹配;
具体地,如果输入的packet包(第一实时流量)是请求(Query)流量,则判断请求流量的第一功能码(function code)和已学习到的序列(样本流量周期序列)相应位置的第二功能码(function code)是否匹配,并保存此请求流量的传输标识(transition ID,传输ID)至标识库中,以此作为目标传输标识以供模型对下一位流量进行匹配、检测。标识库中存储有历史流量的传输标识,用于判断第一实时流量的异常情况。功能码(function code)为控制命令中HMI对PLC的具体控制命令,包括但不限于读取命令、写入命令。标识库中存储有历史流量的传输标识,用于判断第一实时流量的异常情况。
步骤S330,若是,则判定所述第一实时流量为正常情况;
需要说明的是,模型还设置有对应的状态计数器,用于检测结果输出后,对应的状态计数器进行计数。
具体地,请求流量的第一功能码和已学习到的序列(样本流量周期序列)相对对应位置的第二功能码匹配,则对应的正常(Normal)状态计数器加1,并进行下一位判断。
步骤S340,若否,则判定所述第一实时流量为异常情况。
具体地,在实际环境中,流量会因为人为原因或者协议、流量的传输机制导致一些流量的丢失。因此,如果请求流量的第一功能码和已学习到的序列(样本流量周期序列)相对对应位置的第二功能码不匹配,则该请求流量为异常情况,输出异常情况的检测结果,且对应的异常状态计数器进行计数。
本实施例通过上述方案,具体通过判断所述第一实时流量的流量类型;若所述第一实时流量为请求流量,则保存所述第一传输标识至预设的标识库,并判断所述第一功能码及所述第二功能码是否匹配;若是,则判定所述第一实时流量为正常情况;若否,则判定所述第一实时流量为异常情况。通过学习到的样本流量周期序列与第一实时流量进行比较和判断,并针对流量类型的不同进行判断异常,对应的状态计数器进行计数,可以提高流量检测的准确性。
参照图4,图4为本申请流量检测方法响应流量判断的流程示意图。基于上述图3所示的实施例,步骤S310,判断所述第一实时流量的流量类型的步骤之后,还包括:
步骤S410,若所述第一实时流量为响应流量,则判断所述第一传输标识与所述标识库中上一保存的目标传输标识是否匹配;
需要说明的是,在工业控制系统中,响应流量与请求流量是一对流量,两者相对对应,因此响应流量与请求流量为同一个传输标识,但两者的功能码具体的作用不相同。其中,功能码(function code)为控制命令中HMI对PLC的具体控制命令,包括但不限于读取命令、写入命令。标识库中存储有历史流量的传输标识,用于判断第一实时流量的异常情况。
具体地,如果输入的packet包(第一实时流量)是响应(Response)流量,可以根据标识库中上一保存的目标传输标识与该响应流量的第一传输标识进行判断,通过判断标识库中上一保存的目标传输标识与该响应流量的第一传输标识是否匹配,从而检测出该响应流量是否异常。
步骤S420,若否,则判定所述第一实时流量为所述异常情况;
具体地,在实际环境中,流量会因为人为原因或者协议、流量的传输机制导致一些流量的丢失。因此,如果响应流量的第一功能码与标识库中上一保存的目标传输标识不匹配,则证明丢失了该响应流量对应的请求流量,该响应流量属于异常情况,并输出异常情况的检测结果,且对应的异常状态计数器进行计数。
步骤S430,若是,则判断所述第一功能码及所述第二功能码是否匹配;
具体地,如果标识库中上一保存的目标传输标识与该响应流量的第一传输标识匹配,则进一步判断响应流量的第一功能码与样本流量周期序列中的第二功能码是否匹配。
步骤S440,若否,则判定所述第一实时流量为所述异常情况;
具体地,在实际环境中,流量会因为人为原因或者协议、流量的传输机制导致一些流量的丢失。因此,如果响应流量的功能码和已学习到的序列(样本流量周期序列)相对对应位置的功能码(function code)不匹配,则该请求流量为异常情况,输出异常情况的检测结果,且对应的异常状态计数器进行计数。
步骤S450,若是,则判定所述第一实时流量为所述正常情况。
具体地,标识库中上一保存的目标传输标识与该响应流量的第一传输标识匹配,并且响应流量的第一功能码与样本流量周期序列中的第二功能码匹配,证明该响应流量与上一目标第一实时流量为一对流量,两者的传输标识相同并且与样本流量周期序列中对应位置的功能码也相同,则对应的正常(Normal)状态计数器加1,并进行下一位判断。
本实施例通过上述方案,具体通过若所述第一实时流量为响应流量,则判断所述第一传输标识与所述标识库中上一保存的目标传输标识是否匹配;若否,则判定所述第一实时流量为所述异常情况;若是,则判断所述第一功能码及所述第二功能码是否匹配;若否,则判定所述第一实时流量为所述异常情况;若是,则判定所述第一实时流量为所述正常情况。通过学习到的样本流量周期序列与第一实时流量进行比较和判断,并针对流量类型的不同进行判断异常,对应的状态计数器进行计数,可以提高流量检测的准确性。
参照图5,图5为本申请流量检测方法异常流量判断的流程示意图。基于上述图2所示的实施例,步骤S340或步骤S420或步骤S440,判定所述第一实时流量为所述异常情况的步骤包括:
步骤S500,判断所述第一传输标识与所述标识库中除所述目标传输标识以外的传输标识是否匹配;
如果第一实时流量的第一功能码和已学习到的序列(样本流量周期序列)相对对应位置的第二功能码不匹配,则进一步判断第一实时流量与标识库中除目标传输标识以外的传输标识是否匹配。其中,标识库中存储有历史流量的传输标识,用于判断第一实时流量的异常情况。第一实时流量包括但不限于响应流量和请求流量。
步骤S510,若是,则判定所述第一实时流量的异常情况为重传;
具体地,如果第一实时流量的第一传输标识与标识库中该第一实时流量对应位置的前n位长度序列中的任意一个传输标识匹配,则认为此流量为重传流量,输出重传异常的检测结果,且对应的重传(Retransmission)计数器加1。其中,n位长度由实际情况需要设定。
步骤S520,若否,则判断功能码库与所述样本流量周期序列是否匹配,其中,所述功能码库中存储所述第一实时流量之后的若干流量所对应的功能码;
具体地,如果第一实时流量的第一传输标识与标识库中该第一实时流量对应位置的前n位长度序列中的任意一个传输标识不匹配,则等待下m位的流量储存到功能码库中,并将存储的流量作为临时序列(tmp_seq)进行判断,其中,前n位长度由实际情况设定。
步骤S530,若是,则判定所述第一实时流量的异常情况为丢失;
具体地,如果此时的临时序列的功能码匹配已学习到的序列流量中后m位的功能码,则状态为Miss,输出丢失异常的检测结果,且对应的丢失(Miss)计数器加1,其中,后m位长度由实际情况设定。
步骤S540,若否,则判定所述第一实时流量的异常情况为错误。
具体地,如果临时序列的功能码无法准确匹配后m位的功能码,则认为此输入流量为未知流量,输出错误异常的检测结果,且对应的错误(Error)计数器加1,并发出告警。
本实施例通过上述方案,具体通过判断所述第一传输标识与所述标识库中除所述目标传输标识以外的传输标识是否匹配;若是,则判定所述第一实时流量的异常情况为重传;若否,则判断功能码库与所述样本流量周期序列是否匹配,其中,所述功能码库中存储所述第一实时流量之后的若干流量所对应的功能码;若是,则判定所述第一实时流量的异常情况为丢失;若否,则判定所述第一实时流量的异常情况为错误。通过学习到的样本流量周期序列与第一实时流量进行比较和判断,并针对异常情况的不同进行判断,可以提高流量检测的准确性。
参照图6,图6为本申请流量检测方法涉及的学习状态的流程示意图。基于上述图2所示的实施例,步骤S220,将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到的步骤之前,还包括:
步骤S610,基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一流量的样本功能码以及每一流量在所述样本流量包中的逻辑关系;
具体地,工控系统中的设备传输的流量模式在经过人为调整或特定时期或情况下会发生改变,流量模式发生改变后,模型便难以继续准确的预测。因此,需要对第一实时流量进行学习。
流量检测模型进入学习(Learning)阶段,首先,对系统中的实时流量进行读取和存储。然后,对输入的样本流量包进行数据预处理,程序对每一个输入的packet包进行预处理,提取其中的功能码(function code)特征,功能码为控制系统(HMI)对系统中的组件(PLC)的具体控制命令,包括但不限于读取命令、写入命令。然后,判断当输入的流量为成对(一个query,一个response)时,将流量输入模型中进行学习。
步骤S620,基于所述样本功能码和所述逻辑关系,生成所述样本流量周期序列。
具体地,模型在学习过程中需详细判断并学习每次输入的实时流量对应的功能码对在序列中的逻辑关系。例如,功能码对可能为以下的几种情况:原本序列的持续延伸、序列在一个周期内部进行部分流量模型的重复、序列开始进行完整周期性重复、功能码对重复序列的开头需要等待下一对输入进一步判断是否开始进一步重复。
模型对以上情况进行判断后,可以选择更新已学习到的序列,或者将内部重复周期进行记录,后续需要更新样本流量周期序列时再将记录到的内部重复一起更新为新的样本流量周期序列,从而进行流量模式的学习。
需要说明的是,模型在第一次学习阶段会根据人工设定的学习时间或学习过的流量长度设定自动停止条件(auto_stop),转换为预测阶段开始预测。其中人工设定的停止条件根据先验经验进行设定和调整。
本实施例通过上述方案,具体通过基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一流量的样本功能码以及每一流量在所述样本流量包中的逻辑关系;基于所述样本功能码和所述逻辑关系,生成所述样本流量周期序列。针对每个设备逻辑控制器(PLC)与他们的监控设备(HMI)之间进行单独建立模型,降低资源的计算消耗。
参照图7,图7为本申请流量检测方法涉及的再学习状态的流程示意图。基于上述图6所示的实施例,步骤S230,基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常之后,还包括:
步骤S700,输出检测结果,并存储每一检测结果;
具体地,流量检测模型在检测第一实时流量的时候,存储每一检测结果至状态计数器。
步骤S710,根据所述检测结果生成对应的特定序列,所述特定序列的长度为预设长度;
具体地,流量检测模型判断第一实时流量是否到达预先设定的长度(valid_length);若是,则根据状态计数器生成对应的特定序列(valid_seq),针对所述特定序列计算得到流量状态占比,并判断所述流量状态占比是否符合预设的阈值;若否,则继续获取第一实时流量的下一位输入。
步骤S720,针对所述特定序列计算得到流量状态占比,并判断所述流量状态占比是否符合预设的阈值;
具体地,作为一种实现方案,针对所述特定序列及正常状态计数器,计算得到第一正常占比(Normal_Ration),通过判断第一正常占比是否低于人工设定好的第一参数阈值p,从而判断流量检测模型是否需要重新学习新的样本流量周期序列。如果第一正常占比高于人工设定好的第一参数阈值p,则则流量检测模型继续保持预测阶段状态,对下一位实时流量进行检测;如果第一正常占比低于第一参数阈值p,则认为流量序列发生变化,需要重新进行流量序列模式的学习,模型转换至再学习阶段状态(Relearning)。
作为另一种实现方案,针对所述特定序列及异常状态计数器,计算得到第一异常占比,通过判断第一异常占比是否低于人工设定好的第一参数阈值p,从而判断流量检测模型是否需要重新学习新的样本流量周期序列。如果第一异常占比低于人工设定好的第一参数阈值p,则流量检测模型继续保持预测阶段状态,对下一位实时流量进行检测;如果第一异常占比低高于第一参数阈值p,则认为流量序列发生变化,需要重新进行流量序列模式的学习,模型转换至再学习阶段状态(Relearning)。
本申请实施例以计算正常状态的占比为实现方案,在其他实施例中,也可以计算异常状态的占比为实现方案。
步骤S730,若否,则获取第二实时流量,并提取所述第二实时流量中的第三流量信息;
具体地,如果第一正常占比高于人工设定好的第一参数阈值p,则流量检测模型继续保持预测阶段状态,通过获取第二实时流量,并提取所述第二实时流量中的第三流量信息,从而对第二实时流量进行检测。
步骤S740,若是,则执行基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一个流量的样本功能码以及每个流量在所述样本流量包中的逻辑关系的步骤;
具体地,如果第一正常占比低于第一参数阈值p,则认为流量序列发生变化,需要重新进行流量序列模式的学习,流量检测模型转换至再学习阶段状态(Relearning),并执行以下步骤:
流量检测模型进入学习(Learning)阶段,首先,对系统中的第一实时流量进行读取和存储。然后,对输入的样本流量包进行数据预处理,程序对每一个输入的packet包进行预处理,提取其中的功能码(function code)特征,功能码(function code)为控制系统(HMI)对系统中的组件(PLC)的具体控制命令,包括但不限于读取命令、写入命令。然后,判断当输入的流量为成对(一个query,一个response)时,将流量输入模型中以供模型进行学习。
在学习过程中需详细判断每次输入的第一实时流量对应的功能码对在序列中的逻辑关系。例如,功能码对可能为以下的几种情况:原本序列的持续延伸、序列在一个周期内部进行部分流量模型的重复、序列开始进行完整周期性重复、功能码对重复序列的开头需要等待下一对输入进一步判断是否开始进一步重复。
流量检测模型对以上情况进行判断后,可以选择更新已学习到的序列,或者将内部重复周期进行记录,后续需要更新样本流量周期序列时再将记录到的内部重复一起更新为新的样本流量周期序列,从而进行流量模式的学习。
需要说明的是,模型在除第一次学习阶段之外的每一次学习阶段都设置自动停止条件(auto_stop)为对特定序列(valid_seq)进行验证。
步骤S750,以此循环,更新所述样本流量周期序列。
具体地,模型在学习到达设定好的长度(valid_length)时根据新学习的序列和特定序列(valid_seq)进行对比计算得到第二正常占比,如果第二正常占比高于人工设定好的第二参数阈值q,则认为模型已经重新学习完成,模型转换为Predict(预测)阶段;如果第二正常占比低于人工设定好的第二参数阈值q,则模型继续进行下一周期的学习,直到满足第二参数阈值q的条件进入预测阶段。
需要说明的是,作为一种实现方案,第二参数阈值q的数值与第一参数阈值p的数值相同;作为另一种实现方案,第二参数阈值q的数值与第一参数阈值p的数值不同。
参照图8,图8为本申请流量检测方法的流量检测模型的状态转换意图。在真实的工业控制场景中,为了满足自动化、机械化的成产与控制的需求,生产的控制指令往往具有高度的周期性和重复性,也就是说工控系统中的流量模式也因此具有高度的周期性和重复性。而工控系统中的设备传输的流量模式在经过人为调整或特定时期或情况下会发生改变;流量模式发生改变后,模型便难以继续准确的预测。
本实施例采用有限状态机DFA算法对一定周期内的正常流量样本序列进行学习,建立序列关系模型;并通过学习到的模型对网络中的第一实时流量进行判断,识别出潜在的异常流量。
因此,本实施例实现了完全自动化的全流程功能,如图8示出,模型状态分为学习(Learning)、预测(Predict)、再学习(Relearning)。模型根据实时输入的流量判断特定序列长度的正常流量占比,并根据正常流量占比进一步判断数据流量周期是否发生改变,如果判断流量周期发生改变,则模型的状态由预测阶自动转换为再学习(Relearning)阶段,对新的流量周期进行重新学习,学习完成后再转为预测(Predict)阶段,继续对第一实时流量进行预测。
本实施例通过上述方案,具体通过输出检测结果,并存储每一检测结果;根据所述检测结果生成对应的特定序列,所述特定序列的长度为预设长度;针对所述特定序列计算得到流量状态占比,并判断所述流量状态占比是否符合预设的阈值;若否,则获取第二实时流量,并提取所述第二实时流量中的第三流量信息;若是,则执行基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一个流量的样本功能码以及每个流量在所述样本流量包中的逻辑关系的步骤;以此循环,更新所述样本流量周期序列。
通过使用有限状态机实现了全自动化的持续学习,当模型发现流量序列模式发生改变,正常流量低于阈值时,会自动切换到学习阶段,对新流量进行重新学习,并对学习效果进行判断,达到预设的自动停止条件后转换为预测阶段,重新对第一实时流量进行识别,解决了流量检测的复杂度高、资源消耗高的问题,提高流量检测的准确率。
参照图9,图9为步骤S750的步骤细化流程示意图。基于上述图7所示的实施例,步骤S750,以此循环,更新所述样本流量周期序列的步骤包括:
步骤S910,将所述特定序列及所述样本流量周期序列进行对比,得到第二正常占比;
具体地,模型进入学习(Learning)阶段进行学习,并在学习到达设定好的valid_length长度时根据新学习的序列和特定序列(valid_seq)进行对比计算得到第二正常占比(Normal_Ration)。
步骤S920,判断所述第二正常占比是否高于预设的第二阈值;
具体地,判断第二正常占比是否高于预设的第二阈值,如果第二正常占比高于第二参数阈值q,则判定模型已经学习完毕,可以进行下一阶段的流量检测;如果第二正常占比低于第二参数阈值q,则判定模型仍需要继续学习。
步骤S930,若是,则判定符合所述自动停止条件。
具体地,如果第二正常占比(Normal_Ration)高于人工设定好的第二参数阈值q,则认为模型已经重新学习完成,可以进行新序列的预测,模型转换为Predict(预测)阶段;如果第二正常占比低于人工设定好的第二参数阈值q,则模型继续进行下一周期的学习,直到满足第二参数阈值q的条件进入预测阶段。
需要说明的是,作为一种实现方案,第二参数阈值q的数值与第一参数阈值p的数值相同;作为另一种实现方案,第二参数阈值q的数值与第一参数阈值p的数值不同。
本实施例通过上述方案,具体通过将所述特定序列及所述样本流量周期序列进行对比,得到第二正常占比;判断所述第二正常占比是否高于预设的第二阈值;若是,则判定符合所述自动停止条件。通过使用有限状态机实现了全自动化的持续学习,当模型发现流量序列模式发生改变,正常流量低于阈值时,会自动切换到学习阶段,对新流量进行重新学习,并对学习效果进行判断,达到预设的自动停止条件后转换为预测阶段,重新对第一实时流量进行识别,解决了流量检测的复杂度高、资源消耗高的问题,提高流量检测的准确率。
参照图10,图10为本申请流量检测方法序列匹配的流程示意图。基于上述图2所示的实施例,步骤S220,将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到的步骤包括:
将所述第一流量信息输入所述流量检测模型进行以下处理:
S101,通过预设的序列匹配算法将第一流量信息与样本流量周期序列进行匹配,得到对应的索引信息;
具体地,流量检测模型使用时间复杂度为O(m+n)的KMP算法针对实时流量与样本流量周期序列进行序列字符串的匹配,从而定位在学习到的序列中的具体位置,得到索引信息。
S102,判断所述索引信息是否属于所述样本流量周期序列的唯一索引信息;
具体地,流量检测模型会判断上述索引信息在样本流量周期序列中是否重复出现无法定位唯一索引的情况,若是,则流量检测模型自动等待第一实时流量的下一位流量的输入,从而进行第二次的KMP算法匹配,直到匹配索引长度为1,模型输出唯一索引信息,停止序列匹配。
S103,若是,则根据所述索引信息及所述样本流量周期序列,得到所述第二流量信息。
具体地,流量检测模型根据索引信息,在样本流量周期序列中查找对应的第二流量信息。
本实施例通过上述方案,具体通过将所述第一流量信息输入所述流量检测模型进行以下处理:通过预设的序列匹配算法将第一流量信息与样本流量周期序列进行匹配,得到对应的索引信息;判断所述索引信息是否属于所述样本流量周期序列的唯一索引信息;若是,则根据所述索引信息及所述样本流量周期序列,得到所述第二流量信息。通过预设的序列匹配算法将第一实时流量与样本流量周期序列进行匹配得到索引信息,从而对实时流量进行具体判断,可以解决流量检测的复杂度高、资源消耗高的问题。
此外,本申请实施例还提出一种流量检测装置,所述流量检测装置包括:
提取模块,用于获取第一实时流量,并提取所述第一实时流量中的第一流量信息;
匹配模块,用于将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;
检测模块,用于基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。
此外,本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的流量检测程序,所述流量检测程序被所述处理器执行时实现如上所述的流量检测方法的步骤。
由于本流量检测程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有流量检测程序,所述流量检测程序被处理器执行时实现如上所述的流量检测方法的步骤。
由于本流量检测程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比现有技术,本申请实施例提出的流量检测方法、装置、终端设备以及存储介质,通过获取第一实时流量,并提取所述第一实时流量中的第一流量信息;将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。通过基于有限状态机算法的流量检测模型对网络中的实时流量进行学习并判断,从而检测出潜在的异常流量,可以解决流量检测的复杂度高、资源消耗高的问题。基于本申请方案,从真实世界中工业控制系统存在的流量检测的复杂度高、资源消耗高的问题出发,构建了一个工业控制系统的样本流量周期序列,并在该序列上验证了本申请提出的流量检测方法的有效性,最后经过本申请方法的流量检测的复杂度及资源消耗得到了明显降低。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种流量检测方法,其特征在于,所述流量检测方法包括以下步骤:
获取第一实时流量,并提取所述第一实时流量中的第一流量信息;
将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;
基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。
2.如权利要求1所述的流量检测方法,其特征在于,所述第一流量信息至少包括第一功能码及第一传输标识,所述第二流量信息至少包括第二功能码,所述基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常的步骤包括:
判断所述第一实时流量的流量类型;
若所述第一实时流量为请求流量,则保存所述第一传输标识至预设的标识库,并判断所述第一功能码及所述第二功能码是否匹配;
若是,则判定所述第一实时流量为正常情况;
若否,则判定所述第一实时流量为异常情况。
3.如权利要求2所述的流量检测方法,其特征在于,所述判断所述第一实时流量的流量类型的步骤之后,还包括:
若所述第一实时流量为响应流量,则判断所述第一传输标识与所述标识库中上一保存的目标传输标识是否匹配;
若否,则判定所述第一实时流量为所述异常情况;
若是,则判断所述第一功能码及所述第二功能码是否匹配;
若否,则判定所述第一实时流量为所述异常情况;
若是,则判定所述第一实时流量为所述正常情况。
4.如权利要求3所述的流量检测方法,其特征在于,所述判定所述第一实时流量为所述异常情况的步骤包括:
判断所述第一传输标识与所述标识库中除所述目标传输标识以外的传输标识是否匹配;
若是,则判定所述第一实时流量的异常情况为重传;
若否,则判断功能码库与所述样本流量周期序列是否匹配,其中,所述功能码库中存储所述第一实时流量之后的若干流量所对应的功能码;
若是,则判定所述第一实时流量的异常情况为丢失;
若否,则判定所述第一实时流量的异常情况为错误。
5.如权利要求1所述的流量检测方法,其特征在于,所述将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到的步骤之前,还包括:
基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一流量的样本功能码以及每一流量在所述样本流量包中的逻辑关系;
基于所述样本功能码和所述逻辑关系,生成所述样本流量周期序列。
6.如权利要求5所述的流量检测方法,其特征在于,所述检测所述第一实时流量是否异常步骤之后,还包括:
输出检测结果,并存储每一检测结果;
根据所述检测结果生成对应的特定序列,所述特定序列的长度为预设长度;
针对所述特定序列计算得到流量状态占比,并判断所述流量状态占比是否符合预设的阈值;
若否,则获取第二实时流量,并提取所述第二实时流量中的第三流量信息;
若是,则执行基于预设的流量检测模型,获取样本流量包,并提取所述样本流量包中每一个流量的样本功能码以及每个流量在所述样本流量包中的逻辑关系的步骤;
以此循环,更新所述样本流量周期序列。
7.如权利要求1所述的流量检测方法,其特征在于,所述将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息的步骤包括:
将所述第一流量信息输入所述流量检测模型进行以下处理:
通过预设的序列匹配算法将第一流量信息与样本流量周期序列进行匹配,得到对应的索引信息;
判断所述索引信息是否属于所述样本流量周期序列的唯一索引信息;
若是,则根据所述索引信息及所述样本流量周期序列,得到所述第二流量信息。
8.一种流量检测装置,其特征在于,所述流量检测装置包括:
提取模块,用于获取第一实时流量,并提取所述第一实时流量中的第一流量信息;
匹配模块,用于将所述第一流量信息输入预设的流量检测模型中与样本流量周期序列进行匹配,得到对应的第二流量信息,所述样本流量周期序列由所述流量检测模型学习得到;
检测模块,用于基于所述第一流量信息、所述第二流量信息,检测所述第一实时流量是否异常。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的流量检测程序,所述流量检测程序被所述处理器执行时实现如权利要求1-7中任一项所述的流量检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有流量检测程序,所述流量检测程序被处理器执行时实现如权利要求1-7中任一项所述的流量检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210776494.7A CN114844802A (zh) | 2022-07-04 | 2022-07-04 | 流量检测方法、装置、终端设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210776494.7A CN114844802A (zh) | 2022-07-04 | 2022-07-04 | 流量检测方法、装置、终端设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114844802A true CN114844802A (zh) | 2022-08-02 |
Family
ID=82574310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210776494.7A Pending CN114844802A (zh) | 2022-07-04 | 2022-07-04 | 流量检测方法、装置、终端设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114844802A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105703963A (zh) * | 2014-11-26 | 2016-06-22 | 中国科学院沈阳自动化研究所 | 基于pso-ocsvm的工业控制系统通信行为异常检测方法 |
CN106209843A (zh) * | 2016-07-12 | 2016-12-07 | 工业和信息化部电子工业标准化研究院 | 一种面向Modbus协议的数据流异常分析方法 |
CN112418361A (zh) * | 2021-01-22 | 2021-02-26 | 杭州木链物联网科技有限公司 | 一种基于深度学习的工控系统异常检测方法、装置 |
CN112436968A (zh) * | 2020-11-23 | 2021-03-02 | 恒安嘉新(北京)科技股份公司 | 一种网络流量的监测方法、装置、设备及存储介质 |
CN113132392A (zh) * | 2021-04-22 | 2021-07-16 | 苏州联电能源发展有限公司 | 工控网络流量异常检测方法、装置及系统 |
CN113259367A (zh) * | 2021-05-28 | 2021-08-13 | 苏州联电能源发展有限公司 | 工控网络流量多级异常检测方法及装置 |
-
2022
- 2022-07-04 CN CN202210776494.7A patent/CN114844802A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105703963A (zh) * | 2014-11-26 | 2016-06-22 | 中国科学院沈阳自动化研究所 | 基于pso-ocsvm的工业控制系统通信行为异常检测方法 |
CN106209843A (zh) * | 2016-07-12 | 2016-12-07 | 工业和信息化部电子工业标准化研究院 | 一种面向Modbus协议的数据流异常分析方法 |
CN112436968A (zh) * | 2020-11-23 | 2021-03-02 | 恒安嘉新(北京)科技股份公司 | 一种网络流量的监测方法、装置、设备及存储介质 |
CN112418361A (zh) * | 2021-01-22 | 2021-02-26 | 杭州木链物联网科技有限公司 | 一种基于深度学习的工控系统异常检测方法、装置 |
CN113132392A (zh) * | 2021-04-22 | 2021-07-16 | 苏州联电能源发展有限公司 | 工控网络流量异常检测方法、装置及系统 |
CN113259367A (zh) * | 2021-05-28 | 2021-08-13 | 苏州联电能源发展有限公司 | 工控网络流量多级异常检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
万明等: "基于功能码深度检测的Modbus /TCP 通信访问控制方法", 《信息与控制》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3462268B1 (en) | Classification modeling for monitoring, diagnostics optimization and control | |
Lee et al. | Service innovation and smart analytics for industry 4.0 and big data environment | |
CN107835964B (zh) | 控制情境化以及关于控制的推理 | |
US10338551B2 (en) | P and ID and control system synchronization | |
US7647131B1 (en) | Dynamic determination of sampling rates | |
US20210390160A1 (en) | Base analytics engine modeling for monitoring, diagnostics optimization and control | |
Vodenčarević et al. | Identifying behavior models for process plants | |
US11644823B2 (en) | Automatic modeling for monitoring, diagnostics, optimization and control | |
Maier et al. | On the learning of timing behavior for anomaly detection in cyber-physical production systems. | |
KR102004456B1 (ko) | Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법 | |
US20190102352A1 (en) | Multi-engine modeling for monitoring, diagnostics, optimization and control | |
Patalas-Maliszewska et al. | Design optimization of the Petri net-based production process supported by additive manufacturing technologies | |
CN107688325B (zh) | 一种面向实时传感环境的工业知识自动化处理方法 | |
KR101566358B1 (ko) | 자동화 공정 이상상태 알림 시스템 및 방법 | |
CN110266735A (zh) | 基于时序的工业通讯协议白名单访问控制 | |
CN114844802A (zh) | 流量检测方法、装置、终端设备以及存储介质 | |
CN112529218A (zh) | 一种基于关联分析的建筑物安全检测方法及系统 | |
Altendeitering et al. | Scalable detection of concept drift: a learning technique based on support vector machines | |
KR101566355B1 (ko) | 자동화 공정의 정상 운영 판단을 위한 마스터 패턴 생성방법 및 장치 | |
CN114722025A (zh) | 基于预测模型的数据预测方法、装置、设备及存储介质 | |
Ma et al. | Event-based switching iterative learning model predictive control for batch processes with randomly varying trial lengths | |
Bai et al. | Incremental abstraction computation for symbolic controller synthesis in a changing environment | |
CN114237180B (zh) | 一种工业控制系统攻击检测方法及装置 | |
CN114676002A (zh) | 基于phm技术的系统运维方法及装置 | |
Schlegel et al. | Direct sequential dynamic optimization with automatic switching structure detection |
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 |
Application publication date: 20220802 |
|
RJ01 | Rejection of invention patent application after publication |