公开/公告号CN112711756A
专利类型发明专利
公开/公告日2021-04-27
原文格式PDF
申请/专利号CN202011595978.9
申请日2020-12-28
分类号G06F21/55(20130101);G06F21/73(20130101);G06F17/16(20060101);
代理机构11703 北京中巡通大知识产权代理有限公司;
代理人郭瑶
地址 100192 北京市海淀区清河小营东路15号
入库时间 2023-06-19 10:46:31
技术领域
本发明属于电力工控设备技术领域,特别涉及一种被动电力工控设备指纹识别方法及系统。
背景技术
设备的探测与识别是进行设备信息收集和安全检测的基本手段。通过发现设备识别出设备类型、厂商、型号、操作系统、服务类型、固件版本等信息,为设备安全状态分析提供基础。设备在软硬件功能及实现上存在差异性,能够根据这些差异建立设备指纹模型来提取指纹,并通过与设备响应报文中的特征信息比对进行设备识别。设备识别技术的研究是从操作系统识别开始的,逐渐扩展到设备类型识别、自动化设备识别等方面。操作系统识别基于TCP/IP协议栈实现上的差异性识别操作系统,其研究集中在降低识别时间和提高识别精度两个方面。
电网嵌入式终端嵌入式终端设备的安全性关系到国计民生和国家的战略安全。在电网中的广泛使用,如电力工控系统中的PLC、RTU、HMI、工程师站、操作员站等。嵌入式终端设备在使电网更加网络化、智能化、多功能的同时,也带来了更多的安全风险。智能电网业务系统中存在大量基于单片机或嵌入式操作系统的设备,例如配电终端、输变电在线状态监测终端等。这些嵌入式终端具有一定的处理能力,支持网络接入和访问,而且部分系统的终端设备部署在开放环境或用户侧,缺少物理访问控制或控制不足,导致设备更容易被攻击者直接接触。因此需要对电网内的设备进行定期的识别检测,及时发现潜伏在电网中的非法设备,阻止后续的网络攻击等问题。
电力工业设备通常使用特定的业务流程执行复杂的生产工作。主动检测虽然可以灵活选择检测范围和要检测的内容。但是过高的检测速度会影响设备的网络环境,甚至可能影响被探测设备的正常服务。
Nmap首次采用主动探测方式向目标主机的存活端口发送12个TCP包、1个UDP包和2个ICMP包,根据回应包头特征字段内容(TCP/IP协议栈的报文初始化大小、TTL值、TCP滑动窗口大小、最大分段长度等特征)差异来构建设备操作系统指纹。Nmap因需要发送探测包数目多,仅适合设备数量有限情况下的操作系统识别。
Xprobe利用不同探测包获取信息的差异选取探测包,并优化重排发送序列,使用少量探测包来识别操作系统,但识别精度也有所降低。
P0f采用被动方式在网络边界侦听TCP/IP报文,分析网络中存在的主机及其操作系统类型,其识别精度和速度依赖设备的发包状况。
现有检测方法针对的目标电力工控设备必须可以获取控制逻辑和寄存器数值,否则无法获取设备指纹;在运行过程中,目标电力工控设备的控制逻辑发生改变之后,相应设备指纹也会发生变化,需要重新生成设备指纹。
发明内容
本发明的目的在于提供一种被动电力工控设备指纹识别方法及系统,以解决现有技术检测过程中对设备不断打扰,有可能影响设备正常运行的技术问题。
为了实现上述目的,本发明采用如下技术方案:
一种被动电力工控设备指纹识别方法,包括:
提取电力工控设备的梯形图控制程序;
利用梯形图控制程序将电力工控设备的逻辑电路转化为布尔逻辑矩阵;
根据布尔逻辑矩阵生成寄存器DFA序列;
将电力工控设备寄存器DFA序列中的特征值与从通信协议数据包流量中得到的电力工控设备寄存器状态特征值进行比对,完成电力工控设备的识别。
本发明进一步的改进在于:布尔逻辑矩阵|W|为:
其中,w
本发明进一步的改进在于:还包括以下步骤:通过布尔逻辑矩阵运算模拟电力工控设备控制器的执行情况,获得保存计算结果的寄存器|Dependent variables|。
本发明进一步的改进在于:通过布尔逻辑矩阵运算模拟电力工控设备控制器的执行情况,具体包括:
使用布尔矩阵运算来表示控制器的执行情况,控制器的设计如下:
W*|Independent variables|=|Dependent variables|
其中,|Independent variables|为用于布尔计算的寄存器。
本发明进一步的改进在于:根据布尔逻辑矩阵生成寄存器DFA序列的步骤具体包括:
对输入寄存器集合REG进行排列;
对于每个寄存器序列,使用布尔逻辑矩阵W获取寄存器有效序列;如果布尔逻辑矩阵W中有复杂寄存器,将布尔逻辑计算统一起来计算复杂寄存器从属值;当复杂寄存器的条件被触发时,将复杂寄存器输出值设置为1,并将复杂寄存器转换为布尔逻辑运算;
布尔逻辑矩阵W乘以寄存器有效序列的结果作为DFA的节点,并加入到DFA中;
添加新加入的候选节点与DFA中其他节点之间的边;
如果任意的候选节点均在DFA内,获得寄存器DFA序列。
本发明进一步的改进在于:所述复杂寄存器包括下述中的至少一种:保持寄存器;定时器寄存器;计数器寄存器。
本发明进一步的改进在于:所述监听电力工控设备的通信协议数据包流量包括下述中的至少一种:
监听电力工控设备的ModBus、CIP、SRTP通信协议数据包流量。
本发明进一步的改进在于:寄存器DFA序列中的节点是寄存器状态序列,边是寄存器序列的执行顺序。
一种被动电力工控设备指纹识别系统,包括:
提取模块,用于提取电力工控设备的梯形图控制程序;
转化模块,用于利用梯形图控制程序将电力工控设备的逻辑电路转化为布尔逻辑矩阵;
指纹生成模块,用于根据布尔逻辑矩阵生成寄存器DFA序列;
识别模块,用于将电力工控设备寄存器DFA序列中的特征值与从通信协议数据包流量中得到的电力工控设备寄存器状态特征值进行比对,完成电力工控设备的识别。
本发明进一步的改进在于:所述指纹生成模块,根据布尔逻辑矩阵生成寄存器DFA序列的步骤具体包括:
对输入寄存器集合REG进行排列;
对于每个寄存器序列,使用布尔逻辑矩阵W获取寄存器有效序列;如果布尔逻辑矩阵W中有复杂寄存器,将布尔逻辑计算统一起来计算复杂寄存器从属值;当复杂寄存器的条件被触发时,将复杂寄存器输出值设置为1,并将复杂寄存器转换为布尔逻辑运算;
布尔逻辑矩阵W乘以寄存器有效序列的结果作为DFA的节点,并加入到DFA中;
添加新加入的候选节点与DFA中其他节点之间的边;
如果任意的候选节点均在DFA内,获得寄存器DFA序列。
一种被动电力工控设备指纹识别系统,应用于电力系统,所述系统包括:处理器以及与所述处理器耦合的存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现所述一种被动电力工控设备指纹识别方法的方法步骤。
相对于现有技术,本发明具有以下有益效果:
通常的主动探测识别方法需要发送探测报文并根据目标设备返回的报文提取特征识别设备,会影响设备的正常运行;本发明提供一种一种被动电力工控设备指纹识别方法及系统,只侦听网络中的报文信息,提取寄存器状态等特征值识别设备,对设备运行零打扰。
进一步的,本发明利用梯形图将电力工控设备的逻辑电路转化为布尔逻辑矩阵,并通过布尔逻辑矩阵运算来模拟电力工控设备控制器的执行情况。
进一步的,本发明得到电力工控设备的布尔矩阵后,生成寄存器DFA序列来呈现电力工控设备的指纹,其中DFA中的节点是寄存器状态序列,边是寄存器序列的执行顺序。
进一步的,本发明通过监听电力工控设备的ModBus,CIP,SRTP等通信协议数据包流量,获取电力工控设备的寄存器状态等特征值。
进一步的,本发明将得到的电力工控设备指纹中的特征值与通信流量中得到的电力工控设备寄存器状态等特征值进行比对,从而实现电力工控设备的识别。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一种被动电力工控设备指纹识别方法的流程示意图;
图2为控制逻辑提取和分析过程示例;
图3为LAD使用布尔表达式来描述逻辑电路示意图;
图4为电力工控设备层级结构图;
图5为电力工控设备周期执行寄存器状态变化的示例图;
图6为本发明一种被动电力工控设备指纹识别系统的结构框图。
具体实施方式
下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本发明所属领域的一般技术人员的通常理解的含义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。
实施例1
以下结合图1对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明提出一种有效的识别电力工控设备指纹的方法,可以准确且唯一地识别电力工控设备。在指纹提取阶段分析电力工控设备的梯形图等控制程序并提取电力工控设备的控制逻辑,利用布尔逻辑矩阵运算将电力工控设备的逻辑电路转换为设备寄存器的状态空间,最终生成序列状态作为设备指纹;在设备识别阶段通过监听设备协议通信流量,获取设备的实时寄存器数值等特征,与指纹库中的特征做比对,识别电力工控设备。
根据图1给出的电力工控设备的指纹识别的架构图,本发明一种被动电力工控设备指纹识别方法,具体包括以下步骤:
S1,从电力工控设备的的固件中提取出电力工控设备的控制逻辑,从控制逻辑中提取电力工控设备的梯形图控制程序。
S2,利用梯形图控制程序将电力工控设备的逻辑电路转化为布尔逻辑矩阵,利用布尔逻辑矩阵表示电力工控设备寄存器状态,并通过布尔逻辑矩阵运算模拟电力工控设备控制器的执行情况,获得保存计算结果的寄存器|Dependent variables|。
步骤3,得到电力工控设备的布尔逻辑矩阵后,生成寄存器DFA序列呈现电力工控设备的指纹,其中DFA中的节点是寄存器状态序列,边是寄存器序列的执行顺序。
步骤4,通过监听电力工控设备的ModBus,CIP,SRTP通信协议数据包流量,获取电力工控设备的寄存器状态特征值。
步骤5,将步骤3得到的电力工控设备指纹(寄存器DFA序列)中的特征值与步骤4从通信协议数据包流量中得到的电力工控设备寄存器状态特征值进行比对,从而实现电力工控设备的识别。
下面以变电站中支持ModBus,CIP等协议的PLC设备为例详细说明本发明的流程。
一、布尔逻辑矩阵生成和执行过程
一般来说,电力工控设备中包含有逻辑电路和寄存器。
对于逻辑电路,使用IEC 61131-3中的梯形逻辑编程语言(LAD)表示电力工控设备中的布尔运算。因此,首先要从电力工控设备中提取出控制逻辑,分析得到LAD控制程序(梯形图控制程序),如图2示例。
如图3举例描述了LAD使用布尔表达式来描述逻辑电路。
给定电力工控设备的逻辑电路,可以通过LAD将其转换为布尔矩阵|W|,使用布尔矩阵表示逻辑控制器的电路,如下所示,其中每个w
对于寄存器,每个寄存器都有其名称、地址和类型,如图4所示,第一个寄存器名称为X0,类型为bool,地址为%I0.0。多数电力工控设备都有数十个寄存器,包括输入、中间和输出寄存器。此外还有保持寄存器、定时器寄存器和计数器寄存器三个复杂寄存器,在其条件被触发时更改状态。
使用布尔矩阵执行寄存器值。将每个寄存器状态作为变量,分为独立变量和因变量两类。前者是计算中使用的寄存器状态,后者是保存结果使用的寄存器状态。重新使用布尔矩阵运算来表示控制器的执行情况,为简化逻辑设计,控制器的设计如下,其中|Independent variables|是用于布尔计算的寄存器,|Dependent variables|是用于保存计算结果的寄存器。
W*|Independent variables|=|Dependent variables|
二、寄存器序列生成过程
一旦获得电力工控设备的布尔矩阵,就可以生成寄存器状态序列,即电力工控设备的指纹。
上述算法描述了逻辑控制器中的寄存器状态生成过程。该算法的输入为布尔逻辑矩阵M和寄存器集合REG={reg
首先,对输入寄存器集合REG进行排列;排序完成之后,接下来执行循环。对于每一轮循环,执行以下操作:
1)、对于每个寄存器序列,使用布尔矩阵M来获取其有效序列。如果布尔逻辑矩阵M中有复杂的寄存器(计数器寄存器C_reg,定时器寄存器T_reg和保持寄存器H_reg),则将布尔逻辑计算统一起来以计算其从属值。当这些复杂寄存器的条件被触发时,将其输出值设置为1,并将其转换为布尔逻辑运算;
2)、布尔逻辑矩阵M乘以寄存器有效序列的结果作为DFA的候选节点,此候选节点即为寄存器状态序列,并将其加入到DFA中。
3)添加新加入的节点与其他节点之间的边;如果节点有“order”这一参数,则在DFA中找到具有相同顺序的节点,并在两者之间添加一条边。接下来按照寄存器状态序列的变化顺序添加其他边。
4)如果任意的候选节点均在DFA内,则跳出循环,算法结束;获得寄存器DFA序列,即为电力工控设备的指纹。
如图5为电力工控设备周期执行寄存器状态变化的示例。
三、设备识别过程
通过监听电力工控设备的ModBus,CIP,SRTP通信协议数据包流量,获取电力工控设备的寄存器状态等特征值。将算法中得到的电力工控设备指纹中的特征值与从通信流量中得到的电力工控设备寄存器状态特征值进行比对,从而实现电力工控设备的识别。
由技术常识可知,本发明可以通过其它的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。
实施例2
本发明提供一种被动电力工控设备指纹识别系统,包括:
提取模块,用于从电力工控设备的的固件中提取出电力工控设备的控制逻辑,从控制逻辑中提取电力工控设备的梯形图控制程序。
转化模块,用于利用梯形图控制程序将电力工控设备的逻辑电路转化为布尔逻辑矩阵,并通过布尔逻辑矩阵运算模拟电力工控设备控制器的执行情况,获得保存计算结果的寄存器|Dependent variables|。
指纹生成模块,用于得到电力工控设备的布尔逻辑矩阵后,生成寄存器DFA序列呈现电力工控设备的指纹,其中DFA中的节点是寄存器状态序列,边是寄存器序列的执行顺序。
监听模块,用于通过监听电力工控设备的ModBus,CIP,SRTP通信协议数据包流量,获取电力工控设备的寄存器状态特征值。
识别模块,用于将得到的电力工控设备指纹(寄存器DFA序列)中的特征值与从通信协议数据包流量中得到的电力工控设备寄存器状态特征值进行比对,从而实现电力工控设备的识别。
实施例3
本发明还提供一种被动电力工控设备指纹识别系统,应用于电力系统,所述系统包括:处理器以及与所述处理器耦合的存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如实施例1所述的方法步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
机译: 出版物的指纹提取方法,出版物的指纹提取设备,利用指纹的出版物识别系统和利用指纹的出版物识别方法
机译: 屏幕下的指纹识别装置和系统,指纹识别方法和电子设备
机译: 基于双感应区域的指纹识别方法,指纹识别系统和电子设备