面向可编程逻辑控制器的内存攻击检测方法及系统

文档序号:31620752发布日期:2022-09-23 23:11阅读:来源:国知局

技术特征:
1.一种面向可编程逻辑控制器的内存攻击检测方法,其特征在于,包含如下内容:通过plc协议的语义逆向分析和内存结构的分析,获取plc协议语义和物理内存映射,并提取plc关键内存数据;通过发送plc读取请求来获取plc关键内存数据,计算内存数据相对应的哈希值,并将获取到的plc关键内存数据及哈希值作为检测阶段初始内存副本;定期读取plc关键内存数据,计算内存数据的哈希值,并将其与初始内存副本进行比较,依据比较结果来检测plc关键内存数据的完整性。2.根据权利要求1所述的面向可编程逻辑控制器的内存攻击检测方法,其特征在于,提取plc关键内存数据中,通过协议逆向分析和内存结构分析来定位并提取plc控制应用中关键编译后的二进制数据,其中,关键编译后的二进制数据包含但不限于:控制逻辑程序、配置数据、变量数据、应用保护密码及固件。3.根据权利要求1或2所述的面向可编程逻辑控制器的内存攻击检测方法,其特征在于,协议语义逆向分析中,使用逆向调试软件对plc编程软件进行逆向工程并分析私有协议语义,具体包含:首先,定位plc通信的关键动态链接库文件;然后,通过执行关键动态链接库文件中可执行函数来挖掘支持plc与编程软件通信的关键类;接着,通过plc控制应用的单步调试来识别关键类函数数据包中的功能码;再者,观察编程软件与plc之间交互式网络流量并识别请求序列,以恢复协议状态机;最后,获取plc执行不同通信功能的功能码,使用标准序列比对技术分析协议中不同功能码语义。4.根据权利要求3所述的面向可编程逻辑控制器的内存攻击检测方法,其特征在于,定位plc通信的关键动态链接库文件中,运行编程软件并将编程软件连接到plc,利用调试器识别编程软件调用的所有动态链接库文件;过滤掉system32目录下所有系统动态链接库文件和.net目录下动态链接库文件,通过分析剩余的动态链接库文件来查找并定位负责plc通信的关键动态链接库文件。5.根据权利要求3所述的面向可编程逻辑控制器的内存攻击检测方法,其特征在于,通过plc控制应用的单步调试来识别关键类函数数据包中的功能码,运行编程软件并保持编程软件与plc的连接,定位并执行带有调试器的通信类中的关键函数,并识别负责向plc发送指令的关键函数;通过网络包分析工具在调试期间捕获关键函数发送的数据包,进而识别捕获的数据包中的功能码。6.根据权利要求1或2所述的面向可编程逻辑控制器的内存攻击检测方法,其特征在于,内存结构分析中,依据协议规范读取plc内存数据,并分析plc内存布局,进而提取关键内存数据。7.根据权利要求6所述的面向可编程逻辑控制器的内存攻击检测方法,其特征在于,分析plc内存布局中,首先,过滤plc内存空间的填充数据,并定位执行上传和下载时关键内存数据,寻找对应地址段;然后,对plc内存数据进行差异分析,利用plc内存块内容变化规律来识别出不同内存块的地址和大小。8.根据权利要求7所述的面向可编程逻辑控制器的内存攻击检测方法,其特征在于,利用plc读内存的功能码来提取关键内存数据中,根据定位到的plc内存分布中不同数据的起始地址段和内存块大小,提取对应类型的内存数据,其中,根据内存数据的地址分布、功能和访问权限将内存数据划分为如下数据类型:控制逻辑程序、变量数据、配置数据、应用保
护数据及固件数据。9.根据权利要求1所述的面向可编程逻辑控制器的内存攻击检测方法,其特征在于,利用动态校验和机制,定期请求读取plc内存中,随机选择数据块并随机生成校验和大小和偏移地址,利用生成的检验和大小和偏移地址构造校验和请求包并发送至plc,将哈希值及校验和与初始内存副本进行比较,如果哈希值和校验与初始内存副本不一致,则检测为攻击并发送相应警报消息。10.一种面向可编程逻辑控制器的内存攻击检测系统,其特征在于,包含:分析模块和检测模块,其中,分析模块,用于通过plc协议的语义逆向分析和内存结构的分析,获取plc协议语义和物理内存映射,并提取plc关键内存数据;检测模块,用于通过发送plc读取请求来获取plc关键内存数据及相对应的哈希值,将该获取到的plc关键内存数据及哈希值作为检测阶段初始内存副本;并定期读取plc关键内存数据中哈希值,将其与初始内存副本进行比较,依据比较结果来检测plc关键内存数据的完整性。

技术总结
本发明属于工业控制系统防御技术领域,特别涉及一种面向可编程逻辑控制器(programmable logic controller,PLC)的内存攻击检测方法及系统,通过PLC协议的语义逆向分析和内存结构的分析,获取PLC协议语义和物理内存映射,并提取PLC关键内存数据;通过发送PLC读取请求来获取PLC关键内存数据,计算相对应的哈希值,并将该获取到的PLC关键内存数据及哈希值作为检测阶段初始内存副本;定期读取PLC关键内存数据,计算其哈希值,并将其与初始内存副本进行比较,依据比较结果来检测PLC关键内存数据的完整性。本发明能够实现面向PLC的内存完整性保护及运行时的攻击检测和应急响应,提升工业控制系统攻击防御的可靠性。提升工业控制系统攻击防御的可靠性。提升工业控制系统攻击防御的可靠性。


技术研发人员:耿洋洋 麻荣宽 魏强
受保护的技术使用者:中国人民解放军战略支援部队信息工程大学
技术研发日:2022.06.10
技术公布日:2022/9/22
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1