在 SyScan 360 的上海会场上,破解特斯拉的第一人,360 车联网安全中心工程师刘健皓开玩笑说,在北京吃了三年烤鸭后(之前的 Syscan 360 在北京举办),终于可以来黄浦江的游艇上喝啤酒了。

看上去,一切都很土豪、轻松、有趣对吧?事实上,他下面要解密的事情会让你竖起汗毛——正儿八经买的一辆新车,可以轻而易举地被他开走?!

其实,在11月,刘健皓就展示了这一酷炫的技术。那是一个天空都飘着几个字:“不要惹黑客”的一天,360 公司大楼下列阵了二十几台豪车,利用神秘的技术,刘健皓和团队轻松逐一破解了这些车。

这次,他就是来详细解密——他是如何做到的。

CAN 总线留下的 BUG

一切危险的源头是因为汽车的CAN总线设计。

CAN 是控制器局域网络 ( Controller Area Network ) 的简称,是在1986 年,由以研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。

对于汽车,有很多种攻击途径:OBD 盒子、WI-FI、蓝牙、车机 APP、车联网平台……它们都要经由 CAN 总线进行控制。如果 CAN 总线安全,那么即使黑客利用上述途径,对车耍花招,汽车整体安全还是可以被保证,这些花招都仅仅是“娱乐”而已。但是,如果 CAN 总线不安全,这样的汽车就可以受到“狗带”般的攻击——你拿着车钥匙也没用,这车现在属于控制了 CAN 总线的黑客。

如何守卫 CAN 总线的安全,要从 CAN 总线的结构说起。

故事是这样开始的,很久很久以前……

传统的汽车线束结构是这样:很多控制器链接在一个东西上,控制器之间可能还会互相干扰……

直到有一天,人们忍不了了,设计出一个总线架构,就像交换机一样,所有 ECU (电子控制单元)都要经过这个“交换机”:交换信息,协调指令。

但是,现在看来,CAN 总线还有几个致命的攻击点:

1.它遵从 CSMA/CD 的交流方式,在任何一个节点搭上总线,都可以看到总线的数据,所以黑客只要找到一个点攻破,就可以看到车内所有数据;

2.它支持多路访问,网络上所有节点接收数据都经过一条总线,所有数据都在一条线上,发的数据是广播的,所以可以看到很多控制器发的控制指令,如果控制指令是明文,那么就可以通过重放的方式控制汽车的一些设备;

3.它有一个冲突检测机制,所有节点在发送数据的过程中,会不断检测所发送的数据,预防与其它节点产生冲突,由于这样的机制,只要一直在传统线中发送数据,就可以导致 CAN 总线拒绝服务,车上任何控制器都没有反应。

刘健皓介绍,只要知道 CAN 总线的数据、ID、发送周期,那么黑客就可以通过重放来判断某个控制功能。

所以,对 CAN 总线的攻击其实十分危险,可以窃听总线数据、伪造协议,实施重放攻击和拒绝服务攻击。这意味着,如果做了这些动作,车处于极度危险中。

万能车破解器真的能破解一切车?

是的,只要车有 CAN 总线设计。

先看一下理论分析——汽车 CAN 网络逆向过程主要分为4个步骤:筛选、定位、破解信号、验证和保存。

  • 第一步:筛选

使用市面上一些 USB-CAN 的工具与汽车的 CAN 总线相连,可以获取 CAN 总线上广播的 CAN 数据包,从大量数据包中进行逆向分析,找到想要的 CAN 数据包。

  • 第二步:定位 CAN_ID

对于车身的某一项功能的控制,只需要一个 CAN ID 的数据包即可,这时只需要单纯地重放即可达到攻击的目的,还有一些功能需要多个 CAN ID 的数据包联合才可以,还有一些 CAN ID 数据包上带有计数器,在攻击时必须加上计数器才能绕过预碰撞系统的阻碍。

  • 第三步:破解信号

CAN_ID 的数据包里一共有8个字节,每一个字节代表什么以及这些字节上的数字都是不固定的,比如速度表上的数值是根据公式计算出来的,如果改变成想要的数值(就是电影里那样改变速度置人于死地),需要带入公式才能得到正确的结果。

在测试的过程中需要触发汽车动作,再确定 CAN_ID 的变化,然后找到对应的值,这样就可以把信号和汽车动作破解出来了。

  • 第四步:验证和保存

结合上述结果,做成 FUZZ 工具,进而发现更多的汽车漏洞,如果需要修复的话,当然也是可以的。

实际操作起来,要不断解决一些困难。

刘健皓说:“我们拿一些传统 USB 工具接到车上面,发现刷屏非常快,分析 CAN 协议时,看执行动作,眼睛都要花掉。”

为了能清晰地分析数据,没有工具,那就自己造一个。因此,刘健皓及他的团队造出了一个“CAN—Pick”。这个“CAN—Pick”就是他们口中的“汽车安全总线测试平台”——测试汽车总线是否安全。

其实,它也是一个万能车破解器。

虽然,它的外表看上去没有那么酷炫狂拽,仅是一个可以连接车的小黑盒和一个软件平台。

那么,究竟如何操作,这辆车就会被黑掉呢?

拿着电脑和小黑盒连接到车身,车身在静止状态时也会产生一些数据,这些数据被称为干扰数据,第一步就是获得这些干扰数据。小黑盒连接上的时候,软件平台上就会出现可视化的干扰数据;然后,操作车灯,获得车灯操作时的数据包,与干扰数据进行比对,从而发现真正能够下达操作车灯的指令数据包。把这个新获得的数据包进行重放,那么就可以操作车灯。

其它操作同理。

360 车联网安全中心另一工程师严敏睿介绍:

这款软件支持全平台,有多种硬件可以进行试配,不管是市面上的,还是自己开发出来的,都会提供 SDK,让你自己自行进行试配。同时可以在线编写一些插件,这些插件可以共享到服务端,也可以从服务端下载一些别人编写的插件进行共享,多个人可以同时对这款软件进行操作。

这意味着,“全民”可以加入到“黑车”——哦,不,是测试车是否安全的平台中来。

目前“CAN—Pick”有哪些插件功能?据刘健皓和严敏睿介绍:

主要包括 CAN-BUS 总线协议的 Fuzzing、 UDS 探测,数据报文分析,总线数据加密强度检测,数据通过可视化可以看到可视化的图,操作车身的一些控制,开车门、关灯、开引擎,可以实时看到数据中哪些变化,非常容易发现哪个 ID ,哪个数据再控制哪一项车身的东西,最后还有定制化功能的在线编写。

不过,这一切看上去好像很简单,其实还有多种因素的干扰,比如,时间间隔、数据包中有效数据的提取分析……,这些都是包括刘健皓在内的各个安全工程师正不断完善与探索的领域。

当然,作为安全研究人员,总是要挖出一个坑,然后试着填上。

既然 CAN 总线可以被攻击,这个工具也可以检测出一辆车是否安全,那么有没有什么方法可以阻止这一切发生?

刘健皓告诉雷锋网(公众号:雷锋网)宅客频道,汽车总线设计之初是在封闭网络环境中使用,并没有考虑安全问题,对于总线网络结构及控制指令的设计,要增强各 ECU 之间的验证措施,包括使用时间戳和校验的方式防止重放破解攻击,提高控制协议被逆向的成本,同时要控制好联网部件的安全性。

他们现在的思路是,对 CAN 总线进行安全加密,比如,在数据包中是否可以插入一些加密算法。刘健皓透露,目前,清华大学的研究团队也正在对这一领域进行研究。

本文作者:李勤
本文转自雷锋网禁止二次转载,原文链接

“特斯拉破解第一人”又造出“万能车破解器”:黑掉一辆车有多简单?相关推荐

  1. 26秒!全球销量第一的AI音箱就被腾讯黑掉了,然后变身窃听器

    雷刚 发自 凹非寺  量子位 报道 | 公众号 QbitAI 对不起,你担心的事情成真了. 现在你买一台"能说会道"的智能音箱,能秒变窃听器. 所谓AI+IoT,正在把所有人带入一 ...

  2. 那个曾经黑掉iPhone和PS3的少年,要把你的车破解成无人车

    本文来自AI新媒体量子位(QbitAI) 你知道霍兹(George Hotz)么? 今天是他28岁生日.十年前,霍兹耗时500多个小时,破解了乔布斯刚发布不久的第一代iPhone,最后换得一辆Niss ...

  3. 有64辆赛车进行不计时比赛,一共有8个赛道,想要找出最快的四辆车,要至少比赛多少轮?给出你的方案。

    题目: 有64辆赛车进行不计时比赛,一共有8个赛道,想要找出最快的四辆车,要至少比赛多少轮?给出你的方案. 很久以前就在朋友圈看有人分享过XX大厂面试题,点进去一看,就是这道题,当时的我年少无知心想就 ...

  4. 华为inside第一辆车来了!总裁说:若计算上干不过特斯拉,可关门不干了

    4月17日晚,北汽新能源汽车高端品牌极狐宣布,旗下第二款量产车型阿尔法S正式上市,新车定位中大型车. 首款Huawei inside智能豪华纯电轿车北汽阿尔法S(华为HI版)采用华为快充技术,充电10 ...

  5. 特斯拉撞了警车:辅助系统Autopilot全程开启,连撞两车还没自动停下

    车栗子 发自 凹非寺  量子位 报道 | 公众号 QbitAI 美国,康涅狄格州的一条高速公路上,有辆特斯拉Model 3撞到了停着的警车. 在那之后,特斯拉并没有停下,继续往前开,撞到了另一辆停着的 ...

  6. 特斯拉中国月销破5万台创纪录:每46秒就能卖出一辆车

    国庆长假刚过,乘联会发布的中国汽车销量数据就为中国新能源汽车行业注入了一剂强心针.数据显示,特斯拉中国再次打破8月的4万级别市场表现,创造出56,006辆的全新纪录,环比增长27%,同比增长394%. ...

  7. 王兴,带头围观了华为第一辆车

    本文转载自 投资界,作者 张继文.苏舒 千呼万唤,华为第一辆车正式亮相了. 4月17日,北汽新能源旗下高端品牌极狐联合华为发布了极狐阿尔法S华为HI版.这是华为的第一辆车--不仅搭载了华为HI解决方案 ...

  8. 为什么很多人认为一辆车开五六年就要换车?

    你好,我来回答这个问题,我是检车家的一名二手车检测技师.工作的原因接触过很多二手车买卖,所以对于这个问题还是相对有所了解的,下面我就从我个人的角度回答一下你的问题. 粗浅的谈几点: 1.五六年换车的一 ...

  9. 三天让车跑起来!stm32循迹车 —— 第一天:基本模块使用方法

    声明在前:本系列以程序设计为主,适用于刚学会32,想完成一个基本项目却不知道怎么上手的小伙伴.想学习硬件方面如:电路.画板等内容的朋友请不要在本系列耽误您的时间,关闭即可. 眼瞅着日子一天天地过去,学 ...

最新文章

  1. 回归!这里才是我们的天堂
  2. 磁盘格式化,磁盘挂载,手动增加swap空间
  3. BPM实例方案分享:表单子表自动填入数据
  4. Eclipse保存验证JS缓慢
  5. 如何debug web worker
  6. dedecms在linux主机下的一个奇怪错误
  7. 对特朗普获胜感到意外? 那你是被社交媒体迷惑了
  8. java query包,有没有Java的http_build_query函数的Java等价物?
  9. ant使用ftp上传数据时配置的一个报错问题
  10. kettle 连接 Oracle 异常
  11. Flutter安装、配置、初体验 windows 版
  12. 谈谈互动型网站中垃圾贴的应对方案,互联网营销
  13. 网络编程——UDP编程
  14. 北京二手房价10月微涨 业内:坚持限购就不会大涨
  15. 如何解决Python 爬取网易云评论为[ ]的问题
  16. Android框架——下载图片框架Fresco
  17. 小学生学习Python的步骤和学习周期之我见
  18. 2020年“信创”火了!一文看懂什么是信创
  19. Linux网络配置常见问题
  20. pandas 读表格_手把手教你数据分析(1)--Pandas读取Excel信息

热门文章

  1. 2010年IT通讯企业排名
  2. 七夕节/情人节的浪漫表白HTML礼物(生日亦可用)
  3. 《系统架构设计》-03-软件结构体系和架构风格
  4. Microsoft Office MSDT代码执行漏洞(CVE-2022-30190)复现“没”成功
  5. 法律约束得了人的行为,但约束不了人心
  6. 【面试算法】——字符串问题(一)
  7. 无聊画一个五角星玩玩
  8. c语言直角梯形图案,html – 带有直角梯形的盒子形状
  9. 老闪创业那些事儿(52)——廉政负责人到岗(下)
  10. 【Android Studio 3.5.3】问题点:运行失败,提示 If that is not the case, delete the files at