一种工业控制系统的过程控制攻击检测方法及装置与流程

文档序号:20007309发布日期:2020-02-22 03:43阅读:260来源:国知局
一种工业控制系统的过程控制攻击检测方法及装置与流程

本发明涉及工业控制技术领域,尤其涉及一种工业控制系统的过程控制攻击检测方法及装置。



背景技术:

工业控制系统(industrialcontrolsystem,ics)是工业生产中使用的一类控制系统的总称,它包括监控和数据采集系统、分布式控制系统和其他工业部门常见的控制系统,以及用于基础设施的关键小型控制系统。随着工业的发展,ics在提高信息化水平的同时,将原本位于串行链路上的通信协议转移到了tcp/ip上,但是,这种转变也为黑客实施攻击提供了便利。

在工业控制领域,plc控制技术的应用已经成为行业不可或缺的一部分,甚至是当今工业自动化的支柱。ics通过plc控制物理过程。plc对传感器数据执行逻辑操作,将结果输出到执行器,最后作用到物理设备。这种闭环级联反馈使工业过程能够根据所需规则或预定程序自动化进行,而无需人为直接参与。ics攻击的目的是攻击实际的物理设备。基本手段是破坏ics的正常控制过程。对于攻击者而言,plc提供最有效的渗透点,因为它们控制着目标进程。因此,对plc控制器的过程控制攻击是最常见,最有效的攻击方法。

因此如何实现工业控制系统的过程控制攻击检测,已经成为业界亟待解决的技术问题。



技术实现要素:

本发明实施例提供一种工业控制系统的过程控制攻击检测方法及装置,用以解决上述背景技术中提出的技术问题,或至少部分解决上述背景技术中提出的技术问题。

第一方面,本发明实施例提供一种工业控制系统的过程控制攻击检测方法,包括:

获取plc控制逻辑网络流量信息,并根据所述plc控制逻辑网络流量信息获取机器码;

将所述机器码通过预设映射数据库进行反编译处理,得到步进指令代码信息;

对所述步进指令代码信息进行程序流分析得到检测白名单信息;

根据所述检测白名单信息实现过程控制攻击检测。

更具体的,在所述将所述机器码通过预设映射数据库进行反编译处理,得到步进指令代码信息的步骤之前,所述方法还包括:

对步进指令代码信息转换为机器码的过程进行分析,得到步进指令代码信息与机器码的对应关系;

根据所述步进指令代码信息与机器码的对应关系构建预设映射数据库。

更具体的,所述对所述步进指令代码信息进行程序流分析得到检测白名单信息的步骤,具体包括:

对所述步进指令代码信息进行词法分析和语法分析,得到有效地址白名单和有效值域范围白名单;

对所述步进指令代码信息进行语义分析,得到逻辑控制白名单;

根据所述逻辑控制白名单、有效地址白名单和有效值域范围白名单得到检测白名单信息。

更具体的,在所述对所述步进指令代码信息进行词法分析和语法分析的步骤之前,所述方法还包括:

对所述步进指令代码信息进行预处理;

其中所述预处理包括代码段切割和程序压缩处理。

更具体的,所述根据所述检测白名单信息实现过程控制攻击检测的步骤,具体包括:

根据所述检测白名单信息中的有效值域范围白名单和有效地址白名单来实现过程控制攻击被动检测;

根据所述检测白名单信息中的逻辑控制白名单来实现过程控制攻击主动检测。

更具体的,所述根据所述检测白名单信息中的有效值域范围白名单和有效地址白名单来实现过程控制攻击被动检测的步骤,具体包括:

获取plc控制逻辑网络流量信息中的地址信息和数值信息;

根据所述有效地址白名单对所述地址信息进行分析,得到地址分析结果;

根据所述有效值域范围白名单对所述数值信息进行分析,得到数值分析结果;

根据地址分析结果和数值分析结果实现过程控制攻击被动检测。

更具体的,所述根据所述检测白名单信息实现过程控制攻击检测的步骤,具体还包括:

发送读取请求数据,以根据所述读取请求数据获取寄存器数据;

根据所述逻辑控制白名单对所述寄存器数据进行分析,得到逻辑控制分析结果,以根据所述逻辑控制分析结果实现过程控制攻击主动检测。

第二方面,本发明实施例提供一种工业控制系统的过程控制攻击检测装置,包括:

获取模块,用于获取plc控制逻辑网络流量信息,并根据所述plc控制逻辑网络流量信息获取机器码;

反编译模块,用于将所述机器码通过预设映射数据库进行反编译处理,得到步进指令代码信息;

分析模块,用于对所述步进指令代码信息进行程序流分析得到检测白名单信息;

检测模块,用于根据所述检测白名单信息实现过程控制攻击检测。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所工业控制系统的过程控制攻击检测方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述工业控制系统的过程控制攻击检测方法的步骤。

本发明实施例提供的一种工业控制系统的过程控制攻击检测方法及装置,通过对机器码格式的plc控制逻辑网络流量信息进行反编译,得到步进指令代码信息,然后进行程序流分析,提取有效地址、有效值范围、控制逻辑规则作为评估攻击的依据,并通过主动发送读取请求数据和被动读取网络流量信息实现主动方式和被动方式同时进行检测攻击行为,有效实现对于工业控制系统的过程控制攻击检测。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例所描述的工业控制系统的过程控制攻击检测方法流程示意图;

图2为本发明一实施例所描述的工业控制系统的过程控制攻击检测装置结构示意图;

图3为本发明一实施例所描述的电子设备结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明一实施例所描述的工业控制系统的过程控制攻击检测方法流程示意图,如图1所示,包括:

步骤s1,获取plc控制逻辑网络流量信息,并根据所述plc控制逻辑网络流量信息获取机器码;

步骤s2,将所述机器码通过预设映射数据库进行反编译处理,得到步进指令代码信息;

步骤s3,对所述步进指令代码信息进行程序流分析得到检测白名单信息;

步骤s4,根据所述检测白名单信息实现过程控制攻击检测。

具体的,本发明实施例中所描述的plc控制逻辑网络流量信息是指plc和控制中心之间的网络传输流量信息。

本发明实施例中所描述的机器码是指二进制的机器码,可以是指mc7代码。

本发明实施例中的预设映射数据库具体是指,对步进指令代码转换为机器码的过程进行分析,根据其转换过程中指令代码与机器码的映射关系生成预设映射数据库。

本发明实施例中所描述的检测白名单信息包括逻辑控制白名单、有效地址白名单和有效值域范围白名单;有效值域范围白名单和有效地址白名单来实现过程控制攻击被动检测;逻辑控制白名单来实现过程控制攻击主动检测。

本发明实施例中所描述的程序流分析具体是指,通过词法分析和语法分析,对操作类型、地址类型、比较条件进行分析,得到了最可能的过程变量数据类型和值范围,得到有效地址白名单和有效值域范围白名单,通过语义分析,可以准确地分析过程变量之间的相关性并得到逻辑控制白名单。

本发明实施例中所描述的根据检测白名单信息实现过程控制攻击检测具体是指,将有效地址白名单和有效值域范围白名单植入被动检测引擎,并将逻辑控制白名单植入主动检测引擎,两个检测引擎同时运行并协同工作,从不同角度检测过程控制攻击行为。

本发明实施例提供的一种工业控制系统的过程控制攻击检测方法及装置,通过对机器码格式的plc控制逻辑网络流量信息进行反编译,得到步进指令代码信息,然后进行程序流分析,提取有效地址、有效值范围、控制逻辑规则作为评估攻击的依据,并通过主动发送读取请求数据和被动读取网络流量信息实现主动方式和被动方式同时进行检测攻击行为,有效实现对于工业控制系统的过程控制攻击检测。

在上述实施例的基础上,在所述将所述机器码通过预设映射数据库进行反编译处理,得到步进指令代码信息的步骤之前,所述方法还包括:

对步进指令代码信息转换为机器码的过程进行分析,得到步进指令代码信息与机器码的对应关系;

根据所述步进指令代码信息与机器码的对应关系构建预设映射数据库。

具体的,本发明实施例中对步进指令代码转换为机器码的过程进行分析具体是指,根据其转换过程中指令代码与机器码的映射关系生成预设映射数据库。

例如,若机器码为mc7代码,则对stl指令如何转换为mc7代码进行分析,从而生成预设映射数据库,然后根据预设映射数据库对plc控制逻辑网络流量信息的获取的mc7代码进行反编译,可以反编译1853个不同的指令和地址,反编译精度可以达到100%。

具体的,本发明实施例通过构建预设映射数据库,以实现对机器码的反编译处理,得到步进指令代码信息,便于后续进行程序流分析,实现过程控制攻击检测方法。

在上述实施例的基础上,所述对所述步进指令代码信息进行程序流分析得到检测白名单信息的步骤,具体包括:

对所述步进指令代码信息进行词法分析和语法分析,得到有效地址白名单和有效值域范围白名单;

对所述步进指令代码信息进行语义分析,得到逻辑控制白名单;

根据所述逻辑控制白名单、有效地址白名单和有效值域范围白名单得到检测白名单信息。

对所述步进指令代码信息进行预处理;其中所述预处理包括代码段切割和程序压缩处理。

具体的,本发明实施例中所描述的代码段切割可以划分指令代码主程序段,而程序压缩可以消除不影响控制逻辑的不必要指令,并减轻程序自动分析和白名单规则提取的负担。

在上述实施例的基础上,所述根据所述检测白名单信息实现过程控制攻击检测的步骤,具体包括:

根据所述检测白名单信息中的有效值域范围白名单和有效地址白名单来实现过程控制攻击被动检测;

根据所述检测白名单信息中的逻辑控制白名单来实现过程控制攻击主动检测。

本发明实施例中所描述的过程控制攻击主动检测是主动发送读取请求数据,以获取寄存器数据来主动实现检测的方式。

本发明实施例中所描述的过程控制攻击被动检测是通过检测plc控制逻辑网络流量信息,从而实现的被动检测的方式。

本发明实施例通过描述了主动检测和被动检测结合的方式,从而实现了更精准高效的过程控制攻击检测方法。

在上述实施例的基础上,所述根据所述检测白名单信息中的有效值域范围白名单和有效地址白名单来实现过程控制攻击被动检测的步骤,具体包括:

获取plc控制逻辑网络流量信息中的地址信息和数值信息;

根据所述有效地址白名单对所述地址信息进行分析,得到地址分析结果;

根据所述有效值域范围白名单对所述数值信息进行分析,得到数值分析结果;

根据地址分析结果和数值分析结果实现过程控制攻击被动检测。

由于plc内部的有效地址空间是固定的。在正常情况下,控制中心只会访问有效地址空间的这一部分。某些地址的值范围也被plc程序限制在一定范围内。

因此,本发明实施例中所描述的被动检测主要通过监视plc控制逻辑网络流量信息来检测非法地址上是否存在恶意的读/写操作,并检测变量是否超出范围以及设定点是否已被篡改,如果有plc控制逻辑网络流量信息的请求或响应超出有效地址范围或者访问超过有效值范围,则视为异常。

在上述实施例的基础上,所述根据所述检测白名单信息实现过程控制攻击检测的步骤,具体还包括:

发送读取请求数据,以根据所述读取请求数据获取寄存器数据;

根据所述逻辑控制白名单对所述寄存器数据进行分析,得到逻辑控制分析结果,以根据所述逻辑控制分析结果实现过程控制攻击主动检测。

本发明实施例中的过程控制攻击主动检测可以是通过低打扰、切片、轮询和主动数据包发送的方式来读取寄存器数据,然后根据逻辑控制白名单对所述寄存器数据进行分析,若其不符合逻辑控制白名单则说明异常。

本发明实施例通过主动发送读取请求数据和被动读取网络流量信息实现主动方式和被动方式同时进行检测攻击行为,有效实现对于工业控制系统的过程控制攻击检测。

在本发明另一实施例中,根据部署在天然气管网实验平台上的两台西门子s7-300plc进行了实验。该天然气管网实验平台模拟天然气从门站到住宅楼的转移,其物理环境包括模拟门站的气泵,一段压力管道,三个压力传感器,四个阀门和多个传感器,用于监控压力,流速和温度。其中,气泵向物理环境供应高压气体;天然气管道分为高压管道,中压管道和低压管道三部分,管道的每个部分通过一对压力转换器和开关控制气体的压降。多个传感器负责收集诸如温度、流速和管道压力的测量值。此外,现场还使用了两个西门子s7-300plc和一个控制中心。

在攻击检测之前,捕获plc控制程序并执行检测白名单信息的自动提取。提取检测白名单信息后,plc的被动检测引擎和主动检测引擎开始工作,并从不同的角度检测过程控制攻击。

攻击者精确攻击目标的最有效方法是破坏plc的控制逻辑。将过程控制攻击分为两大类:1)恶意数据注入攻击和2)控制逻辑注入攻击。在实验中,通过实施两种过程控制攻击来评估本发明的检测效果。针对恶意数据注入攻击,实现了三个具有代表性的子攻击;针对控制逻辑注入攻击,实现了两个具有代表性的子攻击,具体如下:

攻击1-1,非法地址的读/写。这种攻击模拟黑客对未使用的plc寄存器的任意读写操作,而不知道物理过程。这种类型的攻击对物理过程没有实际影响,但在正常情况下是不允许的。

攻击1-2,合法地址强制数据注入。强制数据注入有效地址使得工业流程与预期不一致。如打开泄漏阀、关闭气泵、在气体传输过程中关闭管道阀门等。

攻击1-3,远程篡改值域范围。恶意篡改指定范围的有效值域或设定值。如改变定时器定时、高压、中压或低压范围等。

攻击2-1,控制程序篡改。篡改控制程序和破坏实际工业流程。如改变阀门开启顺序、篡改过程变量的逻辑关系等。

攻击2-2,控制程序更换。攻击者可以通过替换真正的控制程序来实现他们想要的任何目标这种攻击具有隐蔽性强、破坏力大、易于发动等特点。

表1为针对过程控制攻击的攻击检测结果表:

表1

“√”表示成功检测到攻击“×”表示未检测到攻击

被动检测引擎可以通过被动监控网络流量准确检测到攻击1-1和攻击1-3,但未能检测到攻击1-2、攻击2-1和攻击2-2。主动检测引擎通过主动与plc通信来监视plc内部存储的实际状态,并能成功检测到攻击1-2、攻击1-3、攻击2-1、和攻击2-2,但无法检测到攻击1-1。“混合检测引擎是通过被动检测引擎和主动检测引擎的组合,可检测所有类型的过程控制攻击。

图2为本发明一实施例所描述的工业控制系统的过程控制攻击检测装置结构示意图,如图2所示,包括:获取模块210、反编译模块220、分析模块230和检测模块240;其中,获取模块210用于获取plc控制逻辑网络流量信息,并根据所述plc控制逻辑网络流量信息获取机器码;其中,反编译模块220用于将所述机器码通过预设映射数据库进行反编译处理,得到步进指令代码信息;其中,分析模块230用于对所述步进指令代码信息进行程序流分析得到检测白名单信息;其中,检测模块240用于根据所述检测白名单信息实现过程控制攻击检测。

本发明实施例提供的装置是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。

本发明实施例通过对机器码格式的plc控制逻辑网络流量信息进行反编译,得到步进指令代码信息,然后进行程序流分析,提取有效地址、有效值范围、控制逻辑规则作为评估攻击的依据,并通过主动发送读取请求数据和被动读取网络流量信息实现主动方式和被动方式同时进行检测攻击行为,有效实现对于工业控制系统的过程控制攻击检测。

图3为本发明一实施例所描述的电子设备结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(communicationsinterface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行如下方法:获取plc控制逻辑网络流量信息,并根据所述plc控制逻辑网络流量信息获取机器码;将所述机器码通过预设映射数据库进行反编译处理,得到步进指令代码信息;对所述步进指令代码信息进行程序流分析得到检测白名单信息;根据所述检测白名单信息实现过程控制攻击检测。

此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取plc控制逻辑网络流量信息,并根据所述plc控制逻辑网络流量信息获取机器码;将所述机器码通过预设映射数据库进行反编译处理,得到步进指令代码信息;对所述步进指令代码信息进行程序流分析得到检测白名单信息;根据所述检测白名单信息实现过程控制攻击检测。

本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储服务器指令,该计算机指令使计算机执行上述各实施例提供的方法,例如包括:获取plc控制逻辑网络流量信息,并根据所述plc控制逻辑网络流量信息获取机器码;将所述机器码通过预设映射数据库进行反编译处理,得到步进指令代码信息;对所述步进指令代码信息进行程序流分析得到检测白名单信息;根据所述检测白名单信息实现过程控制攻击检测。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1