2、车载网络安全威胁分析:车载网络面临的攻击面与攻击手段
大家好,我是老张。今天咱们聊聊车载网络的安全威胁。说实话,这个领域我摸爬滚打了七八年,踩过的坑不少。你想想看,一辆智能网联汽车,它身上的电子系统比二十年前的飞机还复杂。攻击者盯上它,一点都不奇怪。
我个人习惯把车载网络安全威胁分成三个维度来看:攻击面在哪、用什么手段打、攻击的完整链条是什么。咱们一个一个说。
2.1 车载网络面临的攻击面
攻击面,说白了就是黑客能从哪里下手。我把它归纳为四大入口:T-Box、IVI、ECU 和 OBD。每个口子都有它的软肋。
2.1.1 T-Box(远程通信终端)
T-Box 是车与外界的通信桥梁。它连着 4G/5G、Wi-Fi、蓝牙。嗯,这里要注意——T-Box 一旦被攻破,攻击者就能远程控制车辆。我在项目中遇到过一起真实案例:某款车的 T-Box 固件更新没有做签名校验,黑客伪造了一个更新包,直接刷了进去。后果?远程解锁、启动,全都能干。
- 远程通信协议(如 MQTT、HTTP)未加密或弱加密
- 固件更新机制缺乏完整性校验
- SIM 卡或 eSIM 被克隆
2.1.2 IVI(车载信息娱乐系统)
IVI 是攻击者最喜欢的入口。为什么?因为它功能多、代码量大、漏洞也多。你想想看,一个 IVI 系统跑着 Android 或 Linux,上面装了导航、音乐、语音助手,甚至还能装第三方 App。攻击面能不大吗?
我记得有一次做渗透测试,发现某款 IVI 的蓝牙协议栈有个堆溢出漏洞。攻击者只需要发送一个精心构造的蓝牙包,就能让 IVI 崩溃,甚至执行任意代码。更可怕的是,IVI 通常和 CAN 总线相连——一旦 IVI 沦陷,攻击者就能通过它向 CAN 总线发消息。
2.1.3 ECU(电子控制单元)
ECU 是车辆的大脑和肌肉。发动机 ECU、刹车 ECU、转向 ECU……每个 ECU 都有自己的固件和通信接口。攻击面主要来自:
- CAN 总线直接暴露:很多 ECU 的 CAN 接口没有做访问控制
- 固件逆向:攻击者通过调试接口(如 JTAG、SWD)读取固件,分析漏洞
- 诊断协议滥用:UDS(统一诊断服务)协议如果没做身份认证,攻击者可以随意读写 ECU 内存
2.1.4 OBD(车载诊断接口)
OBD 接口是法规强制要求的,但它也是攻击者的“后门”。你想想看,OBD 接口直接连到 CAN 总线上,插上一个 OBD 设备就能收发 CAN 消息。攻击者只需要物理接触车辆几分钟,就能通过 OBD 注入恶意消息。
2.2 常见的攻击手段
攻击面知道了,那攻击者具体怎么打?我总结四种最常见的手段:重放攻击、DoS、欺骗、嗅探。咱们一个个看。
2.2.1 重放攻击
重放攻击,说白了就是“录下来,再放一遍”。攻击者先监听 CAN 总线,记录下某个合法消息(比如“解锁车门”),然后在需要的时候重新发送这条消息。
为什么会这样?因为很多 CAN 消息没有时间戳或序列号。我记得在某个项目中,我们测试发现:只要录下一条车窗升降的 CAN 消息,就能无限次重放控制车窗。后来我们加了消息认证码和计数器,才堵住这个漏洞。
- 消息中加入单调递增的计数器
- 使用消息认证码(MAC)验证消息完整性
- 接收端检查时间戳,拒绝过期消息
2.2.2 DoS(拒绝服务攻击)
DoS 攻击的目标是让系统瘫痪。在车载网络中,攻击者可以往 CAN 总线上发送大量高优先级消息,挤占正常消息的带宽。你想想看,如果刹车消息被挤得发不出去,后果是什么?
我曾经在实验室里模拟过这种攻击:用一台设备以 1ms 的间隔发送 ID 为 0x000 的消息(CAN 总线上优先级最高),结果发动机 ECU 直接“失联”了。嗯,这就是典型的 CAN 总线 DoS。
2.2.3 欺骗攻击
欺骗攻击,就是攻击者伪装成合法的 ECU 发送虚假消息。比如,攻击者伪装成 ABS 控制器,向发动机 ECU 发送“车轮打滑”的假消息,导致发动机错误地降低扭矩。
这种攻击最难防的地方在于:CAN 总线本身没有源地址认证。任何节点都可以发送任何 ID 的消息。所以,你无法通过消息 ID 判断它是不是来自合法的 ECU。
2.2.4 嗅探攻击
嗅探攻击是被动的,攻击者只是“听”,不“说”。但别小看它。通过嗅探 CAN 总线上的消息,攻击者可以分析出车辆的状态、驾驶行为,甚至提取出密钥。
我记得有一次做安全评估,发现某款车的网关在明文传输诊断会话的种子和密钥。攻击者只要嗅探一次,就能拿到密钥,然后伪造诊断请求。后来我们强制要求:所有诊断通信必须加密。
2.3 攻击链模型(Kill Chain)
攻击不是一蹴而就的。它有一个完整的链条。我习惯用 Lockheed Martin 的 Kill Chain 模型来分析车载攻击。这个模型把攻击分成七个阶段:
| 阶段 | 描述 | 车载场景示例 |
|---|---|---|
| 1. 侦察 | 收集目标信息 | 扫描 T-Box 的开放端口、分析 IVI 的 App 列表 |
| 2. 武器化 | 制作攻击载荷 | 编写 CAN 消息注入脚本、制作恶意固件包 |
| 3. 投递 | 将载荷送达目标 | 通过 OBD 接口注入、通过 IVI 的蓝牙发送 |
| 4. 利用 | 触发漏洞 | 利用 IVI 的缓冲区溢出执行代码 |
| 5. 安装 | 建立持久化控制 | 刷写恶意固件、安装后门程序 |
| 6. 指挥与控制 | 建立远程通信 | 通过 T-Box 的蜂窝网络连接 C2 服务器 |
| 7. 目标达成 | 执行最终攻击 | 远程解锁、关闭发动机、窃取数据 |
你想想看,如果我们能在链条的早期阶段就阻断攻击,后面的步骤就无从谈起。比如,在“侦察”阶段做好端口隐藏和协议混淆,攻击者连门都找不到。或者在“投递”阶段做好输入验证,恶意载荷根本进不来。
好了,关于车载网络的攻击面、攻击手段和攻击链模型,我就讲到这里。下一章咱们聊聊安全网关和防火墙的具体部署方案。到时候我会结合我踩过的坑,给大家一些实用的配置建议。