一种工控网络流量异常检测方法、系统、装置和可读介质
文献发布时间:2024-04-18 19:53:33
技术领域
本申请属于网络信息安全技术领域,尤其涉及工控网络流量异常检测方法、系统、装置和可读介质。
背景技术
目前,各类主体对工业控制系统信息安全缺乏统一认识,部分运营单位和地方主管部门只注重生产效益而严重忽视信息安全隐患。因此,对于工控流量的分析和检测成为了检测工控系统中风险的有效方法。工业控制系统流量(工控流量)与传统流量不同,其报文形式固定,流量固定,在固定周期上呈现一定的规律性。其需要控制的指令存在干报文负载的固定位置,因此需要着重注意该区域的区别变化。同时,因为指令变化展现的周期性,流量在连续时间内前后关系存在很大的关联性,而攻击往往会改变这些关联性,因此在检测攻击时,需要考虑前后关联关系。为了能够有效监测这些数据变化,在传统的入侵检测中,往往会考虑进行人为的特征提取,之后再结合分类器模型,对这些特征进行学习和分析,利用特征判断流量中是否存在异常。然而,人为提取特征的过程会损失大量的数据信息,主观因素提取的特征会对模型的分类训练过程产生一定的影响,从而会影响性能和精度提升。当前普遍检测手段通过人为配置访问规则、特征检测、漏洞检测等手段进行,以上检测手段缺乏及时性、易操作性,因而建立一种工控网络中程序自动学习流量阈值,基于历史阈值进行异常检测,以达到无需人工参与,检测结果及时、精准已势在必行。
发明内容
本申请的目的在于提供一种工控网络流量异常检测方法、系统、装置和可读介质,本申请旨在解决工业控制网络中自身网络访问流量异常,主要检测通信流量偏离预期大小异常检测需求,并进行及时、精准输出异常检测结果。
本申请实施例的第一方面提了一种检测工控网络流量异常的方法,包括:
对工控网络环境中的交换机镜像流量进行解析,获取镜像流量的解析结果和解析结果对应的系统时间;
根据解析结果对应的系统时间确定第一样本集和第二样本集,学习第一样本集,获得流量阈值结果集;
将第二样本集与流量阈值结果集进行比对,根据比对结果判断工控网络流量是否异常。
在其中一个实施例中,解析结果包括地址信息和地址信息对应的流量信息,地址信息包括源地址、目的地址、目的端口和网络协议,流量信息包括发送流量、接收流量、发送包数、接收包数。
在其中一个实施例中,根据解析结果对应的系统时间确定第一样本集和第二样本集,包括:
定义学习时间段,校验系统时间是否处于学习时间段内;
若系统时间处于学习时间段内,则将系统时间和系统时间对应的解析结果归入第一样本集;
若系统时间处于学习时间段外,则将系统时间和系统时间对应的解析结果归入第二样本集。
在其中一个实施例中,流量阈值结果集为键值数据结构,学习第一样本集,获得流量阈值结果集,包括:
将第一样本集中的系统时间格式化,获取分钟值,将分钟值写入键值数据结构的主键;
将第一样本集中分钟值相同的对应地址信息写入键值数据结构的主键对应的子键;
根据系统时间计算第一样本集中的解析结果,获取每一分钟内的解析结果中相同地址信息对应数据信息的第一累加值,将第一累加值写入键值数据结构的子键对应的键值;
根据主键、子键和键值进行键值数据结构封装,获得流量阈值结果集。
在其中一个实施例中,将分钟值相同,且地址信息相同的所有第一累加值的平均值写入对应的键值。
在其中一个实施例中,将第二样本集代入流量阈值结果集进行比对,根据比对结果判断工控网络流量是否异常,包括:
计算第二样本集当前分钟的解析结果,获得相同地址信息对应数据信息的第二累加值;
根据第二样本集的系统时间和地址信息,从流量阈值结果集中选取对应的主键、子键和键值,将键值与第二累加值比较;
若第二累加值大于键值的最大值,或小于键值的最小值,则工控网络流量异常;
若第二累加值小于等于键值的最大值,且大于等于键值的最小值,则工控网络流量正常。
在其中一个实施例中,在将第二样本集代入流量阈值结果集进行比对,根据比对结果判断工控网络流量是否异常之前,方法还包括以下步骤:
修正流量阈值结果集,调整键值的最大值和最小值。
本申请实施例的第二方面提供了一种检测工控网络流量异常的系统,包括
解析组件,用于对工控网络协议中的传输层数据进行解析,获取解析结果和所述解析结果对应的系统时间;
筛选组件,用于根据所述解析结果对应的系统时间筛选第一样本集和第二样本集;
学习组件;用于学习所述第一样本集,获得流量阈值结果集;
比对判断组件;将所述第二样本集代入所述流量阈值结果集进行比对,根据比对结果判断工控网络流量是否异常。
本申请实施例的第三方面提了一种检测工控网络流量异常的装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
本申请实施例的第四方面提了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:利用本申请提供的方法可有效发现工业控制网络中非预期流量突增或突降行为,并及时异常预警,避免特征检测特征库更新不及时、访问控制策略不全面等情况下,出现检测短板。
附图说明
图1为本申请提供的一种工控网络流量异常检测方法的流程示意图;
图2为本申请提供的一种工控网络流量异常检测系统的结构示意图。
具体实施方式
为了使本申请所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
实施例1:
图1示出了本申请第一实施例提供的一种检测工控网络流量异常的方法的流程示意图,为了便于说明,仅示出了与本实施例相关的部分,详述如下:
步骤1:对工控网络环境中的交换机镜像流量进行解析,获取镜像流量的解析结果和解析结果对应的系统时间。其中,解析结果包括了地址信息和流量信息。网络协议解析主要针对传输层数据进行会话重组,并解析出地址信息和流量信息,地址信息包括源地址、目的地址、目的端口和网络协议,流量信息包括发送字节数、接收字节数、发送包数和接收包数,其中地址信息与流量信息对应。示例性的,示例性的,在本实施例中通过将网络解析设备接入工业企业环境中,获取交换机的镜像流量,然后通过交换机的镜像流量对tcp、udp等网络协议进行解析,获得解析结果,或是通过在路由器上开启 netflow 配置;在配置netflow 过程中,使路由器将数据包发送到 netflow 采集服务器的指定端口,将源地址、目的地址、目的端口、网络协议类型作为关键域建立多维结构,遍历多维结构中的流量记录,找到相匹配的信息进行叠加操作,以此获取解析结果。需要说明的是,在获取解析结果的同时,需要对解析结果对应的系统时间一并封装。
步骤2:根据解析结果对应的系统时间确定第一样本集和第二样本集,学习第一样本集,获得流量阈值结果集。需要说明的是,首先对自动学习时间窗进行设定,为了避免一天之内的流量数据起伏波动变化较大,通常将自动学习时间窗定为一天或一周,并与解析结果对应的系统时间进行校验。
如果系统时间在默认设定自动学习时间窗内,则根据系统时间将系统时间对应的解析结果归入第一样本集;自动对第一样本集进行学习,分别对系统时间和解析结果进行处理,示例性的,可以对系统时间进行取值,把系统时间进行格式化,仅保留系统时间的分钟值,之后,将步骤1中的解析结果以每一分钟为单位进行封装后,将每一份中的解析结果中源地址相同的发送字节数进行叠加;目的地址相同的接收字节数进行叠加;网络端口相同的发送包数进行叠加、网络协议相同的接收包数进行叠加。叠加后获得第一累加值。
对于非相同日期但相同分钟值相同的解析结果(例如:昨天 12:15分的解析结果已经学习完成,今天12:15分的单位的解析结果同样学习完成后)进行叠加结果的再次累加,累加后取平均值,将平均值同样添加在流量阈值结果集中。
流量阈值结果集一般以键值数据结构存储,将上述分钟值作为键值数据结构的主键,地址信息为键值数据结构的子键,第一累加值和第一累加值的平均值为键值数据结构的键值,共同构建流量阈值结果集。
如果系统时间在默认设定自动学习时间窗内,则根据系统时间将系统时间对应的解析结果归入第二样本集。
步骤3:将第二样本集与流量阈值结果集进行比对,根据比对结果判断工控网络流量是否异常。
在本实施例中,对于第二样本集中的样本数据,根据当前的系统时间,对解析结果按照源地址、目的地址、目的端口、网络协议分别进行分组之后,对发送字节数、接收字节数、发送包数、接收包数分别进行累加,获得第二累加值。将计算过的第二样本集中的样本数据与流量阈值结果集进行范围比较,第二样本集中的样本数据对应的系统时间分钟值以及地址信息都要与流量阈值结果集中的主键和子键进行完全匹配,再将流量阈值结果集中的键值与第二样本数据中的第二累加值比较,若第二累加值大于键值的最大值,或小于键值的最小值,则判定工控网络流量异常;若第二累加值小于键值的最大值,且大于键值的最小值,则判定工控网络流量正常。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
下面,结合具体的实施例,对本申请所提供的一种检测工控网络流量异常的方法做具体说明。
首先,定义学习时间窗,例如,将学习时间窗定为从2021年11月3日的12:00到2021年11月4日的12:00。
之后,网络解析设备接入工业企业环境中,获取交换机的镜像流量数据,对于所接受到的镜像流量数据进行流量解析的同时,对解析得到的结果标记上系统时间。以netflow网络流量数据为例,包括以下步骤:1) 建立 socket 连接监听路由器上指定的 netflow发送到 netflow 采集服务器的端口;
2)当接收到 netflow数据包时,根据 netflow 协议的格式,对数据包进行拆分,其中,对于一个netflow数据包,有一个或者多个netflow 记录信息;
3)将解析到的 netflow 记录信息放到内存中,对多维结构进行遍历;
4)当遍历到最终节点的时候,对该节点中的流量大小和封包大小进行叠加;
5)当达到一分钟的时候,将内存中的信息写入流量采集服务上的临时文件,清空内存中的信息。临时文件中保存了每分钟流量解析结果。
接着,对每分钟的流量解析结果进行学习,以2021年11月3日的12:15的流量解析结果为例,将该流量解析结果对应的系统时间格式化,获得该系统时间对应的分钟值15;
将12:15该分钟的流量解析结果的对应地址信息归纳整理出来,按照源地址、目的地址、目的端口、网络协议分别进行整理;
将同一源地址、目的地址、目的端口或网络协议对应的发送字节数、接收字节数、发送包数、接收包数进行累加,获得的累加结果为第一累加值。
例如,12:15:03,源地址192.168.1.20,发送字节数2,目的地址98.76.54.32,接收字节数10,目的端口号80发送数据包7个,协议号6接收数据包13个,12:15:47,源地址192.168.1.20,发送字节数6,目的地址98.76.54.32,接收字节数12,目的端口号80发送数据包8个,协议号6接收数据包17个,则在进行计算时,12:15的源地址192.168.1.20累计发送字节数为8、目的地址98.76.54.32累计接收字节数22、目的端口80累计发送数据包15个、协议号6的累计接收数据包30个。
流量阈值结果集一般以键值数据结构存储,将上述分钟值作为键值数据结构的主键,地址信息为键值数据结构的子键,第一累加值作为键值数据结构的键值,共同构建流量阈值结果集。此时,12:15构建的流量阈值结果集如表1所示:
表1
将学习时间窗中的所有分钟值为15,且地址信息相同的解析数据整理出来,以上述地址信息为例,整理获得的流量阈值结果集如表2所示:
表2
将所有分钟值对应的地址信息和流量信息进行提取和计算,最终的得到的流量阈值结果集示例如表3所示。
表3
为了补足短周期中学习结果不合理的情况,可以将非相同日期但相同分钟的流量数据(例如: 2021年11月3日12:15分数据已经学习完成,2021年11月4日12:15分单位时间数据也学习完成后)进行非相同日期相同分钟累加和再次累加,累加后取单位累加次数平均值,如上表中所示,计算获得平均值86,将平均值也添加到流量阈值结果集中。
对于非学习时间窗口的解析结果,例如2021年11月4日18:15的流量数据,进行解析后,对获得的解析结果进行计算,计算获得的结果如表4所示:
表4
在所述流量阈值结果集中主值与非学习时间窗口样本的系统时间的分钟值进行比对后,进一步的,将子值与非学习时间窗口样本的地址信息比对,确认其完全一致后,将表4计算的结果与表3中对应的键值进行比对,表4的计算结果小于对应的键值的最大值且大于对应键值的最小值即为正常,相应的,计算结果大于对应键值的最大值或小于对应键值的最小值即为异常,明显可以看到,源地址192.168.1.21的发送字节数正常,协议号6的接收数据包正常,但目的端口80的发送数据包数和目标地址98.76.54.32的接收字节数异常,只要有一个计算结果出现异常,即可认为此时工业控制网络的流量异常。
对于表3中的键值最大值和最小值,可以适当对其进行手动调整,可调整项包括已经学习到的发送字节数、接收字节数、发送包数、接收包数对应的第一累加值,并在其基础上增加±1.5倍,作为修改预期最大值和最小值。
利用本实施例所提供的方法可有效发现工业控制网络中非预期流量突增或突降行为,并及时异常预警,避免特征检测特征库更新不及时、访问控制策略不全面等情况下,出现检测短板。
实施例2
参见图2,示出了一种检测工控网络流量异常的系统的结构示意图,该检测工控网络流量异常的系统包括:
解析组件,解析组件接入工控网络,与交换机连接,用于获取交换机的镜像流量,利用镜像流量对工控网络协议中的传输层数据进行解析,获取解析结果和所述解析结果对应的系统时间;
筛选组件,用于根据所述解析结果对应的系统时间筛选第一样本集和第二样本集,通过自定义学习时间窗口,将系统时间在学习时间窗口内的解析结果筛选为第一样本集,将系统时间在学习时间窗口外的解析结果筛选为第二样本集;
学习组件;用于学习所述第一样本集,学习步骤包括:
对第一样本集中的第一样本对应的系统时间格式化,获取分钟值;
提取第一样本集中分钟值相同的对应地址信息;
根据系统时间计算第一样本集中第一样本的解析结果,获取每一分钟内的解析结果中相同地址信息对应数据信息的第一累加值;
进行键值数据结构封装,获得流量阈值结果集;
比对判断组件;将所述第二样本集中的每分钟的样本集合代入所述流量阈值结果集进行比对,根据比对结果判断工控网络流量是否异常;
异常告警组件,根据判断结果,发送告警信号。
在上述实施例中,还包括阈值调整组件,用于对第一累加值的最大值和最小值基于业务进行调整。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
- 异常检测方法、装置、电子设备及可读存储介质
- 一种固态硬盘性能测试方法、系统、装置及可读存储介质
- 一种数据采集系统定位方法、装置和计算机可读存储介质
- 一种Hadoop对象存储高可用方法、系统、装置及可读存储介质
- 一种车道选择方法、系统、装置及可读存储介质
- 一种工控系统流量异常检测方法、装置、设备及介质
- 一种工控系统流量异常检测方法、装置、设备及介质