CN111340075A - 一种ics的网络数据检测方法及装置 - Google Patents

一种ics的网络数据检测方法及装置 Download PDF

Info

Publication number
CN111340075A
CN111340075A CN202010093097.0A CN202010093097A CN111340075A CN 111340075 A CN111340075 A CN 111340075A CN 202010093097 A CN202010093097 A CN 202010093097A CN 111340075 A CN111340075 A CN 111340075A
Authority
CN
China
Prior art keywords
network data
data
binary tree
node
tree
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.)
Granted
Application number
CN202010093097.0A
Other languages
English (en)
Other versions
CN111340075B (zh
Inventor
李小勇
刘李梦玮
胡默迪
雷铭鉴
唐嘉潞
黄德玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN202010093097.0A priority Critical patent/CN111340075B/zh
Publication of CN111340075A publication Critical patent/CN111340075A/zh
Application granted granted Critical
Publication of CN111340075B publication Critical patent/CN111340075B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种ICS的网络数据检测方法及装置,其中,方法包括:使用非异常数据对预设的树集成数据识别模型进行再训练,当再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,则该二叉树子模型出现了失衡现象,表示该二叉树子模型对树集成数据识别模型的精确度造成较大影响,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型,提高了新的预设的树集成数据识别模型准确性,因此可以提高识别ICS的网络数据的准确性,提高对ICS进行安全防护的准确性。

Description

一种ICS的网络数据检测方法及装置
技术领域
本发明涉及控制技术领域,特别是涉及一种ICS的网络数据检测方法及装置。
背景技术
随着ICS(Industrial Control System,工业控制系统)的功能需求增加,ICS越来越多地与企业网和互联网相连接,因此,ICS的网络环境成为一个开放式的网络环境,容易受到网络攻击。
为减少ICS受到网络攻击带来的安全隐患,现有技术会对ICS进行安全防护,采用的技术手段是:将ICS的日志信息中的历史网络数据作为训练集,训练得到数据识别模型,然后使用该数据识别模型去识别工业控制系统中当前时刻的网络数据,如果识别出异常数据,则对该异常数据进行标注,异常数据表示ICS可能受到网络攻击。现有技术为了提高识别异常数据的准确性,会使用当前时刻的网络数据去对数据识别模型进行再训练,用于更新数据识别模型,然后使用更新后的数据识别模型去识别当前时刻下一时刻的网络数据。
ICS的网络数据大部分是非异常数据,异常数据出现的情况较少,当ICS在一段时间内连续的受到网络攻击,则ICS的网络数据会在该段时间内被标注为异常数据,现有技术使用该段时间内持续的异常数据对数据识别模型进行再训练,调整数据识别模型中的参数,而当利用异常数据对数据识别模型进行再训练时,数据识别模型中的部分参数会出现较大的变化,示例性的,正常数据训练数据识别模型时,数据识别模型中的参数的变化范围在0.2-0.5之间,而持续的使用异常数据对数据识别模型进行再训练时,数据识别模型中的部分参数远远超出参数的变化范围,导致该部分参数对数据识别模型的精确度造成较大影响,从而导致更再训练后的数据识别模型的准确度降低,进一步导致对ICS进行安全防护的准确性降低。
发明内容
本发明实施例的目的在于提供一种ICS的网络数据检测方法及装置,提高对ICS进行安全防护的准确性。具体技术方案如下:
第一方面,本发明实施例提供的一种工业控制系统ICS的网络数据检测方法,包括:
按时间先后顺序依次接收各个网络数据,直到所接收的网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集,网络数据为通过ICS接收的网络数据;
使用预设的树集成数据识别模型,对数据集中的各个网络数据进行识别处理,得到处理结果,处理结果为:数据集中的各个网络数据是否为异常数据,其中,树集成数据识别模型中包括:第二数量个二叉树子模型,每个二叉树子模型是根据训练样本预先训练的,且一个二叉树子模型中,除叶子节点外的其他节点中存储有该节点的分支节点生成条件,训练样本包括:第一数量个网络数据;
当数据集中的非异常网络数据的数量大于或等于第一阈值时,利用数据集中的非异常数据,对树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型,其中,再训练后的树集成数据识别模型中,各个二叉树子模型的叶子节点的最大深度不小于再训练前该二叉树子模型的叶子节点的最大深度,最大深度表示二叉树子模型的根节点到最远叶子节点的路径上的节点数;
当再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型;
利用新的树集成数据识别模型,在所接收的新的网络数据的数量达到预设的第三数量时,对所接收的新的网络数据进行检测,第三数量大于一。
可选的,按时间先后顺序依次接收各个网络数据,直到所接收的网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集的步骤,包括:
按照网络数据的发送时间先后顺序,利用预先创建的滑动窗口依次接收各个网络数据;
当滑动窗口内的网络数据达到第一数量时,获取滑动窗口内的网络数据;
将滑动窗口内的第一数量个网络数据组成数据集。
可选的,使用预设的树集成数据识别模型,对数据集中的各个网络数据进行识别处理,得到处理结果的步骤,包括:
将数据集输入至预设的树集成数据识别模型中;
针对数据集中的每个网络数据,确定该网络数据按照当前二叉树子模型的每个节点的分支节点生成条件,对应的第一叶子节点,当前二叉树是预设的树集成数据识别模型中每个二叉树子模型;
计算第一叶子节点与当前二叉树子模型的根节点之间的目标深度;
按照预设的深度指标表达式,计算目标深度的深度指标值;
将目标深度的深度指标值大于第三阈值时的网络数据,确定为异常数据;
将目标深度的深度指标值小于或等于第三阈值时的网络数据,确定为非异常数据。
可选的,当数据集中的非异常网络数据的数量大于或等于第一阈值时,利用数据集中的非异常数据,对树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型的步骤,包括:
当数据集中的非异常网络数据的数量大于或等于第一阈值时,在非异常网络数据中选择第一数量个第一网络数据,每个第一网络数据携带有:多个特征,每个第一网络数据的特征的维数相同,每个特征对应一个维度,每个特征都有一个特征值;
在预设的树集成数据识别模型中随机选择二叉树子模型,直至二叉树子模型的个数达到预设的第四数量,将第四数量的二叉树子模型作为目标二叉树子模型;
针对每个第一网络数据,确定该第一网络数据按照每个目标二叉树子模型的每个节点的分支节点生成条件,对应的第二叶子节点;
针对当前目标二叉树子模型的当前节点,将当前节点对应的训练样本中的网络数据以及第一网络数据确定为当前训练样本,当前节点是不满足第一截止条件的第二叶子节点,第一截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点的最大深度不小于第四阈值;
基于当前训练样本,生成当前目标二叉树子模型中的当前节点的左分支节点或者右分支节点,直至当前目标二叉树子模型中的当前节点满足截止条件,得到再训练后的树集成数据识别模型。
可选的,使用当前训练样本,生成当前二叉树的当前节点的左分支节点或者右分支节点,直至当前目标二叉树子模型中的当前节点满足截止条件,得到再训练后的树集成数据识别模型的步骤包括:
针对当前目标二叉树的当前节点,在当前训练样本中随机选择一个网络数据的一个特征,作为目标特征,目标特征是当前训练样本中一个网络数据的一个特征;
在当前训练样本中每个网络数据的特征中,确定与目标特征同一维度的特征,作为待定特征;
在待定特征以及目标特征的特征值中,确定最大特征值与最小特征值;
在最大特征值与最小特征值之间,生成一个随机数;
当当前网络数据的待定特征的特征值小于随机数时,则生成当前节点的左分支节点;
当当前网络数据的待定特征的特征值不小于随机数时,则生成当前节点的右分支节点;
将随机数以及目标特征的维度作为分支节点生成条件,存储至当前节点;
判断当前节点是否满足第一截止条件;
如果当前节点满足第一截止条件,则将包含满足第一截止条件的当前目标二叉树子模型的树集成数据识别模型,确定为再训练后的树集成数据识别模型。
可选的,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型的步骤之后,本发明第一方面实施例提供的一种ICS的网络数据检测方法还包括:
当数据集中的非异常网络数据的数量大于或等于第一阈值时,在非异常网络数据中,选择第一数量个第二网络数据作为当前训练样本;
使用当前训练样本,训练得到二叉树子模型;
使用该二叉树子模型补入新的树集成数据识别模型中。
可选的,使用当前训练样本,训练得到二叉树子模型的步骤,包括:
随机设置根节点,直至根节点个数达到第二数量;
使用当前训练样本,生成当前节点的左分支节点或者右分支节点,直至当前节点满足第二截止条件,当前节点是所有根节点中的一个根节点,第二截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点与根节点之间的距离不小于第四阈值;
将满足第二截止条件的当前节点与根节点连接形成的二叉树,确定为二叉树子模型。
第二方面,本发明实施例提供的一种工业控制系统ICS的网络数据检测装置,包括:
接收模块,用于按时间先后顺序依次接收各个网络数据,直到所接收的网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集,网络数据为通过ICS接收的网络数据。
识别模块,用于使用预设的树集成数据识别模型,对数据集中的各个网络数据进行识别处理,得到处理结果,处理结果为:数据集中的各个网络数据是否为异常数据,其中,树集成数据识别模型中包括:第二数量个二叉树子模型,每个二叉树子模型是根据训练样本预先训练的,且一个二叉树子模型中,除叶子节点外的其他节点中存储有该节点的分支节点生成条件,训练样本包括:第一数量个网络数据。
训练模块,用于当数据集中的非异常网络数据的数量大于或等于第一阈值时,利用数据集中的非异常数据,对树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型,其中,再训练后的树集成数据识别模型中,各个二叉树子模型的叶子节点的最大深度不小于再训练前该二叉树子模型的叶子节点的最大深度,最大深度表示二叉树子模型的根节点到最远叶子节点的路径上的节点数。
删除模块,用于当再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型。
检测模块,用于利用新的树集成数据识别模型,在所接收的新的网络数据的数量达到预设的第三数量时,对所接收的新的网络数据进行检测,第三数量大于一。
可选的,接收模块具体用于:
按照网络数据的发送时间先后顺序,利用预先创建的滑动窗口依次接收各个网络数据。
当滑动窗口内的网络数据达到第一数量时,获取滑动窗口内的网络数据。
将滑动窗口内的第一数量个网络数据组成数据集。
可选的,识别模块具体用于:
将数据集输入至预设的树集成数据识别模型中。
针对数据集中的每个网络数据,确定该网络数据按照当前二叉树子模型的每个节点的分支节点生成条件,对应的第一叶子节点。
计算第一叶子节点与当前二叉树子模型的根节点之间的目标深度。
按照预设的深度指标表达式,计算目标深度的深度指标值。
将目标深度的深度指标值大于第三阈值时的网络数据,确定为异常数据。
将目标深度的深度指标值小于或等于第三阈值时的网络数据,确定为非异常数据。
可选的,训练模块具体用于:
当数据集中的非异常网络数据的数量大于或等于第一阈值时,在非异常网络数据中选择第一数量个第一网络数据,每个第一网络数据携带有:多个特征,每个第一网络数据的特征的维数相同,每个特征对应一个维度,每个特征都有一个特征值。
在预设的树集成数据识别模型中随机选择二叉树子模型,直至二叉树子模型的个数达到预设的第四数量,将第四数量的二叉树子模型作为目标二叉树子模型。
针对每个第一网络数据,确定该第一网络数据按照每个目标二叉树子模型的每个节点的分支节点生成条件,对应的第二叶子节点。
针对当前目标二叉树子模型的当前节点,将当前节点对应的训练样本中的网络数据以及第一网络数据确定为当前训练样本,当前节点是不满足第一截止条件的第二叶子节点,第一截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点的最大深度不小于第四阈值。
基于当前训练样本,生成当前目标二叉树子模型中的当前节点的左分支节点或者右分支节点,直至当前目标二叉树子模型中的当前节点满足截止条件,得到再训练后的树集成数据识别模型。
可选的,训练模块具体用于:
针对当前目标二叉树的当前节点,在当前训练样本中随机选择一个网络数据的一个特征,作为目标特征,目标特征是当前训练样本中一个网络数据的一个特征。
在当前训练样本中每个网络数据的特征中,确定与目标特征同一维度的特征,作为待定特征。
在待定特征以及目标特征的特征值中,确定最大特征值与最小特征值。
在最大特征值与最小特征值之间,生成一个随机数。
当当前网络数据的待定特征的特征值小于随机数时,则生成当前节点的左分支节点,当前网络数据是当前训练样本中的每个网络数据;
当当前网络数据的待定特征的特征值不小于随机数时,则生成当前节点的右分支节点;
将随机数以及目标特征的维度作为分支节点生成条件,存储至当前节点;
判断当前节点是否满足第一截止条件;
如果当前节点满足第一截止条件,则将包含满足第一截止条件的当前目标二叉树子模型的树集成数据识别模型,确定为再训练后的树集成数据识别模型。
可选的,本发明实施例提供的一种工业控制系统ICS的网络数据检测装置还包括:补充模块,
补充模块包括:选择子模块,训练子模块以及补充子模块,
选择子模块,用于当数据集中的非异常网络数据的数量大于或等于第一阈值时,在非异常网络数据中,选择第一数量个第二网络数据作为当前训练样本。
训练子模块,用于使用当前训练样本,训练得到二叉树子模型。
补充子模块,用于使用该二叉树子模型补入新的树集成数据识别模型中。
可选的,训练子模块具体用于:
随机设置根节点,直至根节点个数达到第二数量。
使用当前训练样本,生成当前节点的左分支节点或者右分支节点,直至当前节点满足第二截止条件,当前节点是所有根节点中的一个根节点,第二截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点与根节点之间的距离不小于第四阈值。
将满足第二截止条件的当前节点与根节点连接形成的二叉树,确定为二叉树子模型。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现本发明实施例第一方面提供的一种工业控制系统ICS的网络数据检测方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行本发明实施例第一方面提供的一种工业控制系统ICS的网络数据检测方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例第一方面提供的一种工业控制系统ICS的网络数据检测方法步骤。
本发明实施例提供一种ICS的网络数据检测方法及装置,获取预设的树集成数据识别模型,按时间先后顺序依次接收各个网络数据,直到所接收的网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集,使用预设的树集成数据识别模型,对数据集中的各个网络数据进行识别处理,得到处理结果,当数据集中的非异常网络数据的数量大于或等于第一阈值时,利用数据集中的非异常数据,对树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型,当再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型,利用新的树集成数据识别模型,在所接收的新的网络数据的数量达到预设的第三数量时,对所接收的新的网络数据进行检测。相比于现有技术,本发明实施例使用非异常数据对预设的树集成数据识别模型进行再训练,当再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,则该二叉树子模型出现了失衡现象,表示该二叉树子模型对树集成数据识别模型的精确度造成较大影响,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型,提高了新的预设的树集成数据识别模型准确性,因此可以提高识别ICS的网络数据的准确性,提高对ICS进行安全防护的准确性。当然,实施本发明的任一产品或方法并不一定需要同时达到以上的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种工业控制系统ICS的网络数据检测方法的流程图;
图2为本发明实施例提供的实现S101步骤的过程流程图;
图3为本发明实施例提供的滑动窗口的结构示意图;
图4为本发明实施例提供的实现S102步骤的过程流程图;
图5为本发明实施例提供的二叉树子模型结构示意图;
图6为本发明实施例提供的实现S103步骤的过程流程图;
图7为本发明实施例提供的得到再训练后的树集成数据识别模型的过程流程图;
图8为本发明实施例提供的在新的树集成数据识别模型中补入的二叉树子模型的过程流程图;
图9为本发明实施例提供的训练得到预设的树集成数据识别模型的过程流程图;
图10为本发明实施例提供的训练得到二叉树子模型的过程流程图;
图11为本发明实施例提供的一种工业控制系统ICS的网络数据检测装置的结构图;
图12为本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种工业控制系统ICS的网络数据检测方法,包括:
S101,按时间先后顺序依次接收各个网络数据,直到所接收的网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集。
其中,网络数据为通过ICS接收的网络数据,每个网络数据携带有:多个特征,每个网络数据的特征的维数相同,每个特征对应一个维度,每个特征都有一个特征值。
可以理解,ICS在与企业网以及互联网交互过程中,按照时间先后顺序接收互联网或者企业网发送的网络数据,当接收到的网络数据达到第一数量时,将接收到的网络数据组成一个数据集,而一个网络数据携带多个特征,该特征表示该网络数据包含的参数类型,每个特征都对应一个维度,每个特征都有一个特征值。
示例性,一个网络数据a,携带的特征分别是:a1,a2,a3,a1特征的维度是1,a2特征的维度是2,a3特征的维度是3,a1特征的特征值是10,a2特征的特征值是12,a3特征的特征值是30。a1特征表示该网络数据包含的参数是压力参数,a2特征表示该网络数据包含的参数是ICS的登录ID(Identity Document,标识号),a3特征表示该网络数据包含的参数是物料量。
参考图1,S102,使用预设的树集成数据识别模型,对数据集中的各个网络数据进行识别处理,得到处理结果。
其中,处理结果为:数据集中的各个网络数据是否为异常数据,树集成数据识别模型中包括:第二数量个二叉树子模型,每个二叉树子模型是根据训练样本预先训练的,且一个二叉树子模型中,除叶子节点外的其他节点中存储有该节点的分支节点生成条件,训练样本包括:第一数量个网络数据。
可以理解,预设的树集成数据识别模型是第二数量个二叉树子模型组成,每个二叉树子模型是由一个训练样本训练得到,当一个二叉树子模型只有一个节点时,该节点为根节点。使用训练样本训练得到一个二叉树子模型的过程是,对于一个节点,设置该节点的分支节点生成条件,将训练样本包含的第一数量个网络数据,按照分支节点生成条件生成该节点的分支节点,此过程将在后文中详细说明,如此在得到一个二叉树子模型后,该二叉树子模型中除叶子节点外的其他节点存储该节点的分支节点生成条件,而叶子节点存储不能生成分支节点的网络数据。
如图1所示,S103,当数据集中的非异常网络数据的数量大于或等于第一阈值时,利用数据集中的非异常数据,对树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型。
其中,再训练后的树集成数据识别模型中,各个二叉树子模型的叶子节点的最大深度不小于再训练前该二叉树子模型的叶子节点的最大深度,最大深度表示二叉树子模型的根节点到最远叶子节点的路径上的节点数。
可以理解,第一阈值是预先设定的正整数,第一阈值不小于2,再训练过程需要生成二叉树子模型的叶子节点的分支节点,生成的分支节点成为新的叶子节点,新的叶子节点与根节点之间的距离相较于原来叶子结点与根节点之间的距离更远,因此,再训练后的树集成数据识别模型中每个二叉树子模型的叶子节点的最大深度,不会小于再训练前该二叉树子模型的叶子节点的最大深度。
作为本发明可选的一种实施方式,可以将S102步骤识别结果得出的非异常数据存储至一个缓冲区域,直至缓冲区域的非异常数据的个数达到第一阈值,在缓冲区域选择第一数量个非异常网络数据,利用第一数量个非异常网络数据,对树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型。
可以理解,如果S102步骤识别结果得出的非异常数据没有达到第一阈值,表示数据集中的非异常网络数据没有大于或者等于第一阈值,则重复执行S101至S102直至缓冲区域的非异常网络数据的个数大于或者等于第一阈值。
S104,当再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型。
其中,第二阈值是预先设定的数值,第二阈值可以根据经验设定。
可以理解,二叉树子模型的再训练会使得非异常数据和异常数据在二叉树子模型中的目标深度相差更大,但随着新的网路数据不断加入二叉树子模型的叶子节点,将会导致二叉树子模型的叶子节点存储的网络数据个数远超于处在相同深度的其他二叉树子模型的叶子节点,则该二叉树子模型的平衡在一定程度上被破坏。因此,一旦一个二叉树子模型中有一个叶子节点存储的网络数据个数大于第二阈值,就丢弃该二叉树子模型,因为这个二叉树子模型的会影响树集成数据识别模型的准确度。
S105,利用新的树集成数据识别模型,在所接收的新的网络数据的数量达到预设的第三数量时,对所接收的新的网络数据进行检测。
其中,第三数量大于一。
可以理解,第三数量可以等于第一数量,此时新的网络数据就形成了一个新的数据集,使用新的树集成数据识别模型识别新的数据集,可以实时的检测网络数据以及实时再训练新的树集成数据识别模型。
本发明实施例提供的一种ICS的网络数据检测方法,使用非异常数据对预设的树集成数据识别模型进行再训练,当再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,则该二叉树子模型出现了失衡现象,表示该二叉树子模型对树集成数据识别模型的精确度造成较大影响,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型,提高了新的预设的树集成数据识别模型准确性,因此可以提高识别ICS的网络数据的准确性,提高对ICS进行安全防护的准确性。
作为本发明实施例可选的一种实施方式,如图2所示,上述S101的步骤可以通过如下步骤实现:
S1011,按照网络数据的发送时间先后顺序,利用预先创建的滑动窗口依次接收各个网络数据。
可以理解,如图3所示,在接收互联网或者企业网发送的网络数据时,可以使用现有的虚拟仪器技术在ICS中预先创建一个虚拟的滑动窗口,使用该滑动窗口接收网络数据,当滑动窗口在滑动时,网络数据X1至Xj+1按照时间顺序依次进行该滑动窗口内,该滑动窗口有容纳上限值,容纳上限值表示滑动窗口可以容纳的网络数据的个数,该滑动窗口的容纳上限值为第一数量与网络数据大小的平均值之积。
S1012,当滑动窗口内的网络数据达到第一数量时,获取滑动窗口内的网络数据。
可以理解,当滑动窗口内的网络数据达到容纳上限时,则该滑动窗口内的网络数据达到预设的第一数量,获取滑动窗口内的所有网络数据。
S1013,将滑动窗口内的第一数量个网络数据组成数据集。
可以理解,将获取到的滑动窗口内的网络数据,组成一个数据集,如此,数据集中包括第一数量个网络数据。
作为本发明实施例可选的一种实施方式,如图4所示,上述S102的步骤可以通过如下步骤实现:
S1021,将数据集输入至预设的树集成数据识别模型中。
S1022,针对数据集中的每个网络数据,确定该网络数据按照当前二叉树子模型的每个节点的分支节点生成条件,对应的第一叶子节点。
其中,当前二叉树是预设的树集成数据识别模型中任意一个二叉树子模型。
可以理解,每一个网络数据按照树集成数据识别模型中的每个二叉树子模型中每个节点的分支节点生成条件,分支生成条件存储有一个节点在生成分支节点时,选择的网络数据的特征的维度以及在该维度的最大特征值以及最小特征值之间生成的随机数,以此查找与该网络数据对应的叶子节点,必然会存在一个叶子节点与该网络数据对应,可以将该网络数据存储至于其对应的叶子节点,以此获知该网络数据的目标深度,以便后续检测该网络数据是否是异常数据。
示例性的,二叉树子模型如图5所示,一个网络数据a,携带的特征分别是:a1,a2,a3,a1特征的维度是1,a2特征的维度是2,a3特征的维度是3,a1特征的特征值是10,a2特征的特征值是12,a3特征的特征值是30,假设图5所示的二叉树子模型中F根节点存储的分支节点生成条件为:(随机数14,维数2),则网络数据a查找F的左分支节点C,假设节点C存储的分支节点生成条件为:(随机数11,维数1),则该网络数据a对应的第一叶子节点是A。
S1023,计算第一叶子节点与当前二叉树子模型的根节点之间的目标深度。
可以理解,第一叶子节点与当前二叉树子模型的根节点之间的目标深度是第一叶子节点至根节点的节点个数,以图4为例,第一叶子节点是A至根节点F的节点个数为2,则目标深度为2。
S1024,按照预设的深度指标表达式,计算目标深度的深度指标值。
其中,预设的深度指标表达式如下:
Figure BDA0002384376070000141
其中,E(h(x))是网络数据x的各个目标深度的平均值,c(n)是网络数据个数为n时的归一化因子:
Figure BDA0002384376070000142
其中,H(n-1)为调和数,可由ln(n-1)+0.5772156649估计得到,0.5772156649是欧拉常数。
S1025,将目标深度的深度指标值大于第三阈值时的网络数据,确定为异常数据。
其中,第三阈值是预先设定的小于1大于0的数值,第三阈值可以根据行业经验设定。
S1026,将目标深度的深度指标值小于或等于第三阈值时的网络数据,确定为非异常数据。
可以理解,当网络数据的目标深度的平均值趋近0时,目标深度的深度指标值趋近1,此时该网络数据大概率是异常数据;反之,当网络数据的目标深度的平均值趋近1时,目标深度的深度指标值趋近0,此时网络数据点大概率是非异常数据。在工控系统的生产环境中绝大部分都是非异常数据,只有极小部分才是异常数据。
作为本发明实施例可选的一种实施方式,如图6所示,上述S103的步骤可以通过如下步骤实现:
S1031,当数据集中的非异常网络数据的数量大于或等于第一阈值时,在非异常网络数据中选择第一数量个第一网络数据。
其中,每个第一网络数据携带有:多个特征,每个第一网络数据的特征的维数相同,每个特征对应一个维度,每个特征都有一个特征值。
S1032,在预设的树集成数据识别模型中随机选择二叉树子模型,直至二叉树子模型的个数达到预设的第四数量,将第四数量的二叉树子模型作为目标二叉树子模型。
其中,第四数量小于第二数量。
S1033,针对每个第一网络数据,确定该第一网络数据按照每个目标二叉树子模型的每个节点的分支节点生成条件,对应的第二叶子节点。
S1034,针对当前目标二叉树子模型的当前节点,将当前节点对应的训练样本中的网络数据以及第一网络数据确定为当前训练样本。
其中,当前目标二叉树子模型是目标二叉树子模型中的任意一个二叉树子模型,当前节点是不满足第一截止条件的第二叶子节点,第一截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点的最大深度不小于第四阈值。
其中,第四阈值根据用户需求设定的数值。
可以理解,第四阈值越大,二叉树子模型的叶子节点的深度越大,二叉树子模型的结构越复杂,考虑到需要对二叉树子模型进行再训练,即对二叉树子模型的不满足第一截止条件的叶子节点再次生成分支节点,如果当前节点的最大深度大于或者等于第四阈值,如果当前节点对应的网络数据个数是一个,则当前节点不能再生成分支节点,而如果当前节点对应多个网络数据,每个网络数据在同一维度的特征值相同,该当前节点也不能再生成分支节点,只有不满足截止条件的叶子节点才能再生成分支节点,才能实现对二叉树子模型进行再训练,即完成二叉树子模型的再生长过程。
S1035,基于当前训练样本,生成当前目标二叉树子模型中的当前节点的左分支节点或者右分支节点,直至当前目标二叉树子模型中的当前节点满足截止条件,得到再训练后的树集成数据识别模型。
本实施方式选择部分二叉树子模型进行再训练,在降低对预设树集成数据识别模型整体结构影响的情况下,提高对预设的树集成数据识别模型进行再训练的实时性。
作为本发明实施例可选的一种实施方式,如图7所示,上述S1035的步骤可以通过如下步骤实现:
S10351,针对当前目标二叉树的当前节点,在当前训练样本中随机选择一个网络数据的一个特征,作为目标特征。
其中,目标特征是当前训练样本中一个网络数据的一个特征。
S10352,在当前训练样本中每个网络数据的特征中,确定与目标特征同一维度的特征,作为待定特征。
S10353,在待定特征以及目标特征的特征值中,确定最大特征值与最小特征值。
S10354,在最大特征值与最小特征值之间,生成一个随机数。
S10355,当当前网络数据的待定特征的特征值小于随机数时,则生成当前节点的左分支节点。
其中,当前网络数据是当前训练样本中的任意一个网络数据。
示例性的,参考图5,当前训练样本包括三个网络数据,分别是网络数据a,网络数据b以及网络数据c,网络数据a携带的特征分别是:a1,a2,a3,a1特征的维度是1,a2特征的维度是2,a3特征的维度是3,a1特征的特征值是10,a2特征的特征值是12,a3特征的特征值是30;网络数据b携带的特征分别是:b1,b2,b3,b1特征的维度是1,b2特征的维度是2,b3特征的维度是3,b1特征的特征值是5,b2特征的特征值是17,b3特征的特征值是13,网络数据c携带的特征分别是:c1,c2,c3,c1特征的维度是1,c2特征的维度是2,c3特征的维度是3,c1特征的特征值是16,c2特征的特征值是20,c3特征的特征值是31。假设选择网络数据a的第2维特征a2作为目标特征,与目标特征同维度的特征为:b2以及c2,在则a2,b2、c2的特征值中确定最大特征值是20,最小特征值是12,假设生成的随机数是13,如果当前节点是C,则生成当前节点C的左分支节点A,当前节点C保存分支节点生成条件(维度2,随机数13)。
S10356,当当前网络数据的待定特征的特征值不小于随机数时,则生成当前节点的右分支节点。
在一种可选的实施方式中,使用概率公式计算当前节点的分支节点生成概率,服从当前节点的分支节点生成概率,生成与当前网络数据对应的当前节点的左分支节点或者右分支节点。
其中,概率公式为:
Figure BDA0002384376070000171
pi是当前节点i的分支节点生成概率,di是当前节点i在当前目标二叉树子模型中的深度,dmax是当前目标二叉树子模型的最大深度。
S10357,将随机数以及目标特征的维度作为分支节点生成条件,存储至当前节点。
S10358,判断当前节点是否满足第一截止条件。
S10359,如果满足,则将包含满足第一截止条件的当前目标二叉树子模型的树集成数据识别模型,确定为再训练后的树集成数据识别模型。
如果不满足,则重复执行S10351至S10358的步骤。
作为本发明实施例可选的一种实施方式,如图8所示,本发明实施提供的一种工业控制系统ICS的网络数据检测方法还包括:
S801,当数据集中的非异常网络数据的数量大于或等于第一阈值时,在非异常网络数据中,选择第一数量个第二网络数据作为当前训练样本。
S802,使用当前训练样本,训练得到二叉树子模型。
S803,使用该二叉树子模型补入新的树集成数据识别模型中。
其中,在新的树集成数据识别模型中补入的二叉树子模型数量与S104步骤中删除的二叉树子模型的数量相同。
可以理解,由于网络数据的分布可能会随时间变化,应该允许遗忘一些旧的网络数据,因此以一定的比例构建一些新的二叉树子模型替代树集成数据识别模型中的旧二叉树子模型。为了避免删除某些二叉树子模型后使用树集成数据识别模型检测网络数据出现正反馈,以使删除二叉树子模型前以及删除二叉树子模型后的树集成数据识别模型的检测结果保持相对平稳,因此在删除二叉树子模型后,需要在新的树集成数据识别模型补入同样数量的二叉树子模型。
作为本发明可选的一种实施方式,可以使用预设的树集成数据识别模型中的每个二叉树子模型识别数据集,得到每个二叉树子模型检测数据集的检测结果,统计每个二叉树子模型的检测结果中异常数据占总网络数据的比例值,确定最大比例值以及最小比例值,将最大比例值与最小比例值组成的区间平均分成预设的第五数量段,计算每个段内所包含的异常比例值的个数,并查找该段对应的二叉树子模型,由此得到每个段内应该删除的二叉树子模型的比例,根据该比例每段对应的二叉树子模型中随机丢弃对应个数的二叉树子模型,然后使用S801至S803的步骤,补入二叉树子模型,直至补入二叉树子模型的个数与丢弃二叉树子模型的个数相同。
作为本发明实施例可选的一种实施方式,如图9所示,上述102步骤中的预设的树集成数据识别模型可以通过如下步骤训练实现:
S901,按照时间先后顺序,利用预先创建的滑动窗口依次接收各个网络数据。
S902,当滑动窗口内的网络数据达到第一数量时,获取滑动窗口内的网络数据。
S903,对滑动窗口内的网络数据进行采样,直至采样次数达到第二数量,得到训练集。
可以理解,对所获取的网络数据进行一次采样,可以获得一个训练样本,当采样次数达到第二数量时,训练样本的个数达到第二数量,以便后续使用一个训练样本生成一个二叉树子模型,从而得到预设的树集成数据识别模型。
作为本发明可选的一种实施方式,对滑动窗口内的网络数据进行有放回采样,直至采样次数达到第二数量,将每次采样得到的网络数据作为训练样本,将第二数量个训练样本组成训练集。
其中,训练集包括第二数量个训练样本,每个训练样本中的每个网络数据包括:多维特征,每个网络数据的特征的维数相同,每个特征对应一个特征值。
S904,使用当前训练样本,训练得到二叉树子模型。
S905,将第二数量个二叉树子模型组成的模型,确定为预设的树集成数据识别模型。
可以理解,将每个二叉树子模型加入一个集合中,初始该集合为空集,随着二叉树子模型的加入,该集合中包含第二数量个二叉树子模型,将包含第二数量个二叉树子模型的集合,确定为预设的树集成数据识别模型。
作为本发明实施例可选的一种实施方式,如图10所示,上述S802或者S904的步骤可以通过如下步骤实现:
S1001,随机设置根节点,直至根节点个数达到第二数量。
S1002,使用当前训练样本,生成当前节点的左分支节点或者右分支节点,直至当前节点满足第二截止条件。
其中,当前训练样本为训练集中的任意一个训练样本或者步骤S802中的当前训练样本,当前节点是所有根节点中的任意一个根节点,第二截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点与根节点之间的距离不小于第四阈值。
可以理解,一个二叉树只有一个根节点,同一个二叉树的根节点按照网络数据的特征生成分支节点,如果最后一个分支节点满足第二截止条件,则该分支节点是叶子节点,以此得到训练后的二叉树子模型。
S1003,将满足第二截止条件的当前节点与根节点连接形成的二叉树,确定为二叉树子模型。
如图11所示,本发明实施例提供的一种工业控制系统ICS的网络数据检测装置,包括:
接收模块1101,用于按时间先后顺序依次接收各个网络数据,直到所接收的网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集,网络数据为通过ICS接收的网络数据。
识别模块1102,用于使用预设的树集成数据识别模型,对数据集中的各个网络数据进行识别处理,得到处理结果,处理结果为:数据集中的各个网络数据是否为异常数据,其中,树集成数据识别模型中包括:第二数量个二叉树子模型,每个二叉树子模型是根据训练样本预先训练的,且一个二叉树子模型中,除叶子节点外的其他节点中存储有该节点的分支节点生成条件,训练样本包括:第一数量个网络数据。
训练模块1103,用于当数据集中的非异常网络数据的数量大于或等于第一阈值时,利用数据集中的非异常数据,对树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型,其中,再训练后的树集成数据识别模型中,各个二叉树子模型的叶子节点的最大深度不小于再训练前该二叉树子模型的叶子节点的最大深度,最大深度表示二叉树子模型的根节点到最远叶子节点的路径上的节点数。
删除模块1104,用于当再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型。
检测模块1105,用于利用新的树集成数据识别模型,在所接收的新的网络数据的数量达到预设的第三数量时,对所接收的新的网络数据进行检测,第三数量大于一。
可选的,接收模块具体用于:
按照网络数据的发送时间先后顺序,利用预先创建的滑动窗口依次接收各个网络数据。
当滑动窗口内的网络数据达到第一数量时,获取滑动窗口内的网络数据。
将滑动窗口内的第一数量个网络数据组成数据集。
可选的,识别模块具体用于:
将数据集输入至预设的树集成数据识别模型中。
针对数据集中的每个网络数据,确定该网络数据按照当前二叉树子模型的每个节点的分支节点生成条件,对应的第一叶子节点。
计算第一叶子节点与当前二叉树子模型的根节点之间的目标深度。
按照预设的深度指标表达式,计算目标深度的深度指标值。
将目标深度的深度指标值大于第三阈值时的网络数据,确定为异常数据。
将目标深度的深度指标值小于或等于第三阈值时的网络数据,确定为非异常数据。
可选的,训练模块具体用于:
当数据集中的非异常网络数据的数量大于或等于第一阈值时,在非异常网络数据中选择第一数量个第一网络数据,每个第一网络数据携带有:多个特征,每个第一网络数据的特征的维数相同,每个特征对应一个维度,每个特征都有一个特征值。
在预设的树集成数据识别模型中随机选择二叉树子模型,直至二叉树子模型的个数达到预设的第四数量,将第四数量的二叉树子模型作为目标二叉树子模型。
针对每个第一网络数据,确定该第一网络数据按照每个目标二叉树子模型的每个节点的分支节点生成条件,对应的第二叶子节点。
针对当前目标二叉树子模型的当前节点,将当前节点对应的训练样本中的网络数据以及第一网络数据确定为当前训练样本,当前节点是不满足第一截止条件的第二叶子节点,第一截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点的最大深度不小于第四阈值。
基于当前训练样本,生成当前目标二叉树子模型中的当前节点的左分支节点或者右分支节点,直至当前目标二叉树子模型中的当前节点满足截止条件,得到再训练后的树集成数据识别模型。
可选的,训练模块具体用于:
针对当前目标二叉树的当前节点,在当前训练样本中随机选择一个网络数据的一个特征,作为目标特征,目标特征是当前训练样本中一个网络数据的一个特征。
在当前训练样本中每个网络数据的特征中,确定与目标特征同一维度的特征,作为待定特征。
在待定特征以及目标特征的特征值中,确定最大特征值与最小特征值。
在最大特征值与最小特征值之间,生成一个随机数。
当当前网络数据的待定特征的特征值小于随机数时,则生成当前节点的左分支节点,当前网络数据是当前训练样本中的每个网络数据;
当当前网络数据的待定特征的特征值不小于随机数时,则生成当前节点的右分支节点;
将随机数以及目标特征的维度作为分支节点生成条件,存储至当前节点;
判断当前节点是否满足第一截止条件;
如果当前节点满足第一截止条件,则将包含满足第一截止条件的当前目标二叉树子模型的树集成数据识别模型,确定为再训练后的树集成数据识别模型。
可选的,本发明实施例提供的一种工业控制系统ICS的网络数据检测装置还包括:补充模块,
补充模块包括:选择子模块,训练子模块以及补充子模块,
选择子模块,用于当数据集中的非异常网络数据的数量大于或等于第一阈值时,在非异常网络数据中,选择第一数量个第二网络数据作为当前训练样本。
训练子模块,用于使用当前训练样本,训练得到二叉树子模型。
补充子模块,用于使用该二叉树子模型补入新的树集成数据识别模型中。
可选的,训练子模块具体用于:
随机设置根节点,直至根节点个数达到第二数量。
使用当前训练样本,生成当前节点的左分支节点或者右分支节点,直至当前节点满足第二截止条件,当前节点是所有根节点中的一个根节点,第二截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点与根节点之间的距离不小于第四阈值。
将满足第二截止条件的当前节点与根节点连接形成的二叉树,确定为二叉树子模型。
本发明实施例还提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,
存储器1203,用于存放计算机程序;
处理器1201,用于执行存储器1203上所存放的程序时,实现如下步骤:
按时间先后顺序依次接收各个网络数据,直到所接收的网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集,网络数据为通过ICS接收的网络数据。
使用预设的树集成数据识别模型,对数据集中的各个网络数据进行识别处理,得到处理结果,处理结果为:数据集中的各个网络数据是否为异常数据,其中,树集成数据识别模型中包括:第二数量个二叉树子模型,每个二叉树子模型是根据训练样本预先训练的,且一个二叉树子模型中,除叶子节点外的其他节点中存储有该节点的分支节点生成条件,训练样本包括:第一数量个网络数据。
当所述数据集中的非异常网络数据的数量大于或等于第一阈值时,利用数据集中的非异常数据,对树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型,其中,再训练后的树集成数据识别模型中,各个二叉树子模型的叶子节点的最大深度不小于再训练前该二叉树子模型的叶子节点的最大深度,最大深度表示二叉树子模型的根节点到最远叶子节点的路径上的节点数。
当再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,将该二叉树子模型从再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型。
利用新的树集成数据识别模型,在所接收的新的网络数据的数量达到预设的第三数量时,对所接收的新的网络数据进行检测,第三数量大于一。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一一种ICS的网络数据检测方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一一种ICS的网络数据检测方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种工业控制系统ICS的网络数据检测方法,其特征在于,所述方法包括:
按时间先后顺序依次接收各个网络数据,直到所接收的所述网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集,所述网络数据为通过ICS接收的网络数据;
使用预设的树集成数据识别模型,对所述数据集中的各个网络数据进行识别处理,得到处理结果,所述处理结果为:所述数据集中的各个网络数据是否为异常数据,其中,所述树集成数据识别模型中包括:第二数量个二叉树子模型,每个二叉树子模型是根据训练样本预先训练的,且一个二叉树子模型中,除叶子节点外的其他节点中存储有该节点的分支节点生成条件,所述训练样本包括:第一数量个网络数据;
当所述数据集中的非异常网络数据的数量大于或等于第一阈值时,利用所述数据集中的非异常数据,对所述树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型,其中,所述再训练后的树集成数据识别模型中,各个二叉树子模型的叶子节点的最大深度不小于再训练前该二叉树子模型的叶子节点的最大深度,所述最大深度表示所述二叉树子模型的根节点到最远叶子节点的路径上的节点数;
当所述再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,将该二叉树子模型从所述再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型;
利用所述新的树集成数据识别模型,在所接收的新的网络数据的数量达到预设的第三数量时,对所接收的新的网络数据进行检测,所述第三数量大于一。
2.根据权利要求1所述的方法,其特征在于,所述按时间先后顺序依次接收各个网络数据,直到所接收的所述网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集的步骤,包括:
按照所述网络数据的发送时间先后顺序,利用预先创建的滑动窗口依次接收各个网络数据;
当所述滑动窗口内的网络数据达到第一数量时,获取所述滑动窗口内的网络数据;
将所述滑动窗口内的第一数量个网络数据组成数据集。
3.根据权利要求1所述的方法,其特征在于,所述使用预设的树集成数据识别模型,对所述数据集中的各个网络数据进行识别处理,得到处理结果的步骤,包括:
将所述数据集输入至所述预设的树集成数据识别模型中;
针对所述数据集中的每个网络数据,确定该网络数据按照当前二叉树子模型的每个节点的分支节点生成条件,对应的第一叶子节点,所述当前二叉树是所述预设的树集成数据识别模型中每个二叉树子模型;
计算所述第一叶子节点与当前二叉树子模型的根节点之间的目标深度;
按照预设的深度指标表达式,计算所述目标深度的深度指标值;
将所述目标深度的深度指标值大于第三阈值时的网络数据,确定为异常数据;
将所述目标深度的深度指标值小于或等于第三阈值时的网络数据,确定为非异常数据。
4.根据权利要求1所述的方法,其特征在于,所述当所述数据集中的非异常网络数据的数量大于或等于第一阈值时,利用所述数据集中的非异常数据,对所述树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型的步骤,包括:
当所述数据集中的非异常网络数据的数量大于或等于第一阈值时,在所述非异常网络数据中选择第一数量个第一网络数据,每个第一网络数据携带有:多个特征,每个第一网络数据的特征的维数相同,每个特征对应一个维度,每个特征都有一个特征值;
在所述预设的树集成数据识别模型中随机选择二叉树子模型,直至所述二叉树子模型的个数达到预设的第四数量,将第四数量的二叉树子模型作为目标二叉树子模型;
针对每个第一网络数据,确定该第一网络数据按照每个目标二叉树子模型的每个节点的分支节点生成条件,对应的第二叶子节点;
针对当前目标二叉树子模型的当前节点,将所述当前节点对应的训练样本中的网络数据以及第一网络数据确定为当前训练样本,所述当前节点是不满足第一截止条件的第二叶子节点,所述第一截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点的最大深度不小于第四阈值;
基于当前训练样本,生成当前目标二叉树子模型中的当前节点的左分支节点或者右分支节点,直至当前目标二叉树子模型中的当前节点满足截止条件,得到再训练后的树集成数据识别模型。
5.根据权利要求4所述的方法,其特征在于,所述使用当前训练样本,生成当前二叉树的当前节点的左分支节点或者右分支节点,直至当前目标二叉树子模型中的当前节点满足截止条件,得到再训练后的树集成数据识别模型的步骤包括:
针对所述当前目标二叉树的当前节点,在所述当前训练样本中随机选择一个网络数据的一个特征,作为目标特征,所述目标特征是当前训练样本中一个网络数据的一个特征;
在所述当前训练样本中每个网络数据的特征中,确定与所述目标特征同一维度的特征,作为待定特征;
在所述待定特征以及目标特征的特征值中,确定最大特征值与最小特征值;
在所述最大特征值与所述最小特征值之间,生成一个随机数;
当当前网络数据的待定特征的特征值小于所述随机数时,则生成所述当前节点的左分支节点;
当当前网络数据的待定特征的特征值不小于所述随机数时,则生成所述当前节点的右分支节点;
将所述随机数以及所述目标特征的维度作为分支节点生成条件,存储至所述当前节点;
判断所述当前节点是否满足所述第一截止条件;
如果所述当前节点满足所述第一截止条件,则将包含满足第一截止条件的所述当前目标二叉树子模型的树集成数据识别模型,确定为再训练后的树集成数据识别模型。
6.根据权利要求1所述的方法,其特征在于,所述将该二叉树子模型从所述再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型的步骤之后,所述方法还包括:
当所述数据集中的非异常网络数据的数量大于或等于第一阈值时,在所述非异常网络数据中,选择第一数量个第二网络数据作为当前训练样本;
使用当前训练样本,训练得到二叉树子模型;
使用该二叉树子模型补入所述新的树集成数据识别模型中。
7.根据权利要求6所述的方法,其特征在于,所述使用当前训练样本,训练得到二叉树子模型的步骤,包括:
随机设置根节点,直至根节点个数达到第二数量;
使用当前训练样本,生成当前节点的左分支节点或者右分支节点,直至所述当前节点满足第二截止条件,所述当前节点是所有根节点中的一个根节点,所述第二截止条件包括:当前节点对应的网络数据的个数是一个,或当前节点对应的多个网络数据同一维度的特征的特征值相同,或当前节点与根节点之间的距离不小于第四阈值;
将满足第二截止条件的当前节点与根节点连接形成的二叉树,确定为二叉树子模型。
8.一种工业控制系统ICS的网络数据检测装置,其特征在于,所述装置包括:
接收模块,用于按时间先后顺序依次接收各个网络数据,直到所接收的所述网络数据的数量达到预设的第一数量时,将第一数量个网络数据组成数据集,所述网络数据为通过ICS接收的网络数据;
识别模块,用于使用预设的树集成数据识别模型,对所述数据集中的各个网络数据进行识别处理,得到处理结果,所述处理结果为:所述数据集中的各个网络数据是否为异常数据,其中,所述树集成数据识别模型中包括:第二数量个二叉树子模型,每个二叉树子模型是根据训练样本预先训练的,且一个二叉树子模型中,除叶子节点外的其他节点中存储有该节点的分支节点生成条件,所述训练样本包括:第一数量个网络数据;
训练模块,用于当所述数据集中的非异常网络数据的数量大于或等于第一阈值时,利用所述数据集中的非异常数据,对所述树集成数据识别模型中的各个二叉树子模型进行再训练,得到再训练后的树集成数据识别模型,其中,所述再训练后的树集成数据识别模型中,各个二叉树子模型的叶子节点的最大深度不小于再训练前该二叉树子模型的叶子节点的最大深度,所述最大深度表示所述二叉树子模型的根节点到最远叶子节点的路径上的节点数;
删除模块,用于当所述再训练后的树集成数据识别模型的各个二叉树子模型中,存在叶子节点对应的网络数据个数大于第二阈值的二叉树子模型时,将该二叉树子模型从所述再训练后的树集成数据识别模型中删除,得到新的树集成数据识别模型;
检测模块,用于利用所述新的树集成数据识别模型,在所接收的新的网络数据的数量达到预设的第三数量时,对所接收的新的网络数据进行检测,所述第三数量大于一。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
CN202010093097.0A 2020-02-14 2020-02-14 一种ics的网络数据检测方法及装置 Active CN111340075B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010093097.0A CN111340075B (zh) 2020-02-14 2020-02-14 一种ics的网络数据检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010093097.0A CN111340075B (zh) 2020-02-14 2020-02-14 一种ics的网络数据检测方法及装置

Publications (2)

Publication Number Publication Date
CN111340075A true CN111340075A (zh) 2020-06-26
CN111340075B CN111340075B (zh) 2021-05-14

Family

ID=71185810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010093097.0A Active CN111340075B (zh) 2020-02-14 2020-02-14 一种ics的网络数据检测方法及装置

Country Status (1)

Country Link
CN (1) CN111340075B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287219A (zh) * 2020-10-28 2021-01-29 帮帮有信(北京)科技有限公司 服务需求方与服务提供方匹配方法及装置
CN112446647A (zh) * 2020-12-14 2021-03-05 上海众源网络有限公司 异常元素的定位方法、装置、电子设备及存储介质
CN112860968A (zh) * 2021-02-02 2021-05-28 北京三快在线科技有限公司 一种异常检测的方法以及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080186974A1 (en) * 2006-10-23 2008-08-07 Sumeet Singh System and method to process data packets in a network using stateful decision trees
CN102957579A (zh) * 2012-09-29 2013-03-06 北京邮电大学 一种网络异常流量监测方法及装置
US20150304349A1 (en) * 2014-04-16 2015-10-22 Cyber-Ark Software Ltd. Anomaly detection in groups of network addresses
CN106254316A (zh) * 2016-07-20 2016-12-21 北京工业大学 一种基于数据依赖的工控行为异常检测系统
CN108777873A (zh) * 2018-06-04 2018-11-09 江南大学 基于加权混合孤立森林的无线传感网络异常数据检测方法
CN110413682A (zh) * 2019-08-09 2019-11-05 云南电网有限责任公司 一种数据的分类展示方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080186974A1 (en) * 2006-10-23 2008-08-07 Sumeet Singh System and method to process data packets in a network using stateful decision trees
CN102957579A (zh) * 2012-09-29 2013-03-06 北京邮电大学 一种网络异常流量监测方法及装置
US20150304349A1 (en) * 2014-04-16 2015-10-22 Cyber-Ark Software Ltd. Anomaly detection in groups of network addresses
CN106254316A (zh) * 2016-07-20 2016-12-21 北京工业大学 一种基于数据依赖的工控行为异常检测系统
CN108777873A (zh) * 2018-06-04 2018-11-09 江南大学 基于加权混合孤立森林的无线传感网络异常数据检测方法
CN110413682A (zh) * 2019-08-09 2019-11-05 云南电网有限责任公司 一种数据的分类展示方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287219A (zh) * 2020-10-28 2021-01-29 帮帮有信(北京)科技有限公司 服务需求方与服务提供方匹配方法及装置
CN112287219B (zh) * 2020-10-28 2024-07-23 帮帮有信(北京)科技有限公司 服务需求方与服务提供方匹配方法及装置
CN112446647A (zh) * 2020-12-14 2021-03-05 上海众源网络有限公司 异常元素的定位方法、装置、电子设备及存储介质
CN112860968A (zh) * 2021-02-02 2021-05-28 北京三快在线科技有限公司 一种异常检测的方法以及装置

Also Published As

Publication number Publication date
CN111340075B (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN111340075B (zh) 一种ics的网络数据检测方法及装置
CN110162695B (zh) 一种信息推送的方法及设备
CN109241274B (zh) 文本聚类方法及装置
CN107707545B (zh) 一种异常网页访问片段检测方法、装置、设备及存储介质
US9654446B2 (en) On-the fly pattern recognition with configurable bounds
CN109634698B (zh) 菜单显示方法、装置、计算机设备及存储介质
CN107204960B (zh) 网页识别方法及装置、服务器
CN106649831B (zh) 一种数据过滤方法及装置
WO2023093100A1 (zh) 一种api网关异常调用识别的方法、装置、设备及产品
CN111460153A (zh) 热点话题提取方法、装置、终端设备及存储介质
CN107229731B (zh) 用于分类数据的方法和装置
EP4258610A1 (en) Malicious traffic identification method and related apparatus
CN114817425B (zh) 一种冷热数据分类的方法、装置、设备及可读存储介质
CN111090860A (zh) 一种基于深度学习的代码漏洞检测方法及装置
CN113435517B (zh) 异常数据点输出方法、装置、计算机设备和存储介质
CN113746780B (zh) 基于主机画像的异常主机检测方法、装置、介质和设备
CN107590143B (zh) 一种时间序列的检索方法、装置及系统
CN111984867A (zh) 一种网络资源确定方法及装置
CN113315851A (zh) 域名检测方法、装置及存储介质
CN109286622B (zh) 一种基于学习规则集的网络入侵检测方法
CN110147223B (zh) 组件库的生成方法、装置及设备
CN111353109A (zh) 一种恶意域名的识别方法及系统
CN110909159B (zh) 一种用户意图识别方法、装置、终端及存储介质
CN115208938B (zh) 用户行为管控方法及装置、计算机可读存储介质
CN116566724A (zh) 用于检测DDoS攻击的检测方法及装置、存储介质

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
GR01 Patent grant
GR01 Patent grant