2、安全威胁建模:风电场网络拓扑分析、常见攻击面识别、威胁建模方法论
好,咱们进入第二章。说实话,这一章是整个安全部署的“地基”。你想想看,连敌人可能从哪打进来都不知道,你修再高的墙也没用。我个人习惯,接手任何一个风电场项目,第一件事不是写代码,而是画拓扑、找攻击面、做威胁建模。
说白了,安全威胁建模就是回答三个问题:谁可能攻击我们?他们想干什么?他们能怎么干? 咱们一个一个来拆解。
2.1 风电场网络拓扑分析
先看一张典型的拓扑图。我画了一个简化版,但核心要素都在里面了。
这张图里,我标了四个典型的攻击面。嗯,这里要注意,实际项目里攻击面远不止这些,但这四个是最常见的“突破口”。
2.2 常见攻击面识别
咱们一个一个说。我在项目中遇到过不少“惊喜”,有些甚至让我后背发凉。
2.2.1 风电机组现场总线攻击面
风电机组内部,PLC、IO模块、传感器之间通过现场总线通信。Modbus TCP、PROFINET、EtherCAT 这些协议,说白了都是几十年前设计的,基本没有安全机制。
- 问题:明文传输、无认证、无完整性校验。
- 攻击方式:中间人攻击、伪造指令、重放攻击。
- 真实案例:我记得有个项目,攻击者通过接入环网交换机,直接向PLC发送了“紧急停机”指令。整个风场停了半小时,损失惨重。
我曾经以为物理隔离就万事大吉。直到有一次,一个运维人员把笔记本直接插到了环网交换机上,笔记本中了蠕虫病毒...嗯,从那以后我再也不敢迷信物理隔离了。
2.2.2 SCADA协议漏洞攻击面
SCADA系统是风电场的大脑。但很多SCADA系统用的还是IEC 60870-5-104、DNP3这些老协议。你想想看,这些协议设计的时候,互联网还没普及呢。
- 问题:协议栈实现漏洞、默认口令、未加密通信。
- 攻击方式:缓冲区溢出、SQL注入、暴力破解。
- 个人经验:我审计过一个SCADA系统,发现它的Web管理后台居然用的是admin/admin。你敢信?
2.2.3 防火墙策略绕过攻击面
防火墙是安全的第一道门,但很多风场的防火墙策略形同虚设。说白了,就是“门没锁”。
- 问题:策略过于宽松、未做深度包检测、允许不必要的端口。
- 攻击方式:端口扫描、隧道穿透、利用合法端口传输恶意流量。
- 避坑指南:我曾经见过一个风场,防火墙允许了所有从远程运维中心到SCADA服务器的TCP连接。结果攻击者直接通过VPN进来,横向移动到了整个内网。
2.2.4 VPN/远程接入攻击面
远程运维是刚需,但也是最大的风险点。VPN设备本身、客户端、认证机制,每一个环节都可能出问题。
- 问题:VPN设备漏洞、弱密码、双因素认证缺失。
- 攻击方式:VPN漏洞利用、凭证窃取、会话劫持。
- 个人经验:我遇到过一家风场,VPN用的是开源软件,版本已经落后了三个大版本。攻击者利用已知漏洞直接拿到了VPN管理权限。
2.3 威胁建模方法论
好,攻击面找到了,接下来怎么做?我个人习惯用 STRIDE 模型。为什么?因为它简单、实用、覆盖全面。
| 威胁类型 | 英文 | 含义 | 风电场示例 |
|---|---|---|---|
| S - 欺骗 | Spoofing | 冒充合法身份 | 攻击者伪造PLC身份发送指令 |
| T - 篡改 | Tampering | 修改数据或代码 | 篡改SCADA数据库中的发电量数据 |
| R - 抵赖 | Repudiation | 否认做过某操作 | 运维人员否认执行过危险操作 |
| I - 信息泄露 | Information Disclosure | 敏感数据被窃取 | 机组运行参数、电网调度指令被窃 |
| D - 拒绝服务 | Denial of Service | 系统不可用 | 对SCADA服务器发起DDoS攻击 |
| E - 权限提升 | Elevation of Privilege | 获得更高权限 | 从普通用户提权到管理员 |
具体怎么做?我一般分四步走:
- 画数据流图:把系统里的数据流向、信任边界、外部实体都画出来。
- 逐元素分析:对每个数据流、每个存储、每个进程,用STRIDE过一遍。
- 威胁分级:用DREAD模型(Damage, Reproducibility, Exploitability, Affected Users, Discoverability)给威胁打分。
- 制定缓解措施:针对高优先级威胁,给出具体的安全控制措施。
威胁建模不是一次性的工作。风电场拓扑会变、设备会升级、攻击手法会进化。我建议每半年做一次威胁建模评审,或者在每次重大变更后重新做一遍。
2.4 实战:一个风电场威胁建模案例
最后,我分享一个真实的案例。有一次,我给一个海上风电场做安全评估。他们的网络拓扑很简单:每台风机通过光纤环网连接到升压站,升压站再通过专线连接到陆上集控中心。
我用STRIDE模型分析后,发现了一个高风险威胁:攻击者可以通过入侵一台风机,利用环网协议的特性,发起二层网络攻击,导致整个环网瘫痪。
为什么会这样?因为环网协议(比如RSTP)本身没有认证机制。攻击者只要接入一台风机,就能发送恶意BPDU报文,触发拓扑重计算,造成全网中断。
我们给出的缓解措施是:
- 启用环网协议的BPDU Guard功能
- 在每台风机的接入端口上做MAC地址绑定
- 部署网络流量监控,及时发现异常BPDU报文
嗯,这个案例让我深刻体会到:安全不是堆砌产品,而是理解业务、理解网络、理解攻击者的思维。
好了,这一章的内容就到这里。威胁建模是个需要反复练习的技能,别指望看一遍就能精通。多画图、多分析、多复盘,慢慢就有感觉了。