科恩实验室作为全球首次实现远程无物理入侵,并操控特斯拉的白帽子团队,其高级项目经理薛玮在11月10日的第二届中国互联网安全领袖峰会“智能汽车安全”分会场上,为大家分析了特斯拉的整个供给链,同时展现了智能汽车多个攻击面。此外,薛玮还提出了对智能汽车安全方面的建议和解决方案。
面对车联网与信息安全,薛玮有一套自己的方法论,即关注安全建设的四大要素。第一是专业安全,即引入信息安全专家,确保专业的人做专业的事;其次是安全工程,引入安全工程方法防患于未然;再次是安全保护,引入安全保护机制做更坚固的盾;最后是安全策略,即比攻击者更快的响应、修复和更新,以此从根本上保证汽车网络安全的平稳发展。
科恩实验室高级项目经理 薛玮
薛玮表示,2010年以前,几乎所有对于汽车信息安全的研究都是基于物理接触式的研究。他认为,汽车软件开发在很大程度上可以借鉴互联网的成果,沟通、跨界、合作、融合,大家携手合作,不让信息安全成为未来网联汽车和智能汽车的绊脚石。
以下为发言实录:
大家了解科恩实验室都是从视频或一些报道,今天我在这里给大家简单介绍一下科恩实验室。
科恩实验室初创于一个比较小的创业公司,做安全的团队,基本上之前60%的员工都是来自于微软或其他一些大的IT企业。在过去四年中我们参加九届世界最高级安全黑客比赛,得到了九个世界级冠军;最近两次,我们还拿了两个世界破解大师的称号。在世界著名的安全大会里,我们得到了四个提名,这个提名放在电影界里就是电影界里的奥斯卡提名。所以非常荣幸能够在这里跟大家聊一聊汽车安全。
今天我讲的汽车安全并不是传统意义上汽车的功能性安全,在过去很多年中,我们车厂都致力于把汽车做得功能安全,保证驾驶员和乘客的人身安全,但是信息安全并不完全等同于功能安全。比如,一个黑客把你的手机通讯录同步到车上的通讯录获取出来的话,可能并不会对驾驶员造成人身的功能安全,但是它的确是一个信息泄露的信息安全事件,这当中是有区别的。
但是也有交集,当我们入侵特斯拉以后,如果特斯拉在高速上行驶,远程给它一脚刹车命令的话,就很有可能造成功能安全的事故。所以这两种安全既有联系,又有区别。
一辆S-Class Mercedes车有1亿行代码,有100多个ECU,5个网络。如果把它的线缆展开,有3公里的线缆,10多个操作系统。微软Office 2003是2500万行代码。
如果大家是从事软件开发或信息安全的话,都应该知道有一个CMM的模型,CMM是软件能力成熟度模型。这个模型最高的等级是CMM5,在CMM5里规定:每千行的代码里不得超过千分之零点三二,换句话说每1万行代码,可以出3.2个bug信息,按照安全界经验来说,每10个普通的bug里就会有这样1个安全的漏洞在那边可能会被不法黑客所利用。
那么,这1亿行代码中到底可能存在多少安全漏洞?我计算了一下应该是32000个漏洞可能被黑客所利用。在2010年以前,几乎所有对于汽车信息安全的研究都是基于物理接触式的研究。但是整个汽车在发展,越来越多的联网汽车、越来越多的智能汽车概念已经在我们生活里出现。大家是否能理解这其中潜在的威胁呢?
比如smartphone,现在很多智能车厂把无钥匙进入做到手机上,做成了一个APP,可能这个APP有一些蓝牙通讯和我们汽车相关联。手机会不会有任何可能性被黑客所利用?如果手机被黑客所利用,上面的APP还是否安全?
对于传统的USB系统,大家不要仅仅认为插上手机就可以充电,简单来说我们的USB系统插上以后可以播放手机上的音乐,手机上的通讯录也可以被同步到车的显示屏上。更重要的是很多车厂会使用USB系统对车做一个固件的升级或刷写,就很可能造成车的攻击面的入口。
相信很多人对于我们攻破特斯拉的事很感兴趣,下面给大家介绍一下细节:那是一个雨天,我们有两辆特斯拉,一辆是白色老款特斯拉,一辆是全新款红色特斯拉。
当时我们想试着用同样的攻击去证明它能够用于其他任何特斯拉的车型上,但是我们只有80%的把握能够验证我们的漏洞也会影响到其他的特斯拉。我们非常担心当刷入我们固件以后,把红色的特斯拉刷成砖。在非常忐忑过程中,我们还是这样做了。
过程回顾:
当时Simon和研究员沟通了一下,研究员说你只要进了你的车,打开特斯拉浏览器去查询一下最近的充电站在哪里。过了2分钟,当Simon再回到这个车的时候,特斯拉已经被我们小伙子们控制了。是用了一个后台进程强制占领了特斯拉的屏幕,导致你不能够点任何东西。此外,我们还在行车过程中,关闭了他的后视镜;通过4G方式,让我们在实验室里的同事远程操控特斯拉,使它刹车。这个刹车并不等同于普通的刹车,停下来的时候并没有亮刹车灯。
我们比较重点关注特斯拉前面方向盘下面的IC屏,15寸中控屏,还有网络交换机组件。在中控屏上,最上面是Webkit浏览器,还有一些开关组件,下面有OTA Update Service,还有其他一些service就是侦听。
这一套是跑了一个Linux的系统,下面还有一些接口,比如以太网卡,3/4G、蓝牙。整个WiFi,特斯拉把它独立出来,在一个分开的非常简单的Linux操作系统上把这个WiFi安装上去了,然后和中控屏网段也是独立的,特斯拉有很大意识把WiFi作为攻击入口的话,要单独独立出来。
如果你的控制走过来,CAN信息分成5路CAN,其中2路,有一路叫做CH CAN Bus,比较高速,这一路挂了我们叉车系统、驻车系统、刹车稳定系统;下1路CAN 是Body CAN Bus,低优先级,车门的开启、反光镜的折叠等等。
当时视频为什么要分阶段去驻车时拍一段,又在行车时拍一段?特斯拉gateway有一个特性,行驶时它就会像一个二极管一样,自动帮你关掉,打不通了,信息传不了。
这时候我们就远程刷起这样一个gateway,把这个gateway ITOS操作系统刷写掉了。我们先是通过webkit几个漏洞,可以得到webkit完全操作的控制权限,再利用这样一个权限走到了Linux系统上,再经过几个漏洞,可以把Linux整个权限给root掉。
特斯拉在linux上面也加了很多防范机制,有点类似于杀毒软件或一些保护安全的软件。先root它,再把它删掉,才能把这个固件包发到gateway上。并不是简单能够直接刷写,gateway还有校验,比如CRC校验,这样把本来操作系统逆向了一遍,再把一致校验码固件填充到gateway里面去进行刷写。从而整个攻击连就打通了。
特斯拉的特性,当启动一台特斯拉的时候,windows电脑,插一根网络上去,网络图表从大X变成联网标识符,windows会去微软某个网站查询DNS记录,下载这个记录上.TXT文件,如果能够下载到,说明你的网络是连通的,这样就会把符号换掉。
特斯拉其实也有这样的机制在里面,所以它的后台就会不断地侦听这样一个请求,可能是为了OTA Update机制来设计的,一旦点开的话,就会有这样的请求发到特斯拉某一个官网去下载一个东西。
这个时候我们就可以用DNS篡改或其他手段变成他下载的东西不是他需要的东西,而是我们的固件包,所以整个攻击都是完全自动化,完全不要用户做很多点选等等,只要你触发了浏览器、触发了流量,整个攻击链就形成了。
从整个应急响应来看,我们非常称赞特斯拉对于“应急响应”里面的投入,我们觉得特斯拉是一个有互联网思维造车的企业,特别是把互联网安全这一块带进了它的车里。
应急响应流程:
特斯拉在官网上会有一个安全事件通报部分,点击它,可以给特斯拉发邮件。当你发送这封邮件时,会给你提供一个公钥,也就是说你发送的内容已经帮你加密过了,要确保在传输过程中没有中间人的劫持或攻击。
它也有一个奖金计划激励这些研究人员更多发现特斯拉的安全问题,每一个bug是从1000美金到10000美金不等,我们这样一系列漏洞攻击,听特斯拉安全团队负责人跟我们说,是史上最丰厚的一笔奖金。
他们的人只需要1.5个小时,就回复我们他们已经有人看这个问题。仅仅过了10天就得到了特斯拉的回复,他们已经把更新ready了,可以推送给他们的客户了。车企的同事可以想想,如果出了这样的安全问题,我们需要几天把我们安全更新准备好。
3天90%,也就是说利用了它的OTA升级机制,能够实现这样有灰度的推送Update,第一天推送5%的更新,然后看一下有没有客户抱怨问题,第二天20%,第三天推了90%。特斯拉这样的车在待机模式下也会侦听OTA上面发过来的数据。
如果一旦OTA有这样的信息过来,这个车就会在后台帮你自动做升级,对于车主来说根本没有任何升级破坏的体验,而是第二天去开这辆车时已经全部帮你升级好了。
关注好安全建设的四要素:
专业安全。要做好信息安全是一个非常系统化的工程,我们希望有专业的人来做专业的事情。40个安全团队的人来一起进行特斯拉安全研究,大部分来自苹果、Google和微软这样的IT公司,他们很快能够判断出漏洞的危险程度,很快给出我们这样的应急响应。
安全工程。2000年的时候,PC处于和互联网连接时代,有两个著名的病毒影响了全球几千万微软的PC机和服务器,在次年一个会议上,比尔盖茨提出微软要做可信任计算的理念。于是就有了SDL这样的流程出来,给到了安全软件开发团队用。现在也是汽车在这样一个交叉路口的时代,所以汽车的互联越来越多,汽车是否有这样一套安全工程能够给我们来用呢?
我个人认为汽车软件开发上很大程度上我们可以借鉴之前互联网的成果,比如SDL、CMM等这样的标准。SAE(美国汽车安全协会)也已经推出了汽车信息安全指南,这是一个框架性的协议,也能够帮助大家完善自己的信息安全。
安全保护。流程也好,人也好,最后还是要落实到安全的产品和汽车结构的改变,比如越来越多的车厂会把我们的CAN做一个广域的隔离,这个信息只能在这个域里进行传送,但不能通过我的网端传到比较高等级的CAN当中。也有很多车厂引入一些系统保护这部分CAN资源,即使控制外面娱乐平台,也很难打通到里面汽车核心动力组件,这又是一些想法。
安全策略。我们要有很快速的响应,很快速的修复给到用户,基于这一切都是要建立在我们有比较强大的安全团队和安全的知识积累。
汽车安全的4C是沟通、跨界、合作、融合。大家互相看一下对方的行业在做一些什么事情,对方的痛点在哪里,我们一起携手合作。我们不想让信息安全成为未来网联汽车和智能汽车的绊脚石。谢谢大家!