7.2 车载网络安全:攻击面与防线 本节摘要:CAN生在一个"所有节点都是自己人"的假设里:无认证、无加密、人人可发。本节先完整复盘一次里程碑式的真实攻击,把它解剖成步骤,再沿攻击面逐层布置防线——从网关过滤到安全车载通信。这是全书里"危险"的一节,也是把前面所有机制串成防御体系的一节。 先看一次真实攻击。理解攻击不是猎奇,而是因为防线设计的第一原则就是"按攻击路径布防"——不看路径的防御是盲目的。本节选择业界最具标志性的案例,逐步还原并逐层讨论它暴露了什么。 先看一次真实攻击 背景:2015年,安全研究员对一台畅销SUV实施了远程控制演示:从蜂窝网络的远程服务入口切入,层层渗透,最终向制动与转向等关键控制单元注入了伪造报文。
本节摘要:CAN生在一个"所有节点都是自己人"的假设里:无认证、无加密、人人可发。本节先完整复盘一次里程碑式的真实攻击,把它解剖成步骤,再沿攻击面逐层布置防线——从网关过滤到安全车载通信。这是全书里"危险"的一节,也是把前面所有机制串成防御体系的一节。
先看一次真实攻击。理解攻击不是猎奇,而是因为防线设计的第一原则就是"按攻击路径布防"——不看路径的防御是盲目的。本节选择业界最具标志性的案例,逐步还原并逐层讨论它暴露了什么。
背景:2015年,安全研究员对一台畅销SUV实施了远程控制演示:从蜂窝网络的远程服务入口切入,层层渗透,最终向制动与转向等关键控制单元注入了伪造报文。操作路径可以拆成四步:第一步,借车载通信模块上联网服务软件的漏洞,在多媒体单元获得执行权;第二步,利用该单元与关键控制单元之间的通信通道,横向移动到驻车辅助单元等更接近底盘的节点;第三步,在该位置向动力CAN注入伪造报文——由于CAN无认证,任何能上线的节点说的话都被当作真话;第四步,配合指令使目标单元进入受控状态,实现转向与制动的干预。结果:厂商召回了约一百四十万辆车,车载网络安全从纸面议题变成法规议题。
解读这四步,每一步都在给防线出题。第一步暴露的是"联网模块是最长攻击触角",入口治理与漏洞响应是第一道闸;第二步暴露的是"域内横向移动缺乏隔离",网段的访问控制被提上日程;第三步最致命——链路层无认证,报文真实性无从谈起;第四步暴露的是"单点被控可以放大为整车失控",所以还要有失控检测与降级策略。四道题合起来,就是下面防线的分层逻辑。
把防线路线画成纵深,攻击者每深入一层,都应遇到新的成本。
| 层级 | 防线 | 拦截的攻击形态 |
|---|---|---|
| 入口层 | 联网模块加固、漏洞管理、最小化暴露面 | 远程入侵第一步 |
| 网络层 | 网关防火墙:标识符白名单加方向控制 | 跨域横向移动与注入 |
| 链路层 | 安全车载通信:报文级认证与新鲜度 | 伪造合法节点发送 |
| 应用层 | 诊断安全强化、访问控制、参数校验 | 滥用诊断服务改写数据 |
| 监控层 | 入侵检测与事件响应 | 已经发生的攻击及早发现 |
网关防火墙是最先落地的工程手段:白名单规定"哪个源网段的哪个标识符允许出现在哪个目标网段",越界报文直接丢弃并计数。它成本低、见效快,但有天花板——它验证的是报文"像不像合法报文",不验证"是不是合法节点发的";攻击者一旦控制了某个白名单内节点的软件,就能用合法标识符说话。
安全车载通信(SecOC,安全车载通信机制)补的就是这个缺口:在应用层数据上附加消息认证码与新鲜度值,接收方验证密钥与计数后才采信。它把"报文可信"从网络位置证明升级为密码学证明,代价是每帧增加若干字节的认证开销与密钥管理体系——所以工程上只对安全关键报文启用,普通状态报文仍靠网关白名单防护。
监控层是新兴的主力:车内入侵检测系统持续比对报文的周期、计数器与统计特征,异常模式(未知标识符出现、周期突变、总线负载陡增)触发告警与受限模式。它与第4章的错误机制形成呼应——错误帧处理的是"无意的坏",入侵检测处理的是"有意的坏"。
背景:某车型安全评审中被问及诊断接口风险——诊断座是物理可达的攻击入口。操作:评估现有防护,认证机制为标准UDS安全访问,种子算法强度一般;评审建议按资产价值分级——量产状态下禁用刷写类服务与例程控制、仅保留读取,敏感操作需车辆特定条件(车速为零、认证双重门槛)叠加;同时网关对诊断报文做目标白名单。结果:即使攻击者物理接入,可触达的操作面被压缩到"读",改写与刷写通道在量产态关闭。解读:这道题没有"绝对安全"解,工程解是提高攻击成本到不划算——把"物理接入即可为害"压缩成"物理接入加特定条件加专用工具",攻击收益与成本的比例就倒挂了。变式:对出口车型还要考虑法规要求的"维修模式",安全策略不能堵死合规维修通道,分级设计时要给授权诊断留出受控入口。

安全防线的最终归宿是需求文档与验收用例。每个防线层级对应一类可验证需求:网关白名单要有"越界报文丢弃并计数"的测试用例;报文认证要有"过期计数与错误认证码拒收"的用例;诊断强化要有"量产态敏感服务不可用"的用例。安全需求与功能需求的最大差别在于验证方式——功能验证证明"能干成",安全验证证明"干不成",后者需要攻击者视角的测试设计,包括渗透测试与模糊测试。
组织层面还有一条常被忽视的防线:漏洞响应流程。车载环境的漏洞修复无法像服务器那样随时打补丁,召回与OTA的周期以月计,因此响应流程要有分级预案——哪些漏洞必须立即OTA、哪些可等下一版、哪些需要临时限制功能。防线不只是技术部件,还包括让人与流程在事件发生时按预案运转。
与本节收尾相呼应的一个判断:车载安全没有"一劳永逸"的终局,它是攻击成本与防御成本的持续博弈。工程师能做的,是让自己的车处在博弈的"不划算"一侧——攻击收益有限、攻击成本高企、事件可检测、响应可执行。这四条做不到完美,但每一条都可以量化改进;把安全从口号拆成可度量的工程量,是这一领域走向成熟的心态标志。
培训与演练是防线中容易被省略的一环:攻击发生时的决策链——谁判断、谁拍板、谁对外发声——需要在事前演练过才可靠。技术上再完备的防线,也怕事件发生时组织内部找不到责任人、流程卡壳。把演练纳入平台交付清单,是安全工程走向成熟组织的标志。
攻击防线讲完,还差最后一块压舱石:功能安全与电磁兼容。下一节看量产前的两道硬关卡。