一种监测西门子S7-PLC储水罐水位越界的方法与流程

文档序号:21087716发布日期:2020-06-12 17:00阅读:409来源:国知局
一种监测西门子S7-PLC储水罐水位越界的方法与流程

本发明属于工控网络安全领域,具体涉及监测西门子s7-plc的方法,尤其涉及一种监测西门子s7-plc储水罐水位越界的方法。



背景技术:

随着工业4.0、中国制造2025、互联网+、物联网、两化融合进程的不断交叉融合,越来越多的信息技术应用于工控领域,工控系统的开放程度也越来越高,在为工业生产带来极大推动的同时也带来了诸如木马、病毒、网络攻击等安全问题。这些都成为了制约信息化与工业化深度融合发展的重要因素,传统的以物理隔离为主的防护措施已远远不能满足工业信息化发展的需求。目前工业控制系统普遍存在一些严重的安全问题,主要表现为:

一、各类安全漏洞不能及时加固,系统存在严重的安全隐患

现在运行的工控系统普遍在设备、系统、协议等层面存在安全漏洞,且基于工控系统特殊的运行机制,工控具有系统软件难以实时升级、安全漏洞难以及时加固、设备使用周期长以及系统补丁兼容性差、发布周期长等特点,导致工控系统存在严重的安全隐患。

二、工业网络及总线通讯缺乏安全机制,易于被攻击和利用

工控系统以实时性和可靠性为目的,追求效率和速度,对身份认证、规则检查、加密传输、完整性检查等缺乏安全措施,极易受到攻击。工控系统现场总线大量使用明码传输,极易被破译和伪造。

三、“互联网+工业控制系统”及两化融合等使得工控系统安全威胁全面升级

深度网络化和多层面互联互通的两化融合增加了工业环境中潜在的攻击路径,传统it产品的引入带来了更多安全漏洞,而新兴信息技术在工业控制领域的安全理论、防护体系尚不成熟,安全防护手段亦显不足,这使得工控网络在网络攻击面前“不堪一击”。

四、传统信息安全领域的安全产品在工业控制网络中的不适应性

传统信息网络安全产品由于要具有广泛的应用场景,因此只能以黑名单为基础进行特征、危险行为检测,而大量的传统信息安全的特征、行为、协议在工控环境中并不存在。并且黑名单方式的安全检测需要长期、成熟的工控安全行业的技术积累和大量样本分析才有可能做到一定的检测有效性。而工控环境中,通信设备相对较少,通信协议相对单一,通信业务相对固定,因此具备以白名单为基础的安全检测。

德国西门子(siemens)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金、化工、印刷生产线等领域都有应用。西门子(siemens)公司的plc产品包括logo、s7-200、s7-1200、s7-300、s7-400等。西门子s7系列plc体积小、速度快、标准化,具有网络通信能力,功能更强,可靠性高。s7系列plc产品可分为微型plc(如s7-200),小规模性能要求的plc(如s7-300)和中、高性能要求的plc(如s7-400)等。但是,西门子s7-plc同样也面临本领域的上述问题,具体地,现有技术中尚无一种监测西门子s7-plc储水罐水位越界的方法。



技术实现要素:

本发明针对现有技术的不足问题,提出了一种监测西门子s7-plc储水罐水位越界的方法,通过解析西门子s7-plc储水罐的通信数据,判断水位值是否等于水位越界阀值,并记录诸如源ip地址、源mac地址、源端口号、目标ip地址、目标mac地址、目标端口号等关键信息,供后续分析使用,包括以下步骤:

s001:与所述西门子s7-plc储水罐建立通信连接;

s002:向所述西门子s7-plc储水罐发送读取状态的十六进制数据包;

s003:接收所述西门子s7-plc储水罐的返回数据,并判断所述返回数据包含的s7comm数据包是否为应答数据,如果是,执行步骤s004,否则执行步骤s003;

s004:读取所述应答数据中的水位值,如果等于水位越界阀值,则执行步骤s005,否则执行步骤s001;

s005:发出告警信息并记录当前返回数据中源ip地址、源mac地址、源端口号、目标ip地址、目标mac地址、目标端口号,以供后续分析使用。

优选地,步骤s001的具体步骤包括:

s0011:向所述西门子s7-plc储水罐发送十六进制数据包0x11e00000000100c0010ac1020100c202,其中0xe0表示请求建立通信连接;

s0012:判断所述西门子s7-plc储水罐的返回数据是否包含确认连接标识0x11d00001000100c0010ac1020100c202,如果是,执行步骤s002,否则执行步骤s0011,其中,0xd0表示确认连接。

优选地,所述步骤s002的所述读取状态的十六进制数据包中,第2字节的内容为0x01,表示头部分的远程操作服务控制字段值为任务,第11字节的内容为0x04,表示参数部分的功能字段值为读数据。

优选地,所述步骤s003中,所述返回数据的第62个字节至结束的字节内容为所述s7comm数据包,所述s7comm数据包的头部分的第2字节的内容为所述远程操作服务控制字段值。

优选地,所述步骤s003的具体步骤包括:

s0031:接收所述西门子s7-plc储水罐的返回数据并读取s7comm数据包;

s0032:判断所述s7comm数据包中头部分的远程操作服务控制字段值是否为指定值,如果是,执行步骤s004,否则执行步骤s0031。

优选地,所述指定值为0x3,表示当前数据为所述应答数据。

优选地,所述步骤s004的具体步骤为:

s0041:判断所述s7comm数据包参数部分的功能字段值是否为读数据,如果是,执行步骤s0042,否则执行步骤s0041,其中,所述s7comm数据包第13字节的内容为所述功能字段值,所述功能字段值为0x04,表示读数据;

s0042:读取所述s7comm数据包的数据字段值:所述s7comm数据包第19字节至第22字节的内容为所述s7comm数据包的数据字段值;

s0043:判断所述s7comm数据包的数据字段值是否等于水位越界阀值,如果是,则执行步骤s005,否则执行步骤s001。

优选地,当前返回数据中第1字节至第6字节的内容为所述目标mac地址,第7字节至第12字节的内容为所述源mac地址,第27字节至第30字节的内容为所述源ip地址,第31字节至第34字节的内容为所述目标ip地址,第35字节至第36字节的内容为所述源端口号,第37字节至第38字节的内容为所述目标端口号。

本发明的有益效果是:通过解析西门子s7-plc数据包,来判断是否有水位越界的发生,不需要人为监视储水罐状态。

附图说明

图1为本发明的流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步阐述。如图1所示,本发明的方法包括以下步骤:

s001:与西门子s7-plc储水罐建立通信连接,步骤s001的具体步骤包括:

s0011:向西门子s7-plc储水罐发送十六进制数据包0x11e00000000100c0010ac1020100c202,其中0xe0表示请求建立通信连接;

s0012:判断西门子s7-plc储水罐的返回数据是否包含确认连接标识0x11d00001000100c0010ac1020100c202,如果是,执行步骤s002,否则执行步骤s0011,其中,0xd0表示确认连接。

s002:向西门子s7-plc储水罐发送读取状态的如下十六进制数据包:32010000018b005600000407120a10060001000184000d70120a10010001000184000c82120a10010001000184000c86120a10010001000184000c88120a10010001000184000c89120a10060001000184000d90120a10060001000184000db0,其中,下划线部分的内容0x01表示header(即头部分)的远程操作服务控制rosctr字段值为任务(job),0x04表示parameter(即参数部分)的function(功能)字段值为读数据(readvar)。

s003:接收所述西门子s7-plc储水罐的返回数据,并判断返回数据包含的s7comm数据包是否为应答数据,如果是,执行步骤s004,否则执行步骤s003;

s0031:接收西门子s7-plc储水罐的返回数据并读取s7comm数据包:

如下示例为接收到的西门子s7-plc储水罐的返回数据,返回数据的第62个字节至结束的字节内容为s7comm数据包,如粗黑体字部分所示:

e0dca0405197e0dca03a331c08004500006d190600001e06002ec0a80103c0a801040066da250008dde7f30f69c5501820007db400000300004502f0803203000001130002003000000407ff04002041200000ff0300010100ff0300010000ff0300010100ff0300010000ff04002041000000ff04002040000000

其中,下划线部分的内容0x03为指定值,表示当前数据为应答数据(ack_data);

s0032:判断s7comm数据包中头部分的远程操作服务控制rosctr字段值是否为指定值0x03,如果是,执行步骤s004,否则执行步骤s0031;如上所示,本实施例中的指定值为0x03,表示当前数据为应答数据(ack_data),流程执行步骤s004。

s004:读取应答数据中的水位值,如果等于水位越界阀值,则执行步骤s005,否则执行步骤s001;

步骤s004的具体步骤为:

s0041:判断s7comm数据包parameter(即参数部分)的function(功能)字段值是否为0x04,即读数据(readvar),如果是,执行步骤s0042,否则执行步骤s0041;本实施例中,如下述所接收到的西门子s7-plc储水罐返回的s7comm数据包中下划线的内容所示,s7comm数据包第13字节的内容为function(功能)字段值,其值为0x04,表示读数据(readvar);

3203000001190002003000000407ff04002041200000ff0300010100ff0300010000ff0300010100ff0300010000ff04002041000000ff04002040000000

s0042:读取s7comm数据包的数据字段值:本实施例中,如下述所接收到的西门子s7-plc储水罐返回的s7comm数据包中下划线的内容所示,第19字节至第22字节的内容为s7comm数据包的数据data字段值0x41200000,即,本实施例中设置的水位越界阀值;

3203000001190002003000000407ff04002041200000ff0300010100ff0300010000ff0300010100ff0300010000ff04002041000000ff04002040000000

s0042:判断s7comm数据包的数据字段值是否等于水位越界阀值,如果是,则执行步骤s005,否则执行步骤s001;本实施例中,水位值等于水位越界阀值,流程执行步骤s005。

s005:发出告警信息并记录当前返回数据中源ip地址、源mac地址、源端口号、目标ip地址、目标mac地址、目标端口号,以供后续分析使用:

下述为本发明另一实施例中当前返回数据:

e0dca03a331ce0dca040519708004500008f1dd740004006993ac0a80104c0a80103da250066f30ecbc5000874585018390840d000000300006702f080320100000188005600000407120a10060001000184000d70120a10010001000184000c82120a10010001000184000c86120a10010001000184000c88120a10010001000184000c89120a10060001000184000d90120a10060001000184000db0

如上述数据中斜体字部分所示,当前数据包的第1字节至第6字节的内容为目标mac地址0xe0dca03a331c,即目标mac地址为e0-dc-a0-3a-33-1c;第7字节至第12字节的内容为源mac地址0xe0dca0405197,即源mac地址为e0-dc-a0-40-51-97。

如上述数据中带下划线部分所示,第27字节至第30字节的内容为源ip地址0xc0a80104,即源ip地址为192.168.1.4;第31字节至第34字节的内容为目标ip地址0xc0a80103,即目标ip地址为192.168.1.3;第35字节至第36字节的内容为源端口号0xda25,即源端口号为55845;第37字节至第38字节的内容为目标端口号0x0066,即目标端口号为102。

通过本发明提供的方法,解决了现有技术中尚无一种监测西门子s7-plc储水罐水位越界的方法的技术问题。

应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

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