当前位置: 首页 > news >正文

CAN入侵检测系统IDS不行,用扩充白名单机制保证汽车功能安全需求

CAN入侵检测系统IDS不行,用扩充白名单机制保证汽车功能安全需求 v1

杨福宇 yfy812@163.com 2025-10-05

摘要:1)由于信息攻击不能像功能安全可预设其发生场合和目的,就不能预知后果的危害等级。所以信息安全的漏防率应等同于车辆功能安全的接近最高等级,即信息安全的漏防率要达到10-7/h,停止服务DOS攻击是防御重点;2)考虑到每小时传送的帧数,异常统计或分析的正确率要达到10-13。代表异常现象的数据噪声就不止这些,基于异常统计或分析的入侵检测系统IDS设计是达不到要求的,这方面的努力可能无效;3)现在已经有破坏CAN报错帧的攻击方法,利用IDS发现错,然后报错的防攻击策略就更无效了;4)提出了用启动前对节点程序长度和校验和检查,实现ECU的发送的扩充白名单,这个扩充白名单不仅保证数帧格式,还扩充保证了数据来源、采样发送的时间特性、以及数据处理的方法的功能安全特点。所有修改程序为基础的攻击可以被阻挡,这可能是唯一可达到漏检率<10-7/h的方案。这样的阻断攻击策略把运行时的攻击提前到运行前,这样就不会有严重的后果。运行前检验通过后,黑客攻击的路径已切断,除非有生产时已潜伏的病毒或木马,或者有未发现的攻击模式,运行时就不会有高的漏防率。5)对原有ECU内已稙入的木病毒还没有完全有效的对抗方法,只能加强ECU的预先的信息安全检验;增设CAN防火墙减弱漏检后果;设计结合功能安全的数据认证算法(例如数据发送设备类似ECU白名单检验的正确性、数据合理性、数据流水号、发送设备的硬件密码正确性、等等)。6)有报错帧本身被阻断的攻击,去掉Error passive和busoff, 可对抗此类攻击。7)对于车用以太网通信协议,他们将会遇到与CAN一样的实时性要求,它的信息安全要求与CAN一样。

关键字:汽车电子,信息安全,DOS攻击,CAN加密,CAN防火墙

GB/T 44495-2024”汽车整车信息安全技术要求“2026-1月就要生效执行了。车厂准备好了吗?这个标准提了要求和检验的做法,似乎还缺少定量的指标,例如对攻击的响应时间、一般假冒的漏检概率、能否对抗被暴力攻击偷车的可能等等。也许将来会有像碰撞等级分类的做法。
作为汽车安全纵深防御策略的一部份,要考虑的内容有3点:
1对照国标GB/T40861-2021 “汽车信息安全通用技术条件”开卷明义的“第6.1.1条业务适用性原则:产品的信息安全设计应结合业务或功能环境的实际需求,同时考虑对业务或功能的正常使用的影响。”考虑对业务或功能的正常使用的影就意味着要考虑对车正常使用时的功能安全要求。信息安全对抗措施的容许时间,即功能安全概念中的故障容许时间(ISO-26262-1:2018 P21/42中的fault tolerant time interval),尽量做到立即发现错并阻断错(包括DOS攻击)。这个时间越短越好,我认为最长不超过3-5个控制周期。阻断是重点,事后识别而不能立即阻断会造成严重风险,阻断攻击是信息安全的最终目标。这里还含有保证功能安全要求的容错设计。
2尽量包括所有受黑客攻击的路径。
3汽车是大批量制造的产品,安全措施的实现成本必须最小化。
要区别各种攻击后果而设计不同的对抗措施,没有万金油。而现在的主要风险是DOS攻击,它会造成车失控。CAN帧加密方法对付偷知识产权、个人信息等方面有效,但对未经信道传送的DOS攻击是无效的。

#漏防率的由来与入侵检测系统IDS的局限
一次信息攻击可以使CAN断路,从而使闭环控制变为开环,只要效果持续超过一定时间(例如30ms),就会造成事故,例如修改GPIO中的设置给CAN的TXD,RXD,就可以切断控制闭环;例如修改CAN位时间的设置就可以使通信处于一直错的循环,从而切断全系统的通信,造成多个控制闭环的断开等等。由于信息攻击不能像功能安全可预设其发生场合和目的,就不能预知后果的危害等级。另外,有人驾驶时即使有信息安全报警,驾驶员也不保证有避险能力(来不及或设备已不可控);无人驾驶时,在黑客攻击下,车的功能安全与信息安全已完全不可分割。漏防形成最坏结果是车毁人亡,所以信息安全的漏防率应等同于车辆功能安全的最高(ASIL D,至少ASIL C)事故率等级,即10-7/h。
从这个指标出发,很多基于异常(传送电平变化、传送周期变化、出错分布变化、数据因果关系等等)统计或分析(例如基于聚类分析、机器学习识别)的入侵检测系统IDS设计是达不到的:假设每小时送106帧(每帧100bit=0.2ms,总线负载率40%,每小时36001000ms/ 0.2ms40%= 4.5*106),异常统计或分析的正确率要达到10-13。可是代表异常现象的数据噪声就不止这些,要滤除到可识别的程度需要的时间已远超有实时意义的应用要求。
对于车用以太网通信协议,他们将会遇到与CAN一样的实时性要求,例如要防制DOS攻击。是否要类似的安全措施是值得研究的问题。例如MCU的以太网引脚也是GPIO公用的,攻击者也可以修改引脚定义而废了本节点的以太网通信,使共享数据的节点间数据不一致,威胁到功能安全。本节点发送假冒的其它类型传输层帧,抢占带宽的各种攻击可使网络阻塞控制协议失效,使交换机其它节点信号延迟不可预测,从而破坏时序等等。
车厂的竞争白热化,车的信息安全完全有可能遇到勒索,对车厂来说,一个有效的纵深防御策略将是保命之举。

#现有设计的有效性下降
目前针对抗黑客攻击的手段是从信息业学的,以加密为主。AutoSAR软件包中添加了信息安全组件SecOC,它增加了加解密运算、密钥管理、新鲜值管理和分发等一系列的功能和新要求。SecOC要占用CAN报文的负载中的字节,在其中填入身份认证和新鲜值字段。如果验收方通不过,就丢弃帧,但是没有进一步的安全保障措施。占用的带宽实际上产生DOS攻击后果。现在有对secOC改进的CANsec等方案,可支持256位加密。1)仍然以报错为中间结果,不能纠正等效DOS攻击的后果,2)而且已经有了对CAN报错帧的攻击方法,使这些设计的有效性下降。3)在车内系统中很多攻击是修改了原始数据产生过程。对数据窜改加密手段往往是效果不理想的,4)且对未经信道传送的DOS攻击是无效的。

#攻击报错帧的方法可以使依赖报错机制的IDS失效
早期的对抗措施之一是在CAN收发器处加白名单与黑名单,例如NXP的2020年产品TJA115x Secure CAN Transceiver Family,遇到黑名单的帧时就阻断不发;或者检测到本应本节点发送的帧就报错(后者在我的2015年文章中已有(PDF) Anti-cyber attack method for automotive control networks)。可是报错效果无效的例子见”CAN injection“ 攻击kentindell.github.io/ 2023/04/03/can-injection/ 。这里报错帧本身被阻断,TJA115x Secure CAN Transceiver Family也就无效了。偷车贼在丰田RAV4头灯处通过破拆把假冒节点接入头灯的CAN端子,唤醒系统,唤醒后假冒“key已验证”的帧约每秒发20次。按下黑客工具按钮可启动“强制1输出”(你可以理解为短路CANH-CANL)算法,这个算法会使仲裁中阻止其它节点发帧、报错时flag内出错,甚至完全阻断error flag。发送报错帧的钥匙节点在进入Error passive后就不会再干于总线上的信号了。假冒“key已验证”就可继续发。最后黑客设备的假冒帧成功被网桥接收,网桥成功转发到引擎控制器防盗器,实现解锁。假冒节点的假冒帧又开了门锁,然后贼拆掉工具接回头灯把车开走。虽然加密“key已验证”可能可阻止网桥及门节点接收(现为明文),但是不能阻挡它们的Replay攻击。这个偷车已成行当,他们的假冒节点工具针对很多大厂有专们的设计,例如Jeep,Maserati,Honda,Renault,Jaguar,Fiat,Peugeot,Nissan,Ford,BMW,Volkswagen,Chrysler,Cadillac,GMA and Toyota。地下暗网上€5000的假冒节点价格是很贵的,但对偷车贼是”投资“:偷来的车卖到国外市场。所以我们出海的车也要留意了。这里要强调一下:你要对付的不是个别黑客,而是一批贼。
可喜的是,如按我在为什么要改掉CAN的error passive和bus off V1_-CSDN博客 中的设计去掉Error passive和busoff, 车的钥匙节点就一直可以发报错帧来干扰假冒“key已验证”帧,因为黑客工具否定key节点的active error flag时也干扰了它自己的假冒“key已验证”帧,就可以防这类攻击。在本场合,车还未动起来,但是这种持续的报错是一种DOS攻击,对本场合是没坏作用的。对其它场合,例如加在OBD端口上的类似的“强制1输出”攻击,需要防火墙来缓解DOS攻击后果。

#一些攻击的特点
CAN的一些特性是合理设计的应用要利用的,例如帧发送的优先级仲裁,例如出错的报错帧用于实现数据的无时差全局一致性,例如ECHO报错规则保证帧结束的同步新帧开始的同步,这些设计在经过功能安全审核后能保证应用所要求的指标。CAN没有帧加密数据传送也不能一概而论地认为是天生的缺陷,因为现在大部份黑客攻击都是通过各种途径,在原有审查过的ECU(包括所有带CAN收发器的ECU,例如包括各类网络接口的ECU)运行程序上添加了攻击程序,这些攻击程序是病毒或木马。例如:
1)在ECU的其它程序中加了修改GPIO中原给CAN的TXD,RXD的部份,这会造成CAN硬件离线;修改CAN输出TXD引脚为通常GPIO ,并设置其有断断续续的0输出,只要0输出的间隔大一点,就可以破坏CAN收发器的连续0超时机制(收发器的安全保障),使节点通信失效。这一攻击不需要对CAN的知识有深度的了解。更有甚者,攻击者仅需把全部PIN选项定义为GPIO并按自己的想法送出断续的0-1,以牺牲一个节点为代价破坏整个控制系统。假设该程序本来就有GPIO设定部分,哪么攻击者至少修改了代码的一部份。
2)在ECU的CAN参数设定部分修改了位时间设定,增加了出错可能。甚至改为不同的位速率,造成全系统所有节点通信失效。这里攻击者至少修改了代码的一部份,例如绕开授权码,调用了组态程序写入数据。
3)在ECU的控制程序涉及CAN帧的组织方面修改了优先级、发送周期,造成优先级阻塞攻击,这里攻击者至少修改了代码的一部份直接写入了优先级、发送周期数据。
4)在ECU的控制程序涉及CAN帧的组织方面增加了假冒ID帧发送,造成假冒攻击,或者复制以前其它节点的帧,实施replay攻击,这里攻击者至少增加了一部份代码直接写入了数据。
5)在ECU的控制程序涉及CAN帧的组织方面,以程序产生的假数据代替原应用设计的实测数据,造成数据错,这里攻击者至少修改了一部份代码直接写入了数据。
6)在ECU的操作系统或简化的运行控制程序中修改了堆栈地址、指针,造成CAN源数据错误等,这里攻击者至少修改了代码的一部份。
7)”Exposing New Vulnerabilities of Error Handling Mechanism in CAN“在ECU被拿下后可执行任意程序,就可利用它攻击其它节点,使之快速进入busoff,并用该基本机理实现逆向工程,找出受害者的所发的所有帧,在实车上识别出50个帧仅用6分钟,100%精确识别4个ecu的所有ID仅用8分钟。
上述7类攻击在节点已被黑后用加密CAN帧来解决问题是无效的。

#防攻击的策略
实际上可将风险分配到信息传布的各个段:云到ECU的安全通信(防病毒植入),ECU内MCU软件保护(防病毒启动),CAN的安全通信(病毒纵深防御的最后一关)。每一段都可以实现阻断,程度不同地弱化受损程度。

#防病毒启动的方案:ECU扩充的白名单功能
这可能是唯一可达到漏检率<10-7/h的方案。
装车后,每个ECU都将自己程序的长度和校验和存到MCU的需用密码写入的Trust区中,整车有数个节点的Trust区还保存所有节点的各自长度和校验和。上电后运行前,启动前对节点程序部分长度和求校验和,然后与Trust内保存数比较,这个检验可以由ECU自己执行,也可以由其它节点执行,为了防止ECU在非工作状态时已被黑-廽避了自检,由其它节点查可能较好。对关键程序的校验和可单列,以便查出攻击点,然后追溯攻击者修改程序的可能路径,以下一步阻断攻击。
对于正常的OTA修改,可以设置授权码,每个车不同的授权码也是能做到的。然后将程序的长度和校验和存到MCU的需用密码写入的Trust区中。

除了OBD口引入的攻击(引入了硬件),含CAN端口的其它网络节点(例如无钥进入执行部份;WIFI接收部份; 娱乐系统)引入的攻击都是通过程序执行实现的,OBD口正常的诊断、下载引入的攻击也是通过程序执行实现的。这些攻击实现的共同特徵是攻击者至少修改了代码的一部份,而这个特徵是可以在运行前可以发现的:在MCU的信任根处保存全部程序数据的校验和,这实际上保证了ECU的发送的扩充白名单,这个扩充白名单不仅保证数帧格式,还扩充保证了数据来源、采样发送的时间特性、以及数据处理的方法等所有功能安全特点。运行前进行的校验就可以发现有否修改。也就是说保证任何引起功能安全性能下降或失效的攻击都会被发现,这样的阻断攻击策略把运行时的攻击提前到运行前,这样就不会有严重的后果。运行前检验通过后,黑客攻击的路径已切断,除非生产时已潜伏有病毒或木马,或者有未发现的攻击模式,运行时就不会有高的漏防率。
对于原有经过信息安全审查的ECU在生产装车或修理替换时,应该对比校验码的一致,以防混入有木马或病毒的ECU。

对于ECU原有程序中已有的木马和病毒,用上述校验码是无能为力的即使对程序本身加密也没有用,这可能需要设计出AI的功能预检验方法作为功能安全审查的补充(防病毒植入),此时对程序加密可能反而对AI的功能预检验是不利的。

#病毒纵深防御需要防火墙和功能安全的数据认证算法
病毒或定时炸弹也可以植入接在OBD接口上的任何类型的硬件,例如国外有保险公司用于记录车驾驶行为的硬件接在OBD口上(“Best Automotive Cyber Security Solutions: Karamba, Kaspersky, BlackBerry & Panasonic”:A Toyota car model was compromised by researchers through a dongle from Progressive Insurance, for example)。OBD口引入的硬件具有不可预测的特点,例如直接将CANH-CANL短路,例如在CAN端口接一各可遥控的小装置,或者有病毒的CAN设备。需要纵深防御的最后一关,即将OBD端口改造为可切断的防火墙。发现有长时间不明原因占用总线时(OTA除外)可以上报怀懝,启动降额运行方案,并切断OBD端口一段时间,使降额运行方案可正常运行,以降低运行时风险。OBD口引入的硬件不在运行前检验校验合方法的管理范围内,所以要用防火墙。

有一些攻击未通过修改程序实现数据的替代,例如用假冒的无线接口(TPM,WIFI,蓝牙,5G等)直接输入攻击数据。这些场合无法观察到程序的修改,无法用上述运行前进行校验来阻断。例如假冒胎压(TPM)信号,自动泊车启动信号等,此时不用单纯的信道上的加密,而是设计结合功能安全的数据认证算法(例如发送设备类似ECU白名单检验的正确性、数据合理性、数据流水号、数据的冗余、发送设备的硬件密码正确性、等等),检出错就不执行。这一解决方案是有缺点的,有错就不执行是一种DOS,可能要用CAN防火墙来减弱后果(需进一步权衡)。如果规定对无线接口的ECU也设置类似ECU白名单检验,可能工作可以简化。

http://www.dtcms.com/a/511368.html

相关文章:

  • 微软Teams的Media bypass的介绍
  • 分布式一致性
  • 使用微软Agent Framework .NET构建智能代理应用
  • MOSHELL (10) : COLI 交互
  • 九江网站开发wordpress适合seo
  • 【JavaScript】some方法的详解与实战
  • 买机票便宜网站建设分站式二手车网站源码
  • windows配置hadoop环境
  • Java中的单例模式
  • K8s部署,新版本
  • LXC容器操作实战【Linux】
  • CAN总线: 仲裁
  • ⸢ 捌-Ⅱ⸥⤳ 可信纵深防御应用实践:软件供应链、数据滥用、安全加固
  • Linux Bash(二)
  • 上海建设单位工程备案网站宜宾网站建设网站
  • AI: 生成Android自我学习路线规划与实战
  • 项目实践2—全球证件智能识别系统(Qt客户端开发+FastAPI后端人工智能服务开发)
  • 百度面试题解析:新生代分区、垃圾回收算法、虚拟机栈和类加载(四)
  • AIDC爆火,储能企业跨界抢滩AI能源“新战场”
  • h5游戏免费下载:飞越天空之城
  • 温州市建设厅网站首页什么网站可以自己做房子设计图
  • 基于多路复用技术的高并发服务器组件
  • Linux 进程控制块(PCB)解析:深入理解进程管理机制
  • 子查询总拖慢查询?把它变成连接就能解决?
  • YOLOv3 核心笔记
  • 谷歌发布首个隐私安全模型VaultGemma
  • 什么情况下可能会导致 Redis 阻塞?
  • 保姆级教程vscode创建uniapp vue3+ts+pinia项目并实现自动导入、打包功能
  • 网站标题改动网络安全工程师工作内容
  • 外贸公司网站制作公司wordpress 视频播放器插件