ARTICLE DETAIL

资讯详情

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

PLC通信与故障处理29-PLC通信安全有多脆弱?从震网病毒到纵深防御,工业安全实战指南,纵深防御四层架构深度拆解(附VLAN+CPnS实战配置)

PLC通信与故障处理29-PLC通信安全有多脆弱?从震网病毒到纵深防御,工业安全实战指南,纵深防御四层架构深度拆解(附VLAN+CPnS实战配置) 你的PLC正在裸奔——这不是危言耸听。大多数工业现场PLC仍使用Modbus TCP明文通信没有任何身份认证任何接入控制网的人都能直接读写寄存器。2007年Stuxnet震网病毒通过四个0day漏洞穿透物理隔离摧毁伊朗上千台铀浓缩离心机2017年TRITON恶意软件直接攻击施耐德电气的Triconex安全仪表系统(SIS)险些造成人员伤亡。工业通信安全不再是要不要做的选择题而是什么时候做、怎么做的必答题。目录1. 为什么PLC安全是工业界的「阿喀琉斯之踵」1.1 三大先天硬伤1.2 Stuxnet物理隔离神话的破灭1.3 TRITON直击安全系统的噩梦2. 纵深防御四层架构2.1 第一层物理安全——最基础也最容易被忽视2.2 第二层网络安全——VLAN隔离防火墙ACL实战VLAN隔离标准方案VLAN配置实战以华为交换机为例ACL防火墙策略Modbus TCP白名单黑科技2.3 第三层主机安全——加固PLC本身强密码策略固件升级禁用不必要服务2.4 第四层管理安全——IEC 62443标准落地IEC 62443核心框架访问控制与运维审计3. 西门子CPnS通信处理器安全模块详解CPnS三大核心功能1️⃣ 集成防火墙2️⃣ IPsec VPN3️⃣ NAT/1:1 NATCPnS部署场景推荐4. PROFIsafe当功能安全遇到通信安全什么是PROFIsafePROFIsafe的安全机制PROFIsafe的反常识设计⚠️ 避坑警告️ 坑1以为纵深防御是一劳永逸的️ 坑2物理隔离绝对安全️ 坑3CPnS的密码写在PLC程序里️ 坑4PROFIsafe的看门狗时间太长️ 坑5固件升级不验证签名 效率技巧1. 为什么PLC安全是工业界的「阿喀琉斯之踵」1.1 三大先天硬伤PLC从诞生之日起就是为可靠性而非安全性设计的。它跑在封闭的工业网络里与世隔绝——这是二十年前的假设。今天的工业4.0和智能制造早已打破这层隔阂但PLC的通信协议几乎原地踏步硬伤具体表现风险等级明文通信Modbus TCP、S7comm、EtherNet/IP等主流协议均以明文传输抓包即得全部数据 灾难级无身份认证任何能接入网络的设备无论物理地址如何均可直接读写PLC寄存器 灾难级无完整性校验攻击者可以篡改通信报文而PLC无法感知经典的中间人攻击场景 高危级一台西门子S7-1200的CPU上电默认开启PN/IEPROFINET工业以太网接口出厂不设任何访问密码接上网线就能用TIA Portal在线连接并上传/下载程序。这不是厂商的疏忽而是工业协议设计的时代局限性。1.2 Stuxnet物理隔离神话的破灭时间2007-2010年 | 目标伊朗纳坦兹铀浓缩设施Stuxnet是迄今为止最著名的针对工业控制系统的网络武器。它证明了物理隔离不是万能的。攻击链梳理感染阶段 ↓ USB介质带毒 → 某台Windows PC中招 → 利用MS08-067打印后台服务漏洞 ↓ 穿透内网 ↓ RPC远程执行 打印后台漏洞横向移动 → 感染工程师站 ↓ 突破隔离 ↓ 通过Step 7工程软件向西门子S7-315 PLC下载恶意组态 ↓ 破坏阶段 ↓ 修改离心机转速至异常值1410Hz/-1060Hz 同时回传一切正常的假信号欺骗操作员关键数字4个0day漏洞MS10-046快捷方式漏洞、MS10-061打印后台漏洞、MS08-067服务器服务漏洞、EoP漏洞2个西门子盗用数字证书RealTek、JMicron攻击了约1000台离心机约20%的IR-1级联铀浓缩效率下降30%Stuxnet告诉我们一个残酷的真相当攻击者突破物理隔离进入控制网后PLC本身毫无防御能力——它不会拒绝恶意指令因为它无法区分合法工程师和攻击者。1.3 TRITON直击安全系统的噩梦时间2017年12月 | 目标中东某石油化工设施如果说Stuxnet攻击的是生产过程控制DCS/SCADATRITON直接把矛头指向了安全仪表系统SIS。安全仪表系统的作用是什么当生产过程出现异常压力过高、温度超限SIS会自动触发紧急停车ESD防止爆炸、泄漏等灾难性事故。TRITON的目标就是让SIS失效——要么不触发停车要么误触发停车。TRITON攻击流程 1. 通过鱼叉邮件 社会工程学获得办公网入口 2. 横向移动到工程网寻找施耐德电气的Triconex SIS工程师站 3. 替换Triconex的Trilogic工程软件中的通信dll文件 4. 向Triconex主处理器MPM下载恶意代码 5. 恶意代码修改SIS逻辑使安全仪表系统在特定条件下失效 6. 实际操作重置控制器→注入载荷→触发故障→启动维护模式 → 在维护模式下修改安全逻辑TRITON的恐怖之处在于它攻击的不是生产力而是保命符。一旦SIS被破坏化工厂的爆炸风险指数级上升。2. 纵深防御四层架构2.1 第一层物理安全——最基础也最容易被忽视纵深防御的起点不是什么高端技术而是一把锁和一卷封条。措施具体做法常见翻车现场上锁机柜控制柜门锁钥匙管理台账进出登记钥匙挂在机柜旁边形同虚设封停USB口BIOS禁用物理封堵组策略禁用USB存储设备运维图省事留着USB口方便更新程序禁用未用网口交换机上空余端口执行shutdown命令贴上封条新来的电工随便插网线发现能通关闭空闲串口在硬件组态中禁用未使用的RS232/RS485口老设备退役了串口线还连着加装防拆开关在机柜门上加装门磁开关接入ESM系统被人开过机柜毫无记录一条实操铁律控制柜能打开的每一寸缝隙都应该是不被允许的——除非你亲自在场。2.2 第二层网络安全——VLAN隔离防火墙ACL实战网络层是纵深防御的中坚力量。90%的ICS安全事件都可以通过合理的网络分段来阻断传播路径。VLAN隔离标准方案以典型的工业现场为例按功能划分三个独立VLANgraph TD subgraph VLAN 10 — 控制网 (10.10.10.0/24) PLC1[S7-1500 #1] PLC2[S7-1500 #2] SCADA[SCADA Server] HMI[HMI Panel] end subgraph VLAN 20 — 视频网 (10.10.20.0/24) CAM1[IP Camera #1] CAM2[IP Camera #2] NVR[NVR] end subgraph VLAN 30 — 办公网 (10.10.30.0/24) PC[办公PC] PRT[打印机] SRV[业务服务器] end subgraph 三层交换机 工业防火墙 SW[三层交换机br/SVI ACL] FW[工业防火墙br/CPnS] end VLAN10 -- SW VLAN20 -- SW VLAN30 -- SW SW -- FWVLAN配置实战以华为交换机为例# 创建 VLAN vlan batch 10 20 30 # 配置接口类型 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 # 控制网接口 description TO_PLC_RACK_01 interface GigabitEthernet0/0/2 port link-type access port default vlan 20 # 视频网接口 description TO_NVR_MAIN interface GigabitEthernet0/0/3 port link-type access port default vlan 30 # 办公网接口 description TO_OFFICE_SWITCH # 配置VLANIF接口作为网关 interface Vlanif10 ip address 10.10.10.254 255.255.255.0 description Control_Network_Gateway interface Vlanif20 ip address 10.10.20.254 255.255.255.0 description Video_Network_Gateway interface Vlanif30 ip address 10.10.30.254 255.255.255.0 description Office_Network_GatewayACL防火墙策略在VLAN隔离的基础上用ACL实现最小权限原则# 创建高级ACL——控制出口向 acl number 3001 rule 5 deny ip source 10.10.30.0 0.0.0.255 destination 10.10.10.0 0.0.0.255 rule 10 deny ip source 10.10.20.0 0.0.0.255 destination 10.10.10.0 0.0.0.255 rule 15 permit ip source 10.10.10.0 0.0.0.255 destination any rule 20 deny ip any any # 创建高级ACL——Modbus TCP白名单 acl number 3002 rule 5 permit tcp source 10.10.10.100 0.0.0.0 destination 10.10.10.200 0.0.0.0 destination-port eq 502 rule 10 deny tcp destination-port eq 502 # 应用到VLAN 10的入方向 traffic-filter vlan 10 inbound acl 3001 # 或应用到接口 interface GigabitEthernet0/0/1 traffic-filter inbound acl 3002⚠️关键细节办公网禁止访问控制网VLAN 30 → VLAN 10 DENY视频网禁止访问控制网VLAN 20 → VLAN 10 DENY控制网可以主动访问办公网的特定服务器如OPC数据上报但不能反向Modbus TCP端口502只允许白名单IP访问Modbus TCP白名单黑科技很多工控人不知道即使不做全状态防火墙仅仅在PLC前面加一个TCP白名单ACL就能挡掉99%的扫描攻击# 思科交换机示例 —— 只允许HMI/SCADA访问PLC ip access-list extended MODBUS-ACL permit tcp host 10.10.10.50 host 10.10.10.1 eq 502 # HMI permit tcp host 10.10.10.100 host 10.10.10.1 eq 502 # SCADA服务器 deny tcp any any eq 502 # 其他全部拒绝 permit ip any any # 允许其他通信 # 应用到接口 interface GigabitEthernet1/0/1 ip access-group MODBUS-ACL in 极简初始配置就在接入交换机的PLC端口上配一个permit tcp host HMI_IP host PLC_IP eq 502其他全deny。5分钟完成0成本安全提升80%。2.3 第三层主机安全——加固PLC本身PLC本身也需要安全加固很多人觉得PLC就是个跑梯形图的嵌入式设备能怎么加固——大错特错。强密码策略以西门子S7-1500为例TIA Portal V17及以上版本支持基于证书的认证和强密码策略# 在TIA Portal中配置PLC访问保护推荐配置 - 勾选 保护PLC组态数据 - 密码复杂度要求 - 最小长度12位 - 包含大写字母A-Z、小写字母a-z、数字0-9、特殊符号!#$%^* - 示例S7_15#00!Secure2026 - 建议每90天更换一次密码强度示例暴力破解时间估算弱plc123毫秒级中Siemens2026数分钟强S7_15#00!Secure2026数千年以上⚠️密码管理的惊天大坑很多现场为了方便维护所有人的PLC密码都用同一个而且写在一张纸条贴在控制柜门内测。这不是密码管理这是给攻击者送欢迎卡。固件升级西门子每季度发布一次安全公告Siemens Security Advisory修复已公开的CVE漏洞CVE编号影响产品严重程度受影响版本修复版本CVE-2023-38689S7-1500 CPU7.5/10FW V2.9.5FW V2.9.5CVE-2023-28788S7-1200 CPU8.1/10FW V4.6.0FW V4.6.0CVE-2022-38773LOGO! 86.5/10FW V1.02.02FW V1.02.02建议将固件升级纳入年度维护计划订阅西门子安全公告 RSS。禁用不必要服务服务默认状态建议原因Web Server开启关闭HTTP明文无加密FTP/FTPS关闭保持关闭明文传输凭据SNMP v1/v2c开启关闭或v3v1/v2c明文传输CommunityDCP发现和配置协议开启生产环境禁用广播发现易被利用OPC UA根据需求开关启用加密认证否则明文暴露数据2.4 第四层管理安全——IEC 62443标准落地技术措施是有保质期的管理措施才是持续有效的保障。IEC 62443核心框架IEC 62443是国际电工委员会针对工业自动化和控制系统IACS安全的国际标准系列被称为工控安全宪法标准部分名称核心内容IEC 62443-1-1术语、概念和模型定义了ICS安全的通用术语和体系架构IEC 62443-2-1IACS安全管理体系建立工业信息安全管理制度IEC 62443-2-4IACS服务提供商安全要求集成商、运维商的安全能力要求IEC 62443-3-2安全风险评估和系统设计工控系统安全风险识别与区域划分IEC 62443-3-3系统安全要求和安全等级定义了SL 1-4四个安全等级IEC 62443-4-1产品安全开发生命周期设备厂商的SDL要求IEC 62443-4-2IACS组件的技术安全要求PLC、HMI等设备的安全能力要求访问控制与运维审计# 推荐运维流程 账号管理 - 一人一账号禁止共享账户 - 西门子PLC每个工程师分配独立用户 - 默认管理员账号停用另创建个性化账号 权限分级 - 观察员Read-Only只看不写 - 操作员Operator可操作HMI不可修改程序 - 工程师Engineer可在线修改和下载程序 - 管理员Admin负责账号管理和审计日志 审计机制 - 所有在线修改操作必须审批 记录 - 程序上下载记录保留至少6个月 - 建议部署堡垒机Jump Server统一审计 - 关键操作双人复核制度3. 西门子CPnS通信处理器安全模块详解CPnSCommunication Processor for Security6GK7xxx系列是西门子为工业网络安全推出的一体化安全通信处理器将防火墙、VPN、NAT三大功能集成在一个模块中直接插在S7-1500机架上。graph TD subgraph CPnS 安全模块内部架构 FW[防火墙br/Firewall] VPN[VPN网关br/IPsec VPN] NAT[NAT转换br/1:1 / NPAT] X1[X1端口br/外部网络br/办公网侧] X2[X2端口br/内部网络br/控制网侧] PN[PROFINET IO通信] BP[背板总线br/与CPU通信] X1 -- FW FW -- VPN VPN -- NAT NAT -- X2 FW -- PN PN -- BP endCPnS三大核心功能1️⃣ 集成防火墙CPnS内置的防火墙支持基于端口的深度包检测不需要额外配置独立防火墙设备功能说明状态检测防火墙跟踪会话状态只允许合法回包应用层协议过滤可针对Modbus TCP、PROFINET、S7通信等工业协议进行深度检查基于IP/MAC地址过滤白名单/黑名单双向过滤告警与日志所有被拒绝的访问记录详细日志规则定时切换支持按时间自动切换防火墙规则如白班/夜班不同策略2️⃣ IPsec VPNCPnS内置硬件加速IPsec VPN实现远程安全接入graph LR subgraph 远程运维端 LAPTOP[工程师笔记本br/ VPN客户端] AUTH1[认证证书密码] end subgraph 加密隧道 TUNNEL[IPsec 加密隧道br/AES-256] end subgraph 工厂侧 CPNS[CPnS模块br/IPsec VPN Server] AUTH2[认证证书预共享密钥] PLC[S7-1500 PLC] end LAPTOP -- AUTH1 -- TUNNEL TUNNEL -- CPNS -- AUTH2 -- PLC配置要点认证方式推荐证书认证 预共享密钥(PSK)加密算法AES-256-GCM资源允许、最低AES-128完美前向保密(PFS)启用Diffie-Hellman Group 14以上远程端必须强制远程客户端使用VPN禁止直连3️⃣ NAT/1:1 NAT在老旧设备无法更改IP地址的场景CPnS的NAT功能可以在不修改PLC组态的情况下实现网络地址转换避免两个相同IP网段冲突。CPnS部署场景推荐场景推荐方案说明新站建设CPnS 1548-1防火墙NATVPN全功能用于站与站之间的安全隔离旧站改造CPnS 1543-1紧凑型安全模块替换原有CP卡即可远程运维CPnS 1548-1 VPN替代传统4G DTUVPN路由器方案集成度更高安全等级2(SL2)CPnS集群部署双CPnS冗余热备满足IEC 62443-3-3 SL2要求4. PROFIsafe当功能安全遇到通信安全什么是PROFIsafePROFIsafe是基于PROFINET的功能安全通信协议由PIPROFIBUS PROFINET International组织制定。它的核心思想是安全功能信号如急停、安全门锁、光幕与标准数据在同一条PROFINET线上传输**但通过PROFIsafe协议的附加机制保证传输的安全完整性。graph LR subgraph 同一条 PROFINET 网络 CPU[S7-1500Fbr/F-CPU] subgraph 标准数据 IO[ET200SPbr/标准IO模块] end subgraph 安全数据 FIO[ET200SP F-DI/F-DQbr/安全数字量IO] ESTOP[急停按钮] DOOR[安全门锁] end CPU --|标准PROFINET| IO CPU --|PROFIsafe| FIO FIO --- ESTOP FIO --- DOOR end subgraph PROFIsafe安全层 SEQ[序号编号br/Sequence Numberbr/防重放攻击] WDT[时间监视br/Watchdog Timerbr/防通信中断] AUTH[连接认证br/Connection Authbr/防身份伪造] CRC[CRC2签名br/端到端校验br/防数据篡改] endPROFIsafe的安全机制机制说明防御目标序号编号每个PROFIsafe报文都带递增序号防止重放攻击报文重放时间监视接收方监视报文到达间隔超时则进入安全状态通信中断/延迟连接认证发送方与接收方之间建立唯一连接标识防止冒充身份伪造CRC2校验端到端CRC校验覆盖整个安全相关数据负载数据篡改看门狗(Watchdog)F-Host与F-Device之间持续交换生命信号设备失效检测PROFIsafe的反常识设计PROFIsafe在设计层面遵循了一个反直觉但极为重要的原则通信层可以不安全但安全功能层是安全的。这意味着PROFIsafe不依赖底层的PROFINET链路是否加密传输层可以是明文它通过应用层的安全措施独立保障功能安全——这就是为什么PROFIsafe能跑在标准PROFINET上而不需要专用的安全网络。⚠️但注意PROFIsafe保障的是功能安全Functional Safety不是信息安全Security。它防止的是随机硬件故障和通信故障而不是恶意攻击。一个蓄意的攻击者仍然可以物理断开PROFIsafe设备使其进入安全状态导致停机通过干扰网络使看门狗超时DoS攻击重放旧的有效PROFIsafe报文序号预测攻击——尽管很困难正确的姿势是PROFIsafe 纵深防御 真安全。⚠️ 避坑警告️ 坑1以为纵深防御是一劳永逸的纵深防御不是装完防火墙、配好VLAN就完事了。防火墙规则需要定期审计——你确定三个月前加的permit tcp any any eq 502还在吗建议每季度做一次防火墙规则审计清除半年未命中的规则。️ 坑2物理隔离绝对安全这是工业安全界最大的误区。Stuxnet已经用4个0day告诉你——隔离不等于免疫。USB介质、运维笔记本电脑、第三方调试工程师的移动设备都是物理隔离的后门。️ 坑3CPnS的密码写在PLC程序里有人把CPnS的防火墙管理密码写在PLC的DB块里面……这不是段子是真事。CPnS的密码应该只保存在安全密码管理器中程序里放一个变量#CPnS_Status就够了别把密码写进去。️ 坑4PROFIsafe的看门狗时间太长很多新手把PROFIsafe看门狗时间设为5秒甚至10秒——这等于说出事后5秒才响应。合理配置应用场景推荐Watchdog时间说明急停按钮30-60ms操作员安全最高优先级安全门锁60-100ms门开即停机光幕40-80ms人进即停双手按钮50-80ms防止单手绕过️ 坑5固件升级不验证签名工业环境从第三方网盘下载固件不是一个好习惯——你无法确认下载的文件有没有被篡改。下载固件一定要走官方渠道西门子的固件都有数字签名下载后可以在Support Portal上验证SHA256校验值。 效率技巧✅ 技巧1用Security Configuration Tool做规划在动手配置之前先用西门子免费的Security Configuration Tool (SCT)做安全规划。它可以帮助你可视化绘制网络拓扑定义安全区域和管道Zone Conduit自动生成CPnS防火墙规则的CSV导出文件与IEC 62443的区域隔离模型完美对齐SCT输出 导入CPnS 30分钟搞定安全规划。✅ 技巧2CPnS规则批量导入CPnS的防火墙规则可以通过TIA Portal导出/导入CSV文件批量配置不要一条一条手敲# CSV格式示例CPnS防火墙规则 RuleName,SourceIP,SourceMask,DestIP,DestMask,Protocol,Action Permit_HMI_1,10.10.10.50,255.255.255.255,10.10.10.1,255.255.255.255,TCP:502,Permit Permit_SCADA,10.10.10.100,255.255.255.255,10.10.10.1,255.255.255.255,TCP:502,Permit Deny_All_Modbus,0.0.0.0,0.0.0.0,0.0.0.0,0.0.0.0,TCP:502,Deny Permit_All_Other,0.0.0.0,0.0.0.0,0.0.0.0,0.0.0.0,*,Permit批量导入注意事项预先在Excel中按规则优先级从上到下排列规则顺序决定了匹配优先级顺序不对等于白配导入前一定要备份当前运行配置✅ 技巧3日志集中管理不要让CPnS的日志孤独地躺在模块的内存里。配置Syslog将日志发送到集中日志服务器如ELK、Splunk或Graylog在CPnS Web管理界面中System → Logging → Syslog → Enable Server IP: 10.10.30.200 Port: 514 Protocol: UDP Severity: Information and above (默认Warning级别太低建议降为Info)每天花2分钟看一眼日志——拒绝的访问请求Denied Packets来源IP如果有非预期的IP反复尝试连接大概率出问题了。✅ 技巧4分阶段安全改造旧站改造成本高、停机窗口短不要一上来就全都要。推荐分阶段推进1️⃣第一阶段1-2周VLAN隔离 端口ACL白名单 2️⃣第二阶段1个月CPnS部署 防火墙规则 强密码 3️⃣第三阶段3个月VPN远程运维 堡垒机审计 4️⃣第四阶段半年IEC 62443安全等级评估 管理制度落地改造不分先后做了就比不做强。哪怕只做了VLAN隔离和ACL白名单安全水平已经提升了80%。文末三件套思维导图纵深防御全貌mindmap root((PLC纵深防御)) 物理层 上锁机柜 封停USB 禁用闲置网口 防拆开关 网络层 VLAN隔离 控制网 VID 10 视频网 VID 20 办公网 VID 30 防火墙ACL Modbus白名单 CPnS集成 主机层 强密码 12位 固件升级 禁用不必要服务 关闭Web/FTP/SNMPv1 管理安全 IEC 62443标准 访问控制 运维审计 PROFIsafe公众号评论语“工控安全不是IT安全的子集它的优先级天然低于生产——所以纵深防御的核心不在于建一面永不倒塌的墙而在于让攻击者花的时间比设备退役的时间更长。”下一篇预告 全系列收官之作第30篇——《PLC通信全系列精华回顾与实战速查》从Modbus RTU到PROFINET、从串口到工业以太网、从物理层到应用层、从协议原理到安全架构——30篇文章我们把PLC通信的每一个细节都翻了一遍。第30篇是一份系列精华地图 实战速查手册让你不会的文章翻翻就能用。▶已经写了29篇第30篇整理收录中即将完结 本文标签#PLC安全 #纵深防御 #VLAN隔离 #IEC62443 #PROFIsafe #Stuxnet #工业防火墙系列已发布文章前28篇篇号主题篇号主题01PLC通信概述02RS-232基础03RS-485/42204串口通信实战05Modbus RTU06Modbus ASCII07Modbus TCP08Modbus数据模型09Modbus功能码10Modbus异常码11Modbus调试12PROFIBUS DP13PROFINET基础14PROFINET IO15PROFINET RT/IRT16GSDML文件17工业以太网18EtherNet/IP19EtherCAT20OPC UA21OPC UA PubSub22S7通信(上)23S7通信(下)24开放式用户通信OUC25通信延迟优化26无线通信27IoT与云端通信28冗余通信架构29 PLC通信安全(本文)30全系列精华回顾(即将发布)#PLC安全 #纵深防御 #VLAN隔离 #IEC62443 #PROFIsafe #Stuxnet #工业防火墙
返回列表