编者按:360 汽车安全实验室是国内首支专注于汽车安全研究领域的团队。2014 年,360 汽车安全实验室成功破解特斯拉汽车车联网系统,2015 年,他们发现并提交比亚迪汽车在车联网云服务、蓝牙钥匙的安全漏洞。
该实验室主要有五大块研究方向:全生命周期的汽车信息安全咨询、攻防平衡原则的汽车信息安全评估、可视化分析的汽车信息安全检测平台、动态安全监测汽车安全运营模式、兼顾重大及汽车事件的应急响应能力。目前他们与整车厂、Tier1(一级供应商)有深度合作,并且有一些非常成功的案例。
在第三届中国智能汽车国际论坛上,360 汽车信息安全团队负责人刘健皓发表了以「汽车信息安全为核心的汽车互联网」为主题的演讲。以下内容由雷锋网(公众号:雷锋网)编辑和整理(在不影响原意的基础上有删减):
随着汽车技术的发展,黑客攻击技术在不断地进化,我们要认识到汽车信息安全的问题。
整车厂现在面临的问题:
1、去年 Charlie Miller 和 Chris Valasek 破解了吉普自由光以后,克莱斯召回每辆车的成本大约是 150 美金。造成的影响是:不仅承担了召回成本,而且在媒体的影响非常差,甚至有些用户对智能汽车抱着不敢接受的态度。
在汽车信息安全研究方面,有很多整车厂把车上的 T-box 直接接入到自己总部的网络。攻击者可以利用这条通路直接攻击到整车厂内部 IT 系统,造成整车厂被攻击。这不仅影响汽车,而且还影响整车厂 IT 系统的安全。
2、汽车信息安全没办法做到面面俱到。从汽车智能化和网联化的发展来看,它涉及到不同的安全层面:有物理安全、系统安全、射频安全、传感器安全、遥控智能安全。车联网这块,包含移动安全、嵌入式安全。
这些安全层面在以前传统 IT 安全里是解决不了的问题。传统安全,比如我的电脑只需要解决 Windows 问题就可以解决终端安全了。但车联网或者自动驾驶技术是一个混合体的技术,涉及的安全层面非常多,所以汽车信息安全没有一种有效的手段可以达到面面俱到。
3、整车厂企业缺少专业信息安全人员去做专门的维护或做专门的审核,来保证我们出厂或者发布的汽车是安全的。
4、整车厂负责把各个供应商的配件组装起来,这些零配件出了问题,实际上是供应商的问题,但最终影响效果是在整车厂上,所以这个错误是整车厂来承担,单也得是整车厂来买,这是非常窘迫的问题。
汽车信息安全风险来自哪些方面?
1、汽车总线
汽车总线与生俱来就有一种安全风险,因为它在设置的时候就没有考虑安全问题,最初是把它看作一个封闭式的网络来设计的。
在封闭式网络里,考虑到安全问题,汽车总线在 ECU 或者网络安全传输过程中都是云端传输,协议涉及也非常简单,只要改几个数据位。
2、联网化
既然网络是封闭的,同时现在又有联网化的需求,如果把开发的总线通过 T-box 直接连接到互联网,很多互联网黑客就可以通过这一点攻击到汽车组建架构,并且去控制汽车。所以联网化也是一种安全风险。
3、智能化
现在很多汽车有智能化的功能,比如自动驾驶或者特斯拉 Autopilot。智能化有很多的传感器,这些传感器要感知周围环境,反应到汽车自动驾驶里,最终反向控制汽车。
如果传感器被干扰,那反向也可以干扰控制汽车。
4、新能源汽车
新能源汽车的 BMS 和充电桩有一些汽车交互,并且也涉及到汽车控制,所以对外开放的接口会引起安全风险。
5、科技化
传统汽车 ECU 数量非常少,这意味着它的车载软件代码比较少。从攻击者的角度看,他的攻击面也非常少。
随着汽车科技化越来越多,一辆车至少有上百个 ECU,每个 ECU 都有可能成为一个攻击点,上百个 ECU 背后支撑的可能是上千万个代码,只要存在着代码就有可能出现漏洞。科技化会给汽车带来安全风险。
如何解决安全风险?
我们要设立汽车信息安全建设的原则。
很多整车厂做信息安全工作,目标就是做边界防护,这是安全界里非常古老的一种方法。因为传统的办公网络可以确定一个边界。现在的网络是移动互联网,移动互联网就意味着是端到端的互联,它的定义非常模糊。特别是汽车,每辆汽车都会跑在互联网上,它的边界到底在哪儿?
在汽车的信息安全方面,我们要设定一个原则:不是站在对黑客进行边界防御的立场,因为黑客不一定在边界,他有可能在你的内部,所以要建立清除内部危险的免疫系统。
汽车和车联网系统要有自己的安全能力和防护能力。建立一个免疫系统,它自身就可以防护攻击,而不是要靠外部防护设备或者信息安全产品。
根据这个思路,我们分为几个路线:
1、对产品进行安全分析。首先把我们的产品拿出来看,它有没有安全工作,达到安全要求?如果没有,那后续相应地设计肯定不能满足信息安全需求。
我们在前期需要安全咨询,给它提安全要求。在安全设计的时候,要对汽车面临的一些信息安全风险进行分析,并且对于这些危险进行建模,要了解我们面对的风险和要加固的范围。
2、在建设过程当中,我们要遵循代码审计,做防护测试,在不同的节点要安全验收。
比如,供应商提供的产品,要有一个安全验收的流程。在这方面,还需要一些外围安全产品,做具有针对的防护,防护做完之后要再确诊风险。
3、根据现有威胁情报,我们不能防护一些从来没有发生过的事情,我们防护的是现实存在的东西。
对汽车和 IT 系统当中的数据,每天产生的数据量非常大,我们要用机器学习的技术来处理。安全应用人员只是帮我们做决策而已。我们的安全是重监控的,会提取很多数据,目的是:安全不是防护,是及时地把损失终止。
建设思路:云、管、端
把汽车、车联网或自动驾驶整个划分完之后,可以用三个字来概括:云、管、端。
在云端和管端,与传统 IT 系统一样,它最后也会用到服务器。在管道这端,照样走的是运营商的套路,即 API、GPRS 和 4G。在云端和管端我们可以沿用传统 IT 思路。
汽车是一个非常特殊的终端,可以分为:决策、感知、控制。决策主要就是由自动驾驶这样的系统进行的路径规划,感知是指传感器,控制是指执行器。
从决策到控制会有一个网络传输,我们会发现很多的攻击最终是落到「攻击汽车总线」,从而达到控制汽车的目的。
保障 CAN 总线安全
我们有一个容忍度,就是我可以让你在车载系统、IT 系统来回折腾,只要不要影响汽车控制就可以了。但是,有很多的攻击都最终能深入到汽车控制,所以我们要保障 CAN 总线的安全。
在 CAN 总线以外,实际上是属于 IT 层面的,传统 IT 防不住。在 CAN 总线以下是 OT 层面的,就是控制信息。
在控制领域做安全,现在还在一个初步摸索的阶段,包括现在的工业 4.0、工业互联网都是在 IT 层面上做。在 IT 层面上有很多东西可以互用,但是没有办法解决根本问题。
自动驾驶工作原理是先通过传感器去感知周围数据,再把数据源汇总到自动驾驶系统。这个系统负责两个事:
- 路径规划。这辆车应该开到哪儿,走到哪儿,怎么行驶规划出来;
- HMI 人机交互。这辆车应该怎么走,前面有几辆车,限速是多少,在第几条道上,把这些信息显示给用户。
如果一辆自动驾驶汽车的传感器不可靠,会影响到自动驾驶的算法。如果自动驾驶的算法出问题,汽车在操作上肯定会出问题,在 HMI 上的显示也会出问题。自动驾驶安全实际上依靠的是传感器的可靠性和自动驾驶的冗余性。
车载终端安全,是指汽车总线和传感器的安全。车载终端分为系统、应用、硬件安全,把这些安全做到了就可以保证车载终端相对安全状态。
- 安全测试,从硬件、到系统、到应用等多方面多唯独的安全测试,保障车载系统运行安全;
- 安全防护,通过清理、杀毒、加速、终端防护、联网防火墙、车载控制防护;
- 安全监控,对于车载信息系统数据进行实时监控、动态防护。
移动终端安全,现在很多攻击汽车,攻击车联网就必须要有一辆车才能够去做测试,实际上有很多攻击,测试者只需要一个车载 APP 软件就可以对车联网发起一些攻击和测试。
对于车载终端的安全要求是防逆向、防调试、防纂改、防打包,在这个领域里有很多公司都可以做这件事,就是一个简单的 App 加固问题。
从经验上总结,虽然特斯拉屡次被破解,但它没有因为车联网安全事件召回某一辆车,为什么?原因在于:通过远程 OTA 的手段来降低信息安全问题给车厂带来的损失、加密芯片可以通信提供端到端的加密和身份认证、可信的通道可以保护传输的加密不被黑客劫持。
*文中图片由刘健皓提供