干工控安全这一行,我经常被问到一个问题:等级保护到底怎么在工业控制系统里落地?做网络安全等级保护工业控制系统安全防护技术体系设计,难的不是堆几台安全设备,而是既要把等保2.0的合规要求接住,又不能让PLC、DCS这些现场设备出一点问题。工控网和办公网完全是两种脾气,办公网可以停机打补丁,生产网一中断轻则产线停摆、重则出现工艺事故,所以很多在IT侧习以为常的安全手段,放到现场根本不敢用。这篇内容我打算抛开那些绕口的合规条文,直接讲我在实际项目里怎么给工控系统做等保安全防护技术体系设计,包括技术架构怎么搭、边界设备怎么选、主机如何加固、日志审计怎么做,以及测评整改时最容易翻车的地方。
1. 搞懂等保2.0工控扩展要求,先从“不一样”说起
1.1 通用要求之外,工控扩展要求到底扩展了什么
等保2.0体系里有个很容易被忽略的结构:安全通用要求是基础,然后针对云计算、移动互联、物联网、工业控制系统分别有安全扩展要求。我们做的网络安全等级保护工业控制系统安全防护技术体系设计,核心依据就是GB/T 22239-2019里的工业控制系统安全扩展要求。这个扩展要求不是另起炉灶,而是在通用要求之上,增加了一堆很“工业”的条款。
比如安全物理环境里增加了室外控制设备防护,因为很多油气田、变电站的RTU、阀室控制器直接挂在野外,物理防护和防盗防破坏完全不是机房那套逻辑。安全通信网络里增加了网络架构要求,强调控制层内部、控制层与监控层之间、生产网与管理网之间的流量应该受到控制。安全区域边界更是把重点放在工业协议深度解析上,不能只认IP端口,还得识别Modbus TCP、S7comm、OPC这类协议的指令级行为。到了安全计算环境,控制设备安全成为新增重点,包括PLC、DCS控制器本身的口令、固件、端口管理。这些条款背后透着一个核心逻辑:工业控制系统里,可用性和业务连续性永远是第一位的,保密性、完整性都得往后放一放。
1.2 定级和测评里容易踩的坑
很多企业第一次做工控等保,上来就把整个厂区打包成一个定级对象,结果测评机构进场后才发现网络架构完全理不清。正确的做法是先把系统边界画清楚,比如一套化工DCS、一套电力监控SCADA、一套污水处理PLC系统,业务相对独立、物理边界清晰、威胁场景不同的,就应该分别定级、分别测评。定级时还要特别注意S、A、G三个要素的赋值,工控系统通常把A(可用性)提得很高,因为一次非计划停机造成的损失可能远超数据泄露。
还有一个特别常见的误解:有人觉得“我们生产网和管理网物理隔离,就不用做等保了”。实际上物理隔离本身是措施,但等保测评依然要评估隔离是否有效、是否真的做到了“非授权不可达”,更要评估隔离之后的数据交换、运维接入是否留下了旁路。我见过不止一个项目,前端交换机上明明做了物理断开,结果工程师为了远程看数据,私自拉了一根网线从控制网接到办公网,这个风险在测评访谈时一问一个准。所以我每次做体系设计,都强调定级对象划分和网络拓扑梳理是第一步,这一步错了,后面全是白忙。
2. 安全防护技术体系总体设计,核心就四个字:分区纵深
2.1 “一个中心、三重防护”怎么翻译成工控语言
等保2.0的通用设计要求“一个中心、三重防护”,这个框架放到工控场景里,我习惯把它翻译成更直观的四层结构:边界隔离层、网络防护层、主机加固层、集中管控层。边界隔离层解决的是“谁和谁能连”的问题,部署在企业网与生产网之间、监控层与控制层之间。网络防护层解决的是“流量里有没有鬼”的问题,依靠工业防火墙、工业审计设备做协议白名单和异常检测。主机加固层解决的是“终端被攻破后能不能防扩散”的问题,工程师站、操作员站、历史服务器全部纳入白名单管控。集中管控层则是把所有安全设备的日志、告警、策略统一收口,让安全管理员能在一个平台上看到全局。
设计思路上,我特别反对一上来就用“堆安全设备”的方式响应等保条款。工控系统的网络结构通常很清晰,管理网、生产监控网、控制网、现场总线一级一级往下走,每一级之间的信任关系都应该是“默认拒绝、显式允许”。所以真正的体系设计应该像画管道一样,先把数据流画出来,再决定哪里放防火墙、哪里放审计、哪里做主机加固,而不是照抄别人的拓扑。用一句话概括,就是“先懂业务,再谈安全”。
2.2 分区分域与纵深防御的设计原则
分区设计上,我基本参照IEC 62443里的区域和管道模型。区域是按业务功能、物理位置、安全级别划分的逻辑边界,比如企业管理区、生产执行区、过程监控区、现场控制区,每个区有独立的安全级别。管道是区域之间的通信路径,每条管道上必须明确跑什么协议、哪些源地址能访问哪些目的地址、允许执行哪些操作。这样设计出来的防护体系,才能做到安全策略有依据,而不是拍脑袋开端口。
纵深防御怎么结合?我的习惯是至少做三道防线。第一道防线在企业网和生产网的连接处,用工业网闸或工业防火墙把管理网与生产网隔开,只允许必要的MES数据、报表数据通过。第二道防线在过程监控区与现场控制区之间,用带工业协议深度解析的防火墙,按功能码、寄存器地址范围做白名单,防止操作员站被攻陷后直接对PLC下发恶意指令。第三道防线直接在工程师站和操作员站上落地主机白名单,把勒索病毒和未知程序的执行路径堵死。三道防线互相配合,即使某一层被绕过,下一层还能兜底。
2.3 设计阶段就要考虑测评和运维成本
做体系设计时很多人只顾着满足技术条款,忽略了后续运维成本,结果设备上了一堆,半年后告警上万条、没人看得过来。我设计时通常会控制安全设备类型,能用统一平台管理的尽量统一,避免出现五六套各自为政的控制台。同时考虑日志存储,等保要求日志留存不少于6个月,一台工业防火墙的日志量看起来不大,但要是把组态变更记录、审计流量元数据一起算进来,存储规划就得按TB级来做,这一块在项目预算里经常被低估。
另外我要强调测试环境先行。工控系统最怕安全设备上线导致业务中断,所以设计阶段就应该规划一套测试网络,把防火墙策略、白名单规则、审计旁路部署先在测试环境跑一遍,确认不影响正常工艺后再拿到生产环境切换。很多项目工期紧,跳过测试直接在生产网里试,结果轻则策略误拦、重则通信抖断,这个风险完全不值得冒。
3. 通信网络与区域边界:工业防火墙不是拿来“杀毒”的
3.1 不同边界场景的设备选型思路
边界设备选型,先要分清你在哪个边界上。企业网到生产网的边界,通常既要考虑安全隔离,又要允许业务数据正常摆渡,一般用工业网闸或者带OPC、Modbus深度解析的工业防火墙,有些场景还会配合消息队列做数据库同步。生产监控网到控制网的边界,是工控等保里最关键的一道关卡,这里不能简单用网络层包过滤,必须用支持工控协议白名单的防火墙,识别S7comm的读写操作、Modbus的功能码、OPC UA的节点信息,才能判断一条指令是“正常工艺操作”还是“恶意控制”。
传统IT防火墙能不能用?我的回答是尽量别用。IT防火墙对工控协议不识别,要么全部放行看不到内容,要么开启深度检测后处理延迟明显,直接影响PLC和HMI之间的实时通信。更麻烦的是,有些IT防火墙默认开启IPS、防病毒等功能,一旦误报就会直接丢包,PLC扫描周期稍微一抖,操作员站就开始报警。这不是设备好坏的问题,是产品能力模型和工控场景根本不匹配,我在项目里不止一次帮客户把IT防火墙撤下来、换成工业防火墙,效果立竿见影。
3.2 访问控制策略怎么定才不“误伤”
策略设计我用一个基本公式:白名单优先 + 最小权限 + 协议粒度。举个例子,工程师站需要维护某台PLC,策略不是“工程师站可以访问PLC的任意服务”,而是“这台工程师站只能访问该PLC的TCP 102端口,且只允许S7comm协议中与在线监控、程序上下载相关的操作”。写成策略表大概是这样:
| 场景 | 源地址 | 目的地址 | 协议/端口 | 动作 | 备注 |
|---|---|---|---|---|---|
| 工程师站维护PLC | 工程师站IP段 | PLC IP | S7comm/TCP 102 | 允许 | 仅限指定时间窗口 |
| 操作员站读取数据 | 操作员站IP段 | PLC IP | S7comm/TCP 102 | 允许 | 只读操作,禁止写操作 |
| MES采集历史数据 | MES服务器IP | 历史服务器 | OPC UA/TCP 4840 | 允许 | 节点白名单限制 |
| 其他跨区访问 | 任意 | 任意 | 任意 | 拒绝 | 默认拒绝 |
这里有个容易踩的坑:OPC Classic基于DCOM机制,动态端口范围很宽,如果直接用传统五元组防火墙,要么开一堆高位端口变成“千疮百孔”,要么干脆通讯失败。我现在做新项目都会建议客户优先升级OPC UA,固定用4840端口,再配合应用层节点白名单。如果老系统暂不升级,就只能选支持OPC Classic动态端口学习的工业防火墙,让它自动关联控制连接和数据连接,而不是人肉一条条配端口。
3.3 现场部署的检查清单与实施细节
工业防火墙串联部署前,我一般要求先旁路观察一段时间。先把设备以镜像口方式接入,跑流量分析基线,确认网络里正常情况下的通信对象、协议类型、流量峰值,然后再把防火墙切成串联模式,按照旁路阶段总结的基线配置白名单策略。这个“先观察、再阻断”的节奏,能让上线风险控制在最低。切换操作务必放在计划停机窗口,并且准备回退方案,一旦发现误拦影响工艺,马上恢复原有网络路径。
现场实施细节里还有几个要注意的:防火墙的管理口千万不要接到生产环网上,避免管理流量和业务流量混跑;光口和电口的协商模式在接线前就固定好,避免自协商导致链路丢包;设备本身要支持硬件Bypass,万一防火墙宕机了,网络链路还是通的,保业务连续性。这条在等保测评里也会被问到,如果不能证明设备故障时不影响生产,测评人员照样会给你记一个隐患。
4. 计算环境加固:白名单、外设管控和补丁的平衡术
4.1 工程师站和操作员站,从防病毒到白名单
工控主机最让我头疼的永远是杀毒软件问题。传统防病毒软件在办公网很好用,但在工程师站上经常出现两种极端情况:一种是扫描期间CPU飙高,组态软件运行卡顿,鼠标都拖不动;另一种是病毒库升级误报,把工控组态软件的关键组件直接隔离删掉,导致整个项目文件损坏。所以在工控环境的计算环境加固里,我现在首选应用白名单方案,而不是杀毒软件。
白名单软件的做法是建立可信进程库,只允许列入白名单的程序执行,其他一律拦截。部署时分两步走:先开学习模式,让主机在正常运行状态下记录所有合法进程、脚本、DLL,然后人工核查基线,确认没有可疑程序后再切换成强制模式。这样既不影响正常业务,又能把勒索病毒、未知木马这些“新面孔”直接挡在执行层之外。另外不管用不用白名单,135、139、445这类高危端口,在确认不影响业务的前提下都应该关闭,很多工控网络勒索事件都是先通过内网扫描445端口横向扩散的。
4.2 外设与运维接口管控
外设管控是工控主机加固里最容易被忽略、但测评必查的一项。工程师给PLC下载程序时拿一个U盘拷项目文件,这是再常见不过的事,可恰恰是这种日常操作,成了病毒进入控制网的主要通道。所以等保设计里,工程师站、操作员站的USB口、光驱、串口等都应该纳入管控范围,策略不是全禁,而是“白名单U盘可用、非白名单一律不可识别”,既保证正常维护需要,又阻断未知介质引入。
远程运维接口是另一个重点。现在很多项目都有远程诊断需求,从管理网甚至互联网接入到控制网做设备维护。这种通道如果没审计、没认证,等于在边界防火墙上开了一个后门。我的做法是把所有远程运维路径强制收敛到堡垒机,运维人员先认证、再授权、后访问,全程录屏和指令审计。接入的运维终端也要做安全检查,至少确认没有恶意代码,否则一台被攻破的笔记本就能把整个控制网打穿。
4.3 控制器和组态软件本身的安全配置
很多人做计算环境加固只盯着Windows主机,忘了PLC和DCS本身也是等保对象。控制器安全这一块,第一是口令策略,很多PLC默认口令为空或者出厂口令从不修改,我见过真实项目里现场设备口令还是“123456”的。第二是端口和服务管理,不用的物理接口要禁用,未启用的网络服务要关闭,防止被扫描后直接连上。第三是固件和组态文件管理,升级前做完整性校验,组态变更记录要留存,防止恶意篡改。
这里有一个实践上的平衡点:控制器密码策略虽然要强,但千万不要“强到没人记得住”。PLC密码一旦遗忘,恢复过程可能要把控制器复位到出厂模式,这对现场的影响是灾难性的。所以我给客户做控制器加固时,会特别强调密码要放进离线密码保险柜管理,由专人保管,同时留好恢复预案。还有组态软件方面,要设置独立的上位机下载权限,避免任何人都能从操作员站往PLC里下程序。
5. 安全管理中心:把日志、告警和运维全部收口
5.1 日志审计怎么做:不能只盯syslog
安全管理中心的核心任务,是把分散在各处的日志、告警、行为记录全部集中起来。很多IT出身的人第一反应是配syslog,但在工控环境里这是不够的。Windows服务器、网络设备可以发syslog,可大量PLC、DCS控制器根本没有log功能,或者只支持简单状态上送。这时候就得靠流量的被动审计来解决,用镜像口或TAP分流把控制网的通信数据复制给工业审计设备,通过解析工控协议还原出真实的操作行为。
日志留存时间按等保要求不少于6个月,我会根据日志量估算存储。以一个中等规模化工厂为例,两台工业审计设备加五台工业防火墙,再加上几十台主机的安全日志,一年数据量轻松超过几个TB。存储规划上建议做冷热分层,近期热数据放到高速存储方便溯源,超过三个月的归档到冷存储满足合规即可。另外时钟同步这个细节千万别漏,所有设备统一NTP时间源,否则日志时间对不上,安全事件溯源就是一笔糊涂账。控制网里如果禁用NTP协议,可以考虑通过管理口向安全设备统一授时。
5.2 工业审计系统的部署与告警价值
工业审计设备的价值,我总结为四个字:看见异常。通过持续监测控制网流量,审计系统能发现几类典型行为:非授权工程师站发起PLC程序上下载、操作员站出现超出正常范围的Modbus写请求、内网出现横向扫描痕迹、组态软件在非工作时间被远程打开。这些行为如果用传统防火墙策略,根本看不出来,因为IP端口都是合法的,只有到了指令级才能区分“正常操作”和“入侵行为”。
部署位置一般在汇聚交换机上做旁路监听,不影响业务路径。但我得提醒一句:审计设备刚上线时一定要设置学习期,先摸清现场的通信基线和误报噪音,一开始就把告警阈值调得很敏感,几天下来告警风暴会把运维人员直接吓跑。等基线跑熟了,再逐步收紧规则,把真正的异常从噪音里筛出来。告警的价值不在数量,而在能不能准确指向“哪台PLC、哪个操作、哪个源IP”出了问题,这个精确度比告警条数重要得多。
5.3 统一运维与访问控制:堡垒机和集中管控平台
安全管理中心里还有一个容易被当“摆设”的组件:堡垒机。在等保测评里,身份鉴别、访问控制、运维审计这些要求都可以靠堡垒机来满足。我把堡垒机定义为所有运维操作的门户,工程师要登录服务器、网络设备,必须先从堡垒机发起,系统自动录像并记录执行指令。做这项改造的阻力通常来自运维人员,他们会觉得“多一道跳转太麻烦”,但一旦发生设备配置被误改或恶意操作,录像和指令回放就是定责和溯源的关键证据。
集中管控平台是把所有安全设备的策略和告警统一纳管。等保2.0里强调“集中管控”,不是让你多买几台盒子做摆设,而是要把工业防火墙、工业审计、主机白名单、堡垒机的安全事件汇聚到一个平台里做关联分析。比如主机白名单发现可疑进程执行,同时工业审计发现该主机正在对PLC发起异常写请求,这两个孤立事件单看不显眼,关联起来就是一次正在进行的攻击行为。建设集中管控平台时,重点考核的是它对多厂商设备的兼容能力,以及告警响应流程是否闭环,别为了演示好看买一堆对接不了的设备。
6. 制度建设和整改实务,测评机构到底查什么
6.1 管理层面最容易被扣分的点
很多做技术的人容易轻视管理要求,但等保测评里管理制度类的分数占比不低,而且管理短板往往直接导致技术措施失效。工控系统的安全管理制度,除了通用的安全策略、操作规程、人员培训,更要针对控制系统特点补充几类文件:工业控制系统安全应急预案及演练记录、软件和固件采购安全要求、外包服务安全管理、供应链安全管理。测评组进场后,一定会翻这类制度文件,还得看你有没有对应的执行记录。
我见过一个化工厂,技术层面做得相当不错,边界隔离、工业防火墙、日志审计样样齐全,最后却因为两件事被扣了分:一是应急演练只有桌面推演,没有实际做过控制器故障和网络攻击场景的实操演练;二是现场作业人员从未参加过网络安全培训,访谈时连最基本的“发现异常先断网再上报”都不清楚。制度层面的整改相对技术整改成本低很多,但需要真正落进日常管理,不是找人代写一堆文档就能过关的。
6.2 五类高频技术缺口和整改优先级
结合我接触过的测评项目,工控等保最常被提出的技术问题集中在五类,这里给一个整改优先级的参考:
| 整改项 | 问题现象 | 整改思路 | 优先级 |
|---|---|---|---|
| 管理网与控制网未隔离 | 办公网能直接访问PLC/IP无边界防护 | 部署工业防火墙或网闸,按协议白名单收口 | 高 |
| 控制主机未做安全加固 | 工程师站弱口令、高危端口开放、无杀毒/白名单 | 应用白名单+外设管控+高危端口收敛 | 高 |
| 无线接入未管控 | 现场手持终端、巡检设备直连控制网 | 关闭无关无线,必要接入需认证加密+VLAN隔离 | 中高 |
| 无审计日志或日志不完整 | 设备时间不统一、日志无集中留存 | 部署工业审计+日志汇聚,时钟同步,留存6个月 | 高 |
| 口令策略和权限管理缺失 | 账户共用、三期密码未强制、越权运维 | 强化口令策略、按角色分配权限、上堡垒机 | 中 |
整改路径我的建议是“先边界、后主机、再审计”,因为边界不收敛,主机做得再好也可能被从外部打穿;边界做完了,主机白名单和外设管控才有意义;审计则贯穿始终,用来验证前两项有没有真正生效。预算有限的项目优先整改高优先级问题,一般就能覆盖绝大部分高风险测评项。
6.3 访谈和现场配合的小经验
测评进场前,我会帮客户把三类材料提前备齐:一是资产清单和网络拓扑图,要细化到每台PLC、每个工程师站、每条边界链路;二是安全策略清单,写明各边界设备当前启用的规则和目的;三是近半年的安全运维记录,包括告警处理记录、组态变更记录、主机维护记录。材料越清晰,测评人员在现场耗时越短,沟通成本越低。
访谈环节要特别注意,测评人员往往按通用IT要求的习惯提问,比如“你们有没有对主机做漏洞扫描”“防病毒软件升级频率是多少”。这时候不要直接说“没有,因为怕影响生产”,而应该主动解释工控场景的特殊性:我们用白名单代替杀毒、我们用测试环境验证补丁、我们用工业协议白名单控制访问。这样测评人员才能理解你的防护思路,而不是机械地按IT标准扣分。另外现场测试要提前约窗口,凡是可能影响业务的扫描、验证操作,统一安排在计划停机时段,不要为了一次测评把生产系统搞停。
7. 最后聊两句我踩过的坑
7.1 杀毒软件差点把DCS搞宕机
我做过一个离散制造业项目,客户坚持要在操作员站上装某知名杀毒软件,理由是“等保要求防恶意代码”。结果软件全盘扫描时CPU占用直接飙到90%以上,HMI画面刷新卡成PPT,操作员差点把一条产线停了。后来我们连夜卸载杀毒软件,换成白名单机制,才把系统救回来。这个事给我的教训是:工控环境里的防恶意代码措施,方案选型优先级永远是“兼容性 > 检测能力”,宁可少检测一些未知威胁,也不能影响控制系统的实时可用性。
7.2 工业防火墙开启全解析反而惹祸
另一个项目里,我把工业防火墙的协议深度解析全部打开,预期是“看得越深、防护越好”,结果上线当晚PLC扫描周期就开始忽高忽低,MES取数频繁超时。排查到最后发现是设备对S7comm深度解析消耗了较多性能,再加上开了流量整形策略,把正常的小数据包延迟放大了。后来我把策略收敛成“只白名单关键功能码+限制跨区访问”,关闭那些非必要的内容检测开关,通信立刻恢复正常。从那次以后我定了一个规矩:工控防火墙策略永远按最小必要原则配置,能不做深度检查的地方绝不做,安全能力只用在真正需要保护的关键链路上。
做网络安全等级保护工业控制系统安全防护技术体系设计,说到底是在合规要求和生产稳定之间找平衡。我的体会是:不要为了测评而测评,每一项安全措施都应该能给业务带来实打实的可控性;也不要把等保当成一次性工程,技术和制度都需要持续运维。先保住生产,再谈安全,这个顺序永远不要搞反。