十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

工控安全自主可控落地指南:从流量分析到纵深防护

工控安全自主可控落地指南:从流量分析到纵深防护 不知道你有没有在工控现场熬过那种“设备一卡全厂发慌”的夜班。上个月我去一家化工企业做工控网络安全评估凌晨两点聚合车间的一台PLC站点间歇性丢包DCS上位机画面跳红操作员打电话叫厂家厂家说“支持周期已过需要购买新服务包”然后就没有然后了。最后是我们自己搭了旁路镜像抓了三个小时的流量才定位到是交换机老化导致的广播风暴。事后老师傅拍着桌子说了一句话这破系统我们连它脑子里跑什么都不知道出了事只能干瞪眼。这句话就是工控网络安全里最核心的问题——自主可控。这文章不是跟你聊概念我想结合自己的项目经验聊聊为什么自主可控在工控安全里那么关键它对工厂意味着什么以及我们自己动手落地时到底要控什么、怎么控。内容不搞虚的所有东西都是我踩过坑之后验证过的。1. 从一次夜班排查说起工控系统为什么怕“不自控”那家化工厂的网络拓扑并不复杂控制网里主要是西门子S7-300系列PLC、几台HMI、一台冗余DCS服务器还有一堆只做了链路聚合的工业交换机。问题出现的场景很典型白班正常一到夜班装料高峰期车间远端两个站点的通信延迟从几十毫秒跳到三秒以上间歇性掉线现场执行机构偶尔不响应。厂家远程支持进不来设备集成商说“我们只负责调试不负责网络”仪表车间的人拿着万用表沿线缆挨个量量了一宿也没找到原因。最后还是我们从核心交换机上做了端口镜像把控制网的流量完整抓下来用Wireshark加自己写的小工具分析了两个多小时才发现是2号交换机上一个环网冗余协议的状态报文在不停震荡把带宽吃掉了大半。这件事让我想明白了一个道理工控网络里绝大多数的“诡异故障”根子都在于我们对自己的系统没有完整、透明、可掌握的理解。设备是国外的协议是封闭的诊断工具是厂家的故障特征库是保密的。你平时看着一切正常一旦真正出事你手里没有任何可以独立判断的工具和依据。这不是哪一家企业的问题而是整个行业普遍存在的依赖症。控制层和现场层的设备来自多个品牌每个品牌都有自己的私有协议、专用调试软件和故障排查方法彼此不开放。很多工厂的运维团队把核心系统的运行状态完全托付给了外部厂商平时能跑就行出了问题就“等厂家”。这种状态放在办公网可能只是效率低但放在工控网就是安全事故的温床。所以“自主可控”这个词在我的理解里不是一句口号也不是某种特定设备的专属功能。它的本质是当一个工控系统出现异常时使用方有没有能力独立感知、独立判断、独立处置而不是把希望寄托在外部响应上。那具体怎么做到这就得先弄清楚工控网络安全到底和传统的IT网络安全差别在哪。2. 工控网络安全和IT网络安全是两码事别拿打补丁的思维套用很多刚转行做工控安全的人第一个踩的坑就是把IT安全的那套思路直接搬到OT环境。装杀毒软件、打补丁、配防火墙、上入侵检测听着都没错一上线就出事。我拿一张表把两边关键差异列清楚你看完就明白问题出在哪了对比维度IT网络环境工控网络环境首要目标机密性、完整性优先可用性优先系统不能停系统生命周期3到5年持续更新10到20年甚至更长补丁策略月度例行更新补丁必须停机验证窗口极其有限通信协议TCP/IP为主标准化程度高Modbus、S7、OPC、DNP3等工控协议不少是私有封闭的流量行为动态、随机、用户主导高度规律、周期性强、指令明确故障影响数据丢失、业务中断设备损坏、产品质量事故、人身安全风险可用安全手段补丁、杀毒、DLP等被动监测、边界隔离、深度协议解析为主这张表里最关键的是第一行IT系统丢数据是事故工控系统停机同样是事故但后者可能直接牵连到物理设备和人身安全。拿一个正在跑聚合反应的DCS系统来说你不可能为了修补一个Windows漏洞就随便重启因为重启意味着整个批次中断可能产生废料甚至引发反应釜超温。所以传统ITSecurity最倚重的“补丁杀毒”手段在工控环境里基本施展不开。那么工控网络安全应该怎么做我自己的体会是核心思路要反过来不求改变系统内部的东西而是在不干扰它正常运行的前提下从外部感知它的一切行为。这就是为什么工控安全产品普遍以被动流量监测、协议白名单、边界防护为主而不是以终端agent为主。“自主可控”在这里的技术含义也随之变得具体起来你不需要也没办法把每一台PLC都换掉但你需要有能力看清每一台PLC在网络上说了什么、做了什么。谁能看清这些谁就掌握了工控系统安全的主动权。这也是为什么我在做项目时一直坚持把“资产自清、协议自懂、漏洞自知、团队自能”当成自主可控落地的四个抓手。别觉得这四个词很虚往下拆开全是能上手的活儿。3. 自主可控到底要控什么四个层面的具体拆解“自主可控”落不到具体行动上就永远是句空话。在这个项目里我把它的内涵拆成了四个可以动手做的层面每个层面都对应一套具体操作。3.1 资产自清自己建立设备台账而不是看厂商说明书绝大多数工厂不是没有资产台账而是台账和技术资料严重脱节。你问仪表车间“现场有多少台PLC”他能报出个数但你问“这些PLC在网络里实际占哪些IP、开放了哪些端口、和谁通信、用的是什么协议”很多人的回答就开始含糊了。我们的做法很简单拿核心交换机的镜像口连续抓一周的流量做被动资产识别。不需要在设备上装任何东西只需要解析流量的源、目的MAC和IP、端口、协议特征。这么做的好处是资产清单是从真实网络行为里长出来的而不是从纸面资料里抄出来的。最后我们输出了一份完全不同于厂商台账的资产表控制网内实际活跃的IP数量是台账数量的1.3倍多出来的是工程调试笔记本、临时接入的维护终端有一台2015年就“报废”的HMI竟然还挂在网上而且持续往PLC写心跳包工程师站上跑着两个非白名单的远程控制工具端口。这份资产表后来成了整个安全加固项目的唯一基线。你要自主可控第一步永远是“知道自己家里到底有什么”。连资产都不清楚后面所有关于安全策略的讨论都是悬空的。3.2 协议自懂深度解析工控协议不被私有协议牵着走资产清完接下来就是通信行为。工控协议和IT协议最大的不同在于IT协议你大致看包头就能猜个七八分工控协议很多时候是厂家自己定的私有格式你不逆向就根本看不懂里面的数据是什么含义。我举一个实际例子。Modbus TCP算是工控圈里最开放的协议了功能码就那么几十个公开文档写得清清楚楚。但就算是这样一个开放协议在实际抓包中你也会发现大量“非常规”用法有人用功能码16连续写保持寄存器目的地址指向了PLC的启动配置区有人用功能码5写单个线圈频率高到每秒钟十几次明显不是正常的工艺操作。这些异常行为如果不做深度协议解析在传统防火墙的日志里看起来就是一堆正常的TCP连接因为IP和端口都没问题。而像S7、OPC这种更封闭的协议解析难度就更高了。S7的报文结构里有复杂的参数区和数据区你需要知道它的TSAP、ROSCTR类型、功能码和数据结构定义才能判断这条指令是在读数据还是在改写逻辑块。我的经验是与其全部依赖商业设备的协议库不如带着自己的安全团队一起做两件事针对本厂用的几类设备用Wireshark抓正常通信的流量做基线搞清楚每条关键工艺指令的网络特征是什么在基线基础上建立自己的异常特征库比如“哪些IP可以写PLC”“哪些时间段不应该出现配置类指令”“哪些功能码在本厂工艺中根本不该出现”。这套自己做出来的理解才是真正的自主可控。商业产品能给你通用的防护但它不能替你定义“对你这个厂来说什么是正常”而这些定义恰恰是安全监测的魂。3.3 漏洞自知自己的漏洞库比通用的漏洞库更管用一说漏洞很多人脑子里就是CVE编号和公开漏洞库。但在工控现场通用漏洞库的局限性很大很多工控设备的漏洞根本没有CVE编号或者厂商只在私下售后服务渠道里通报外网查不到。再加上工业协议私有化严重未公开漏洞的数量远大于公开的。所以我们在项目中采用了两条腿走路的策略一条腿是订阅公开的工控安全漏洞信息关注主流工控厂商、设备型号的漏洞披露及时对照本厂台账做排查另一条腿更加关键——基于我们自己抓到的流量基线建立“本厂风险行为库”把与正常基线不符的通信行为单独归类逐一确认是误报、配置变更还是真实风险。这套自建风险行为库价值非常大。有一次我们发现一台PLC持续向一个陌生的IP发送S7的SZL读取请求在外界看来这可能被定义成“协议合规的正常查询”但我们对照工艺数据发现该PLC在非生产时段出现数据读取请求而且请求频率模式和正常操作差异很大。最终顺着这个线索发现是一台无人值守的网关设备被人改了配置数据一直在往外传输。如果依赖通用漏洞库这一类问题完全发现不了。3.4 团队自能自己的队伍能看懂、能研判、能动手做完了上面三层最后也是最难的一层是人。设备可以花钱买技术可以请顾问但对系统真正持续的掌控能力必须长在自己团队身上。我见过太多工厂采购了一堆高大上的工控安全设备结果告警无人看日志无人翻设备成了摆设。这不是安全的投入问题而是能力的交付问题。在项目里我们花了不少精力做“能力转移”带着厂里的运维工程师一起看抓包文件教他们怎么区分S7的读操作和写操作教他们怎么看白名单日志里的异常时间点教他们遇到告警时第一步应该是找工艺人员确认“这个操作是不是我们的人做的”而不是急着清告警。小组长后来跟我说了一句让我印象很深的话以前我们觉得安全设备是把门的保安买了就安心了。现在才知道真正的安全能力是让每个值班的人都知道门后面发生什么才算正常什么算异常。这句话我觉得就是对“自主可控”最好的人员层面注脚。4. 从一张拓扑图到纵深体系工控安全加固的落地路径讲完四个层面你可能想知道这些理念是怎么变成一个可执行项目的。我就拿这个化工企业的实施过程把完整路径捋一遍。4.1 第一步摸底和分级先画一张“活”的拓扑图任何工控安全改造都不能从设备选型开始必须从摸底开始。我们先把控制网、过程控制网和信息网之间的边界关系核实清楚把前面被动识别出来的真实资产映射到网络拓扑里再按设备在工艺中的作用做分级一级DCS控制服务器、冗余PLC、安全仪表系统相关设备这些动一下就可能引发连锁反应二级HMI、工程师站、历史数据库、操作员站影响生产监控和操作三级辅助系统、调试终端、打印机、临时接入设备风险相对低但容易被忽略。这张“活”的拓扑图后来贯穿了整个项目的所有环节包括防护策略的优先级、白名单放行范围的确定、以及后续合规测评时的证据材料。没有这张图所有安全设备配置都是盲人摸象。4.2 第二步确定监测部署位置旁路为主边界隔离为辅部署位置的选择直接决定了安全设备能不能在保障业务连续性的前提下发挥作用。我们对控制网的实际情况做的方案是核心交换机上配置端口镜像将控制网的关键流量接入工控安全监测审计设备有点类似交通摄像头你不影响交通但能看清每辆车怎么走在工程师站和操作员站所在VLAN与PLC/DCS控制区之间部署工业防火墙开启白名单策略先记录后阻断在现场关键PLC网段的前端交换机临时加装便携式流量分析探针用于短期的深度行为采集。这里我想特别提醒一个容易忽略的细节交换机镜像端口本身是有转发性能上限的并不是你把所有流量镜像过去就能高枕无忧。如果镜像流量超过SPAN端口的能力交换机会主动丢包抓到的数据就是不完整的。我自己就遇到过前面提到的化工项目里第一次部署时镜像端口持续丢包最后把镜像源改成按VLAN精简、只保留关键网段才把数据完整度提上来。所以在规划监测点的时候一定要结合网络流量模型做容量评估别等上线才发现数据少了一段。4.3 第三步策略配置从学习模式到告警模式再到阻断模式这一步是整个项目实施中最考验耐心的环节。很多团队巴不得把安全策略一步配到位但工控网络经不起这种折腾。我始终坚持三段式上线第一段学习模式。安全设备纯旁路记录所有流量行为不做任何拦截持续一到两周覆盖完整的生产周期形成厂内通信白名单基线第二段告警模式。在基线基础上开启异常检测出现偏离基线的行为只产生告警不处置通知运维团队人工研判积累一批真实告警样例不断优化规则库第三段阻断模式。针对已确认为风险的通信在边界设备上启用阻断策略。阻断策略的配置原则是“小范围灰名单逐步扩大”先拦最确定异常的IP和端口平稳运行一段时间后再扩大范围。我见过有项目跳过了学习阶段一上来就开了严格白名单结果把生产调度系统的周期广播包给拦了导致调度大屏直接黑屏。那一整天的产量都受了影响。这个教训告诉我们工控安全的可信不是靠“防得严”实现的而是靠“懂得透”实现的学习模式的那两周不是浪费时间是给自己买的保险。4.4 第四步和合规测评衔接安全能力的证据化现在的工控安全项目基本都会涉及等保或行业监管的检查要求。等保2.0里有针对工业控制系统安全的扩展要求安全区域边界、安全计算环境、安全管理制度等都有明确条目。自主可控在这里体现在你能不能用自己掌握的数据和记录证明你的系统是安全可控的。所以项目收尾时我把所有过程证据都沉淀了下来资产识别报告、现场流量分析报告、白名单基线表、告警处置记录、月度安全运营报告。其中有几条能对应到测评要求里的关键项比如区域边界防护对应工业防火墙的白名单策略配置入侵防范对应监测审计系统的异常告警和协议解析规则审计记录对应流量日志至少留存6个月以上的要求安全管理制度对应我们帮客户建立的工控安全运维规程和应急预案。别把测评当成行政负担它其实是验证你“自控能力”是否有效的一个标尺。5. 落地中容易翻车的五个坑以及我的应对方式讲完主路径我把这些年做项目遇到的高频翻车点列一列。这些坑你早晚会碰到。5.1 边界防护误伤正常业务这是所有坑里最常见的。工业防火墙的白名单规则如果基于端口和IP做粗粒度放行很容易把合法的工控指令也拦掉。尤其是Modbus这种一个端口上承载所有功能码的协议你不能只放行IP和端口就算完必须细化到功能码层面。我的习惯是只放行该PLC实际使用的功能码子集例如某反应釜PLC只需要功能码3读保持寄存器、功能码16写保持寄存器那其余功能码一律默认拒绝。宁可先告警观察也不要一开始就全拦。5.2 镜像流量过大导致抓包不全前面提过一次这里再补充一个数据一台工业汇聚交换机在满负荷运行时的背板吞吐量可能是几十Gbps但一个SPAN镜像口的实际转发能力可能只有1Gbps中间差着一个数量级。解决方案除了按VLAN精简镜像源还可以在离线分析端加负载分流器或者直接用TAP分光器替代SPAN。如果预算有限时间上做错峰采集也比丢数据强。5.3 老旧设备不给力主机安全无从下手很多2000年前后的PLC和DCS控制器的系统资源非常有限跑不了任何agent。遇到这种情况别硬上被动流量分析几乎是唯一不干扰业务的方案。你不需要在PLC上装东西只需要在它的上行链路抓包就能掌握通信行为和异常指令。另外可以和厂商确认设备是否存在日志外发能力比如通过OPC把诊断信息发出来哪怕一天一次也行总比没有强。5.4 厂商不配合提供资产清单和协议文档不是每家厂商都愿意把自己的私有协议文档交给你。遇到这种情况我们一般除了在采购合同里争取相关技术文档的交付外也会在实施中采用主动探测加被动识别相结合的方式主动探测解决“资产发现”被动识别解决“行为理解”交叉验证后基本可以还原出不低于厂商文档精度的通信关系。说白了最可信的协议说明书就是你自己的抓包文件。5.5 运维责任没人接、告警没人看安全设备上线只是项目的开始难的是后续运营。很多工厂没有专职的工控安全人员设备告警成了“狼来了”看多了就麻木了。我们的应对办法是帮客户建立一套分级告警和处置流程紧急告警15分钟内通知值班长和仪表主管重要告警4小时内形成分析结论一般告警每周汇总排查。同时每月做一次告警复盘点把误报率压下来让团队真正重视每一条告警。我用一张表把这五个问题汇总一下方便你对照自查踩坑点现场表现根因应对方式边界误伤生产指令被拦、黑屏白名单粒度太粗协议功能码级精细放行镜像丢包流量数据不完整SPAN端口性能不足精简镜像源、用分光器老旧设备无法装主机安全设备资源受限被动流量分析为主厂商不配合拿不到协议资料商业保密主动探测被动识别交叉验证告警无人看设备成了摆设缺乏运营机制分级处置和月度复盘6. 除了买设备自主可控还能怎么落地几条低成本路径前面讲的方案里涉及了安全审计设备、工业防火墙等硬件投入。但自主可控不完全等于花钱买东西很多动作靠现有人员和工具就能推进关键是得有这个意识。6.1 用Wireshark做一次自己的协议基线自查不需要额外采购拿一台笔记本接到工业交换机的镜像口连续抓48小时生产流量把本厂实际在跑的协议清单拉出来。重点看三件事有没有不在台账里的IP在通信、有没有异常功能码、有没有非工作时段的大流量传输。这一轮自查做完你对自家系统的理解会提升一个档次。6.2 建立一份“最小可运行资产表”别贪多求全把直接影响生产的控制设备单独列一张表写清楚设备型号、IP、开放的端口和协议、对应的工艺工序、允许的通信对象。这张表不需要20页两页纸就够但必须是真实流量反推出来的。它就是你未来配置一切安全策略的“宪法”。6.3 定期做桌面推演和应急演练工控安全的应急演练和IT演练不一样不能随便在生产系统上搞。我们推荐的做法是桌面推演构造一个具体的安全事件场景比如“发现工程师站向PLC发送异常写指令”让运维、仪表、工艺三方人员坐在一起过一遍“谁来判断、谁来处置、怎么隔离、什么时候停机”。推演不需要碰设备但能把每个人的职责边界磨清楚。6.4 采购新设备时把“可控”写进技术条款如果厂里正好有设备更新计划建议在招标技术文件里明确要求设备厂商必须提供完整的通信协议说明、可用的日志和告警导出接口、固件更新机制以及至少五年的安全漏洞响应承诺。别小看这些条款把它们写进合同就等于给未来的自己留了一扇门。我做了这么多工控安全项目最深的感觉是自主可控不是从采购预算里批出来的一项设备而是从现场每一次排查、每一条规则、每一张拓扑图里长出来的能力。它不会让你立刻看到什么惊天动地的变化但在某一天系统真的出问题时你会庆幸自己手里有流量分析的工具、有资产清单、有信任的基线、有一支看得懂数据的团队。如果你正准备做工控网络安全建设我建议你从最小的闭环开始抓一周流量理一份资产表看懂其中一条协议。这三件小事不需要大额预算却是一个工控系统走向自主可控的起点。
返回列表