[发明专利]针对西门子PLC漏洞挖掘的方法有效
申请号: | 202010233207.9 | 申请日: | 2020-03-29 |
公开(公告)号: | CN111427305B | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 傅涛;郑轶;王力;王路路;程旺宗 | 申请(专利权)人: | 博智安全科技股份有限公司 |
主分类号: | G05B19/05 | 分类号: | G05B19/05 |
代理公司: | 南京司南专利代理事务所(普通合伙) 32431 | 代理人: | 于淼 |
地址: | 210001 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 西门子 plc 漏洞 挖掘 方法 | ||
1.一种针对西门子PLC漏洞挖掘的方法,其特征在于,包括:
顺序依次执行的PLC通信场景搭建、PLC有效通信数据采集、流量分析、Fuzz脚本程序开发以及PLC异常监测;
所述针对西门子PLC漏洞挖掘的方法,具体步骤如下:
步骤1:PLC通信场景搭建,所述PLC通信场景搭建包括:
安装一台win7x64上位机,与被测试的西门子PLC进行连通,确认上位机与被测试的西门子PLC通信正常;
步骤2:作为PLC有效通信数据采集的流量采集,所述流量采集包括:
在上位机中安装西门子组态软件TIA后,对被测试的西门子PLC进行简单编程;
步骤3:流量分析,所述流量分析包括:
打开wireshark抓包软件,加载针对西门子协议分析的专用插件,即西门子PLC通信协议插件s7comm对PLC工程下载过程的数据的流量数据包进行全面分析,识别作为通信数据的流量数据包中的协议头、功能码、参数、长度和数据这样的部分;
步骤4:Fuzz程序开发,所述Fuzz程序开发包括:
分析了上位机与被测试的西门子PLC的通信过程之后,掌握其数据交互的过程,开发程序对通信过程进行模拟,达到通过程序完成与被测试的西门子PLC通信效果;针对数据包中的某一帧数据,对应被测试的西门子PLC执行的一个特定操作,对数据中的协议字段进行变异,覆盖该字段数值所有可能存在的情况,构造成完整的数据包发送至被测试的西门子PLC;
步骤5:异常监测,所述异常监测包括:
在程序测试过程中,监测被测试的西门子PLC运行状态,当被测试的西门子PLC拒绝服务漏洞被触发后,被测试的西门子PLC进入异常状态,指示灯异常闪烁,程序自动测试被中断,此时可断定触发了PLC的拒绝服务漏洞。
2.根据权利要求1所述的针对西门子PLC漏洞挖掘的方法,其特征在于,所述安装一台win7x64上位机,包括:下载西门子TIA Portal软件,即博图软件并安装在该win7x64上位机上。
3.根据权利要求1所述的针对西门子PLC漏洞挖掘的方法,其特征在于,所述对被测试的西门子PLC进行简单编程,包括:
使用西门子TIA Portal软件编制一个简易的PLC工程,将简易的PLC工程文件下载至被测试的西门子PLC。
4.根据权利要求3所述的针对西门子PLC漏洞挖掘的方法,其特征在于,所述简易的PLC工程下载之前开启wireshark抓包软件,确保整个简易的PLC工程下载过程的数据被wireshark抓包软件完整采集。
5.根据权利要求3所述的针对西门子PLC漏洞挖掘的方法,其特征在于,所述Fuzz程序开发具体包括:
选取某种脚本语言作为Fuzz程序开发语言,编写程序与被测试的西门子PLC建立合法通信,截取通信中的数据包中的完整请求数据,该段数据为合法的、完成对被测试的西门子PLC的CPU的某个请求,该数据发往被测试的PLC后,被测试的PLC将进行解析与应答;识别到数据段中字节码包含了对CPU的某个请求,就可选取此字节码为需要进行Fuzz的,为从0x00至0xFF进行全部遍历,构造成响应数据包往被测试的西门子PLC发送,观察被测试的西门子PLC对数据解析应答后的状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于博智安全科技股份有限公司,未经博智安全科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010233207.9/1.html,转载请声明来源钻瓜专利网。