发明内容
本申请实施例的目的在于提供一种异常检测方法、装置、电子设备及存储介质,用以改善现有的异常检测方式不全面,容易导致漏检的问题。
第一方面,本申请实施例提供了一种异常检测方法,所述方法包括:
获取安装在工控主机上的终端探针发送的所述工控主机与工控设备之间通信的第一网络流量,以及获取安装在外部网络设备上的网络探针发送的针对所述工控设备的第二网络流量;
根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测。
在上述实现过程中,该方法通过获取工控主机与工控设备之间通信的第一网络流量以及工控设备的第二网络流量,基于这两部分网络流量来对工控设备的异常状态进行检测,如此可从工控主机与工控设备这两个设备处获取更多的网络流量来对工控设备进行异常分析,从而可对工控设备的异常情况进行更全面的检测,进而可大大减少漏检情况的发生,进一步提升对工控设备的安全检测能力。
可选地,所述根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测,包括:
从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备发送给所述工控主机的输出数据包,以及从所述第一网络流量中筛选出所述工控主机从所述工控设备处的接收数据包;
根据数据包的特征信息判断在小于设定时间间隔内的所述输出数据包与所述接收数据包是否相同;
若不相同,则确定所述工控设备的输出数据包被异常篡改。
在上述实现过程中,通过检测工控设备的输出数据与工控主机的接收数据的一致性,如此可检测工控设备的输出数据是否被非法篡改的异常。
可选地,所述根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测,包括:
从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;
判断所述响应值是否在对应的预设阈值范围内;
若否,则确定所述工控设备运行异常。
在上述实现过程中,通过从值域检测维度来检测工控设备的响应值是否异常,如此可实现对工控设备更多的异常情况进行检测。
可选地,所述根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测,包括:
从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;
判断所述响应值是否处于当前时间内的正常阈值范围内;
若否,则确定所述工控设备运行异常。
在上述实现过程中,通过从时域检测维度来检测工控设备的响应值是否异常,如此可实现对工控设备更多的异常情况进行检测。
可选地,所述根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测,包括:
从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;
判断所述响应值返回的响应频率是否在设定频率范围内;
若否,则确定所述工控设备运行异常。
在上述实现过程中,通过从频域检测维度来检测工控设备的响应值是否异常,如此可实现对工控设备更多的异常情况进行检测。
可选地,所述根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测,包括:
从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;
判断返回的相邻两个响应值的增减趋势是否符合预设趋势;
若否,则确定所述工控设备运行异常。
在上述实现过程中,通过从趋势检测维度来检测工控设备的响应值是否异常,如此可实现对工控设备更多的异常情况进行检测。
可选地,所述根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测,包括:
从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;
判断返回的相邻两个响应值的增减趋势的持续时间是否符合预期持续时间;
若否,则确定所述工控设备运行异常。
在上述实现过程中,通过从趋势检测维度来检测工控设备的响应值是否异常,如此可实现对工控设备更多的异常情况进行检测。
可选地,所述第二网络流量中记录有所述工控设备的输出信息,对所述工控设备的异常状态进行检测,还包括:
根据所述第二网络流量判断所述工控设备是否主动输出预设相关信息,若是,则确定所述工控设备运行异常;
和/或,根据所述第二网络流量判断所述工控设备持续输出的相关信息是否存在丢失,若是,则确定所述工控设备运行异常。
在上述实现过程中,通过对工控设备的主动输出异常以及输出信息的异常方面进行检测,如此可实现对工控设备更多的异常情况进行检测。
可选地,对所述工控设备的异常状态进行检测,还包括:
接收所述网络探针上报的检测日志,所述检测日志包括所述网络探针根据所述第二网络流量判断所述工控设备是否主动输出预设相关信息所确定的判断结果,和/或,所述检测日志包括所述网络探针根据所述第二网络流量判断所述工控设备持续输出的相关信息是否存在丢失所确定的判断结果;
根据所述检测日志确定所述工控设备是否异常。
在上述实现过程中,通过网络探针来对工控设备的主动输出异常以及输出信息的异常方面进行检测,如此可实现对工控设备更多的异常情况进行检测,而不用检测设备来进行检测,可有效减少检测设备的检测资源的占用,提高检测效率。
可选地,在确定所述工控设备为异常状态后,还包括:
生成相应的告警信息,并将所述告警信息发送给所述终端探针,以使所述终端探针输出所述告警信息。如此可使得工作人员及时发现异常情况,进而可及时采取相应措施进行处理,避免造成较大损失的情况。
第二方面,本申请实施例提供了一种异常检测装置,所述装置包括:
流量获取模块,用于获取安装在工控主机上的终端探针发送的所述工控主机与工控设备之间通信的第一网络流量,以及获取安装在外部网络设备上的网络探针发送的针对所述工控设备的第二网络流量;
异常检测模块,用于根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测。
第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本发明实施例中的术语“系统”和“网络”可被互换使用。“多个”是指两个或两个以上,鉴于此,本发明实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
本申请实施例提供一种异常检测方法,该方法通过获取工控主机与工控设备之间通信的第一网络流量以及工控设备的第二网络流量,基于这两部分网络流量来对工控设备的异常状态进行检测,如此可从工控主机与工控设备这两个设备处获取更多的网络流量来对工控设备进行异常分析,从而可对工控设备的异常情况进行更全面的检测,进而可大大减少漏检情况的发生,进一步提升对工控设备的安全检测能力。
请参照图1,图1为本申请实施例提供的一种异常检测方法的流程图,该方法包括如下步骤:
步骤S110:获取安装在工控主机上的终端探针发送的工控主机与工控设备之间通信的第一网络流量,以及获取安装在外部网络设备上的网络探针发送的针对工控设备的第二网络流量。
其中,工控主机可用于对工控设备进行状态监控、获取工控设备的运行数据、向工控设备发送运行指令等操作,工控主机与工控设备之间可实现数据交互,工控设备可以是指工业系统中的多种设备,比如压力机、温度器等设备。为了对这些工控设备的异常运行状态进行监测,本申请可以通过一外部的协同分析器来实现工控设备的异常检测。
如图2所示,本申请提供一种异常检测系统,该异常检测系统200包括工控主机210、通信设备220、协同分析器230、NTP(Network Time Protocol,网络时间控制)服务器240以及外部网络设备250,工控主机210上安装有终端探针,外部网络设备250上安装有网络探针,协同分析器230可通过通信设备220与终端探针和网络探针进行通信,通信设备220可如交换机、路由器等数据传输设备,而通信设备220与工控设备连接,工控设备与工控主机210连接。
其中,NTP服务器240可用于同步异常检测系统中这些设备以及工控设备之间的时间,确保这些设备的时间同步。
工控主机210上的终端探针可以用于监听工控主机210上网卡的网络流量,这些网络流量包括工控主机210与工控设备之间通信的第一网络流量,终端探针获取到的网络流量还包括工控主机210从外部设备接收到的视频、音频等数据,这些数据不需要上传给协同分析器230,所以终端探针可从获取的网络流量中筛选出第一网络流量。这里筛选的方式可以是根据网络流量的五元组信息来进行筛选的,通过五元组信息即可知晓哪些流量是工控主机210与工控设备之间通信的流量。然后终端探针可主动将第一网络流量发送给协同分析器230。这里为了提高传输效率,终端探针可以将第一网络流量生成流量日志,然后分批上报给协同分析器230,如每隔设定时间(如每隔5分钟)将第一网络流量发送给协同分析器230。
或者,终端探针也可在接收到协同分析器230的数据获取指令时才将第一网络流量发送给协同分析器230,比如协同分析器230可以每隔设定时间向终端探针发送数据获取指令,终端探针接收到数据获取指令后,即可筛选出第一网络流量发送给协同分析器230。
网络探针安装在外部网络设备250中,这样网络探针可对工控设备的交换机网络的镜像接口流量进行采集与解析,如此可采集获得工控设备向外部输出的第二网络流量。网络探针也可每隔设定时间主动向协同分析器230发送自己采集的第二网络流量,或者也可以是协同分析器230每隔设定时间向网络探针发送数据获取指令,网络探针接收到数据获取指令后,再将自己采集到的第二网络流量发送给协同分析器230。
步骤S120:根据第一网络流量和第二网络流量对工控设备的异常状态进行检测。
协同分析器可获得终端探针发送的第一网络流量以及网络探针发送的第二网络流量,然后可根据第一网络流量和第二网络流量来对工控设备进行异常状态检测,例如检测工控设备的运行、与工控主机的交互、输出数据等异常情况,具体异常检测方式后续实施例将作详细介绍,在此先不过多赘述。
在上述实现过程中,通过获取工控主机与工控设备之间通信的第一网络流量以及工控设备的第二网络流量,基于这两部分网络流量来对工控设备的异常状态进行检测,如此可从工控主机与工控设备这两个设备处获取更多的网络流量来对工控设备进行异常分析,从而可对工控设备的异常情况进行更全面的检测,进而可大大减少漏检情况的发生,进一步提升对工控设备的安全检测能力。
在上述实施例的基础上,下面针对协同分析器利用第一网络流量和第二网络流量对工控设备进行异常状态检测的方式进行详细介绍,主要包括有以下几个方面:对工控设备与工控主机之间的数据一致性进行检测;从值域、时域、频域以及趋势等几个维度对工控设备的响应情况进行异常检测;对工控设备的输出信息进行异常检测等几个方面。
对于这几个方面的异常检测,具体包括如下几种检测方式:
(1)信息一致性检测:从第一网络流量以及第二网络流量中筛选出工控设备发送给工控主机的输出数据包,以及从第一网络流量中筛选出工控主机从工控设备处的接收数据包,然后根据数据包的特征信息判断在小于设定时间间隔内的输出数据包与接收数据包是否相同,若不相同,则确定工控设备的输出数据包被异常篡改。
其中,终端探针可以获取到工控设备输出给工控主机的输出数据包,这些输出数据包可以是工控设备主动输出的,也可以是工控设备基于工控主机的相关指令输出的,而网络探针可以监测到通信设备上的镜像接口的网络流量,所以工控设备的所有输出接口的流量都可以转发到镜像接口,如此网络探针可以采集到工控设备的所有输出流量,包括被动输出流量和主动输出流量,所以工控设备输出给工控主机的数据包也会被网络探针所采集到。
因此,协同分析器在获得第一网络流量和第二网络流量后,可从中筛选出工控设备发送给工控主机的输出数据包,而第一网络流量包含工控设备与工控主机之间的交互流量,所以可以从第一网络流量中筛选出工控主机从工控设备处接收到的接收数据包。这里在进行数据包筛选时,可以根据数据包的五元组信息来进行筛选,如五元组信息包括源IP地址、源端口、目的IP地址、目的端口以及协议号。比如在筛选输出数据包以及接收数据包时,可从网络流量中筛选出源IP地址是工控设备的IP地址,目的IP地址是工控主机的IP地址的数据包。
为了判断工控设备输出给工控主机的数据是否与工控主机接收到的数据一致,所以可以判断在设定时间间隔内(这里的设定时间间隔的具体值可以根据实际需求灵活设置),输出数据包与接收数据包是否相同,这里判断是否相同,可以是将每个输出数据包与每个接收数据包的五元组信息进行匹配,以匹配两个数据包的五元组信息是否相同。比如一共有200个输出数据包,有200个接收数据包,针对每个输出数据包,找到与该输出数据包的五元组信息一致的接收数据包,并且其输出时间与接收时间之间的间隔若小于设定时间间隔,则表示这两个数据包相同,按照这样的方式判断,若有的输出数据包有与之相同的接收数据包,则可确定工控设备输出的该输出数据包没有被异常篡改,但是若有的输出数据包没有与之相同的接收数据包,则确定工控设备输出的该输出数据包被异常篡改了,如此可判断工控设备的输出信息是否与工控主机的接收信息一致,当网络传输过程中发生信息篡改时,则会导致两者信息不一致,从而可确定工控设备遭受了非法人员进行信息篡改类的攻击,而这种情况下工业厂商自己部署的安全检测系统则可能检测到的是正常情况而不会产生告警。
在上述实现过程中,通过检测工控设备的输出数据与工控主机的接收数据的一致性,如此可检测工控设备的输出数据是否被非法篡改的异常。
(2)值域检测:从第一网络流量以及第二网络流量中筛选出工控设备针对工控主机的数据请求返回的响应值,然后判断响应值是否在对应的预设阈值范围内,若否,则确定工控设备运行异常。
工控主机为了监测工控设备的运行状态,可以定时向工控设备请求数据,即工控主机可以定时向工控设备发送数据请求,比如获取温度、获取压力等数据,工控设备接收到数据请求后,向工控主机返回对应的响应值,比如是获取温度的数据请求,则工控设备返回的响应值是指温度,若是获取压力的数据请求,则工控设备返回的响应值是指压力。
为了判断其运行状态是否异常,可判断返回的响应值是否在对应的预设阈值范围内,比如温度,如果当前返回的温度超出预设阈值范围,则可认为此时工控设备运行异常,比如温度传感设备损坏,或者其他情况等。
可以理解地,这里的预设阈值范围可以针对不同的数据设置不同的范围,比如温度对应一个阈值范围,而压力对应一个阈值范围,其具体数值可以根据实际需求灵活设置,其阈值范围可以是连续的,也可以是离散的。
在上述实现过程中,通过从值域检测维度来检测工控设备的响应值是否异常,如此可实现对工控设备更多的异常情况进行检测。
(3)时域检测:从第一网络流量以及第二网络流量中筛选出工控设备针对工控主机的数据请求返回的响应值,然后判断响应值是否处于当前时间内的正常阈值范围内,若否,则确定工控设备运行异常。
由于在不同时间段,工控设备的运行状态可能不同,比如对于锅炉烧水,其温度是缓慢上升的,直至到达沸水温度,所以不同时间段内检测到的温度值应该不同。在该检测方式中,可以针对不同时间段设置不同的阈值范围,而不同的数据对应的阈值范围也不同,比如对于温度,其可对应有三个时间段的正常阈值范围,对于压力,其可对应有四个时间段的正常阈值范围。
如果当前工控主机请求获取的数据是温度,则可先获取工控设备返回对应温度值的当前时间,然后查找当前时间所在的时间段,并获得对应时间段对应的正常阈值范围,再判断返回的温度值是否在该正常阈值范围内,如果不是,则确定工控设备运行异常,反之,如果是,则确定工控设备运行正常。
在上述实现过程中,通过从时域检测维度来检测工控设备的响应值是否异常,如此可实现对工控设备更多的异常情况进行检测。
(4)频域检测:从第一网络流量以及第二网络流量中筛选出工控设备针对工控主机的数据请求返回的响应值,然后判断响应值返回的响应频率是否在设定频率范围内,若否,则确定工控设备运行异常。
比如,工控主机只向工控设备发送了一次数据请求,而在设定时间内工控设备返回了多个响应值,也就是说,工控设备返回响应值的时间可能并不是根据工控设备的数据请求来返回的,如果其针对一次数据请求返回多次响应值,所以可以统计针对工控主机的一次数据请求或多次数据请求时,工控设备返回的响应值的数量和时间,然后统计响应值的响应频率。
可以预先配置好对应的设定频率范围,当然对于不同的数据,其可以设置不同的设定频率范围,若响应频率不在设定频率范围内,比如大于设定频率范围的最大频率阈值,或小于设定频率范围的最小频率阈值,则可认为工控设备运行异常,比如工控设备可能遭受了资源消耗类型的拒绝服务攻击。
在上述实现过程中,通过从频域检测维度来检测工控设备的响应值是否异常,如此可实现对工控设备更多的异常情况进行检测。
(5)趋势检测:从第一网络流量以及第二网络流量中筛选出工控设备针对工控主机的数据请求返回的响应值,然后判断返回的相邻两个响应值的增减趋势是否符合预设趋势,若否,则确定工控设备运行异常。
这种情况下,其返回的响应值是指针对同一种数据请求所返回的,比如都是针对温度数据请求所返回的温度值,比如,在锅炉烧水阶段,其温度应该是缓慢上升的,烧开之后如果需要降温,则温度是缓慢下降的。所以工控主机若在比较小的时间间隔内连续请求温度数据,此时工控设备返回的两个温度值应该是呈一定趋势的,比如是呈递增趋势或递减趋势。
当然,这里的预设趋势可以是根据实际情况而设置的,比如针对不同的数据,其预设趋势不同,或者在不同的时间段内,其预设趋势也不同,如是工控设备返回的响应值的增减趋势不符合预设趋势,则确定工控设备运行异常,反之,如果符合预设趋势,则表征工控设备运行正常。
如图3所示,在正常情况下,其在2-4这个时间段内,返回的响应值应该是呈下降趋势的,但是在异常情况下,在2-4这个时间段内,返回的响应值呈递增趋势,如此可表明这个时间段内返回的响应值的增减趋势不符合预设趋势的,说明工控设备运行异常。
需要说明的是,这里也不仅仅是指相邻两个响应值的增减趋势,也可以是指相邻多个响应值的增减趋势,或者在一定周期内的相邻多个响应值的增减趋势。
(6)趋势检测:从第一网络流量以及第二网络流量中筛选出工控设备针对工控主机的数据请求返回的响应值,判断返回的相邻两个响应值的增减趋势的持续时间是否符合预期持续时间,若否,则确定工控设备运行异常。
这里可以理解为是在一段时间内,工控设备返回的响应值应该是呈某个增减趋势的,比如图3中在2-4这个时间段内,各个相邻响应值都是呈递减趋势的,如果工控主机连续请求多次,在这个时间段内检测到某两个相邻响应值之间是呈递增趋势的或者超出这个时间段内还检测到某两个相邻响应值之间依然呈递减趋势,则说明在这个持续时间内,当前趋势发生变化的拐点与预计时间提前或滞后,或者在不应该出现拐点的时间出现了拐点,也就是说,当前趋势的持续时间不符合预期持续时间,则表明工控设备未按预期的状态运行,此时可确定工控设备运行异常,反之,若当前趋势的持续时间符合预期持续时间,则确定工控设备运行正常。
在上述实现过程中,通过从趋势检测维度来检测工控设备的响应值是否异常,如此可实现对工控设备更多的异常情况进行检测。
另外,需要说明的是,在上述六种检测方式中,其从第一网络流量以及第二网络流量中筛选出响应值是指筛选出工控设备针对工控主机的数据请求所返回的数据包,比如可以先从第一网络流量中筛选出工控主机向工控设备发送的数据请求的数据包,针对这些数据包,再从第一网络流量和第二网络流量中筛选出响应该数据包的回复数据包,这些回复数据包即是工控设备针对工控主机返回的响应值,而针对每个响应值,均可按照下述方式进行判断,比如若有其中一个响应值或者是一定数量的响应值不符合对应的判断条件,则确定工控设备运行异常,反之,如果符合对应的判断条件,则确定工控设备运行正常。
所以,通过上述的多种检测方式,可以在不改变工业厂商原有的工业监控组态工程(这个可以理解为是工业厂商自己的安全检测系统)的前提下,提供对工控设备的异常检测能力,通过上述的四个维度(即值域、时域、频域以及趋势)来重点分析工控设备的输出异常,提高了整个工控网络系统的异常检测能力。
另外,在一些其他实施方式中,本申请的方案还可以针对工控设备的其他异常输出进行检测,如可通过网络探针根据第二网络流量判断工控设备是否主动输出预设相关信息,若是,则确定工控设备运行异常,和/或,通过网络探针根据第二网络流量判断工控设备持续输出的相关信息是否存在丢失,若是,则确定工控设备运行异常,网络探针可将检测获得的判断结果生成检测日志,将检测日志上报给协同分析器,这样协同分析器即可根据检测日志来确定工控设备是否异常,如检测日志中的判断结果为表征工控设备异常,此时则协同分析器可直接确定工控设备运行异常,若检测日志中的判断结果为表征工控设备正常,此时协同分析器也可直接确定工控设备运行正常。
由于网络探针可以采集到工控设备的所有输出流量,所以可以从第二网络流量中筛选出工控设备自己主动输出的流量,即不是针对工控主机的请求而输出的数据,比如工控设备主动向外部网络发送如邮件、SNMP Trap、Syslog等信息(这些信息即可设置为预设相关信息),对于这些信息网络探针可直接确定是工控设备的主动输出行为,其可能遭受信息攻击,所以此时可确定工控设备运行异常。
而工控设备持续输出的相关信息存在丢失是指工控设备针对工控主机的连续请求的某个数据不进行响应,比如工控主机第一次请求获取温度数据,工控设备返回了对应的温度值,工控主机第二次再次请求获取温度数据,工控设备返回了对应的温度值,但是在工控主机第三次请求获取温度数据时,工控设备未进行响应,即没有返回对应的温度值,此时就可以理解为工控设备连续输出的相关信息存在丢失,即针对工控主机连续请求的同一种数据,工控设备针对某次请求不进行响应,则表明此时工控设备运行异常,反之,如果工控设备针对工控主机的每次请求都进行了响应,当然还需要根据上述的检测方式来判断其响应值是否符合预期,如此可进一步确定工控设备是否运行异常。
如此本方案的检测方法可以关注到工控设备的输出信息,不仅针对工控主机的数据请求的响应信息,也可以对工控设备主动发出的行为进行检测,从而可发现疑似APT行为等异常情况。当然,这种异常检测情况的方式也可以由协同分析器来检测,只是由网络探针来检测时,可以减少协同分析器的工作量,提高检测效率。
而通过协同分析器来进行异常检测时,网络探针在上报给协同分析器的第二网络流量中可记录有工控设备的输出信息,这样协同分析器即可根据第二网络流量来判断工控设备是否主动输出预设相关信息,若是,则确定工控设备运行异常,和/或,根据第二网络流量判断工控设备持续输出的相关信息是否存在丢失,若是,则确定工控设备运行异常。可以理解地,这里由协同分析器进行异常检测的过程和上述由网络探针进行异常检测的过程类似,在此不再重复赘述。
在上述实施例的基础上,为了使得工作人员能够及时发现工控设备的异常情况,可在确定工控设备为异常状态后,协同分析器生成相应的告警信息,并将该告警信息发送给终端探针,由终端探针输出相应的告警信息。
例如,协同分析器在通过上述的多种检测方式确定工控设备运行异常后,可向终端探针发送告警信息,终端探针接收到告警信息后,可输出相应的告警信息,告警信息可包括具体的运行异常情况等。而网络探针在确定工控设备运行异常时,也可以向终端探针发送告警信息,进而终端探针可输出相应的告警信息,如是否是工控设备主动输出信息或者是输出的信息存在丢失等异常情况。
在上述实现过程中,通过终端探针输出告警信息,增加了工作人员获取工控设备的异常情况的渠道(还包括从工业厂商自己部署的安全检测系统中获取),在不影响其原有安全检测系统的情况下,大大提高了整个工控系统的安全性,且提高了对工控设备的异常情况检测的能力。
所以,本申请的异常检测方法具有如下好处:
(1)本方案可以从多个方面进行异常情况检测,包括但不限于:网络数据被篡改、工控主机中关键组件被篡改、工控设备主动向外发送数据等。并且,从四个维度(值域、时域、频域和趋势)来分析工控设备的响应信息的异常情况,可有效提高对整个工业系统的安全性检测能力。
(2)单独将工控设备的主动输出的异常检测部署到独立的网络探针中,而非通过协议分析器来分析流量进行检测,如此可以有效提高异常情况检测的效率。并且,网络探针发现的异常情况可以同时上报协同分析器和终端探针,既可以提高工控主机提示该类异常情况的及时性,又可以确保协同分析器保存所有威胁数据的完整性,从而后续协同分析器可以进行更深入地关联异常行为分析。
请参照图4,图4为本申请实施例提供的一种异常检测装置300的结构框图,该装置300可以是电子设备上的模块、程序段或代码。应理解,该装置300与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置300具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
可选地,所述装置300包括:
流量获取模块310,用于获取安装在工控主机上的终端探针发送的所述工控主机与工控设备之间通信的第一网络流量,以及获取安装在外部网络设备上的网络探针发送的针对所述工控设备的第二网络流量;
异常检测模块320,用于根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测。
可选地,所述异常检测模块320,用于从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备发送给所述工控主机的输出数据包,以及从所述第一网络流量中筛选出所述工控主机从所述工控设备处的接收数据包;根据数据包的特征信息判断在小于设定时间间隔内的所述输出数据包与所述接收数据包是否相同;若不相同,则确定所述工控设备的输出数据包被异常篡改。
可选地,所述异常检测模块320,用于从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;判断所述响应值是否在对应的预设阈值范围内;若否,则确定所述工控设备运行异常。
可选地,所述异常检测模块320,用于从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;判断所述响应值是否处于当前时间内的正常阈值范围内;若否,则确定所述工控设备运行异常。
可选地,所述异常检测模块320,用于从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;判断所述响应值返回的响应频率是否在设定频率范围内;若否,则确定所述工控设备运行异常。
可选地,所述异常检测模块320,用于从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;判断返回的相邻两个响应值的增减趋势是否符合预设趋势;若否,则确定所述工控设备运行异常。
可选地,所述异常检测模块320,用于从所述第一网络流量以及所述第二网络流量中筛选出所述工控设备针对所述工控主机的数据请求返回的响应值;判断返回的相邻两个响应值的增减趋势的持续时间是否符合预期持续时间;若否,则确定所述工控设备运行异常。
可选地,所述第二网络流量中记录有所述工控设备的输出信息,所述异常检测模块320,还用于根据所述第二网络流量判断所述工控设备是否主动输出预设相关信息,若是,则确定所述工控设备运行异常;和/或,根据所述第二网络流量判断所述工控设备持续输出的相关信息是否存在丢失,若是,则确定所述工控设备运行异常。
可选地,所述异常检测模块320,还用于接收所述网络探针上报的检测日志,所述检测日志包括所述网络探针根据所述第二网络流量判断所述工控设备是否主动输出预设相关信息所确定的判断结果,和/或,所述检测日志包括所述网络探针根据所述第二网络流量判断所述工控设备持续输出的相关信息是否存在丢失所确定的判断结果;根据所述检测日志确定所述工控设备是否异常。
可选地,所述装置300还包括:
告警模块,用于生成相应的告警信息,并将所述告警信息发送给所述终端探针,以使所述终端探针输出所述告警信息。
需要说明的是,本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再重复描述。
请参照图5,图5为本申请实施例提供的一种用于执行异常检测方法的电子设备的结构示意图,所述电子设备可以包括:至少一个处理器410,例如CPU,至少一个通信接口420,至少一个存储器430和至少一个通信总线440。其中,通信总线440用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口420用于与其他节点设备进行信令或数据的通信。存储器430可以是高速RAM存储器,也可以是非易失性的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器430可选的还可以是至少一个位于远离前述处理器的存储装置。存储器430中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器410执行时,电子设备执行上述图1所示方法过程。
可以理解,图5所示的结构仅为示意,所述电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,执行如图1所示方法实施例中电子设备所执行的方法过程。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:获取安装在工控主机上的终端探针发送的所述工控主机与工控设备之间通信的第一网络流量,以及获取安装在外部网络设备上的网络探针发送的针对所述工控设备的第二网络流量;根据所述第一网络流量与所述第二网络流量对所述工控设备的异常状态进行检测。
综上所述,本申请实施例提供一种异常检测方法、装置、电子设备及存储介质,该方法通过获取工控主机与工控设备之间通信的第一网络流量以及工控设备的第二网络流量,基于这两部分网络流量来对工控设备的异常状态进行检测,如此可从工控主机与工控设备这两个设备处获取更多的网络流量来对工控设备进行异常分析,从而可对工控设备的异常情况进行更全面的检测,进而可大大减少漏检情况的发生,进一步提升对工控设备的安全检测能力。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。