
摘要2025‑12‑29攻击者攻陷波兰一处风场FortiGate VPN借运营商私有APN的P2P互通缺陷跨企业横向抵达热电联产厂OT网络利用控制器默认凭证下发指令关停汽轮机与工艺水处理系统。CERT Polska确认这是全球公开事件里首次把私有蜂窝专网作为横向移动链路的真实攻击案例。很多能源、水务、轨道交通行业把私有APN当成物理隔离的安全域。运维人员默认专网流量跑在运营商内网公网触碰不到就可以省略访问控制、流量审计。本次事件直接推翻这套认知。攻击者不需要0day不投放复杂恶意软件完全复用合法通信链路、工业协议、弱凭证完成破坏动作。本文完整复现攻击全链路拆解私有APN底层原理给出可直接运行的检测脚本、路由器防火墙配置、PLC基线核查清单同时重构安全架构方案。面向OT运维、等保测评、红队测试人员全部内容可直接落地到生产环境。一、事件完整复盘1.1 事件基础信息攻击时间2025‑12‑29 07:00波兰全国能源设施协同攻击批次内的第二起CHP热电联产厂事件目标厂区小型热电联产厂为约5万居民提供供暖汽轮机停机、工艺水处理系统离线热电联供流程中断。运维处置响应速度快7:30启动恢复攻击者还驻留内网的情况下业务回滚完成居民电力、供暖没有中断。调查周期超过3个月2026‑08‑08由CERT Polska正式对外披露。事件初期现场人员误判为外包维护操作失误按普通故障工单上报没有启动网络入侵排查流程。关联资产被攻陷的起点是完全不同归属的风电场两家单位分属不同运营主体没有内网互通业务需求。攻击者行为轨迹扫描互联网暴露的FortiGate SSL‑VPN网关定位风场防火墙该设备未开启MFA本地账号仅使用简单密码攻击者拿到VPN访问权限。进入风场内网后控制Teltonika RUTX50工业5G蜂窝路由器设备接入电网运营商分配的私有APN。该私有APN配置开启设备之间P2P通信同APN下不同场站、不同企业的蜂窝终端可以互相访问IP层流量运营商侧没有做终端隔离。攻击者扫描APN网段存活主机发现热电厂侧WAGO PFC200控制器使用出厂默认管理员凭证完成登录接管。以WAGO控制器为跳板横向渗透进入厂区OT网访问西门子PLC下发原生工业协议指令关停汽轮机、工艺水处理系统。执行痕迹擦除删除部分设备日志试图掩盖入侵行为。关键点攻击者没有走互联网全程流量跑在运营商私有蜂窝内网传统边界防火墙完全看不到这条攻击通路。电厂IT侧根本没有管理风场路由器也无权修改运营商APN配置属于典型跨第三方基础设施的攻击链路。1.2 Mermaid攻击链流程图A[攻击者互联网侧] --|密码喷洒无MFA FortiGate SSL‑VPN| B[风电场FortiGate防火墙]B --|内网权限获取| C[Teltonika RUTX50工业蜂窝路由器]C --|接入运营商私有APNAPN开启P2P终端互通| D[运营商私有蜂窝专网]subgraph 私有APN网段【跨企业混合接入】D -- E[风场各类RTU/PLC]D -- F[热电厂WAGO PFC200控制器默认账号密码未修改]endF --|横向移动| G[热电厂OT网络]G -- H[西门子PLC 汽轮机控制单元]H -- I[下发指令关停汽轮机、水处理系统]I -- J[运维人员应急处置业务恢复攻击者仍在内网]1.3 受攻击前错误网络架构Mermaidsubgraph 互联网ATT[攻击者]endsubgraph A风电场企业AFW[FortiGate VPN无MFA]RUT[RUTX50蜂窝路由器]PLC_A[风场PLC RTU]endsubgraph 运营商私有APN【错误配置允许P2P互通无终端隔离ACL】endsubgraph B热电厂企业B完全独立主体WAGO[WAGO PFC200 默认密码]OT_SW[OT交换机]PLC_B[西门子汽轮机PLC]endATT -- FWFW -- RUTRUT -.私有APN隧道.-|同网段P2P直接访问| WAGOWAGO -- OT_SWOT_SW -- PLC_B1.4 容易被忽略的现实背景国内大量新能源场站、变电站、水利站点都在大规模部署私有APN/5G专网。工程实施阶段运营商为调试方便很多场景默认打开同APN下终端互通。交付之后没有关闭该能力。设备采购时甲方关注点集中在带宽、时延、链路稳定性。安全约束、终端隔离、ACL策略经常不写进技术协议验收环节也不会核验APN层访问控制。运维团队默认“专网等于安全”流量审计、异常访问告警全部缺失。不同业主、不同单位的工业终端被塞进同一个私有APN地址池只要其中一个站点被攻破攻击者就获得横向跳板。二、私有APN底层原理与攻击面拆解2.1 什么是私有APNAPNAccess Point Name是蜂窝网络接入网关标识。私有APN由运营商为行业客户单独划分终端SIM卡只能接入该专属网关不会接入公网。终端分配运营商内网IP不暴露互联网。行业普遍的使用场景风电光伏远程RTU、配网DTU、水利监测终端、油气野外站点通过4G/5G蜂窝链路回传SCADA采集数据。很多工程师形成固化认知流量不出公网外部无法访问所以安全风险低。但这个结论只在APN内部严格隔离终端的前提下成立。私有APN有两种典型模式终端隔离模式安全APN内终端之间禁止互相通信终端仅允许访问客户侧指定的中心业务服务器IP所有终端之间east‑west流量被运营商网关直接丢弃。P2P互通模式高危本次事件模式同APN下所有终端二层/三层可达终端之间可以直接发起TCP/UDP连接设备之间可以互相扫描、爆破、横向移动不管归属哪个企业。运营商侧可以开关这个能力很多项目调试阶段开启上线后忘记关闭。甲方的网络工程师很多不知道这个参数存在不会纳入验收清单。2.2 攻击链路为什么能成功拆解多层漏洞第一层互联网入口FortiGate VPN缺少MFA风场FortiGate SSL‑VPN暴露公网只依赖账号密码认证没有开启多因素认证。攻击者使用密码喷洒拿到有效账号直接进入内网。新能源场站运维普遍存在这个现象远程维护需要VPN为现场外包人员配置账号嫌MFA操作麻烦直接关闭账号长期不轮换。第二层工业蜂窝路由器安全基线缺失Teltonika RUTX50这类工业路由器部署在野外无人值守站点。管理端口80/443/22没有限制接入源地址部分设备没有修改出厂密码固件长期不更新管理接口可以被内网攻击者接管一旦内网被突破路由器成为进入私有APN的跳板。第三层运营商私有APN错误配置核心根源同APN下跨企业终端P2P互通没有做终端隔离没有ACL限制源目的IP。风险归属该配置属于运营商网络侧配置电厂运维人员无法自己修改只能向运营商提出需求变更。这是很多企业最容易忽略的风险点自己内网加固做得再好第三方通信链路出问题防线直接失效。第四层工业控制器默认凭证WAGO PFC200控制器保留出厂管理员账号密码攻击者在APN网段扫描到存活IP后直接登录。大量野外部署的工业控制器安装调试完成后忘记修改默认密码设备深埋专网内部几乎不会被内部安全扫描覆盖。第五层OT网络缺少微分段WAGO控制器属于边缘网关本应只允许访问SCADA中心服务器的特定端口不能直接访问汽轮机PLC的控制端口。实际网络扁平化一旦边缘设备沦陷可直达核心工艺控制器。第六层检测与告警能力空白私有APN往返流量没有镜像审计。跨站点非预期IP访问工业控制器没有告警。业务异常停机第一反应怀疑设备硬件故障不会优先怀疑网络入侵。2.3 MITRE ATTCK映射T1190面向公众暴露的应用FortiGate VPNT1078.003有效账号本地账号无MFAT1046网络服务扫描私有APN网段存活探测、端口扫描T1021.005通过远程服务横向移动工业控制器协议T1562.002日志擦除T0805对控制系统下发破坏指令ICS战术三、检测方案可直接复制的检测脚本与流量检测规则说明脚本仅用于企业内部安全自查禁止用于未授权测试。3.1 Python脚本私有APN网段资产扫描与弱凭证初筛脚本能力扫描网段存活主机探测工业设备常见端口Modbus 502、HTTP 80/443、SSH 22输出存活资产清单。不会执行爆破仅端口探测避免干扰工业业务。#!/usr/bin/env python3 私有APN网段资产探测脚本仅端口存活探测不做密码爆破 使用场景内网/专网环境排查APN网段内开放工业端口的设备 importsocketimportargparsefromipaddressimportIPv4Network COMMON_ICS_PORTS[22,80,443,502,102,8080]defport_check(ip:str,port:int,timeout1.0):try:socksocket.socket(socket.AF_INET,socket.SOCK_STREAM)sock.settimeout(timeout)ressock.connect_ex((ip,port))sock.close()returnres0exceptException:returnFalsedefscan_subnet(cidr:str):netIPv4Network(cidr,strictFalse)result[]forhostinnet.hosts():ipstr(host)open_ports[]forpinCOMMON_ICS_PORTS:ifport_check(ip,p,timeout0.8):open_ports.append(p)iflen(open_ports)0:result.append({ip:ip,open_ports:open_ports})returnresultif__name____main__:parserargparse.ArgumentParser(description私有APN网段端口探测工具)parser.add_argument(--cidr,requiredTrue,help目标网段例如10.120.0.0/22)argsparser.parse_args()itemsscan_subnet(args.cidr)print(IP地址\t开放端口)foriteminitems:print(f{item[ip]}\t{item[open_ports]})运行示例python3 apn_scan.py--cidr10.120.0.0/223.2 Suricata检测规则告警私有APN网段跨非业务网段访问工业端口保存为apn_ics.rules用于镜像专网流量做入侵检测。alert ip 10.0.0.0/8 any - 10.0.0.0/8 502 (msg:APN网段跨设备访问Modbus(TCP)高危行为; flow:to_server; threshold:type both, track by_src, count 5, seconds 60; sid:1000001; rev:1;) alert ip 10.0.0.0/8 any - 10.0.0.0/8 102 (msg:APN网段跨设备访问S7协议; flow:to_server; threshold:type both, track by_src, count 5, seconds 60; sid:1000002; rev:1;) alert tcp any any - any any (msg:短时间多IP访问工业控制器WEB管理端口; dstport:80,443; threshold:type both, track by_dst, count 8, seconds 120; sid:1000003; rev:1;)注意需要根据实际分配的私有APN网段修改规则内IP段。业务上确有需要的通信做白名单排除。3.3 FortiGate VPN登录行为审计shell脚本用于日志导出后筛查异常登录识别账号多源IP短时间登录。#!/bin/bash# fortigate_log_check.sh 筛查短时间同一账号不同源IP登录事件# 使用cat fortigate.log | bash fortigate_log_check.shgreplogin-success|awk{print $6,$8}|sort|uniq-c|awk{if($13) print 告警高频登录 ,$0}3.4 运维自查检查清单可复制到Excel检查项风险等级检查结果处置要求私有APN是否关闭终端P2P互通严重向运营商确认关闭同APN终端之间互通APN是否配置ACL仅允许终端访问指定SCADA服务器IP严重运营商侧配置访问控制列表FortiGate SSL‑VPN是否强制MFA严重全部账号开启MFA禁止无MFA本地账号工业蜂窝路由器是否修改默认密码严重RUTX50等设备重置默认账号强密码路由器WAN侧禁用WEB/SSH管理端口高防火墙阻断WAN方向80/443/22边缘控制器WAGO、PLC是否修改出厂凭证严重全部修改禁止保留默认账号OT网络是否做微分段边缘网关禁止直连工艺PLC严重划分VLAN工业防火墙做访问控制私有APN流量是否做镜像审计、IDS检测高部署流量镜像持续监测跨网段访问运营商APN配置是否写入项目验收文档中技术协议明确终端隔离需求留存配置确认单四、完整加固配置清单4.1 运营商私有APN侧必须与运营商对接无法在企业内网完成关闭同APN内终端之间P2P通信能力禁止终端与终端直接IP连通。配置APN‑ACL蜂窝终端只允许访问企业指定的SCADA中心服务器IP/端口其余目的IP全部丢弃。终端之间所有流量直接在运营商网关丢弃。SIM卡与终端IMSI绑定防止SIM卡被挪到其他设备接入专网。输出配置确认单加盖运营商项目章作为项目交付、验收材料。很多企业踩坑口头要求隔离没有书面配置确认出问题之后无法追溯。4.2 Teltonika RUTX50 工业路由器防火墙配置RutOS防火墙规则拒绝WAN侧访问路由器管理服务仅允许内网LAN管理。# 防火墙输入链丢弃WAN入方向80、443、22端口 Name: Block_WAN_Admin Direction: Input Protocol: TCP Source: WAN DestPorts: 22,80,443 Action: DROPSSH服务配置接口限定LAN关闭WAN侧SSH访问优先密钥认证关闭密码登录。关闭不需要的服务SNMP、Telnet、FTP不使用的功能直接禁用。生产环境优先使用Teltonika RMS远程管理该方式走出站TLS隧道不需要开放入站端口安全度更高。4.3 FortiGate VPN加固配置SSL‑VPN所有本地账号强制开启MFA不允许绕过MFA的账号。定期清理外包、离职人员VPN账号设置账号过期时间。开启登录日志日志远端外送到SIEM留存至少6个月。配置登录源IP限制允许的运维办公IP段白名单其余源IP直接拒绝。固件升级到官方稳定版本关闭不必要的管理接口。FortiGate CLI关键配置片段config vpn ssl settings set two-factor-authentication enable end config user local edit ops_user set two-factor enable next end4.4 OT网络架构加固边缘控制器WAGO、RTU单独划分VLAN和汽轮机、锅炉等核心工艺PLC网络逻辑隔离。工业防火墙做访问控制边缘网关只允许向SCADA服务器发起出站采集报文禁止主动访问工艺控制器。禁止边缘设备直接访问核心PLC的写指令端口只开放业务必需的只读采集。所有工业控制器删除默认账号新增业务专用账号密码定期轮换。建立基线记录每台控制器允许的源IP、访问端口出现异常访问触发告警。4.5 重构后的安全Mermaid架构图subgraph 互联网ATT[攻击者]endsubgraph 风电场AFW[FortiGate VPN 强制MFA源IP白名单]RUT[RUTX50路由器WAN侧关闭管理端口]PLC_A[风场RTU]endsubgraph 运营商私有APN【加固后】NOTE[运营商网关关闭P2P互通ACL终端仅允许访问SCADA服务器]endsubgraph 热电厂Bsubgraph 边缘区VLAN10WAGO[WAGO PFC200删除默认账号]endsubgraph 核心工艺区VLAN20PLC_B[汽轮机西门子PLC]endFW_OT[工业防火墙VLAN10‑VLAN20严格ACL禁止边缘主动写控制器]endSCADA[SCADA中心服务器]ATT -.- FWFW -- RUTRUT -.私有APN隧道.-|仅允许访问SCADA| SCADAWAGO -- FW_OTFW_OT -.受控业务流量.- PLC_B五、从第一性原理重新看待工业专网安全很多安全方案建立在“信任传输链路”这个假设之上。私有APN、5G专网、专线、电力纵向加密很多人把传输链路的隔离等同于安全边界。本次事件把这个假设击碎。传输链路只是承载报文链路本身不会对报文内容、报文来源做业务语义校验。就算流量完全跑在运营商内网只要链路允许终端之间互通攻击者拿到其中一台终端权限就可以在专网内部横向移动。对抗式审查的思考方式做架构设计的时候不要假设“这条链路外面攻不进来”而是假设这条链路中某一台设备已经被攻陷攻击方拥有内网权限此时整个系统能不能扛住横向渗透。不要把安全寄托第三方运营商的默认配置运营商的默认配置优先保障业务连通性不是优先保障安全。甲方必须把安全约束写进技术协议验收阶段逐条核验运营商侧配置。专网不等于隔离专网内部同样需要网络分段、访问控制、流量审计。野外无人值守站点是高危入口。风电光伏、配网站点分散设备数量庞大运维力量薄弱很容易成为进入核心工业设施的跳板。攻击者不需要攻破电厂本身攻破周边配套新能源站点就可以完成攻击。业务故障排查流程必须加入网络入侵排查分支。设备停机先区分是硬件故障还是网络异常访问不要直接默认工艺故障。行业现状里大量项目的安全设计停留在防外网入侵。内网、专网内部的横向移动防护普遍缺失。随着5G私有专网大规模铺开同类攻击风险会持续上升。六、落地过程中会遇到的现实障碍运营商配置变更流程繁琐。部分运营商不熟悉私有APN终端隔离的安全需求需要甲方提供明确配置清单推动后台参数修改。大量存量设备在线运行修改APN配置有业务中断风险需要安排窗口期。OT运维团队和运营商网络团队分属不同部门责任边界模糊。出问题之后互相推诿所以书面确认文档必不可少。野外工业设备固件升级困难很多设备长期运行不敢轻易重启。加固优先从网络访问控制入手再逐步推进固件更新。SIEM、IDS部署成本很多中小型电厂、新能源企业没有专网流量审计能力优先做最小访问控制再逐步补齐检测能力。七、总结波兰电厂私有APN入侵事件不是某个0day漏洞造成的灾难是多层平凡漏洞叠加的结果VPN缺少MFA、运营商APN默认P2P互通、工业控制器保留默认密码、OT网络扁平化、没有专网流量审计。攻击者利用运营商搭建的合法通信基础设施完成跨企业横向移动。该攻击向量没有被过往的工控安全教材充分覆盖。国内能源、水利、轨道交通正在大规模部署私有4G/5G APN专网需要把这套风险纳入设计、采购、验收、运维全流程。加固不是单点打补丁需要运营商侧配置、网络设备基线、OT微分段、日志审计、运维流程改造一起推进。不要继续迷信“专网天然安全”的旧认知。互动问题1你们所在项目的私有APN/5G专网是否已经确认关闭终端之间P2P互通遇到运营商拒绝修改该配置的场景你会怎么处理互动问题2在你的现场运维经验中还有哪些容易被忽略的第三方通信链路可以成为OT网络的攻击跳板欢迎评论区交流。我之前也写过类似的文章更多相关内容、心得经验可以来我博客看看~