CN116795031A - 可编程逻辑控制器的安全保护方法、装置、设备及介质 - Google Patents

可编程逻辑控制器的安全保护方法、装置、设备及介质 Download PDF

Info

Publication number
CN116795031A
CN116795031A CN202310372834.4A CN202310372834A CN116795031A CN 116795031 A CN116795031 A CN 116795031A CN 202310372834 A CN202310372834 A CN 202310372834A CN 116795031 A CN116795031 A CN 116795031A
Authority
CN
China
Prior art keywords
operation information
target
programmable logic
logic controller
executing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310372834.4A
Other languages
English (en)
Inventor
杨双华
刘宇焕
丁宇龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest University of Science and Technology
Original Assignee
Southwest University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southwest University of Science and Technology filed Critical Southwest University of Science and Technology
Priority to CN202310372834.4A priority Critical patent/CN116795031A/zh
Publication of CN116795031A publication Critical patent/CN116795031A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13004Programming the plc

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

本申请适用于工业控制技术领域,提供一种可编程逻辑控制器的安全保护方法、装置、设备及介质,其中,可编程逻辑控制器的安全保护方法,包括:若目标可编程逻辑控制器获取到操作信息,则根据预先存储在可信执行环境中的认证信息对所述操作信息进行验证,所述可信执行环境建立在所述目标可编程逻辑控制器中;在所述操作信息验证失败时,不执行所述操作信息。本申请能够对针对可编程逻辑控制器的各种攻击进行保护,提高可编程逻辑控制器的安全性。

Description

可编程逻辑控制器的安全保护方法、装置、设备及介质
技术领域
本申请属于工业控制技术领域,尤其涉及一种可编程逻辑控制器的安全保护方法、装置、设备及介质。
背景技术
可编程逻辑控制器(Programmable Logic Controller,PLC)是一种被广泛运用于工业控制环境下的嵌入式设备,需要对一个或多个I/O节点进行实时的逻辑控制,如果控制出现错误或者受到攻击,可能会造成工业过程的物理损坏。目前,针对PLC的攻击通常可分为三类,固件修改攻击、配置操纵攻击和控制流攻击,对于这三类攻击可以从不同的角度进行防御的部署,但都存在可被攻击者利用的漏洞,可编程逻辑控制器的安全性较差。
发明内容
本申请实施例提供了一种可编程逻辑控制器的安全保护方法、装置、设备及介质,可以解决现有技术存在可编程逻辑控制器的安全性较差的问题。
本申请实施例的第一方面提供一种可编程逻辑控制器的安全保护方法,包括:
若目标可编程逻辑控制器获取到操作信息,则根据预先存储在可信执行环境中的认证信息对所述操作信息进行验证,所述可信执行环境建立在所述目标可编程逻辑控制器中;
在所述操作信息验证失败时,不执行所述操作信息。
可选地,所述操作信息包括接收更换固件,所述认证信息包括目标更换固件的目标哈希值;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述更换固件的哈希值与所述目标哈希值不同时,不执行接收所述更换固件。
可选地,所述操作信息包括修改配置文件,所述认证信息包括目标配置文件;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述配置文件与所述目标配置文件相同时,不执行修改所述配置文件。
可选地,所述操作信息包括接收执行逻辑,所述认证信息包括安全逻辑验证算法;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在根据所述安全逻辑验证算法检查到所述执行逻辑存在违规逻辑时,不执行接收所述执行逻辑。
可选地,所述操作信息包括修改逻辑返回地址,所述认证信息包括目标逻辑返回地址;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述逻辑返回地址与所述目标逻辑返回地址相同时,不执行修改所述逻辑返回地址。
可选地,所述操作信息包括修改中断返回主函数地址,所述认证信息包括目标中断返回主函数地址;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述中断返回主函数地址与所述目标中断返回主函数地址相同时,不执行修改所述中断返回主函数地址。
可选地,所述操作信息接收输入输出接口数据,所述认证信息包括预设输入输出接口数据范围;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述输入输出接口数据不属于所述预设输入输出接口数据范围时,不执行接收所述输入输出接口数据。
本申请实施例的第二方面提供一种可编程逻辑控制器的安全保护装置,包括:
操作验证模块,用于若目标可编程逻辑控制器获取到操作信息,则根据预先存储在可信执行环境中的认证信息对所述操作信息进行验证,所述可信执行环境建立在所述目标可编程逻辑控制器中;
操作拒绝模块,用于在所述操作信息验证失败时,不执行所述操作信息。
可选地,所述操作信息包括接收更换固件,所述认证信息包括目标更换固件的目标哈希值;所述操作拒绝模块,具体用于在所述更换固件的哈希值与所述目标哈希值不同时,不执行接收所述更换固件。
可选地,所述操作信息包括修改配置文件,所述认证信息包括目标配置文件;所述操作拒绝模块,具体用于在所述配置文件与所述目标配置文件相同时,不执行修改所述配置文件。
可选地,所述操作信息包括接收执行逻辑,所述认证信息包括安全逻辑验证算法;所述操作拒绝模块,具体用于在根据所述安全逻辑验证算法检查到所述执行逻辑存在违规逻辑时,不执行接收所述执行逻辑。
可选地,所述操作信息包括修改逻辑返回地址,所述认证信息包括目标逻辑返回地址;所述操作拒绝模块,具体用于在所述逻辑返回地址与所述目标逻辑返回地址相同时,不执行修改所述逻辑返回地址。
可选地,所述操作信息包括修改中断返回主函数地址,所述认证信息包括目标中断返回主函数地址;所述操作拒绝模块,具体用于在所述中断返回主函数地址与所述目标中断返回主函数地址相同时,不执行修改所述中断返回主函数地址。
可选地,所述操作信息接收输入输出接口数据,所述认证信息包括预设输入输出接口数据范围;所述操作拒绝模块,具体用于在所述输入输出接口数据不属于所述预设输入输出接口数据范围时,不执行接收所述输入输出接口数据。
本申请实施例的第三方面提供一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上所述的可编程逻辑控制器的安全保护方法。
本申请实施例的第四方面提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上所述的可编程逻辑控制器的安全保护方法。
本申请实施例的第一方面提供的可编程逻辑控制器的安全保护方法,通过在目标可编程逻辑控制器获取到操作信息时,根据预先存储在可信执行环境中的认证信息对操作信息进行验证,在操作信息验证失败时,使目标可编程逻辑控制器不执行操作信息,能够对针对可编程逻辑控制器的各种攻击进行保护,提高可编程逻辑控制器的安全性。
可以理解的是,上述第二方面、第三方面和第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的可编程逻辑控制器的安全保护方法的流程示意图;
图2为本申请实施例提供的可编程逻辑控制器的安全保护装置的结构示意图;
图3为本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、设备、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。“多个”表示“两个或两个以上”。
实施例一
本申请实施例一提供一种可编程逻辑控制器的安全保护方法,可以由终端设备的处理器在运行相应的计算机程序时执行,用于实现在目标可编程逻辑控制器获取到操作信息时,根据预先存储在可信执行环境中的认证信息对操作信息进行验证,在操作信息验证失败时,不执行操作信息,能够提高可编程逻辑控制器的安全性。
如图1所示,本实施例提供的可编程逻辑控制器的安全保护方法包括:
S11、若目标可编程逻辑控制器获取到操作信息,则根据预先存储在可信执行环境中的认证信息对所述操作信息进行验证。其中,所述可信执行环境建立在所述目标可编程逻辑控制器中。
在应用中,上述目标可编程逻辑控制器可装载在实时性操作系统上,以可预测方式执行任务。上述目标可编程逻辑控制器可以运行一个运行时软件,该软件负责编译控制逻辑。运行时软件通过扫描,将I/O物理地址中的输入存储在内存变量表里,然后控制逻辑执行产生对应的输出,运行时软件将输出返回给对应的I/O物理地址进行控制逻辑的执行。
在应用中,上述目标可编程逻辑控制器可采用ARM架构,上述可信执行环境可以是ARM的TrustZone,能够提供一个非常小的隔离环境用于保护系统的关键信息,可信起点来源于安全启动中的信任根,例如使用安全ROM或者电子保险丝来作为信任根。TrustZone的核心在于通过硬件手段,即在芯片增加一个额外的寻址位来分离出安全世界和正常世界,安全世界即上述可信执行环境。正常世界中的软件无法访问安全世界中的内存,需要特定指令方可进入安全世界,而安全世界内的软件则可访问所有内存。
在应用中,上述目标可编程逻辑控制器根据是否运行控制逻辑可分为两个阶段,即与工程软件连接通信阶段和控制逻辑运行阶段。对于连接通信阶段,针对上述目标可编程逻辑控制器的攻击主要有固件修改攻击和配置操作攻击,而对于逻辑运行阶段,则主要是控制流攻击和中断带入的控制系统的攻击。上述目标可编程逻辑控制器获取到的操作信息,可以是对上述目标可编程逻辑控制器在连接通信阶段的固件修改攻击和配置操作攻击如修改配置文件,以及逻辑运行阶段的控制流攻击如修改逻辑返回地址,以及中断带入的控制系统的攻击等。
在应用中,上述认证信息可以是与上述目标可编程逻辑控制器的固件、配置、控制流和中断有关的认证信息,如需要保护的固件哈希值、配置文件、逻辑返回地址和中断返回主函数地址等。通过上述可信执行环境保存上述目标可编程逻辑控制器的认证信息,能够使得上述目标可编程逻辑控制器接收到来自外部的攻击操作时,攻击者无法对上述可信执行环境中的任何认证信息进行访问和修改。
S12、在所述操作信息验证失败时,不执行所述操作信息。
在应用中,在上述目标可编程逻辑控制器接收到来自外部的任意一种上述操作信息时,即可根据上述可信执行环境中保存的上述操作信息对应的认证信息对上述操作信息进行验证,验证方法可以是比较上述操作信息的操作对象与上述认证信息是否相同,或者上述操作信息的操作对象是否属于上述认证信息的范围内,或者根据上述认证信息检查上述操作信息的操作对象是否安全,若验证不成功则使上述目标可编程逻辑控制器不执行上述操作信息。
本申请实施例提供的可编程逻辑控制器的安全保护方法,通过在目标可编程逻辑控制器获取到操作信息时,根据预先存储在可信执行环境中的认证信息对操作信息进行验证,在操作信息验证失败时,使目标可编程逻辑控制器不执行操作信息,能够对针对可编程逻辑控制器的各种攻击进行保护,提高可编程逻辑控制器的安全性。
实施例二
本申请实施例二提供一种基于实施例一实现的可编程逻辑控制器的安全保护方法,可以由终端设备的处理器在运行相应的计算机程序时执行。
在一个实施例中,所述操作信息包括接收更换固件,所述认证信息包括目标更换固件的目标哈希值;步骤S12包括:在所述更换固件的哈希值与所述目标哈希值不同时,不执行接收所述更换固件。
在应用中,针对上述目标可编程逻辑控制器的固件修改攻击,主要是更新固件时采用了恶意修改过的受损固件,因此可以在上述可信执行环境中维护一个和厂商进行远程安全认证的算法,在厂商与上述目标可编程逻辑控制器建立安全连接后,会首先将需要更换的固件即上述目标更换固件的目标哈希值通过安全API保存在上述可信执行环境中,随后向上述目标可编程逻辑控制器传输更换固件。上述可信执行环境中的固件更新功能由于需要验证新固件的完整性,因此使用安全API陷入到上述可信执行环境中进行固件哈希的验证。当传到上述目标可编程逻辑控制器中的更换固件的哈希值与上述可信执行环境中保存着的目标哈希值不同时,则上述目标可编程逻辑控制器不接收上述更换固件。
在一个实施例中,所述操作信息包括修改配置文件,所述认证信息包括目标配置文件;步骤S12包括:在所述配置文件与所述目标配置文件相同时,不执行修改所述配置文件。
在应用中,针对上述目标可编程逻辑控制器的配置攻击,主要是将部分可执行的恶意代码带入上述目标可编程逻辑控制器中的代码区或数据区,传统的保护方法为可执行空间保护,让内存空间只能可写或者可执行,例如代码区只可执行不可写入,数据区只可写入不可执行。本申请使用可信执行环境维护上述目标可编程逻辑控制器需要保护的配置文件即上述目标配置文件,使得上述目标配置文件从硬件上也无法修改。上述认证信息即上述目标配置文件,例如登入密码的哈希值等,使得攻击者无法通过写覆盖来进行原密码的恶意覆盖,保证工程软件和上述目标可编程逻辑控制器建立可信连接。
在一个实施例中,所述操作信息包括接收执行逻辑,所述认证信息包括安全逻辑验证算法;步骤S12包括:在根据所述安全逻辑验证算法检查到所述执行逻辑存在违规逻辑时,不执行接收所述执行逻辑。
在应用中,上述目标可编程逻辑控制器存在更改控制逻辑的需要,而病毒可能修改工程软件配置,导致安全连接后的工程软件依旧将恶意逻辑注入到上述目标可编程逻辑控制器中,所以上述可信执行环境也可以保存安全逻辑验证算法。被感染的工程软件下载恶意执行逻辑到上述目标可编程逻辑控制器中时,可以通过安全逻辑验证算法对上述目标可编程逻辑控制器接收到的执行逻辑进行逻辑检查,当发现上述执行逻辑存在安全违规的逻辑时,例如试图恶意进入上述可信执行环境尝试使用非指定安全API来访问安全内存或安全I/O等,或者逻辑出现巨大跳变等,则发起警告,上述目标可编程逻辑控制器不执行接收上述执行逻辑。
在一个实施例中,所述操作信息包括修改逻辑返回地址,所述认证信息包括目标逻辑返回地址;步骤S12包括:在所述逻辑返回地址与所述目标逻辑返回地址相同时,不执行修改所述逻辑返回地址。
在应用中,针对上述目标可编程逻辑控制器的控制流攻击,通常采用上述目标可编程逻辑控制器内部本身可执行的代码,通过栈溢出等漏洞,将间接调用等分支语句的返回地址即上述目标逻辑返回地址覆盖,从而修改了逻辑返回地址,使得原先的控制流转向到攻击者的指定地址处,形成ROP(Return-oriented Programming,面向返回的编程)攻击。传统的解决方式被称为控制流完整性检查(CFI),可以分为前向和后向,其中后向检查主要有两种方式,一种是使用金丝雀(Canary),在返回地址前增加一个标识内容,当该标识内容被改变,则说明了发生了ROP攻击,另一种方法是通过插桩,将返回地址复制到安全的影子栈中进行保护,当返回时,对比返回地址是否发生改变来验证是否出现攻击。
在应用中,由于金丝雀和影子栈需要保存在安全内存中,以往的手段往往采用内存管理技术使得主程序无法访问到安全内存,本申请使用可信执行环境来保护,从硬件上实现了内存无法访问。由于可编程逻辑控制器是硬实时系统,直接用BL或SVC等命令将所有间接调用都转向可信执行环境中,必然会引入过高的系统开销,从而影响到系统的实时性。因此,可采用动态策略,由于可编程逻辑控制器每一个任务都有其相应的截至时间,所以CFI检查会根据预测任务完成的时间和相应的截至时间的差值来决定是否检查以及采用何种检查,即当预期任务完成的时间与截至时间相差很多时,则可使用开销较大的影子栈形式,而当预期任务完成的时间与截至时间相差不多时,则可使用开销较小的金丝雀形式。
在应用中,由于可编程逻辑控制器的逻辑是周期性执行,所以预测任务完成的时间可以通过学习模式,对系统每个任务进行观察来得到。因此整个系统将分为两个阶段,学习阶段和保护阶段,在学习阶段会对每项任务进行监控,得到该任务的预期完成时间,为了确保实时性,可以采用学习阶段每个任务的最长完成时间来作为预期完成时间的策略。而在保护阶段,则依据学习阶段的预期完成时间来选择使用的CFI策略。
在一个实施例中,所述操作信息包括修改中断返回主函数地址,所述认证信息包括目标中断返回主函数地址;步骤S12包括:在所述中断返回主函数地址与所述目标中断返回主函数地址相同时,不执行修改所述中断返回主函数地址。
在应用中,上述目标可编程逻辑控制器的中断包括内部执行逻辑高优先级任务引起的中断和外部I/O中断等,本申请将所有中断向量之前加入自定义向量,在进入到正常中断处理器之前,可以被可信执行环境中设定的捕获器捕获,从而由可信执行环境内的检查函数来首先进行安全检查,包括检查中断返回主函数地址与上述目标中断返回主函数地址是否相同,使得中断处理函数返回主函数时能够不受地址覆盖攻击。
在应用中,上述目标可编程逻辑控制器内的执行逻辑高优先级任务可能会由于低优先级任务占用了计算或存储资源而无法进行,这些资源被低优先级任务设置为任务完成后释放,导致优先级反转。在本申请中,因为高优先级任务引起的中断,会进入到上述可信执行环境中,所以可以在上述可信执行环境中维护一个高权限的指令,当存在优先级反转问题时,会将低优先级任务所占有的资源强制释放,待高优先级任务完成后,再重新运行低优先级任务。
在一个实施例中,所述操作信息接收输入输出接口数据,所述认证信息包括预设输入输出接口数据范围;步骤S12包括:在所述输入输出接口数据不属于所述预设输入输出接口数据范围时,不执行接收所述输入输出接口数据。
在应用中,攻击者可能修改传感器数据,导致上述目标可编程逻辑控制器的I/O接口读取的数据有误,进而影响上述目标可编程逻辑控制器内部逻辑控制,最终造成输出执行器的物理损坏。因此可以在上述可信执行环境中维护一个I/O监控器,在学习阶段,学习I/O在每个任务阶段的正常输入范围,即上述预设输入输出接口数据范围,在保护阶段,将目标可编程逻辑控制器接收到的输入输出接口数据与上述预设输入输出接口数据范围进行对比来进行攻击判断。
在应用中,还可以使用动态水印技术,对传感器数据进行水印加密,而在上述可信执行环境中维护一个水印验证算法,对上述目标可编程逻辑控制器接收到的输入输出接口数据进行统计学验证,来判断I/O数据是否被恶意修改。以上两种方式都会引入大量的开销,可能会影响到系统的实时性需求,且可编程逻辑控制器可连接控制上千个I/O节点,对比每个节点每个时刻是否在对应阶段的范围内,或者计算每个节点的水印验证都会给系统带来巨额的开销甚至引发宕机。因此,可采用只实时记录而不实时检查的异步处理方式,尤其是水印验证等异常检测算法,仅将I/O数值记录到可信执行环境中维护的安全日志中输出,操作员可以随时通过安全API来查看安全日志,而在系统空闲时,则会进行安全日志的审查,当发现频繁或连续出现I/O数值出错问题时,则会在日志中报警。
本申请实施例提供的可编程逻辑控制器的安全保护方法,通过在可信执行环境中保存各类认证信息,根据认证信息对目标可编程逻辑控制器接收到的各类操作信息进行验证,在验证失败时目标可编程逻辑控制器不执行操作信息,能够对针对可编程逻辑控制器的各种攻击进行保护,保护的范围广,提高了可编程逻辑控制器的安全性。
实施例三
如图2所示,本实施例还提供一种可编程逻辑控制器的安全保护装置,该可编程逻辑控制器的安全保护装置200包括:
操作验证模块201,用于若目标可编程逻辑控制器获取到操作信息,则根据预先存储在可信执行环境中的认证信息对所述操作信息进行验证,所述可信执行环境建立在所述目标可编程逻辑控制器中;
操作拒绝模块202,用于在所述操作信息验证失败时,不执行所述操作信息。
在一个实施例中,所述操作信息包括接收更换固件,所述认证信息包括目标更换固件的目标哈希值;所述操作拒绝模块,具体用于在所述更换固件的哈希值与所述目标哈希值不同时,不执行接收所述更换固件。
在一个实施例中,所述操作信息包括修改配置文件,所述认证信息包括目标配置文件;所述操作拒绝模块,具体用于在所述配置文件与所述目标配置文件相同时,不执行修改所述配置文件。
在一个实施例中,所述操作信息包括接收执行逻辑,所述认证信息包括安全逻辑验证算法;所述操作拒绝模块,具体用于在根据所述安全逻辑验证算法检查到所述执行逻辑存在违规逻辑时,不执行接收所述执行逻辑。
在一个实施例中,所述操作信息包括修改逻辑返回地址,所述认证信息包括目标逻辑返回地址;所述操作拒绝模块,具体用于在所述逻辑返回地址与所述目标逻辑返回地址相同时,不执行修改所述逻辑返回地址。
在一个实施例中,所述操作信息包括修改中断返回主函数地址,所述认证信息包括目标中断返回主函数地址;所述操作拒绝模块,具体用于在所述中断返回主函数地址与所述目标中断返回主函数地址相同时,不执行修改所述中断返回主函数地址。
在一个实施例中,所述操作信息接收输入输出接口数据,所述认证信息包括预设输入输出接口数据范围;所述操作拒绝模块,具体用于在所述输入输出接口数据不属于所述预设输入输出接口数据范围时,不执行接收所述输入输出接口数据。
需要说明的是,上述模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种终端设备300,如图3所示,包括存储器301、处理器302以及存储在存储器301中并可在处理器302上运行的计算机程序303,处理器302执行计算机程序303时实现第一方面提供的可编程逻辑控制器的安全保护方法的步骤。
在应用中,终端设备可包括,但不仅限于,处理器以及存储器,图3仅仅是终端设备的举例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如,输入输出设备、网络接入设备等。输入输出设备可以包括摄像头、音频采集/播放器件、显示屏等。网络接入设备可以包括网络模块,用于与外部设备进行无线网络。
在应用中,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在应用中,存储器在一些实施例中可以是终端设备的内部存储单元,例如终端设备的硬盘或内存。存储器在另一些实施例中也可以是终端设备的外部存储设备,例如,终端设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。存储器还可以既包括终端设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器还可以用于暂时存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到终端设备的任何实体或设备、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的设备及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,设备间接耦合或通讯连接,可以是电性,机械或其它的形式。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种可编程逻辑控制器的安全保护方法,其特征在于,包括:
若目标可编程逻辑控制器获取到操作信息,则根据预先存储在可信执行环境中的认证信息对所述操作信息进行验证,所述可信执行环境建立在所述目标可编程逻辑控制器中;
在所述操作信息验证失败时,不执行所述操作信息。
2.如权利要求1所述的可编程逻辑控制器的安全保护方法,其特征在于,所述操作信息包括接收更换固件,所述认证信息包括目标更换固件的目标哈希值;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述更换固件的哈希值与所述目标哈希值不同时,不执行接收所述更换固件。
3.如权利要求1所述的可编程逻辑控制器的安全保护方法,其特征在于,所述操作信息包括修改配置文件,所述认证信息包括目标配置文件;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述配置文件与所述目标配置文件相同时,不执行修改所述配置文件。
4.如权利要求1所述的可编程逻辑控制器的安全保护方法,其特征在于,所述操作信息包括接收执行逻辑,所述认证信息包括安全逻辑验证算法;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在根据所述安全逻辑验证算法检查到所述执行逻辑存在违规逻辑时,不执行接收所述执行逻辑。
5.如权利要求1所述的可编程逻辑控制器的安全保护方法,其特征在于,所述操作信息包括修改逻辑返回地址,所述认证信息包括目标逻辑返回地址;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述逻辑返回地址与所述目标逻辑返回地址相同时,不执行修改所述逻辑返回地址。
6.如权利要求1所述的可编程逻辑控制器的安全保护方法,其特征在于,所述操作信息包括修改中断返回主函数地址,所述认证信息包括目标中断返回主函数地址;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述中断返回主函数地址与所述目标中断返回主函数地址相同时,不执行修改所述中断返回主函数地址。
7.如权利要求1所述的可编程逻辑控制器的安全保护方法,其特征在于,所述操作信息接收输入输出接口数据,所述认证信息包括预设输入输出接口数据范围;
所述在所述操作信息验证失败时,不执行所述操作信息,包括:
在所述输入输出接口数据不属于所述预设输入输出接口数据范围时,不执行接收所述输入输出接口数据。
8.一种可编程逻辑控制器的安全保护装置,其特征在于,包括:
操作验证模块,用于若目标可编程逻辑控制器获取到操作信息,则根据预先存储在可信执行环境中的认证信息对所述操作信息进行验证,所述可信执行环境建立在所述目标可编程逻辑控制器中;
操作拒绝模块,用于在所述操作信息验证失败时,不执行所述操作信息。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的可编程逻辑控制器的安全保护方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的可编程逻辑控制器的安全保护方法。
CN202310372834.4A 2023-03-29 2023-03-29 可编程逻辑控制器的安全保护方法、装置、设备及介质 Pending CN116795031A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310372834.4A CN116795031A (zh) 2023-03-29 2023-03-29 可编程逻辑控制器的安全保护方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310372834.4A CN116795031A (zh) 2023-03-29 2023-03-29 可编程逻辑控制器的安全保护方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN116795031A true CN116795031A (zh) 2023-09-22

Family

ID=88037623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310372834.4A Pending CN116795031A (zh) 2023-03-29 2023-03-29 可编程逻辑控制器的安全保护方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116795031A (zh)

Similar Documents

Publication Publication Date Title
US8272059B2 (en) System and method for identification and blocking of malicious code for web browser script engines
EP2756366B1 (en) Systems, methods, and media for detecting return-oriented programming payloads
US9117077B2 (en) Systems and methods for using a reputation indicator to facilitate malware scanning
US10310992B1 (en) Mitigation of cyber attacks by pointer obfuscation
US8214900B1 (en) Method and apparatus for monitoring a computer to detect operating system process manipulation
US10867048B2 (en) Dynamic security module server device and method of operating same
CN107908958B (zh) SELinux安全标识符防篡改检测方法及系统
CN112948086B (zh) 一种可信plc控制系统
WO2021046811A1 (zh) 一种攻击行为的判定方法、装置及计算机存储介质
Francillon et al. Systematic treatment of remote attestation
US10339307B2 (en) Intrusion detection system in a device comprising a first operating system and a second operating system
CN104866767A (zh) 一种新型安全机制的嵌入式模块
CN101599113A (zh) 驱动型恶意软件防御方法和装置
CN109376530B (zh) 基于标记的进程强制行为控制方法和系统
CN115879099A (zh) 一种dcs控制器、操作处理方法和防护子系统
CN110348180B (zh) 一种应用程序启动控制方法和装置
CN115086081B (zh) 一种蜜罐防逃逸方法及系统
CN116795031A (zh) 可编程逻辑控制器的安全保护方法、装置、设备及介质
CN115509691A (zh) 一种虚拟机内部栈溢出识别方法及系统
CN114462041A (zh) 基于双体系架构的动态可信访问控制方法及系统
WO2020012474A1 (en) Return-oriented programming attack protection system and method
CN114417426B (zh) 基于紧耦合规则的可信验证方法、装置、存储介质和电子设备
CN111385791B (zh) 安全威胁检测方法及终端
CN111913430B (zh) 工业控制系统控制行为检测防护方法和系统
CN109190383B (zh) 访问指令的处理方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination