关于PLC设备安全防护的几点建议
以西门子300PLC为例说明:
1)将PLC的WEB服务器(不使用的话)关闭;
SIMATIC S7-300 CPU可以实现Web服务器功能,并能通过T业以太网络从任意地点进行诊断。任意Web客户端,如PC、多功能面板、PDA都可以通过一个标准网络浏览器访问PN-CPU的诊断数据。因此,对CPU的访问不再限于只使用STEP 7的标准访问方式,根据企业各自的IT基本设施,该诊断也可以通过互联网实现。
集成于CPU中的Web服务器优点如下。
(l)启动和运行系统期间,从任意地点都可以轻易地访问CPU 上的诊断信息。这提高了设备可用性,缩短了停机时间。
(2)无需其他硬件或软件,通过CPU中集成的PROFINET接口就可以访问网页。所有标准的网络浏览器(如IE)都可以显示网页。
(3)出于安全原因,为网络服务器提供了分级的安全机制。对于网络服务器只有读访问权限,即不能将数据通过Web机制写入CPU。如果被授予读访问权限,则通过一个SCALANCE S模式保护CPU不接受未经允许的访问。如果不需要CPU的Web服务器功能,可以通过STEP7组态软件在组态过程中完全切断集成Web服务器。
2)在博途软件或在step7软件上,硬件组态界面的CPU模块均有protection选项卡可以选择保护级别来设置密码进行口令保护(取消弱口令),禁止非授权的上传和下载操作,这是最安全的保护方法;
3)将所有的程序组织单元POU(如OB、FB、FC、DB块)进行加密;
S7-300程序加密方法
加密步骤:
1.打开程序编辑窗口LAD/FBD/STL;
2.将要进行加密保护的程序块生成转换为源代码文件(通过选择菜单 File—>Generate source 生成);
3.在LAD/FBD/STL 窗口中关闭您的程序块,并在SIMATIC Manager项目管理窗口的source文件夹中打开上一步所生成的Source文件;
4.在程序块的声明部分,TITLE行下面的一行中输入 KNOW_HOW_PROTECT;
5.存盘并编译该Source文件(选择菜单File _Compile),现在就完成了您程序块的加密保护。
4)利用系统的存储器和时钟存储器功能,通过设置系统存储器和时钟存储器功,一定程度上降低程序被篡改的可能性,同时能提高程序的可读性。
在西门子PLCS7-300系列的编程软件STEP7 V5.5中,用户可以通过相关的配置,自由定义时钟存储器,并可以在程序逻辑中使用,下面就对时钟存储器做一个简要介绍:
(1)在编程软件STEP7 V5.5中,首先用户添加新的项目,在项目中打开硬件组态界面,并在界面中添加相应的硬件配置;
(2)在弹出的CPU属性对话框中选择“周期/时钟存储器”选项卡;
(3)在这个选项卡中,有一个“时钟存储器”复选框,勾选选中“时钟存储器”一项,并输入相应的“存储器字节”,系统默认为0;
(4)如果存储器字节为0,那么相应的存储器M0.0-M0.7将被赋予相应的周期,分别对应0.1s-2.0s,这时在程序的逻辑设计过程中,用户就可以使用M0.0-M0.7来实现相关功能了。
5) 采用多重背景的数据传递方式,多重背景即创建一个更高级别的功能块,有利于节省DB块的定义、分配和管理,简化了项目结构,提高程序安全性。
6) 使用间接寻址,只有当程序执行时,用于读或写数值的地址才得以确定,能提高其安全性
7) 从官网网站下载响应的固件库、驱动、GSD文件等,确保下载的文件未被感染病毒,降低被攻击的可能性;
8) 必要时升级固件库;
第一步:开始—SiemensAutomation—SIMATIC—硬件升级,
第二步:联网直接从Internet下载;如果磁盘上有最新更新的HWUpdate文件,也可选择从磁盘中复制;
第三步:执行,弹出最新更新界面;点击全选—安装。
第四步:下载完成,可以在设置里面查看下载的地址。
9) 将不用的网口用网口硬件锁进行封锁。
说明:文章部门图片和描述来源于网络,如有侵权请及时联系作者删除。
原文始发于微信公众号(老马玩工控安全):关于西门子PLC控制器防护建议