2、ISO 21434核心概念:威胁分析与风险评估(TARA)方法论、攻击路径分析、风险处置决策
好,我们直接进入正题。ISO 21434里最核心、最实操的部分,就是TARA。说白了,TARA就是回答三个问题:谁会攻击我?怎么攻击?攻击了后果多严重?
我个人习惯把TARA比作「给车做安检」。你不能等车被偷了才装锁,对吧?TARA就是在设计阶段,提前把可能被撬的锁、可能被砸的窗都找出来。
2.1 威胁分析与风险评估(TARA)方法论
TARA不是拍脑袋。它有标准流程。我参与国标起草时,反复强调过:流程不规范,结果就是废纸。
一个完整的TARA流程,通常包含以下几步:
- 资产识别:找出需要保护的东西。比如ECU、CAN报文、OTA升级包、用户隐私数据。
- 威胁场景识别:设想攻击者会怎么搞破坏。比如「通过蓝牙远程发送恶意诊断请求」。
- 影响评级:如果威胁成真,对安全(人身安全)、财产、隐私、运营的影响有多大。
- 攻击路径分析:攻击者具体怎么一步步实现威胁。
- 攻击可行性评估:攻击需要什么设备?多少时间?多少专业知识?
- 风险值计算:综合影响和可行性,得出风险等级。
- 风险处置决策:是接受、降低、规避还是转移风险。
重要提醒:TARA不是一次性工作。每次架构变更、新增功能、发现新漏洞,都要重新跑一遍。我在项目里见过有人做完TARA就存档了,结果半年后出了安全事件,一查,当初根本没分析那个场景。
2.2 攻击路径分析
攻击路径分析,是TARA里最烧脑的部分。你想想看,攻击者不会只盯着一个点。他会从最薄弱的环节切入,一步步渗透。
举个例子。假设我们要分析「攻击者通过车载信息娱乐系统,控制刹车系统」这个威胁。攻击路径可能是这样的:
攻击路径示例:
1. 攻击者利用信息娱乐系统的Wi-Fi漏洞,获得应用层权限
2. 通过系统提权漏洞,获取Linux root权限
3. 利用网关的CAN报文过滤缺陷,发送伪造的制动控制报文
4. 刹车ECU收到恶意报文,执行非预期制动
嗯,这里要注意。攻击路径分析不是画着玩的。每条路径都要评估可行性。我曾经在项目里遇到一个团队,把攻击路径画得特别复杂,结果一评估,攻击者需要物理拆解车辆、需要原厂诊断仪、还需要内部算法。这种路径的可行性就很低。
攻击路径分析常用的方法有:
- 攻击树(Attack Tree):根节点是最终目标,子节点是达成目标需要的条件。
- STRIDE:从欺骗、篡改、抵赖、信息泄露、拒绝服务、权限提升六个维度分析。
- EVITA:专门针对车联网的攻击树方法,比较老但依然有效。
个人经验:我建议初学者先从STRIDE入手。它结构清晰,不容易遗漏。等熟练了,再用攻击树做深度分析。别一上来就搞复杂的方法,容易把自己绕进去。
2.3 风险处置决策
分析完风险,不能光看着。你得做决策。ISO 21434给出了四种处置方式:
| 处置方式 | 说明 | 适用场景 |
|---|---|---|
| 风险降低 | 通过安全措施减少威胁发生的可能性或影响 | 大多数情况,比如加防火墙、加密通信 |
| 风险规避 | 彻底移除导致风险的功能或设计 | 风险太高且无法有效降低时 |
| 风险转移 | 将风险转嫁给第三方,比如买保险、外包 | 非核心功能或法律合规需求 |
| 风险接受 | 明确承认风险存在,但不采取行动 | 风险极低,或降低代价远超收益 |
这里有个坑。很多团队喜欢选「风险接受」,因为省事。但我曾经见过一个项目,团队觉得「通过蓝牙攻击的概率极低」,就接受了。结果半年后,安全研究人员真的演示了通过蓝牙漏洞远程控制车辆。那场面,嗯,不太好看。
避坑指南:风险接受不是偷懒的借口。必须要有书面记录,说明为什么接受、谁批准的、什么时候重新评估。否则出了事,就是你的锅。
我个人习惯在做风险处置决策时,遵循一个原则:能降低就降低,不能降低就规避,实在不行再考虑转移或接受。而且,每次决策都要有评审记录。你想想看,万一出了安全事故,审计人员问你「为什么这个高风险没处理」,你总不能说「我觉得没事」吧?
最后说一句。TARA不是纸上谈兵。它要落地到具体的需求、设计、测试里。我见过太多团队,TARA报告写得漂漂亮亮,结果代码里一个安全漏洞都没修。那TARA就是白做了。
好,这一章就到这里。下一章我们聊聊安全需求怎么从TARA里推导出来,那是真正开始干活的部分。