第1章:攻击面识别基础

各位同学,今天我们来聊聊攻击面识别。说实话,这是整个车载安全里最基础、也最容易被忽视的一环。我见过太多团队一上来就搞加密、搞防火墙,结果连攻击面都没画清楚——嗯,这就像你给车装了顶级防盗锁,但车门根本没关。

1.1 攻击面定义

攻击面,说白了就是系统里所有可能被攻击者利用的入口点。你想想看,一辆智能汽车有多少对外接口?CAN总线、以太网、蓝牙、Wi-Fi、USB、OBD-II、T-Box、IVI系统……每一个接口,都可能成为攻击者的突破口。

我个人习惯把攻击面分成三类:

  • 网络攻击面:所有网络通信接口,比如V2X、远程信息处理、车载Wi-Fi热点
  • 物理攻击面:需要物理接触的接口,比如OBD-II端口、USB口、调试串口
  • 无线攻击面:通过无线信号可达的接口,比如蓝牙、NFC、GPS欺骗

关键认知:攻击面不是静态的。车辆启动时、行驶中、停车充电时,暴露的攻击面完全不同。我在项目中遇到过,某款车型在充电状态下会开放一个调试端口,而设计文档里根本没写——这就是典型的攻击面遗漏。

1.2 攻击向量分类

攻击向量,就是攻击者实际使用的「武器」。我习惯把它们分成几个大类:

攻击向量类型 典型例子 常见目标
网络攻击 CAN消息注入、DoS攻击 网关、ECU
无线攻击 蓝牙重放、Wi-Fi中间人 IVI、T-Box
物理攻击 JTAG调试、串口嗅探 ECU、域控制器
供应链攻击 固件后门、第三方库漏洞 所有组件

这里有个坑,我必须要说。很多人只关注「远程攻击」,觉得物理攻击不重要。我曾经参与过一个项目,攻击者通过OBD-II接口插了一个小设备,就能远程控制车辆——因为OBD-II直连了网关,而网关没有做任何访问控制。所以,别小看任何一个攻击向量。

1.3 攻击面分析方法论

好,理论说完了,咱们聊聊怎么干。攻击面分析,我推荐三步走:

  1. 资产盘点:先搞清楚车上到底有哪些电子控制单元(ECU)、传感器、执行器。这一步最枯燥,但也最重要。我建议用Excel或专门的资产管理系统,把每个组件的型号、固件版本、通信协议都记下来。
  2. 接口梳理:每个资产有哪些对外接口?CAN、LIN、以太网、GPIO、SPI……别漏了。我记得有一次,一个团队漏掉了某个ECU的调试串口,结果被攻击者利用这个串口刷写了恶意固件。
  3. 威胁建模:用STRIDE或PASTA方法,对每个接口进行威胁分析。我个人偏爱STRIDE,因为它够直观——Spoofing、Tampering、Repudiation、Information Disclosure、Denial of Service、Elevation of Privilege,六个维度一过,基本不会漏。

我的小技巧:做攻击面分析时,别只盯着技术文档。去车间看看实车,拿万用表量量那些没标注的引脚。我曾经在实车上发现了一个隐藏的USB口,设计文档里完全没有——嗯,那是测试部门留下的,但没人通知安全团队。

1.4 避坑指南

最后,分享几个我踩过的坑:

  • 别只做一次攻击面分析:车辆软件OTA升级后,攻击面可能完全变了。我建议每次大版本更新后,重新做一次分析。
  • 别忽略供应链:第三方Tier 1提供的ECU,你根本不知道里面有没有后门。我建议要求供应商提供SBOM(软件物料清单),并做独立的安全审计。
  • 别只关注ECU:传感器、执行器也可能被攻击。比如,摄像头被遮挡、雷达被干扰,这些都属于攻击面的一部分。

警告:攻击面分析不是一次性的「交差」工作。它应该贯穿整个车辆生命周期——从设计、开发、测试到运营。我曾经见过一个团队,做完一次分析就再也不管了,结果车辆上市后被爆出十几个新漏洞。嗯,那场面,挺尴尬的。

好了,这一章就到这里。攻击面识别是基础,但基础不牢,地动山摇。下一章我们聊聊具体的攻击技术,比如CAN总线攻击和以太网攻击。到时候见。