0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

汽车网络安全攻击实例解析(二)

上海控安 来源:上海控安 作者:上海控安 2023-08-08 15:17 次阅读

作者 |田铮上海控安可信软件创新研究院项目经理

来源 |鉴源实验室

社群 |添加微信号TICPShanghai”加入“上海控安51fusa安全社区”

引言:汽车信息安全事件频发使得汽车行业安全态势愈发紧张。这些汽车网络安全攻击事件,轻则给企业产品发布及产品口碑造成影响,重则导致大范围的汽车召回或股价受损,造成的经济损失和安全代价不可估量。本文则选取典型的智能网联汽车网络安全攻击实例展开详细介绍。

01

汽车信息安全威胁

随着汽车不断向智能化、网联化、电动化、自动化的发展,软件定义汽车的趋势日益显著。目前智能网联汽车关键代码规模提升了10-100倍,代码漏洞呈指数级增长,同时汽车电子控制单元(ECU)的数量和车内连通性不断增长,导致汽车受到信息安全攻击的风险大大增加。

近年来频发的汽车信息安全事件加剧了社会各界对于智能汽车发展前景的担忧。比如2015年美国黑帽大会,研究人员通过车载娱乐系统发动伪装攻击,成功入侵Jeep Cherokee远程获取汽车的关键功能操作权限 [1]。这次事件直接导致克莱斯勒公司在全球召回140万辆汽车,也促使汽车工业界更加严肃看待智能汽车面临的信息安全风险。

在此之后,汽车行业积极应对信息安全挑战,但搭载了先进信息通信技术的新款智能网联汽车同样无法完全回避网络攻击的威胁。例如,腾讯科恩实验室分别在2016年[2]、2017年[3]两次攻击特斯拉实现对车辆的无物理接触远程攻击,利用内核、浏览器、MCU固件、UDS协议及OTA更新过程中的多个高危安全漏洞,攻入到特斯拉汽车的CID、IC、网关以及自动驾驶模块,随后将其发现的安全漏洞交与特斯拉。2019年[4-5],腾讯科恩实验室在多款宝马自动驾驶汽车上展示了利用车载信息娱乐系统和车载信息通信终端的漏洞远程无线入侵汽车,并进一步利用中央网关的安全缺陷实现向内部核心CAN总线注入恶意消息,获取了底层安全关键车内网络的控制权。2020年[6],360 Sky-Go团队针对梅赛德斯奔驰的车载娱乐主机、车载通讯模块、车联网通信协议及后端服务等联网模块,发现19个安全漏洞并利用漏洞形成攻击链路,预计影响200余万辆梅赛德斯奔驰汽车。类似这样的“白帽黑客”式策略一直在汽车安全业内上演,以寻找、提交汽车的安全漏洞甚至修复漏洞。

02

攻击案例分析

2.1 攻击安利介绍

2016 年[2],科恩实验室成功利用多个高危安全漏洞对特斯拉实施了无物理接触远程攻击,实现了对特斯拉驻车状态下汽车天窗、转向灯、座椅、显示器、门锁系统的远程控制,以及行驶状态下对雨刷、后备箱、刹车系统的远程控制。科恩实验室是通过无线(Wi-Fi/蜂窝)进入,破坏许多车载系统,如 CID(Center Information Display,中控显示系统)、IC(Instrument Cluster,仪表组) 、Parrot(无线及蓝牙模块)和网关等,然后将恶意 CAN 消息注入 CAN 总线。这是全球范围内第一次通过安全漏洞成功无物理接触远程攻入特斯拉并实现任意车身和行车控制。

2.2 案例分析

2.2.1 研究对象

科恩实验室成功在特斯拉Model S P85 和 P75 上完成了测试,对应的车型及版本信息如下图1和表1所示。

wKgaomTR6-6AB4tOAADNpi4TZhc510.png

表1 测试车辆版本信息

2.2.2 攻击步骤解析

1)攻击浏览器

在攻击开始前,首先需要确定攻击面。每辆特斯拉汽车中都有车辆提供的Wi-Fi热点,很多用户会将SSID的信息保存在车上以便用于自动连接。如果伪造这个Wi-Fi热点,并将QtCarBrowser的流量重定向到攻击者的域名,即可实现远程攻击特斯拉汽车。此外,当在蜂窝模式下,通过建立精心设计的域名,网络钓鱼和用户输入错误也会导致远程触发浏览器漏洞,实现在没有物理访问的情况下远程交付漏洞利用。

通过特斯拉浏览器的用户代理可推断出QtWebkit的版本在2.2.x,该版本的QtWebkit存在许多漏洞。研究者获取特斯拉CID的QtCarBrowser二进制文件后,通过利用浏览器的这两个漏洞来获得特斯拉CID的shell,从而实现任意代码执行。

第一个漏洞存在于函数JSArray::sort()中。这个函数将在JavaScript代码中调用数组的sort()方法函数时被调用。存在漏洞的函数代码片段如图2所示,如果compareFunction为JSArray::shiftCount(),则m_vector的长度将被改变,并且整个m_vector结构将被转移到另一个地方。然而,局部变量指针存储仍然指向旧位置,导致内存损坏。当非移位数组调用 sort() 触发此问题时,本地指针存储引用的变量映射始终与新存储结构的变量 m_length 重叠,导致崩溃。通过利用JSArray::sort()中的漏洞,可获取JSCell地址。

wKgZomTR6-6AKCDjAAMj9Wq5Ew8114.png

图2 易受攻击的函数代码片段

第二个漏洞则是由科恩实验室发现的CVE-2011-3928,可用于内存泄漏。如图3所示,若分配多个 Element 结构,在static_cast后,HTMLInputElement的成员m_data将与Element的指针m_next重叠。此外,将第二个和第三个Element结构作为子元素插入到同一标签中,m_next和m_data都指向第三个Element结构。由于m_data指向StringImpl结构,且该StringImpl结构与 Element结构重叠。StringImpl结构体的成员m_data始终是固定值1,StringImpl结构体的m_length始终是一个足够大的指针,足以读取整个内存。

wKgaomTR6--AOeigAALdWZfCA20888.png

图3 CVE-2011-3928中的漏洞

2)本地权限升级

在基于浏览器攻击获得远程shell后,仍无法获得任意权限,这就需要另一个漏洞来从AppArmor中逃脱,并获得比浏览器进程上下文更高的权限。研究者发现,特斯拉上仍存在著名的ARM Linux漏洞CVE-2013-6282(即:内核API中缺少访问检查)。研究者利用该漏洞,首先修补了setresuid()系统调用以获得root权限,然后调用reset_security_ops()来禁用AppArmor,实现了在内核上下文中获得任意读/写权限。

3)未经授权访问嵌入式系统

在特斯拉Model S上除了CID还有三个更重要的独立嵌入式系统,即IC, Parrot和Gateway,如图4所示。由于网络设计上的缺陷和缺乏强大的密码保护,研究者可通过远程攻击获得这三个系统的root访问权限。

wKgZomTR6--APNJnAADZnISMVZo903.png

图4 车载网络的重要设备

·IC

在 CID 中获得 root 权限后,研究者可在没有任何密码的情况下通过“ssh root@ic”的命令获取 IC 上的 root 访问权限,并通过SSH登录IC。

此外可实现 CID 和 IC 间的相互访问。CID包含一个密钥轮换方案,每24小时从母舰接收用户的随机新令牌。CID 会以明文形式在 IC 的文件系统中设置密钥,这意味着即使只能访问 IC,也可以SSH到CID 并获得root权限。

·Parrot

Parrot模块是一个第三方模块,型号是FC6050W,它集成了无线及蓝牙功能,可通过USB协议与CID相连。通过扫描Parrot上的开放端口,研究者发现端口23为Telnet打开。一个重要漏洞在于Telnet是匿名的,研究者可通过“nc parrot 23”的简单命令来访问和控制Parrot模块。

·Gateway

Gateway看起来比IC和Parot安全得多。研究者首先利用二进制文件gw-diag在端口23上唤醒Gateway的后门,找到Gateway的shell 入口。然后,研究者通过逆向固件来获得其中的token,获得Gateway的访问权限。

4)ECU编程

通过拆卸CID单元,研究者发现了与网关ECU 相连的SD卡中存在一些调试和升级相关的日志文件。这些文件中描述了整个升级的详细过程,包括将十六进制文件发送到ECU,配置继电器开关和其他重要步骤,可通过拆解文件查看到重要的内部信息。

对于更新软件来说,整个更新由在内存地址0x40006AE4位置的函数控制。它将首先对文件进行安全检查并设置其工作模式,以确保整个汽车在更新过程中保持物理安全。然后绕过完整性检查,并将固件刷写到网关,成功将定制的代码编程到ECU中,具体操作步骤如下:

①解压缩release.tgz文件,确保校验和值满足要求。

②检查压缩文件中是否存在manifest文件,并从中获得该固件包中的版本信息。

③处理程序中每个“.Hex”文件。将十六进制文件转换为二进制流,并使用UDS协议发送固件。目标芯片上的引导加载程序需要将十六进制文件写入flash,并在每次启动时检查应用程序是否有效。最后检查固件是否已发送并编程到目标ECU。

④ 处理完所有这些文件后,创建一个日志,并重新启动。

5)网关逆向工程和攻击

在网关上运行的许多重要任务存在漏洞,这些任务几乎可与CAN总线上的ECU进行任何类型的通信。研究者可随时注入任何 CAN 消息,并使用补丁来阻止一些必要的 CAN 信号,实现车辆的车身控制,具体攻击过程包括:

①网关将20100和20101端口的UDP广播传输到CAN总线上,研究者可通过伪造UDP信号来实现门锁系统的控制。

②研究者可通过将诊断功能0x01替换为诊断功能0x04,并注入CAN消息,将其发送到ID为0x45的PT-CAN总线,实现在汽车运行或停止时打开灯的操作。

③研究者定位到固件中存储的结构体后,通过更改固件中的目标ID来阻止一些重要消息(例如BDY CAN上0x218的ID),实现在汽车行驶状态时打开后备箱或禁用自动锁定功能。

6)攻击UDS/CAN总线

统一诊断服务 (UDS) 已编入 ISO-14229 中,并允许诊断控制车载电子控制单元 (ECU) 上的功能。研究者通过将电子稳定程序(ESP)设置为低速诊断编程会话,利用Bash shell 脚本通过网关注入 UDS 数据帧并低速禁用 ESP ECU,最终导致CAN-CH 总线上没有任何车速相关的CAN消息,并且汽车高速行驶时IC的实时速度值无法更新。此外,车辆会显示有关防抱死制动系统 (ABS) 的警报信息,引发转向和制动失灵的安全问题。

wKgaomTR6_CAMlanAAFKpkS9bFQ672.png

图5科恩实验室制作的CAN控制器

03

总 结

本文介绍了科恩实验室在实现特斯拉Model S远程控制的研究中所涉及的漏洞和相关技术细节。此次安全攻击事件,是首例利用CAN总线进行远程攻击,从而对特斯拉汽车停车和驾驶模式下进行远程控制的典型案例。最终,科恩实验室将研究报告及漏洞交予特斯拉,特斯拉在10天内做出回应,并利用其OTA 机制进行了浏览器、内核和ECU固件等方面的漏洞修复和安全更新,将代码签名保护引入了特斯拉汽车以保护车载系统。

参考文献

[1] Charlie Miller,Chris Valasek.Remote exploitation of an unaltered passenger vehicle[C]. Black Hat USA,2015.

[2] Keen Security Lab of Tencent. Free-fall:hacking Tesla from wireless to CAN bus [C]. Black Hat USA,2016.

[3] Keen Security Lab of Tencent. Over-the-air: how we remotely compromised the gateway,BCM,and autopilot ECUs of Tesla cars[C]. Black Hat USA,2017.

[4]Cai Zhiqiang , Wang Aohui , Zhang Wenkai , Gruffke M ,Schweppe H . 0-days & Mitigations: Roadways to Exploit and Secure Connected BMW Cars[C]. Black Hat USA,2019.

[5] Keen Security Lab of Tencent. Experimental Security Assessment of BMW Cars: A Summary Report[EB/OL]. https://keenlab.tencent.com/en/whitepapers/Experimental_Security_Assessment_of_BMW_Cars_by_KeenLab.pdf,2018.

[6] 360 Sky-Go group. Security Research Report on Mercedes-Benz Cars [EB/OL]. https://skygo.360.net/archive/Security-Research-Report-on-Mercedes-Benz-Cars-en.pdf,2020.


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络安全
    +关注

    关注

    9

    文章

    2945

    浏览量

    58677
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87215
  • 汽车
    +关注

    关注

    12

    文章

    2985

    浏览量

    36072
收藏 人收藏

    评论

    相关推荐

    iPhone的网络安全领先汽车数年?

    可以说是如今网络攻击的重点对象之一,为此厂商们从各个层面加入了多道安全防御。而汽车的系统架构其实也在往手机的方向发展,加强汽车网络安全的工作
    的头像 发表于 01-20 09:37 7359次阅读

    【§网络安全技巧§】利用路由器的安全特性控制DDoS攻击

    ,以便更好地维护网络安全。当前路由器提供了丰富的安全特征,通过这些安全特征,可以很大程度上控制DDoS攻击的泛滥。  1、源IP地址过滤  在ISP所有
    发表于 07-17 11:02

    什么是汽车安全网关?

    共享通信数据的功能域(动力总成域、底盘和安全域、车身控制域、信息娱乐域、远程信息处理域、ADAS域)之间进行信息交互。汽车网关也是建立车内网络安全功能的最佳节点之一,网关安全机制可以大
    发表于 03-24 12:10

    专家计划保护电动汽车充电站免受网络攻击

    的问题: 网络安全攻击。图片来源: UTSA从过去的网络攻击中吸取教训后,人们开始强调保护无人机系统免受这种反复的威胁。更好的意识是关键,以减轻您的车辆的系统变得妥协,并把你置于危险之中。虽然在大规模采用电动
    发表于 02-26 11:03

    尽管防御有所改善,但汽车网络攻击变得更加多样化

    汽车网络安全最近有很多跨多个领域的活动。好消息是,汽车 OEM 及其供应链正在添加硬件和软件以更好地进行网络防御。坏消息是犯罪黑客正在获得能力,并且有更多的攻击面可以
    的头像 发表于 07-14 16:13 1230次阅读
    尽管防御有所改善,但<b class='flag-5'>汽车网络</b><b class='flag-5'>攻击</b>变得更加多样化

    谁是汽车网络安全的主要参与者?

    这是汽车网络安全系列专栏中的第二篇,提供对关键网络安全开发人员的看法。这篇文章还包括对 OEM 和 1 级活动的一些观点,尽管有限,因为制造商很少发布有关其网络安全工作的数据。 我的第一篇专栏涵盖
    的头像 发表于 07-15 16:41 2407次阅读
    谁是<b class='flag-5'>汽车网络安全</b>的主要参与者?

    德赛西威通过ISO/SAE 21434汽车网络安全流程认证

    7月26日,德赛西威通过ISO/SAE 21434汽车网络安全流程认证。国际知名认证机构TÜV南德意志集团为德赛西威颁发了证书,这也是TÜV南德大中华区颁发的首张ISO/SAE 21434 汽车网络安全流程认证证书。
    的头像 发表于 07-28 10:00 2423次阅读

    汽车网络安全:进步但仍有改进空间

    影响我们日常生活的网络安全攻击是提高关键基础设施物联网安全性的巨大警钟。虽然最近对殖民地管道的网络攻击造成了重大破坏,但我们道路上的数百万辆汽车
    的头像 发表于 10-21 14:23 557次阅读

    汽车网络安全左移实践——基于信任构建汽车安全的探索

    汽车网络安全左移实践——基于信任构建汽车安全的探索
    的头像 发表于 02-06 15:06 642次阅读
    <b class='flag-5'>汽车网络安全</b>左移实践——基于信任构建<b class='flag-5'>汽车</b><b class='flag-5'>安全</b>的探索

    汽车网络安全攻击实例解析

    近年来,汽车网络安全攻击事件频发,而汽车智能化和网联化所带来的安全隐患也与日俱增,研究人员除了考虑如何加入防御措施之外,还应该站在攻击者的角度来分析历史的
    的头像 发表于 03-24 11:36 1495次阅读
    <b class='flag-5'>汽车网络安全攻击</b><b class='flag-5'>实例</b><b class='flag-5'>解析</b>

    【文章转载】基于ISO 21434的汽车网络安全实践

    。为了有效实施ISO21434标准,本文介绍了遵循ISO21434的系统级安全工程实践方法,并通过实例进行分析。汽车网络安全风险汽车网络领域的犯罪正在急剧增加。在过
    的头像 发表于 04-23 09:33 624次阅读
    【文章转载】基于ISO 21434的<b class='flag-5'>汽车网络安全</b>实践

    加特兰微电子通过ISO/SAE 21434汽车网络安全认证

    该认证的芯片公司。此次认证是加特兰继通过ISO 26262功能安全管理体系认证、ISO 26262 ASIL-B产品认证之后,又一次通过国际标准的检验,标志着加特兰具备了网络安全开发和管理方面的能力。     汽车网络安全 随着
    的头像 发表于 06-29 11:05 877次阅读

    汽车网络安全:防止汽车软件中的漏洞

    汽车网络安全汽车开发中至关重要,尤其是在 汽车软件 日益互联的情况下。在这篇博客中,我们将分享如何防止汽车网络安全漏洞。 静态分析工具有助于执行关键的
    的头像 发表于 12-21 16:12 775次阅读
    <b class='flag-5'>汽车网络安全</b>:防止<b class='flag-5'>汽车</b>软件中的漏洞

    FCA汽车网络安全风险管理

    汽车工业继续在车辆上增加连接,以满足顾客对技术的贪得无厌的需求,但汽车不仅仅是某些计算机网络上的不安全端点--一些人所描绘的--汽车网络安全
    发表于 12-29 10:48 166次阅读
    FCA<b class='flag-5'>汽车网络安全</b>风险管理

    汽车网络安全-挑战和实践指南

    汽车网络安全-挑战和实践指南
    的头像 发表于 02-19 16:37 195次阅读
    <b class='flag-5'>汽车网络安全</b>-挑战和实践指南