本申请涉及工控安全技术领域,尤其涉及一种攻击检测方法、装置、电子设备及存储介质。
背景技术:
随着工控安全技术的不断发展,工控攻击形式也在增加,例如时延攻击,即外部攻击者通过对合法指令的发送时间进行调整,使工控系统进入异常状态。
在现有技术中,通常采用工控防火墙来保障系统的安全性,目前的工控防火墙支持的指令时延检测,通常是根据两个相邻报文之间的时间差,来判断工控系统是否存在遭受时延攻击的风险。
但是,在基于现有技术进行攻击检测时,需要在接收到后一报文前提下,才能对当前报文的安全性进行检测,检测效率较低,无法及时进行报警,不利于保障工控系统的安全。因此,急需一种检测效率较高的攻击检测方法,对提高工控系统的安全性有重要意义。
技术实现要素:
本申请提供一种攻击检测方法、装置、电子设备及存储介质,以解决现有技术的检测效率较低等缺陷。
本申请第一个方面提供一种攻击检测方法,包括:
获取待检测工控系统中的当前报文及当前预设的时延检测规则;
根据所述时延检测规则,确定所述当前报文在预设的哈希链表中对应的哈希节点,并将所述当前报文的当前时间戳存储到所述哈希节点;
监控所述哈希节点所存储的当前时间戳和当前系统时间之间的时间差,当所述当前时间戳与当前系统时间之间的时间差超出预设的安全区间时,生成指令超时报警信息。
可选的,在将所述当前报文的当前时间戳存储到所述哈希节点之前,所述方法还包括:
获取所述哈希节点存储的前一报文的时间戳;
根据所述前一报文的时间戳和所述当前时间戳,确定所述当前报文与前一报文之间的间隔时间;
根据所述间隔时间与所述安全区间之间的关系,判断所述当前报文是否为正常报文;
当确定所述当前报文是正常报文时,执行所述将所述当前报文的当前时间戳存储到所述哈希节点的步骤。
可选的,在获取所述哈希节点存储的前一报文的时间戳之前,所述方法还包括:
根据所述当前报文对应的报文类型,判断所述当前报文是否为首包;
当所述当前报文为首包时,执行所述将所述当前报文的当前时间戳存储到所述哈希节点的步骤。
可选的,所述根据所述间隔时间与所述安全区间之间的关系,判断所述当前报文是否为正常报文,包括:
判断所述间隔时间是否低于所述安全区间;
当确定所述间隔时间属于所述安全区间时,确定所述当前报文为正常报文;
当确定所述间隔时间低于所述安全区间时,确定所述当前报文为异常报文。
可选的,在确定所述当前报文为异常报文之后,所述方法还包括:
生成指令提前报警信息。
可选的,所述监控所述哈希节点所存储的当前时间戳和当前系统时间之间的时间差,包括:
利用预设的定时器,按照预设的检测周期,检测所述哈希节点所存储的当前时间戳和当前系统时间之间的时间差。
可选的,还包括:
对所生成的指令超时报警信息或指令提前报警信息进行报出。
本申请第二个方面提供一种攻击检测装置,包括:
获取模块,用于获取待检测工控系统中的当前报文及当前预设的时延检测规则;
缓存模块,用于根据所述时延检测规则,确定所述当前报文在预设的哈希链表中对应的哈希节点,并将所述当前报文的当前时间戳存储到所述哈希节点;
检测模块,用于监控所述哈希节点所存储的当前时间戳和当前系统时间之间的时间差,当所述当前时间戳与当前系统时间之间的时间差超出预设的安全区间时,生成指令超时报警信息。
可选的,所述装置还包括判断模块,用于:
获取所述哈希节点存储的前一报文的时间戳;
根据所述前一报文的时间戳和所述当前时间戳,确定所述当前报文与前一报文之间的间隔时间;
根据所述间隔时间与所述安全区间之间的关系,判断所述当前报文是否为正常报文;
当确定所述当前报文是正常报文时,执行所述将所述当前报文的当前时间戳存储到所述哈希节点的步骤。
可选的,所述判断模块,还用于:
根据所述当前报文对应的报文类型,判断所述当前报文是否为首包;
当所述当前报文为首包时,执行所述将所述当前报文的当前时间戳存储到所述哈希节点的步骤。
可选的,所述判断模块,具体用于:
判断所述间隔时间是否低于所述安全区间;
当确定所述间隔时间属于所述安全区间时,确定所述当前报文为正常报文;
当确定所述间隔时间低于所述安全区间时,确定所述当前报文为异常报文。
可选的,所述判断模块,还用于:
生成指令提前报警信息。
可选的,所述检测模块,具体用于:
利用预设的定时器,按照预设的检测周期,检测所述哈希节点所存储的当前时间戳和当前系统时间之间的时间差。
可选的,报出模块,用于:
对所生成的指令超时报警信息或指令提前报警信息进行报出。
本申请第三个方面提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请第四个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请技术方案,具有如下优点:
本申请提供的攻击检测方法、装置、电子设备及存储介质,通过获取待检测工控系统中的当前报文及当前预设的时延检测规则;根据时延检测规则,确定当前报文在预设的哈希链表中对应的哈希节点,并将当前报文的当前时间戳存储到哈希节点;监控哈希节点所存储的当前时间戳和当前系统时间之间的时间差,当当前时间戳与当前系统时间之间的时间差超出预设的安全区间时,生成指令超时报警信息。上述方案提供的方法,通过对当前报文的当前时间戳的存储时间进行监控,来判断还未接收到的后一报文是否存在指令超时风险,提高了检测效率,为提高工控系统的安全性奠定了基础。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例基于的攻击检测系统的结构示意图;
图2为本申请实施例提供的攻击检测方法的流程示意图;
图3为本申请实施例提供的攻击检测装置的结构示意图;
图4为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在现有技术中,通常是采用工控防火墙来保障系统的安全性,目前的工控防火墙支持的指令时延检测,通常是根据两个相邻报文之间的时间差,来判断工控系统是否存在遭受时延攻击的风险。但是,在基于现有技术进行攻击检测时,需要在接收到后一报文前提下,才能对当前报文的安全性进行检测,检测效率较低,无法及时进行报警,不利于保障工控系统的安全。
针对上述问题,本申请实施例提供的攻击检测方法、装置、电子设备及存储介质,通过获取待检测工控系统中的当前报文及当前预设的时延检测规则;根据时延检测规则,确定当前报文在预设的哈希链表中对应的哈希节点,并将当前报文的当前时间戳存储到哈希节点;监控哈希节点所存储的当前时间戳和当前系统时间之间的时间差,当当前时间戳与当前系统时间之间的时间差超出预设的安全区间时,生成指令超时报警信息。上述方案提供的方法,通过对当前报文的当前时间戳的存储时间进行监控,来判断还未接收到的后一报文是否存在指令超时风险,提高了检测效率,为提高工控系统的安全性奠定了基础。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。
首先,对本申请所基于的攻击检测系统的结构进行说明:
本申请实施例提供的攻击检测方法、装置、电子设备及存储介质,适用于对工控系统中可能存在的攻击风险进行检测。如图1所示,为本申请实施例基于的攻击检测系统的结构示意图,主要包括数据采集装置和用于进行攻击检测的攻击检测装置。具体地,数据采集装置用于采集待检测工控系统中的报文,以及当前操作人员设置的时延检测规则,并将所采集到的当前报文和当前操作人员所设置的时延检测规则发送给攻击检测装置,攻击检测装置根据所得到的数据进行攻击检测。
本申请实施例提供了一种攻击检测方法,用于对工控系统中可能存在的攻击风险进行检测。本申请实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于进行攻击检测的电子设备。
如图2所示,为本申请实施例提供的攻击检测方法的流程示意图,该方法包括:
步骤201,获取待检测工控系统中的当前报文及当前预设的时延检测规则。
需要解释的是,当前预设的时延检测规则是指操作人员提前设定的时延检测规则,时延检测规则根据实际情况进行设定。当操作人员对时延检测规则进行更新时,则获取操作人员更新的时延检测规则,根据更新的时延检测规则重新编译哈希链表。
步骤202,根据时延检测规则,确定当前报文在预设的哈希链表中对应的哈希节点,并将当前报文的当前时间戳存储到哈希节点。
示例性的,若时延检测规则是根据报文的五元组确定节点位置,预设的安全区间为[420ms,580ms],则五元组相同的报文将落到同一哈希节点。
需要解释的是,五元组是指源ip地址、源端口、目的ip地址、目的端口和传输层协议这五个量组成的一个集合。
具体地,可以根据当前报文的五元组,确定当前报文对应的哈希节点。其中,当前时间戳是指待检测工控系统接收到当前报文的时间。
需要进一步解释的是,时延检测规则不仅仅明确了安全区间,还确定了当前报文和其他报文之间的匹配关系。例如源ip地址相匹配、源端口相同匹配目的ip地址相匹配等。
相反的,若所得到的当前报文在哈希链表中没有对应的哈希节点,则可以返回到步骤201,等待后一报文的到来,并重新获取。
步骤203,监控哈希节点所存储的当前时间戳和当前系统时间之间的时间差,当当前时间戳与当前系统时间之间的时间差超出预设的安全区间时,生成指令超时报警信息。
需要解释的是,当前时间戳和当前系统时间之间的时间差,即为当前时间戳在哈希节点所存储的时长。
具体地,在一实施例中,可以利用预设的定时器,按照预设的检测周期,检测哈希节点所存储的当前时间戳和当前系统时间之间的时间差。
其中,为了保障监控结果的精确度,所利用的定时器可以是毫秒级定时器,检测周期可以根据实际情况进行设定,本申请实施例不做限定。
具体地,定时扫描哈希链表中的各哈希节点,以得到各哈希节点所存储的时间戳,进而确定各哈希节点对应的存储时长。
具体地,在接收到对应的后一报文时,将后一报文的时间戳存储到上述当前报文对应的哈希节点,以替换上述当前时间戳。在后一报文到来之前,将持续监控当前时间戳在哈希节点的存储时长,若该哈希节点所存储的时间戳长时间没有得到更新,也就是后一报文迟迟不到,则可以确定后一报文存在时延攻击风险。因此,为了保障工控系统的安全性,在当前时间戳在哈希节点所存储的时长超出安全区间时,生成指令超时报警信息,以提醒操作人员提前采取防御措施。
在上述实施例的基础上,由于工控系统所接收到控制指令无论是延时接收还是提前接收,均可能会对工控系统的安全性造成威胁。因此,为了进一步保障工控系统的安全性,作为一种可实施的方式,在上述实施例的基础上,在一实施例中,在将当前报文的当前时间戳存储到哈希节点之前,该方法还包括:
步骤301,获取哈希节点存储的前一报文的时间戳;
步骤302,根据前一报文的时间戳和当前时间戳,确定当前报文与前一报文之间的间隔时间;
步骤303,根据间隔时间与安全区间之间的关系,判断当前报文是否为正常报文;
步骤304,当确定当前报文是正常报文时,执行将当前报文的当前时间戳存储到哈希节点的步骤。
具体地,在一实施例中,判断间隔时间是否低于安全区间;当确定间隔时间属于安全区间时,确定当前报文为正常报文;当确定间隔时间低于安全区间时,确定当前报文为异常报文。
进一步的,在一实施例中,在确定当前报文为异常报文之后,可以生成指令提前报警信息。
具体地,在得到当前报文时,首先确定当前报文与对应的前一报文之间的间隔时间,若这两个报文之间的间隔时间低于安全区间,则可以确定当前报文属于提前接收的报文。为了保障工控系统的安全性,生成指令提前报警信息,以提醒操作人员及时采取具有针对性的防御措施。
具体地,在一实施例中,在获取哈希节点存储的前一报文的时间戳之前,还可以根据当前报文对应的报文类型,判断当前报文是否为首包;当当前报文为首包时,执行将当前报文的当前时间戳存储到哈希节点的步骤。
具体地,若所收到的当前报文为首包,则可以确定不存在前一报文,即当前报文对应哈希节点为空节点,可以直接将当前节点的当前时间戳存储到对应的哈希节点。
具体地,在一实施例中,可以对所生成的指令超时报警信息或指令提前报警信息进行报出。
其中,以上两种报警信息可以分别以短信等可视化的方式进行报出,以提醒操作人员及时采取防御措施,以保障工控系统的安全性。
具体地,在生成指令超时报警信息或指令提前报警信息的同时,还可以直接对触发上述报警信息的报文进行拦截,也就是对迟迟不到的后一报文,或提前到达的当前报文进行拦截,使得工控系统中所有具有时间关联的指令都规范运行在合法时延状态,从而消除了工控系统因时延攻击或用户的误操作可能产生的危害。
本申请实施例提供的攻击检测方法,通过获取待检测工控系统中的当前报文及当前预设的时延检测规则;根据时延检测规则,确定当前报文在预设的哈希链表中对应的哈希节点,并将当前报文的当前时间戳存储到哈希节点;监控哈希节点所存储的当前时间戳和当前系统时间之间的时间差,当当前时间戳与当前系统时间之间的时间差超出预设的安全区间时,生成指令超时报警信息。上述方案提供的方法,通过对当前报文的当前时间戳的存储时间进行监控,来判断还未接收到的后一报文是否存在指令超时风险,提高了检测效率,为提高工控系统的安全性奠定了基础。并且,还可以对提前到达的当前报文进行拦截和报警,进一步保障了工控系统的安全性。
本申请实施例提供了一种攻击检测装置,用于执行上述实施例提供的攻击检测方法。
如图3所示,为本申请实施例提供的攻击检测装置的结构示意图。该攻击检测装置30包括获取模块301、缓存模块302和检测模块303。
其中,获取模块,用于获取待检测工控系统中的当前报文及当前预设的时延检测规则;缓存模块,用于根据时延检测规则,确定当前报文在预设的哈希链表中对应的哈希节点,并将当前报文的当前时间戳存储到哈希节点;检测模块,用于监控哈希节点所存储的当前时间戳和当前系统时间之间的时间差,当当前时间戳与当前系统时间之间的时间差超出预设的安全区间时,生成指令超时报警信息。
具体地,在一实施例中,装置还包括判断模块,用于:
获取哈希节点存储的前一报文的时间戳;
根据前一报文的时间戳和当前时间戳,确定当前报文与前一报文之间的间隔时间;
根据间隔时间与安全区间之间的关系,判断当前报文是否为正常报文;
当确定当前报文是正常报文时,执行将当前报文的当前时间戳存储到哈希节点的步骤。
具体地,在一实施例中,判断模块,还用于:
根据当前报文对应的报文类型,判断当前报文是否为首包;
当当前报文为首包时,执行将当前报文的当前时间戳存储到哈希节点的步骤。
具体地,在一实施例中,判断模块,具体用于:
判断间隔时间是否低于安全区间;
当确定间隔时间属于安全区间时,确定当前报文为正常报文;
当确定间隔时间低于安全区间时,确定当前报文为异常报文。
具体地,在一实施例中,判断模块,还用于:
生成指令提前报警信息。
具体地,在一实施例中,检测模块,具体用于:
利用预设的定时器,按照预设的检测周期,检测哈希节点所存储的当前时间戳和当前系统时间之间的时间差。
具体地,在一实施例中,报出模块,用于:
对所生成的指令超时报警信息或指令提前报警信息进行报出。
关于本实施例中的攻击检测装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供的攻击检测装置,用于执行上述实施例提供的攻击检测方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种电子设备,用于执行上述实施例提供的攻击检测方法。
如图4所示,为本申请实施例提供的电子设备的结构示意图。该电子设备40包括:至少一个处理器41和存储器42;
所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上实施例提供的攻击检测方法。
本申请实施例提供的一种电子设备,用于执行上述实施例提供的攻击检测方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上任一实施例提供的攻击检测方法。
本申请实施例的包含计算机可执行指令的存储介质,可用于存储前述实施例中提供的攻击检测方法的计算机执行指令,其实现方式与原理相同,不再赘述。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
1.一种攻击检测方法,其特征在于,包括:
获取待检测工控系统中的当前报文及当前预设的时延检测规则;
根据所述时延检测规则,确定所述当前报文在预设的哈希链表中对应的哈希节点,并将所述当前报文的当前时间戳存储到所述哈希节点;
监控所述哈希节点所存储的当前时间戳和当前系统时间之间的时间差,当所述当前时间戳与当前系统时间之间的时间差超出预设的安全区间时,生成指令超时报警信息。
2.根据权利要求1所述的方法,其特征在于,在将所述当前报文的当前时间戳存储到所述哈希节点之前,所述方法还包括:
获取所述哈希节点存储的前一报文的时间戳;
根据所述前一报文的时间戳和所述当前时间戳,确定所述当前报文与前一报文之间的间隔时间;
根据所述间隔时间与所述安全区间之间的关系,判断所述当前报文是否为正常报文;
当确定所述当前报文是正常报文时,执行所述将所述当前报文的当前时间戳存储到所述哈希节点的步骤。
3.根据权利要求2所述的方法,其特征在于,在获取所述哈希节点存储的前一报文的时间戳之前,所述方法还包括:
根据所述当前报文对应的报文类型,判断所述当前报文是否为首包;
当所述当前报文为首包时,执行所述将所述当前报文的当前时间戳存储到所述哈希节点的步骤。
4.根据权利要求2所述的方法,其特征在于,所述根据所述间隔时间与所述安全区间之间的关系,判断所述当前报文是否为正常报文,包括:
判断所述间隔时间是否低于所述安全区间;
当确定所述间隔时间属于所述安全区间时,确定所述当前报文为正常报文;
当确定所述间隔时间低于所述安全区间时,确定所述当前报文为异常报文。
5.根据权利要求4所述的方法,其特征在于,在确定所述当前报文为异常报文之后,所述方法还包括:
生成指令提前报警信息。
6.根据权利要求1所述的方法,其特征在于,所述监控所述哈希节点所存储的当前时间戳和当前系统时间之间的时间差,包括:
利用预设的定时器,按照预设的检测周期,检测所述哈希节点所存储的当前时间戳和当前系统时间之间的时间差。
7.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
对所生成的指令超时报警信息或指令提前报警信息进行报出。
8.一种攻击检测装置,其特征在于,包括:
获取模块,用于获取待检测工控系统中的当前报文及当前预设的时延检测规则;
缓存模块,用于根据所述时延检测规则,确定所述当前报文在预设的哈希链表中对应的哈希节点,并将所述当前报文的当前时间戳存储到所述哈希节点;
检测模块,用于监控所述哈希节点所存储的当前时间戳和当前系统时间之间的时间差,当所述当前时间戳与当前系统时间之间的时间差超出预设的安全区间时,生成指令超时报警信息。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的方法。
技术总结