2. ADAS安全威胁分析:ADAS系统面临的典型安全威胁、威胁建模方法(STRIDE)、攻击树分析

好,咱们进入正题。ADAS系统,说白了就是让车自己“看路”、“思考”、“行动”。但你想过没有,如果这个“看路”的眼睛被蒙上了,或者“思考”的大脑被篡改了,会发生什么?

我入行那会儿,大家更关注功能安全,比如传感器坏了怎么办。但这些年,信息安全成了绕不开的坎。一个ADAS系统,如果被黑客盯上,后果可比手机中毒严重多了——那是要命的事。

2.1 ADAS系统面临的典型安全威胁

我个人习惯把ADAS的威胁分成三个层面:感知、决策、执行。每个层面都有它的软肋。

2.1.1 感知层威胁:欺骗传感器

这是最直观的威胁。传感器是ADAS的“眼睛”,如果眼睛看到的是假的,那后续所有判断都是错的。

  • 摄像头欺骗:用强光照射摄像头,或者贴一张特殊的贴纸,就能让车辆识别不到行人或交通标志。我在项目中遇到过,用一台投影仪在路面上投射一个假的“停止线”,车辆真的就刹停了。
  • 雷达/激光雷达干扰:发射特定频率的电磁波,让雷达“失明”或产生大量假目标。说白了,就是让系统以为前面有堵墙,或者前面空无一物。
  • GPS欺骗:发射更强的GPS信号,让车辆定位到错误的位置。嗯,这里要注意,如果车辆依赖GPS做车道级定位,被欺骗后可能直接开上对向车道。
⚠️ 避坑指南
我曾经见过一个团队,只关注了摄像头图像识别的算法精度,完全没考虑传感器物理层面的攻击。结果在渗透测试中,一个简单的激光笔就让车道保持功能失效了。所以,不要只盯着代码,物理世界同样危险

2.1.2 决策层威胁:篡改算法与数据

决策层是ADAS的“大脑”。攻击者不一定非要骗传感器,直接攻击大脑更高效。

  • 模型投毒:在训练数据中混入恶意样本,让模型学坏。比如,让模型看到“停止”标志时,识别成“限速80”。
  • 对抗样本攻击:在输入图像上添加人眼看不见的噪声,让模型输出完全错误的结果。你想想看,一张贴了几张贴纸的“停止”标志,在AI眼里就变成了“限速120”。
  • 固件篡改:通过OBD接口或无线方式,刷入恶意固件,直接改写决策逻辑。

2.1.3 执行层威胁:控制车辆动作

这是最终目标。攻击者控制了执行器,就能让车辆做出危险动作。

  • CAN总线攻击:这是老生常谈的问题。通过接入CAN总线,发送伪造的转向、刹车、油门信号。我记得早期一些车型,只要物理接入OBD口,就能直接控制方向盘。
  • ECU劫持:通过漏洞获取制动ECU或转向ECU的控制权,然后让车辆在高速上突然急刹。

2.2 威胁建模方法:STRIDE

面对这么多威胁,怎么系统性地分析?我推荐微软的STRIDE模型。它把威胁分成六类,每一类对应一个安全属性。你对着这六类去检查系统,基本不会漏掉什么。

威胁类型 英文 违反的安全属性 ADAS中的例子
S 欺骗 Spoofing 身份认证 伪造GPS信号、伪造V2X消息
T 篡改 Tampering 完整性 篡改传感器数据流、修改标定参数
R 抵赖 Repudiation 不可否认性 攻击者否认发送过恶意指令(缺乏日志审计)
I 信息泄露 Information Disclosure 机密性 窃取高精地图数据、窃取用户驾驶习惯
D 拒绝服务 Denial of Service 可用性 用大量数据包淹没CAN总线,导致系统死机
E 权限提升 Elevation of Privilege 授权 从信息娱乐系统提权到ADAS域控制器
💡 我的经验
做STRIDE分析时,我建议你画一张数据流图(DFD)。把每个进程、数据存储、外部实体都标出来,然后对每个数据流和存储,逐一问自己:“这里会不会被欺骗?会不会被篡改?” 这样分析出来的结果才扎实。

2.3 攻击树分析

STRIDE帮我们找出“有什么威胁”,而攻击树帮我们分析“攻击者具体怎么干”。

攻击树是一种树形结构。根节点是攻击者的最终目标,子节点是达成目标需要满足的条件。子节点之间可以是“AND”(与)或“OR”(或)关系。

举个例子,攻击者的目标是“让ADAS在高速上误刹车”。攻击树可以这样画:

目标:让ADAS在高速上误刹车
├── OR
│   ├── AND
│   │   ├── 1. 欺骗前向摄像头(感知层)
│   │   └── 2. 让摄像头识别到“障碍物”
│   ├── AND
│   │   ├── 1. 篡改CAN总线上的刹车指令(执行层)
│   │   └── 2. 绕过安全网关的过滤
│   └── AND
│       ├── 1. 注入恶意固件到决策ECU(决策层)
│       └── 2. 触发特定场景(如检测到前车减速)

你看,通过攻击树,我们能清晰地看到攻击路径。而且,我们可以给每个叶子节点(具体攻击手段)打分,比如攻击难度、攻击成本、被发现概率。这样就能知道,哪些攻击路径最危险,需要优先防护。

📌 实用技巧
我习惯在攻击树上标注“防护措施”。比如,针对“欺骗前向摄像头”这个节点,可以标注“增加激光雷达冗余”、“使用摄像头抗干扰算法”。这样,攻击树就变成了一个“防护决策树”,非常直观。

2.4 小结

这一章我们聊了ADAS面临的典型威胁,从感知、决策到执行,每个环节都有漏洞。然后介绍了STRIDE模型,帮你系统性地发现威胁。最后是攻击树,帮你理清攻击路径。

说白了,安全分析不是一次性的工作。随着系统迭代,新的威胁会不断出现。保持警惕,持续分析,才是正道。下一章,我们会聊聊如何把这些威胁分析的结果,落地到具体的开发流程中去。