第二章 威胁建模与风险分析:STRIDE模型在工控场景的应用、攻击树分析、基于IEC 62443的风险评估方法论
各位同学,大家好。欢迎来到实战课程的第二章。
上一章我们聊了工控安全的整体形势。说实话,那都是背景铺垫。真正动手干活,第一步是什么?是搞清楚你的敌人是谁,他们想干嘛,以及你最脆弱的地方在哪。
这一章,我们就来啃这块硬骨头——威胁建模与风险分析。我个人的经验是,这一步做扎实了,后面所有的防护策略才有根。否则,你就是在瞎忙活。
2.1 STRIDE模型:在工控场景下怎么用?
STRIDE模型,是微软提出来的威胁分类方法。名字取自六种威胁类型的首字母:Spoofing(假冒)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄露)、Denial of Service(拒绝服务)、Elevation of Privilege(权限提升)。
你可能会说,这不就是IT安全那套吗?没错,但用在工控场景里,侧重点完全不同。我举个例子你就明白了。
核心差异:在IT里,信息泄露可能是最严重的。但在工控里,篡改和拒绝服务往往直接要命。你想想看,一个PLC的数值被篡改,或者一个阀门控制指令被延迟,后果是什么?
咱们逐个来看,在工控场景下,每个威胁长什么样:
- Spoofing(假冒):比如攻击者伪装成工程师站,向PLC下发恶意指令。或者伪造一个HMI的登录界面,骗取操作员密码。我在一个化工厂项目里就遇到过,有人用假的上位机软件试图连接控制器,还好我们做了双向认证。
- Tampering(篡改):这是工控安全的重灾区。篡改PLC里的逻辑程序、修改DCS的组态参数、甚至篡改历史数据库里的报警记录。说白了,就是让系统“睁眼说瞎话”。
- Repudiation(抵赖):操作员说“我没点那个按钮”,系统说“你点了”。没有完整的审计日志,你根本查不清。在合规审计里,这是个大坑。
- Information Disclosure(信息泄露):工艺参数、配方数据、网络拓扑图被偷走。虽然不像IT那样直接丢信用卡号,但这是竞争对手最想要的东西。
- Denial of Service(拒绝服务):通过大量无效报文让控制器CPU过载,或者用广播风暴堵塞工业以太网。我记得有一次,一个车间因为交换机环路,导致整个产线停机了4小时。
- Elevation of Privilege(权限提升):一个普通的现场操作员,通过漏洞拿到了工程师权限,然后修改了核心保护逻辑。这是最可怕的内部威胁之一。
我的小技巧:做STRIDE分析时,别光对着表格打勾。我习惯把每个工控组件(PLC、HMI、工程师站、历史库)都画出来,然后针对每个组件问自己:“如果这个组件被假冒了会怎样?如果数据被篡改了会怎样?” 这样更接地气。
2.2 攻击树分析:把攻击路径画出来
STRIDE告诉我们要防什么,但没告诉我们攻击者具体怎么进来。这时候就需要攻击树分析。
攻击树,说白了就是一张“犯罪路线图”。根节点是攻击者的最终目标,比如“导致反应釜超压爆炸”。然后往下分解,要达成这个目标,需要哪些子步骤?
举个例子,攻击目标:远程修改PLC逻辑。
攻击树:远程修改PLC逻辑
├── 1.0 获得网络访问
│ ├── 1.1 通过无线接入点(未加密)
│ ├── 1.2 通过运维VPN(弱口令)
│ └── 1.3 通过物理接入(未锁机柜)
├── 2.0 获得PLC访问权限
│ ├── 2.1 使用默认密码(admin/admin)
│ ├── 2.2 利用固件漏洞(CVE-2021-XXXX)
│ └── 2.3 通过工程站跳板(已感染病毒)
└── 3.0 执行修改操作
├── 3.1 上传恶意逻辑块
└── 3.2 修改运行模式(从Run切到Program)
你看,这么一画,所有可能的攻击路径就一目了然了。我曾经在一个电力监控系统项目里,用攻击树分析发现了一条“隐藏路径”:攻击者可以通过空调监控系统的漏洞,横向渗透到电力监控网络。嗯,这个发现帮客户省了一大笔钱。
注意:攻击树不是画完就完了。关键是要给每个叶子节点(最底层的攻击步骤)赋值。比如“利用默认密码”这个节点,发生的概率是“高”,造成的损失是“严重”。这样你才能知道优先堵哪个洞。
2.3 基于IEC 62443的风险评估方法论
好,STRIDE帮我们识别了威胁,攻击树帮我们理清了路径。接下来,我们需要一个标准的方法论来量化风险。这就是IEC 62443系列标准登场的时候了。
IEC 62443-3-2 专门讲工控系统的风险评估。它不像IT里的CVSS评分那样只看漏洞本身,而是更关注后果。你想想看,一个漏洞在办公网和在核电站的控制网里,风险能一样吗?
IEC 62443的风险评估,核心就三步:
- 识别关键资产:哪些设备、系统、数据是“伤不起”的?比如核心控制器、安全仪表系统(SIS)、关键工艺参数。
- 确定安全等级(SL):根据资产被攻击后对人身安全、环境、生产的影响,确定它需要达到的安全等级。SL 1到SL 4,等级越高要求越严。
- 识别差距并制定措施:当前的安全措施能打到SL几?差距在哪?然后补上。
这里我给大家一个简化的风险评估表格模板,我们在项目中经常用:
| 资产名称 | 威胁场景 | 后果严重性(1-5) | 攻击可能性(1-5) | 风险值 | 建议措施 |
|---|---|---|---|---|---|
| 1#反应釜PLC | 攻击者篡改温度设定值 | 5(可能爆炸) | 3(有外部网络连接) | 15(高) | 部署工业防火墙,启用白名单 |
| 工程师站 | 恶意软件通过U盘感染 | 4(导致停产) | 4(运维频繁插拔U盘) | 16(高) | 禁用USB口,使用专用审计终端 |
| HMI服务器 | DoS攻击导致画面卡死 | 3(操作员无法监控) | 2(位于独立网段) | 6(中) | 配置流量限速,部署冗余HMI |
避坑指南:我曾经见过一个团队,把IT的漏洞扫描结果直接拿来当工控风险评估报告。结果呢?扫描器把PLC扫死机了,产线停了半天。记住,IEC 62443强调“基于后果”的评估,而不是“基于漏洞”的评估。在工控现场,可用性永远排在第一位。
最后总结一下。这一章我们讲了三个工具:STRIDE帮你“想全”,攻击树帮你“想透”,IEC 62443帮你“想准”。三者结合,你才能对工控系统的风险有一个立体的认知。
下一章,我们会基于这些风险,开始设计具体的网络分段和纵深防御策略。到时候见。