第二章 威胁建模与风险分析: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的风险评估,核心就三步:

  1. 识别关键资产:哪些设备、系统、数据是“伤不起”的?比如核心控制器、安全仪表系统(SIS)、关键工艺参数。
  2. 确定安全等级(SL):根据资产被攻击后对人身安全、环境、生产的影响,确定它需要达到的安全等级。SL 1到SL 4,等级越高要求越严。
  3. 识别差距并制定措施:当前的安全措施能打到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帮你“想准”。三者结合,你才能对工控系统的风险有一个立体的认知。

下一章,我们会基于这些风险,开始设计具体的网络分段和纵深防御策略。到时候见。