汽车操作系统攻防综述

给自己打个广告,欢迎走过路过的关注一下我的个人主页:zhangxin00.github.io

智能汽车安全研究方向

以apollo实验室(apollo.auto)的研究方向为例,智能汽车网络安全可以分为车联网和自动驾驶两个部分(或角度):
在这里插入图片描述
在这里插入图片描述

一. 针对PKES系统的Relay Attack

1. PKES(Passive Keyless Entry and Start)系统简介

传统的物理钥匙+锁定系统的设计已经有了很高的安全性,但是为了提高用户的使用体验(便利性),汽车制造商推出PKES(汽车无钥匙进入与启动)系统。具备 PKES 系统的车辆,当车主的车钥匙靠近车辆时,车辆能检测和识别到射频信号,进而解锁车辆,这使车主接近或启动车辆时不必到处找车钥匙。

PKES系统是射频技术在汽车门禁系统上的应用,通过继电器控制汽车的开关。在这个攻防场景下,有两个关键组件需要了解:
继电器(relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。
中继器(RP repeater)是工作在物理层上的连接设备。适用于完全相同的两类网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。

Business Insider曾报道,英国伦敦一户人家门口的价值9万英镑的特斯拉Model S被偷。监控拍摄到两个小偷在不到30秒的时间,就偷走了特斯拉。
德国通用汽车俱乐部之前的一项研究表明,在他们测试的237辆无钥匙进入系统的汽车中,有230辆汽车都存在钥匙距离车辆较近的情况,可以被中继攻击欺骗开关车锁和启动的车辆中包括奥迪、福特、大众、尼桑、宝马、本田、现代和沃尔沃等超过 30 个主流品牌的主流车型。

2. 攻击原理

最初的PKES系统所使用的身份认证方式为简单的Challenge/Response协议。黑客通过无线中继系统来入侵和放大来自钥匙的信号(相当于中间人攻击),无需改变信号内容,也不解密和破坏通信协议。
在这里插入图片描述

3. 防御措施

1.简单粗暴:禁用PKES功能,或将钥匙放在金属盒中
2.检测恶意信号:识别通过中继器传递和放大的信号(恶意信号),可以通过信号的物理特征结合AI等手段。
3.距离限制协议:通过即时性的交互,限制有效信号在某距离内。

二. 针对ECU的shutdown攻击(Bus-off 攻击)

ECU(Electronic Control Units)是汽车系统中的一个个小型的嵌入式系统,由微处理器(MCU)、存储器(RAM/ROM)、输入输出接口(I/O)等组成。从汽车电子电器架构的角度来看,汽车就是由ECU(点)和CAN总线(Controller Area Network, 线)构成的一个结构体。其中一些引入了新的无线连接的ECU(如蓝牙、蜂窝网络、Wi-Fi),在为车主提供各种服务的同时,已经使车载网络暴露于外部网络攻击之下。对汽车进行攻击,其实际就是针对不同的ECU进行攻击。
攻击汽车的ECU可以获得非法访问ECU的权限,从ECU获取数据和控制或影响ECU的运行,这些数据和运行的控制可以先简单理解为应用和应用的数据,这些其实就是ECU的”财产”,或者理解为攻击者想获得的信息。
在这里插入图片描述
攻击目标:使目标ECU进入Bus-Off 状态
防御目标:在发生前检测出shutdown攻击
现有的防御手段:IDS,安全硬件,CAN网络信号monitor

错误处理(Error Handling)是CAN协议的一个基本特性,为自动驾驶系统中提供了鲁棒性。
每个ECU都维护一个错误计数器,在检测到传输错误增加,在成功传输时减少。如图4所示,基于错误计数,有三种错误状态:
(1)Error-Active:表示低错误次数,并传输一个6位的 active (dominant)error flag
(2)Error-Passive:表示高错误次数,并传输一个6位的passive(recessive) error flag
(3)Bus-Off:如果检测到足够多的错误,即错误计数超过255,那么该ECU将过渡到Bus-Off,处于该状态时ECU将关闭其CAN操作,并从总线中移除自己

下图来自《CANNON: Reliable and Stealthy Remote Shutdown Attacks via Unaltered Automotive Microcontrollers》一文,整个过程可以理解为:发送错误 --> 协议规定:在一定错误次数内,ECU要坚持不懈 --> 超过一定次数:ECU要懈

在这里插入图片描述

非敌对场景下error count 过高对应着节点故障,因此将其隔离或关闭是合理的做法。但是,在敌对场景下,攻击者可以恶意利用CAN总线中的消息传递错误处理机制,使ECU误以为自己处于故障状态,制造shutdown攻击。这种攻击的难点(关键点)在于如何制造错误。

目前提出的shutdown攻击总结如下:
在这里插入图片描述

利用物理访问的shutdown攻击

具有物理访问权限的对手可以很容易地绕过CAN数据链路层,并通过直接向物理总线发送信号或修改CAN控制器以违反协议来注入位。在这种情景下,敌手还可以使用这种访问权限在受害者传输期间的任何时候直接注入dominant位,并导致位错误。利用物理访问的shutdown攻击难以被检测到,因为这些错误与真正的总线故障难以区分。同时,这些攻击具有来自总线的实时反馈,从而具备可靠性。

但是,由于它们需要物理访问,它们在研究和实践中都被认为是不切实际的。换言之,物理访问的shutdown攻击仅证明了shutdown攻击的可行性,在之后我们应当更关注远程访问的shutdown攻击。

远程访问的shutdown攻击

在《Error handling of in-vehicle networks makes them vulnerable》一文中,作者提出由于大多数CAN消息理论上往往是周期性的,攻击者可以通过估计受害者的消息传输时间来执行shutdown攻击。利用根据经验得到的估计值,控制单片机软件的远程敌手可以同时使用与受害者相同的仲裁ID发送攻击消息。这种方法导致两个节点都获得对总线的控制,并故意违反了CAN总线协议。使用精心设计的payload(用dominant bit代替受害者的 recessive bit)可以导致受害者被检测到位错误并重新发送其信息;通过重复这个攻击,错误计数不断累积,最终达到shutdown攻击的目的。但是这种攻击是不可靠的,因为在真实的场景中消息的周期变化很大。

其他的shutdown途径

虽然恶意使用error handling是对ECU进行shutdown攻击的主要方法,但也有其他方法来shutdown攻击ECU。例如:通过用于ECU测试的机制,远程的敌手可以通过恶意地发送诊断消息以执行可靠的远程shutdown攻击。然而,这些消息使用已知的arbitration ID,并且很容易被防御方法检测到。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值