给自己打个广告,欢迎走过路过的关注一下我的个人主页: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. 汽车租赁php参考文献,国内外汽车租赁文献综述

    龙源期刊网 http://www.doczj.com/doc/71624f30fbb069dc5022aaea998fcc22bcd14387.html 国内外汽车租赁文献综述 作者:刘天华梁少华 来 ...

  2. wince系统_汽车操作系统分类

    一.车载智能驾驶计算平台 1)车载智能计算平台自下而上可大致划分为硬件平台.系统软件(硬件抽象层+OS 内核+中间件).功能软件(库组件+中间件) 和应用算法软件等四个部分. 2)狭义的操作系统单指系 ...

  3. 智能汽车操作系统行业研究及十四五规划分析报告

    2021-2027全球及中国智能汽车操作系统行业研究及十四五规划分析报告 2020年,全球智能汽车操作系统市场规模达到了 百万美元,预计2027年将达到 百万美元,年复合增长率(CAGR)为 % (2 ...

  4. 智能汽车操作系统哪家强?黑莓QNX领跑,中兴/华为撑起中国方案

    随着整车智能化.电子架构的变革,操作系统(OS)成为所有硬件和软件的关键基础平台,提供硬件和应用软件之间的接口.包括智能座舱.车身及底盘控制.智能驾驶以及中央计算平台都需要建立在安全.可靠及高性能的O ...

  5. 押注汽车操作系统,手机厂商就能借无人驾驶弯道超车?

    文 |易敏 来源 | 智能相对论(ID:aixdlun) 就在互联网大佬谷歌先行试水.电动汽车特斯拉入场铺垫,传统车企和互联网科技公司加入无人驾驶大军之后,手机厂商也纷纷入局无人驾驶这场马拉松. 据钛 ...

  6. 汽车操作系统研发:“广义”带动“狭义”——东软睿驰总经理曹斌谈“软件定义汽车”

    开栏的话 "如果没有操作系统,芯片再强,汽车做得再好,都是在沙滩上起高楼.如果'缺芯少魂'这个问题不解决,汽车产业走不快,也走不远."去年下半年,行业权威人士曾提出,行业" ...

  7. 【行业篇】二、汽车操作系统

    基于Android的车载操作系统 目录 写在前面 这边博客其实是写给自己的.从手机行业转到汽车领域也有一段时间了,但是一直本分于系统工程师本职工作,沉湎于自己的一亩三分田.工作中更是像一颗螺丝钉把自己 ...

  8. 国外汽车操作系统布局

     1. 大众– VW.OS平台 1)2019年6月,大众集团公开宣布正式成立"Car.Software"车载软件开发部门,该部门将开发"VW.OS"汽车操作系统 ...

  9. 今年谷歌们对车载系统忽然很冷淡,下一战场是汽车操作系统?

    2017年,不论是Google I/O大会还是苹果WWDC开发者大会,都表明人工智能成了巨头最青睐的概念.在Amazon Echo风靡全美之后,谷歌和苹果同时对"家"这个场景表达出 ...

最新文章

  1. Go各时间字符串使用详解
  2. kindeditor 批量上传 路径_FtpClient 实现文件上传
  3. mass Framework在后端的核心模块
  4. Php魔术函数学习与应用 __construct() __destruct() __get()等
  5. ***惯用的社会工程学手法
  6. spring boot + vue + element-ui全栈开发入门
  7. 第72课 函数与最大值-2021.10.15
  8. java 字符串索引从0开始_无限字符串中的字符串的第一个索引-Java
  9. 爬虫项目——xpath练手(1)
  10. springboot如何对本地数据库增删改查_mysql数据库基本增删改查操作总结
  11. (Abstract Factory)抽象工厂模式的Java实现
  12. VUE项目中引入135编辑器
  13. 机器学习算法——神经网络6(SOM网络)
  14. 运算放大器权威指南(Op Amps for Everyone)
  15. 【面试】Redis 基础数据类型以及常见面试问题
  16. 2016届腾讯实习生招聘上海站回忆版
  17. charles——教程——转载
  18. 拼多多 标题 html,【拼多多如何变成新用户】拼多多老用户变新用户教程_拼多多砍价网...
  19. 天琴协议_天琴座:新秀背后
  20. 解决iPhone、iPad的home按键不灵敏

热门文章

  1. SQL语句学习(自学记录)
  2. 产品原型设计教程:墨刀
  3. 第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)
  4. 媒体揭露互联网“账号黑市”:百倍暴利
  5. 编写一个程序,分别使用字节流和字符流拷贝一个文本文件
  6. DBUS是什么 如何使用
  7. 【C++】C++11简介 | 列表初始化 | 声明 | 范围for
  8. SpringCould实战开篇
  9. Uncaught Error: Undefined constant “Ford“
  10. swift 和 oc混编 找不到头文件等问题