一、引言:当汽车变成"带轮子的计算机"
过去,汽车的核心竞争力是发动机、变速箱和底盘调校;今天,越来越多的功能由软件定义------智能座舱、辅助驾驶、OTA 升级、车路协同,都让汽车成为一台"带轮子的计算机"。软件带来体验跃迁的同时,也把传统 IT 世界的安全问题一并搬进了车内。
一辆现代智能汽车往往搭载数十甚至上百个电子控制单元(ECU),通过 CAN、LIN、FlexRay、车载以太网等总线互联,并借助 T-Box、车机娱乐系统与云端、手机 App 打通。攻击面从物理接口一路延伸到云端服务,任何一个薄弱环节都可能成为入侵入口。本文尝试梳理车载系统的主要漏洞类型,并给出一个可落地的安全防护框架,供研发与安全团队参考。
二、车载系统的攻击面全景
理解漏洞之前,先要看清攻击面。可以按"由外到内"的层次划分:
- 云端与移动端:车联网平台 API、手机 App、OTA 服务端,常见越权、鉴权缺陷、密钥硬编码等问题。
- 车机与 T-Box:Android/Linux 车机系统、蓝牙/Wi-Fi/USB 接口、蜂窝通信模块,是外部攻击最直接的入口。
- 车内网络:CAN 总线、车载以太网,网关与域控制器承担隔离职责。
- ECU 与固件:底层固件、Bootloader、诊断服务(UDS),一旦被刷写即可长期驻留。
- 物理接口:OBD-II 诊断口、USB 口、调试串口(UART/JTAG),常被用于近场攻击。
攻击者通常不会一步到位,而是沿着"云端 → 车机 → 网关 → 总线 → ECU"的路径逐层横向移动,因此防护也必须是纵深防御。
三、典型车载系统漏洞分析
3.1 总线协议缺乏认证与加密
CAN 总线设计之初只考虑可靠性与实时性,报文采用广播方式,没有身份认证、没有加密、也没有完整性校验。攻击者一旦接入总线,就可以伪造车速、转速、刹车等关键报文。经典研究中,通过 OBD-II 接口注入 CAN 帧即可影响仪表显示甚至车辆控制,这类问题至今仍是车载安全的"老大难"。
python
import can
仅用于安全研究与授权测试环境
bus = can.interface.Bus(channel='can0', bustype='socketcan')
构造一帧伪造报文(示例:ID 0x123,数据全 0)
msg = can.Message(arbitration_id=0x123, data=[0x00] * 8, is_extended_id=False)
try:
bus.send(msg)
print("frame sent")
except can.CanError as e:
print("send failed:", e)
上述代码仅用于说明总线报文可被任意构造,实际测试必须在授权台架或封闭环境中进行。
3.2 车机系统与第三方组件的已知漏洞
车机多基于 Android 或定制 Linux,长期不升级会积累大量 CVE。常见问题包括:
- 系统版本老旧,WebView、媒体解码库等组件存在远程代码执行漏洞;
- 调试接口(ADB、串口 shell)在生产版本中未关闭;
- 应用权限过大,车控 API 未做调用方校验;
- 蓝牙/Wi-Fi 配对逻辑薄弱,可被中间人攻击。
3.3 云端 API 与 OTA 链路风险
车云通信是另一个高危区。典型缺陷包括:接口越权(用 A 车账号操作 B 车)、签名校验缺失、OTA 包未做完整性校验或降级保护。若 OTA 服务端被攻破,攻击者可向大批车辆下发恶意固件,影响面极大。
3.4 密钥与凭证管理不当
固件中硬编码的对称密钥、调试证书、云平台 AccessKey,是逆向分析中最常见的"意外收获"。一旦泄露,攻击者可伪造合法身份接入云端或刷写固件。
3.5 供应链与第三方 SDK
车载软件大量集成第三方 SDK 与开源组件,供应链透明度不足。一个存在漏洞的中间件,可能同时影响多个车型,形成"一点突破、批量失守"的局面。
四、安全防护框架初探
结合 ISO/SAE 21434 与 UN R155 的思路,可以从"组织---流程---技术"三个维度构建防护框架。
4.1 组织与流程层
- 建立车辆网络安全管理系统(CSMS),明确安全责任人;
- 在需求、设计、开发、测试、运维各阶段嵌入安全活动(TARA 威胁分析与风险评估);
- 建立漏洞响应与应急披露机制,明确 SLA 与召回/OTA 修复流程。
4.2 架构与网络层
- 域隔离与网关过滤:按功能域划分网络,网关实施白名单式报文过滤;
- 车载 IDS/IPS:对总线报文做基线建模,检测异常频率与非法 ID;
- 安全通信:在车载以太网上引入 TLS/SecOC,对关键报文做 MAC 校验。
4.3 终端与固件层
- 安全启动:基于硬件信任根逐级校验固件签名;
- 可信执行环境:将密钥与车控关键逻辑放入 TEE/HSM;
- 最小权限:关闭生产环境调试接口,应用按需授权;
- 安全升级:OTA 包签名、防回滚、分阶段灰度发布。
4.4 云端与数据层
- 接口统一鉴权与细粒度授权,杜绝越权访问;
- 密钥集中托管(KMS/HSM),禁止硬编码;
- 车云通信全链路加密,敏感数据脱敏存储;
- 建立日志审计与异常行为告警。
4.5 持续验证与运营
安全不是一次性交付。建议建立常态化的渗透测试、固件逆向审计、漏洞众测与红蓝对抗机制,并把车辆运行期的安全事件接入 SOC 平台,形成"发现---响应---修复---复盘"的闭环。
五、实践建议与总结
对车企与供应商而言,可以从以下几点着手:
- 先做资产梳理与攻击面测绘,明确"有什么、暴露在哪";
- 对高风险链路(OTA、车控 API、诊断服务)优先加固;
- 把安全左移,在架构设计阶段就引入威胁建模;
- 建立可追溯的 SBOM(软件物料清单),提升供应链透明度;
- 用 OTA 能力反哺安全运营,缩短漏洞修复周期。
智能汽车的安全是一场持续的攻防博弈。车载系统的"软肋"并非不可弥补,关键在于把安全从"事后补丁"变成"内生能力"。只有组织、流程与技术三者协同,才能在软件定义汽车的时代守住底线。