深夜值班电话一响,多半没好事。去年夏天一个凌晨,我接到现场来电:一条锂电池涂布产线全线报警,PLC站CPU负荷飙到90%以上,触摸屏频繁弹通讯超时。赶到中控室一看,操作员站的Windows系统多了一个陌生进程,CPU占用奇高,网络日志里全是外联请求。折腾到天亮才弄明白,是某台运维笔记本回办公室修过之后,再来现场调试时把挖矿木马带进了控制网。
这事放在五年前,很多人会当成个例。但你要是在工控圈子里泡得够久,会发现这几年同类事件越来越多。PLC、DCS这类设备被业内戏称为“工业神经”——它们直接控制电机、阀门、变频器,管着整条产线的启停和联锁。神经一旦被病毒或者恶意指令干扰,轻则非计划停机,重则设备损坏甚至人身事故。工控网络安全的警报,已经不是“拉不拉”的问题,而是“怎么拉”“拉完怎么办”的问题。
这篇文章适合谁看?常年在现场和PLC、DCS打交道的电气工程师、仪表工程师、自动化项目经理,以及刚接手工厂IT/OT融合网络的新人。我会从威胁来源、系统脆弱性、防护思路,到一套可以落地的加固流程,把我在项目里踩过的坑和验证过的方法原原本本讲一遍。
1. 警报为什么拉响:工控网络遭遇的真实威胁
1.1 “工业神经”到底指的是什么
很多非工控背景的人理解不了:为什么PLC、DCS中毒是一件很严重的事?普通电脑中毒顶多重装系统,PLC怎么会出人命?这里要先把概念统一一下。
PLC(可编程逻辑控制器)是现场级的控制设备,相当于单兵的神经末梢。它读传感器信号,做逻辑运算,然后输出开关量、模拟量去驱动接触器、变频器、调节阀。DCS(分布式控制系统)则更像一套完整的“中枢神经网络”,大量控制站分布在现场,通过冗余网络连接,多用在化工、电力、冶金这类连续流程行业。
传统印象里,PLC就是一个铁盒子,抗干扰、耐高温、常年不关机,好像天然免疫电脑病毒。这个印象在十几年前基本成立,因为PLC的网络几乎与外界隔绝。但现在的情况完全变了:产线要数据采集,SCADA要上云,MES要看实时产量,厂长在办公室就想看到车间OEE。于是控制网和办公网开始打通,PLC的通讯端口不再只面对编程器,而是暴露在整个企业网络里。工业神经一旦暴露,就是活靶子。
1.2 这几年最常见的几种攻击路径
我接触过的工控安全事件,真正被国家级黑客盯上的极少,绝大多数是这么来的:
勒索软件加密操作员站。最常见。操作员站多是Windows系统,一旦被勒索病毒加密,中控室直接变成瞎子,看不到任何工艺画面。因为业务连续性要求高,很多厂只能交赎金,或者从备份重装系统,产线梯队停摆。
挖矿木马占用控制器资源。开头那个案例就是典型。挖矿木马不太破坏数据,但把CPU和网络带宽吃得干干净净。PLC和DCS的扫描周期是有严格时序要求的,CPU被拖垮,逻辑执行就会抖动,产线频繁报错,产品报废率飙升。
利用漏洞直接下发恶意指令。这类攻击技术含量比较高,一旦得手,可以直接篡改控制逻辑或者设定值。比如修改温度PID设定值,让反应釜超温;修改变频器频率,让电机过载。这种不靠病毒靠协议的攻击,杀毒软件根本看不见。
内部误操作与U盘摆渡。往往是最容易中招的方式。调试笔记本接到过不可信网络,再去现场直接插入控制网;U盘在公司电脑拷过文件,又插到工程师站上传程序。病毒不挑食,它只需要一个入口。
我把这些威胁整理成一张速查表,方便做报告时直接用:
| 威胁类型 | 主要攻击路径 | 典型影响 | 应对重点 |
|---|---|---|---|
| 勒索软件 | 邮件附件、U盘摆渡、远程端口 | 操作员站加密,中控失去监控 | 主机白名单、备份恢复 |
| 挖矿木马 | 运维笔记本、非受控网络接入 | CPU占用高,扫描周期抖动 | 网络隔离、白名单 |
| 协议层攻击 | 直接构造Modbus/S7comm报文 | 篡改逻辑参数、控制指令 | 工业防火墙DPI、协议过滤 |
| 内部误操作 | 配置错误、误删程序、密码泄露 | 逻辑丢失、联锁失效 | 权限分级、操作审计 |
1.3 传统IT安全方案为什么不灵
很多企业碰到工控安全问题,第一反应是把办公室那套杀毒软件、防火墙、漏洞扫描搬到车间。结果往往水土不服,甚至搞出更大的麻烦。
杀毒软件靠病毒库和特征匹配,需要持续联网更新。控制网为了安全大多不连外网,病毒库几个月不更新,等于形同虚设。而工控组态软件和杀毒软件之间冲突不断,误杀现场运行文件的事,我见过不止一次。
漏洞扫描工具更棘手。IT领域的漏洞扫描是主动发报文去探测端口和指纹,但在OT环境里,这种主动探测对老旧PLC、DCS控制器本身就有风险。有些十年前的老模块CPU性能极低,来一轮扫描风暴直接死机,反而把产线扫停了。
IT安全的核心目标是“机密性优先”,数据不能丢;工控安全的底线是“可用性优先”,设备不能停。安全手段一旦影响生产连续性和实时性,工程师第一反应就是拆掉它。这也是为什么工控安全必须有自己的一套打法,不能直接照搬。
2. 先认清家底:PLC/DCS天生有哪些弱点
2.1 工控协议从设计之初就没考虑安全
这是PLC/DCS最容易受伤的根源。以Modbus TCP为例,这个协议在20世纪70年代末诞生,初衷就是简单可靠地把寄存器数据读出来写进去。它不设认证、不加加密,没有完整性校验,甚至没有权限分级。只要你的电脑能ping通PLC的IP地址,随便一个Modbus调试工具就能去读写寄存器。
西门子的S7comm协议也类似。老版本的S7-300/400在没有植入门禁保护的情况下,任何人用博途或者第三方库直接连接,都可以上载程序、下载逻辑。我早年在现场就遇到过:一个外包人员拿着软件,半个小时就把一台S7-300的程序整个读了出来,拷到U盘带走了,整个过程没有任何审计记录。
工控协议在以太网化之后,本来应该补上安全机制,但因为要和老设备兼容,很多厂商只能做向后兼容。结果就是一个网络上同时跑着脆弱的老协议和带着补丁的新协议,攻击者完全可以挑最软的那个柿子捏。
2.2 控制器硬件资源太有限,装不了防护代理
有人说,既然怕中毒,那给每台PLC装一个杀毒软件不就行了?这个想法在工控场景里基本行不通。
PLC/DCS控制器的本质是嵌入式系统,CPU频率低、内存小、存储空间更是金贵。很多老控制器的程序存储用电池供电的RAM,容量以KB为单位。装一个安全代理至少要多跑一个进程,吃掉一部分CPU和内存,这在高速控制场景是致命的。一个原理上5ms该跑完的扫描周期,被安全软件拖成15ms,伺服跟随精度直接就崩了。
我做过一个测试,把一台工业安全软件的主机探针装到一台老款DCS控制站的旁边作为旁路,仅仅做流量镜像分析,都对控制站网卡产生了不小压力。更别说直接在控制器上做防护了。所以控制器本身是不可能安装传统安全组件的,防护只能在外部做,要么在网络边界,要么在操作员站和工程师站这些上位机层面。
2.3 “永远不能停机”带来的补丁难题
IT系统打补丁是一件稀松平常的事,Windows更新直接重启服务器也没人说什么。但工业现场最怕的就是重启——反应釜在运行,机械手在抓取,涂布机在走带,你说重启一下?那这条线今天就算废了,生管能追着你骂三条街。
所以很多工厂的操作员站和DCS服务器常年不升级系统,有的甚至还在跑Windows XP。不是大家不想打补丁,而是工控组态软件往往对操作系统版本有严格绑定,打了补丁可能引发组态运行环境崩溃,这比漏洞的威胁更直接。结果就是:明知道有漏洞,也不敢打补丁,机器只能带病运行。
这里的关键不是“要不要打补丁”,而是“补丁怎么打才能不捅娄子”。我已经有了一套验证流程,后面实操部分会细讲。
2.4 运维习惯是最大安全缺口
技术漏洞可以靠设备补,流程漏洞只能靠人的习惯补,而习惯恰恰最难改。
我见过太多现场:PLC程序备份用U盘互拷,工程师站和操作员站共用一个账号密码,控制器密码设成默认的“123456”,远程维护端口常年开着,就等着设备出了故障供厂家远程调试用。这些习惯在“信任一切”的年代没什么,但在当下,每个都是突破口。
U盘是最典型的摆渡媒介。生产车间不可能完全禁止U盘,程序上传下载都需要。我见过比较规范的做法是专门配一台“杀毒U盘”——一个只读的USB隔离器,插上U盘先杀毒,再通过中间文件夹拷贝到工控电脑。这个土办法成本极低,但拦截效果出奇的好。后面我还会讲更多这类土办法,现场实操价值比买一堆高大上设备高得多。
3. 防护思路:给工业神经建立一套“免疫系统”
3.1 先把网络分层:从现场设备到办公网
做工控安全的第一步,不是买设备,而是搞清楚你厂里到底有多少台设备连在一起。工业自动化的经典架构是参考IEC 62443标准,结合普渡模型的分层方式,大致可以这么切:
L0:现场设备层,比如传感器、变送器、执行机构、变频器、伺服驱动器。
L1:基本控制层,也就是PLC、DCS控制站这些真正的“神经中枢”。
L2:监控层,包括操作员站、HMI、SCADA服务器、历史数据库。
L3:生产管理层,包括MES、APS、OPC服务器、报表系统。
L4:企业经营网,ERP、OA、邮件、办公电脑。
核心原则很简单:不同层级之间要有明确的边界,只允许业务必须的流量穿越边界。L0和L1之间的控制实时流量尽量留在本层;L1/L2和L3/L4之间的数据交互要经过受控通道。很多老工厂把PLC、MES、办公网全部塞在一个二层交换机里,PLC和行政妹子的电脑同网段,这样的网络无论如何加固都白搭。
3.2 边界隔离怎么做:工业防火墙与网闸
层间隔离最常用的是工业防火墙和网闸两种设备。
工业防火墙和办公室防火墙长得差不多,但多了对工控协议的深度解析能力,也就是DPI。普通防火墙只看IP和端口,工业防火墙还能读懂Modbus、S7comm、OPC UA这些协议的内容,可以做到更细粒度的控制。比如可以设置“只允许Modbus 03功能码(读保持寄存器),禁止05/06/0F/10这些写操作功能码”,这样哪怕攻击者突破了网络边界,也没法远程篡改设定值。
网闸则更彻底,采用物理隔离的数据交换方式,只在受控的协议转换通道里摆渡数据。控制网的实时数据可以“单向”流动到管理网,但反向回不来。它的优点是完全物理阻断,代价是灵活性差一些,部署和调试周期更长。
在选型上,我给一个实在的建议:凡是只读数据上报,能用网闸尽量用网闸;凡是需要双向交互的(比如OPC UA服务器与MES通信),用带工控协议DPI的工业防火墙,并配合白名单策略。
3.3 主机防护:白名单是工控场景的正解
操作员站和工程师站是Windows系统,这是病毒的大本营。传统的杀毒软件是黑名单思路,靠不断更新病毒库去识别“坏东西”;但工控场景网络隔离、病毒库更新困难,更麻烦的是工控软件频繁动态加载DLL和脚本,误报率高到没法用。
我强烈推荐在工控上位机上采用应用程序白名单机制。白名单的思路反过来的:只允许已知合法的程序运行,不在名单里的一律拦截。好处非常明显——不需要病毒库,不依赖网络更新,对老Windows系统友好。配置得当的情况下,连U盘的.exe文件都跑不起来,病毒想执行都没机会。
部署白名单最忌讳一上来就开强制模式。正确流程是先跑一段学习模式,让控制系统把正常运行时涉及的所有程序、服务、DLL都记录下来,形成基线,然后再切换到强制模式。后面实操章节我会给详细步骤。
3.4 控制器与账号的安全基线
网络和主机都管好了,也不能忘了控制器本身。很多PLC和DCS自身是有防护能力的,只是现场没开。
西门子S7-1200/1500支持访问级别设置,可以设置完全访问、只读访问等不同权限,并设定密码。S7-1500还有完整性保护和防拷贝功能,开启后下载程序需要密码验证。三菱FX系列也支持PLC密码和关键字保护,设置后需要输入才允许程序读取或修改。
DCS方面,横河CENTUM、霍尼韦尔Experion这些主流系统都有操作员级别和工程师级别的账号分级。我见过很多工厂,操作员站的账号是工程师权限,甚至所有人共用同一个管理员账号。这样一旦出问题,连是谁操作的都查不出来,这是安全审计里非常严肃的短板。
账号管理的最低要求就三条:不同人用不同账号、权限按岗位最小化、关键操作留操作日志。
4. 现场实操:一套产线安全加固的完整落地过程
4.1 盘点资产:先把家底摸清楚
很多安全项目失败,不是因为方案不好,而是因为一开始连资产清单都没有。我印象最深的一个项目,客户说一条产线只有2套PLC,结果盘完发现还有12台HMI、4台伺服、3台变频器、2台工控机,全部挂在同一个网段,交换机还是那种非网管的傻瓜交换机。
资产盘点建议用如下表格,逐台填写:
| 资产编号 | 设备类型 | 品牌型号 | IP地址 | 所属层级 | 负责人 | 固件/系统版本 | 开放端口 | 备注 |
|---|---|---|---|---|---|---|---|---|
| PLC-01 | 控制器 | 西门子S7-1500 | 192.168.10.10 | L1 | 张三 | V2.5 | 102, 1024 | 主轴控制 |
盘点方式我推荐以被动监听为主,配合现场查看设备铭牌和程序里的IP配置。不要一上来就上扫描器,对老旧系统风险太大。可以用交换机的端口镜像,找一台笔记本跑Wireshark抓半小时流量,就能很清楚地看到网内设备之间的通信关系,比主动扫描安全得多。
4.2 划分安全域:网络拓扑重新规划
资产盘完之后,画一张真实的网络拓扑图。重点标出PLC、DCS、HMI、操作员站、工程师站、SCADA服务器、OPC服务器、MES接口机,以及它们之间的连接方式。90%的老工厂画完这张图都会吓一跳——原来PLC跟办公网之间连防火墙都没有,中间还夹着一个无线路由器。
安全域划分的基本原则是“相似设备同域,不同风险隔离”。典型做法是把L1/L2控制网络划为一个主安全域,内部根据车间或工艺段再分子域;L3/L4管理网络划为另一个域,两域之间加工业防火墙或者网闸。控制域内部的远程维护端口要单独划一个维护区域,只允许经过堡垒机访问。
如果控制网和管理网之间实在没法改物理布线,至少要在交换机上切VLAN,再配合三层ACL做访问控制。这是退而求其次的办法,总比裸奔强。
4.3 配置工业防火墙:用最小权限原则
在网络边界设备到位后,配置策略是最关键的环节。我以一个典型项目为例:一套汽车零部件产线,3台西门子S7-1200/1500 PLC,2台上位操作员站(WinCC),1套OPC UA服务器,1台MES接口机,现场还挂了几台HMI。
我在控制网络和数据网络之间的工业防火墙上配置的规则大致如下:
| 优先级 | 源 | 目的 | 协议/端口 | 动作 | 说明 |
|---|---|---|---|---|---|
| 1 | 工程师站 | PLC-01/02/03 | S7comm TCP 102 | 允许 | 仅工程师站可下载程序 |
| 2 | 操作员站1/2 | PLC-01/02/03 | S7comm TCP 102 | 允许 | 正常监控读写 |
| 3 | PLC-01/02/03 | 现场HMI | Profinet IO | 允许 | 画面实时刷新 |
| 4 | OPC UA服务器 | MES接口机 | OPC UA TCP 4840 | 允许(只读) | 数据上报,禁止写 |
| 5 | 任意 | 任意 | 任意 | 拒绝 | 默认拒绝一切 |
默认拒绝这条规则是灵魂。白名单策略的准则是:规则列表里没写的一律不通过。很多人配置防火墙时只加了几条允许规则,忘了把默认动作改成拒绝,结果防火墙形同虚设,该漏的还是漏。
配置完成后,不要马上把防火墙切到阻断模式。先在日志模式跑一两天,看有没有业务流量被误拦。确认没有异常再切阻断模式,这是防止产线被自己搞停的稳妥做法。
4.4 部署白名单:学习模式再强制锁定
操作员站和工程师站的加固,我推荐在确认控制系统稳定后部署应用程序白名单。这里说的步骤,我在西门子和三菱PLC项目里都验证过。
先在工程师站装好白名单客户端,选择“学习模式”,让系统运行一个完整的生产班次。这个阶段所有程序调用都会被记录下来,包括WinCC运行环境、Step 7博途工程软件、OPC客户端、各种打印机驱动、数据库服务。建议学习模式保持48小时以上,覆盖白班、夜班、换型、启停机等不同工况,因为不同工况加载的程序模块可能不一样,学习不完整,切换强制模式就会误拦。
学习期结束后,查看生成的程序基线,确认没有异常进程混入,然后切换“强制/保护模式”,并设置密码保护防止客户端被中途退出。还要配置一个例外策略——比如只允许U盘里的离线升级包拷到指定目录,不允许直接在系统目录执行。
有一次我在现场就是这样:白名单切强制模式不到两小时,操作员就报WinCC画面打不开。排查后是学习模式期间没有覆盖夜班报表打印,报表生成程序被拦了。还好我留了一手,切换到强制模式时保留了回滚窗口,马上退回学习模式,把漏掉的程序补齐,再重新切回。这个过程一定要在现场有工程师配合的情况下做,不要在无人值守时搞。
4.5 给PLC/DCS做“自身防护”:密码与访问控制
上位机加固完之后,回到控制器本身。西门子S7-1500在博途左侧项目树的设备视图里,找到“防护与安全”,可以设置访问级别和密码。我一般设成“完全访问(无密码)但不允许HMI写操作”或者直接设成“需要密码的完全访问”,关键看现场调试需求。要注意,密码一旦启用,后面上载程序时需要同时输入密码,否则只能读不能改。
三菱FX系列通过GX Works2在“在线”菜单里可以设置PLC密码,还可以设置关键字保护。设置后,未经授权的人即使连上编程线,也无法读取或修改程序。
DCS系统相对复杂一些,但思路一致。我给横河CENTUM、和利时、浙大中控这些DCS做过安全加固,主要是把工程师账号与操作员账号分开,禁用默认管理员,开启操作日志审计,并且确保修改组态的操作必须在审批后进行。DCS的逻辑联锁是安全底线,联锁逻辑的修改必须有第二人复核,这是流程上的硬性要求。
还有一个经常被忽略的动作:关闭控制器上不用的服务。很多工控设备默认开了FTP、Telnet、Web诊断页面,这些东西在正常生产中根本用不到,却是攻击者最喜欢的情报源。到设备的系统设置里把这些服务全部关掉。
4.6 备份与恢复验证:留好最后的底牌
安全做得再好,也不能保证永远不出事。备份和恢复能力是最后一道防线,但恰恰是最多工厂最薄弱的环节。
PLC备份有个常见误区,很多工程师把源工程文件往网盘一存就认为备份完成了,但现场恢复时才发现,源工程和设备实际组态不完全一致,没有做“上传”操作,版本根本对不上。正确的做法是:在博途中用“从设备上传”功能,把PLC的硬件配置、程序块、工艺数据全部上载到电脑,保存成完整的项目文件,然后导出归档。三菱PLC在GX Works2里用“读取可编程控制器”功能,选择所有模块,生成完整备份。
DCS备份更要注意。DCS组态包括数据库、I/O配置、控制逻辑图、操作画面、报警设置,必须在控制系统离线或处于安全状态下,用官方备份工具整包导出。备份文件至少要留存两份,一份放现场中控室,一份放异地。更重要的是,每个季度要抽一台控制器或者一台操作员站做一次恢复演练。我见过最惨的案例就是客户备份了三年,真到勒索病毒爆发需要重装时,发现备份文件是坏的,那一刻真是欲哭无泪。
4.7 制定应急预案:出事时知道先按哪个按钮
应急预案不是写在纸上锁在抽屉里的文件,而是要具体到“谁在什么时间做什么”。工控安全事件和火灾、停电一样,需要预演。
我建议每一条产线都有一份两页纸的SOP就够了。第一页是“第一响应人操作卡”:确认事件类型——是操作员站中毒还是控制器被篡改;如果是操作员站中毒,第一时间切换备用操作站;如果控制器异常,立即将系统切换至手动模式或者就地控制,确保人员安全和设备安全。第二页是“升级路线”:现场处理不了打谁电话,设备厂家、工控安全服务商、公司IT支持,每个人的职责范围必须事先明确。
应急演练每年至少做一次,不用搞得多大,拿一台测试机模拟中毒场景,团队的响应速度和配合度就能看出来。不演练永远不知道自己的预案缺了多少细节。
5. 常见问题与排查技巧实录
5.1 部署防火墙后PLC通信延迟/超时怎么办
这是我在项目中遇到最多的反馈。现象是部署工业防火墙后,WinCC偶尔报“连接中断”,PLC之间通信延迟明显增加。
第一排查方向是DPI深度检测带来的延迟。工控协议深度解析是需要计算资源的,尤其是S7comm这类复杂协议,解析每一个报文的状态机很耗时。可以把日志记录级别从“详细/调试”改成“仅告警”,或者只在策略中保留必要的DPI检查项,减少处理压力。
第二排查方向是默认策略里有无长轮询或广播被拦截。控制网内有大量的广播帧(ARP、NetBIOS等),一些防火墙默认会阻断或限速,导致设备发现和状态心跳失败。适当放行已知安全域内的广播报文,但要注意限制源范围。通信问题排查一定要有现场网络工程师配合,把抓包工具放在防火墙两侧同时抓,才能定位到底是被防火墙丢弃,还是本来网络就不稳定。
5.2 白名单软件误拦组态软件怎么处理
白名单切强制模式后,WinCC画面部分功能失效、博途启动报错,这类问题十有八九是学习模式没学全。
处理方法很简单,临时退回学习模式,重新启动一次全套的组态软件和HMI运行环境,确保程序执行的路径、子进程、插件都进过一遍,然后更新基线,再切回强制模式。这里有个经验:学习模式尽量Cross一个完整生产周期,包括开机、正常运行、换型、关机、报表打印这些动作,越是边缘功能越容易漏,漏了就会误拦。
另外,建议把白名单客户端的操作权限收归到自动化主管或者指定工程师,不要发给操作员。操作员遇到弹窗提醒第一反应是点“允许”,等于自己把门敞开。
5.3 杀毒软件与工控软件冲突如何规避
有些工厂信不过白名单,坚持要在操作员站装杀毒软件,结果隔三差五出现工控软件运行异常、OPC通信卡顿的问题。
我的建议是:工控主机不要装个人版杀毒软件。个人版往往包含云查杀、实时监控、行为拦截这些功能,和工控软件的资源调度、驱动访问冲突概率极高。非装不可的话,要么选择有白名单模式的杀毒软件,要么把工控软件安装目录、项目数据库目录、WinCC运行目录全部加入排除列表,并关闭实时防护的压缩包监控和行为拦截。
另一个更靠谱的方案是双主机冷备。操作员站旁边放一台完全一样的备用机,平时不加任何防护,只做与控制器的连接测试,只运行组态软件。一旦主力机出问题,切换备用机顶上。虽然成本翻倍,但对连续生产型工厂来说,这点钱比非计划停机损失小得多。
5.4 系统补丁该不该打、怎么打
工控主机长期不打补丁是现实,但完全不打等于把系统状态定格在漏洞暴露窗口期。我常用的折中方案是离线补丁库加灰度发布。
具体做法:找一台和现场配置接近的测试机,安装同样的操作系统和工控组态软件,在隔离网络里先打一遍补丁,运行48小时以上,确认组态软件、OPC通信、数据库服务全部正常,再把这批补丁文件拷贝到现场,选择在计划保养停机窗口统一安装。安装顺序是先装补丁,重启,再开启组态软件测试通信,全部没问题后恢复生产。
对于已经在EOL(停止支持)的老系统,比如Windows XP,补丁打不了,密钥只强调网络隔离和主机白名单,双保险中的双保险。
5.5 备份无法恢复:我踩过的坑
备份恢复的问题,不真的出一次事,永远发现不了。我分享三个典型坑。
第一个坑是PLC备份只存了源工程,没有上传实物。恢复时发现现场PLC的硬件配置和源工程不一致,程序下载进去直接报错。解决方法是备份一定要通过“上传”功能,把现场设备的实际组态抓下来,而不是直接把电脑里的源工程存档复制一份。
第二个坑是存储介质本身老化。U盘放抽屉里三年,再拿出来插上去,颗粒已经失效了。备份介质要选择工业级SD卡或者移动硬盘,并且每年复制校验一次。
第三个坑是备份文件没有版本说明。同一个PLC,今天改了一版程序,明天又改了一版,到底最新版在哪台电脑哪个文件夹里,没人说得清。我的经验是给每个备份文件命名加上日期、修改人和修改内容,例如“涂布线2号PLC_20250115_张三_增加联锁”。恢复过期版本造成的问题,比不备份还可怕。
做这一圈下来,我的体会是:工控网络安全这件事,真正难的不是技术,而是改变现场多年养成的工作习惯。你买再贵的防火墙,如果工程师还是随手把U盘插进操作员站,一切都白搭。先把密码改掉、把备份做好、把网络分段理清——这三件事加起来成本不高,却能挡住绝大多数野路子攻击。最后分享一个小技巧:给每台PLC的程序备份命名时,加上日期和最后修改人,等真到需要恢复的那一天,你会庆幸当时多写了这一笔。