摘要
现代汽车配备了连接功能,以提高用户的舒适度。蓝牙就是这样一种通信技术,用于将个人设备与汽车信息娱乐单元配对。配对后,用户可以通过汽车主机访问手机上的个人信息,同时将驾驶时的干扰降至最低。但是,这种连接性为隐私攻击带来了可能性。因此,对具有隐私限制的系统进行深入分析对于防止未经授权访问个人信息极为重要。在这项工作中,我们对汽车信息娱乐单元的蓝牙网络进行了系统分析,以利用与安全和隐私相关的漏洞。我们根据系统的隐私约束对已识别的威胁进行建模,通过标准化的评级指标强调攻击的严重性,然后提供潜在的对策来防止攻击。作为系统分析的一部分,我们执行隐私系统理论过程分析,并使用通用漏洞评分系统来推导攻击严重性。已识别的漏洞是由于汽车信息娱乐系统上蓝牙协议实现的设计缺陷和假设造成的。然后,我们通过对实际车辆中的汽车系统进行隐私攻击来引出该漏洞。我们使用 Android 开源项目来报告我们的发现并提出防御策略。
介绍
车辆的舒适性是根据它们为驾驶员和乘客提供的便利程度来评估的。现代汽车的最低限度便利性是执行某些活动,如发短信、打电话、收到重要事件的通知等,而不会在驾驶时分心。因此,汽车制造商不断努力改进连接功能,以实现智能移动性。然而,越来越多的功能为多种安全漏洞和潜在攻击铺平了道路。例如,增加的无线连接增加了可以访问车载网络的外部设备的数量。因此,利用系统的可能弱点数量增加,通过这些薄弱环节可以实现导致危险情况的不安全控制行动(Dardanelli 等人,2013 年;Onishi 等人,2017 年 1 月)。此外,攻击与安全机制之间的差距继续扩大。由于许多车辆变体和配置的异构性,软件安全中的标准防御技术(如防火墙和密码学)在车辆级别的复杂嵌入式系统中失败(Cheah 等人,2018 年)。
系统理论过程分析(STPA)是一种基于系统理论的危害分析技术,使用功能控制图将安全和安保作为控制问题来解决。STPA安全侧重于通过保护导致漏洞的控制操作来控制系统漏洞的方法。在这项工作中,我们通过STPA-Privacy(STPA-Priv)(Kumaraguru和Cranor 2005;Spiekermann 等人,2015 年)。我们选择了一种基于模型的方法,因为我们知道状态机(Benton et al. 2013)以及与系统的子组件交互。通过了解蓝牙在汽车单元中的实现,我们得出了一个模型表示来执行分析,而不是黑匣子方法(Felt 等人,2012 年)。通过执行自上而下的方法(用于分析系统隐私约束的 STPA-Priv),我们可以有效地识别系统中最安全关键的部分。我们提出了一些安全机制,这些机制可能会防止违反隐私约束。我们还强调执行结构化分析的重要性,即使在设计过程中,这也非常直观地评估隐私约束。
通过对蓝牙组件的分析,可以确定蓝牙堆栈在软件级别的实现在安全性中起着至关重要的作用。这意味着固件级别的更新可能会引入新的安全漏洞,建议对其进行重新测试以进行蓝牙 SIG 认证 (BluetoothSIG 2019a)。我们在本文中的工作重点是系统分析,除了识别基于 Android 的汽车主机中的隐私约束(Barth 等人,2019 年)之外,我们还提出了一种有效的方法来识别蓝牙实现中易受攻击的控制动作。我们使用 Android 开源项目 (AOSP) - Android Automotive OS 11 (Android 2021a) 来更深入地研究软件实现,试验蓝牙堆栈中的更改,并发布漏洞和潜在攻击。我们还评估了搭载 Android 6.0.1 的实际车辆对信息娱乐单元的攻击,以验证我们的结果。
在这项工作中,我们强调在系统设计中需要与隐私相关的约束和安全预防措施。本文中提到的隐私是在不知不觉中与攻击者共享的个人信息,攻击者可能会利用收集到的信息(Kumaraguru 和 Cranor 2005)。本研究基于用户信任汽车信息娱乐系统,并通过同意披露协议授予与系统共享和同步个人信息的前提。但是,当用户不在车辆附近时,用户并不知道可能影响系统隐私的更改。这一前提支持了Spiekermann等人(2015)所做的工作,即用户只有在了解信息交换过程的情况下才会共享其个人信息。因此,在他们缺席的情况下受到损害的系统被完全忽视了。在提出对策时,我们牢记这一点,以及理解权限(Benton 等人,2013 年,Felt 等人,2012 年和 Deuker 2009 年)面临的困难。我们工作的动机主要来自联合国第 155 号条例 (UN R155),该条例要求建立和实施一个专注于车辆网络安全的管理系统,并强制要求车辆遵守这些要求。UN R155 建议在更换汽车用户时将信息泄露(可能被泄露的个人数据)作为可能被利用的潜在漏洞。此外,建议通过系统设计和访问控制来保护对安全关键个人数据的未经授权的访问所有者的私人信息,例如个人身份、支付相关信息或地址簿信息。因此,我们提出了一个用于分析系统漏洞的系统理论框架,并提供了一个访问控制解决方案来纠正漏洞,而不是提供通常的战术策略来防御它们。
本文的贡献包括:
我们提出了一个由于在汽车信息娱乐系统中实现蓝牙堆栈而产生的漏洞,并利用该漏洞实施了从个人设备访问机密数据的隐私攻击。
- 1.
我们提供一种系统的方法——STPA-Priv 来分析系统,我们用它来找到系统中可能导致危险的最脆弱的部分。
- 2.
我们从攻击和系统分析中得出了防御策略,这些策略可以在蓝牙堆栈中实施以防止攻击。
本文的其余部分结构如下: 我们在“相关工作”部分总结了与汽车蓝牙攻击相关的工作。在“背景”部分,我们简要概述了 Android Automotive 中的蓝牙连接、蓝牙配置文件和蓝牙堆栈的实现。在“威胁模型和攻击描述”部分,我们介绍了威胁并提供攻击描述。我们使用通用漏洞评分系统 (CVSS) 指标对建议的攻击进行评级,并通过在“攻击评级和系统分析”部分中执行系统分析来引发攻击。在“可能的对策”部分,我们提出了防御攻击的潜在对策,并讨论了我们提出的对策的攻击结果和有效性,并在“结论”部分提供了我们的工作结论。
相关工作
本节讨论与汽车蓝牙安全漏洞、系统验证方法和攻击相关的文献。一般的蓝牙安全架构和安全问题都有很好的定义(Dunning 2010;Hassan 等人,2018 年;Claverie 和 Teves 2021) 和汽车应用中的隐私问题在 Garakani 等人 (2018)、Kaplun 和 Segal 2019、Hussain 和 Koushanfar 2018、Zelle 等人 2017、Zhang 等人 2018 中进行了讨论。在本文中,我们记录了我们对汽车信息娱乐单元的分析,因为它与传统的移动和 PC 平台完全不同(Cheah 等人,2017 年)。例如,使用手动交互(如数字比较或静态/动态 PIN)进行身份验证可提高安全性(Failed 2002)。Oka等人(2014)的一项调查解释了使用静态PIN的缺点并阐明了攻击范围。Cheah 等人,2017 年将蓝牙攻击分为“监视、范围扩展、混淆、模糊测试、嗅探、拒绝服务、未经授权的直接数据访问、恶意软件和中间人”。他们对汽车蓝牙进行基于攻击树的系统安全评估。树中考虑的攻击之一是通过对象交换协议(OBEX)(nOBEX,“nOBEX”,2016)进行数据提取。nOBEX 是建立在 PyOBEX 之上的工具(Boddie 2017;Ballmann 2021),它允许将蓝牙配置文件(电话簿访问配置文件-PBAP和消息访问配置文件-MAP)克隆为真实手机的虚拟文件系统。读者可以参考(Megowan 等人,2003 年)了解有关 OBEX 的更多信息。然后,这些虚拟文件系统可以充当汽车主机的 PBAP/MAP 服务器,并将畸形的用户数据注入车载信息娱乐 (IVI) 系统。该攻击是隐蔽的,因为它通过提供对免提配置文件 (HPF) 和 AT 命令 (ATtention Command) 响应的支持来模仿真实的手机。如果具有畸形数据包的汽车主机与其他安全关键型电子控制单元 (ECU)(如发动机控制模块 (ECM) 和变速箱控制模块 (TCM))连接到同一 CAN BUS(控制器局域网),则攻击是危险的。(Checkoway 等人,2011 年)在远程信息处理单元的定制软件中发现了漏洞。他们访问了远程信息处理ECU的操作系统,并发现了大约20个不安全的strcpy呼叫。他们发现,此漏洞可被利用在远程信息处理单元上执行任意代码。(2022 年失败)对特定车辆的 IVI 单元进行逆向工程以查找漏洞,并通过注入 CAN 帧来控制车辆。他们还开发了一个模块“Metasploit”,用于控制IVI单元并注入CAN帧。
Bluesnarfer (Nasim 1206) 是一种使用 AT 命令的侵犯隐私的攻击。(周 2014)指出,智能设备中的漏洞很容易将敏感和个人信息泄露给攻击者。由于配对的蓝牙设备之间需要信任,因此被利用(Kaur 和 Jain 2013)。此外,身份验证机制在初始配对过程中仅执行一次。为了便于使用和免提应用,避免了冗余身份验证。但是,在重新连接时,设备完全不知道其他设备所经历的恶意更改(Yadav 等人,2016 年 4 月)。(Antonioli 等人,2022 年)执行 KNOB (CVE-2019–9506) (Antonioli 等人,2019 年)和 BIAS (CVE-2020-10,135)(Antonioli 等人,2020 年)攻击以冒充车辆中的蓝牙设备。 他们评估了来自五家汽车制造商的流行信息娱乐单元的信息泄露攻击和远程代码执行。
背景
本节简要介绍STPA系统分析和汽车蓝牙的背景。蓝牙背景部分按分层结构排列。我们首先介绍蓝牙作为无线通信媒介,然后是更高层次的信息娱乐系统,然后是信息娱乐单元中的特定操作系统。然后,我们将讨论操作系统中蓝牙架构的实现,然后是低级蓝牙控制操作,例如蓝牙配置文件和连接机制。
系统理论过程分析(STPA)
STPA 以分层方式对系统进行分析。STPA旨在识别每个子系统试图在其下一个较低级别修改组件行为的控制操作(Young和Leveson 2013)。控制操作是在系统和子系统级别强制实施安全和保障的约束。将STPA应用于我们的案例(用于增强隐私的汽车蓝牙安全性)是一个四步程序,在“隐私问题的系统分析”部分中详细阐述。在本节中,我们将讨论建立系统的过程,并从隐私的角度识别最脆弱的子组件。我们目前考虑的更高级别的隐私目标是保护通过蓝牙与信息娱乐单元共享的机密用户数据。在这种隐私约束下,我们从较高级别到较低级别分析系统,以确定必须保护哪些基本组件免受干扰。因此,正在考虑的高级系统是具有Android OS的汽车信息娱乐系统。然后是操作系统中的蓝牙实现,然后是实现中与隐私相关的安全关键控制操作。
蓝牙结束view
蓝牙是一种在未经许可的 2.4 GHz 工业、科学和医疗 (ISM) 频段中运行的无线技术。蓝牙使用超高频 (UHF),有效工作范围为 10-100 m(没有放大器和定向天线等外部范围扩展器)(Hassan 等人,2018 年)。在蓝牙连接期间,一个设备被指定为领导者,所有其他设备都是从属设备。蓝牙使用跳频扩频 (FHSS) 以每秒 1600 个频率移动。因此,每个通道仅使用 625 微秒。连接成功后,跟随者与领导者的时钟同步,以获得正确的跳频模式。有 79 个跳频通道,其他蓝牙设备之间干扰的可能性极低(Cope 等人,2017 年)。蓝牙设备的两种主要类型是 (i) 以基本速率 (BR) 或增强数据速率 (EDR) 运行的经典蓝牙设备和 (ii) 低功耗蓝牙 (BLE)(Antonioli 等人,2022 年)。这些具有不同架构的设备以双模式相互通信。蓝牙通过身份验证、加密和授权来保护。所有蓝牙设备都有一个由制造商分配的唯一 48 位地址 (BD_ADDR)。
蓝牙架构的核心组件是 (i) 蓝牙控制器、(ii) 主机控制器接口 (HCI) 和 (iii) 蓝牙主机。
汽车信息娱乐单元
现代 IVI 装置为驾驶员提供音频、视频娱乐和导航功能,通常连接到车载网络,以提供对加热、通风和空调 (HVAC) 控制以及一些关键驾驶员辅助功能(如停车辅助)的访问。信息娱乐单元提供连接功能,可在驾驶时通过手机访问应用程序。通过将手机与信息娱乐单元配对,用户可以访问手机的联系人和消息,并在驾驶时以最小的干扰进行免提通话或发短信。用户通过信息娱乐单元的人机界面 (HMI) (Bhat 2015) 执行这些操作。前端直观有效的HMI通过汽车操作系统提供。 最近,汽车制造商和原始设备制造商(OEM)一直在试验和更新不同的操作系统。一些原始设备制造商已经在其量产车辆中安装了定制版本的 Android。
Android汽车操作系统
在本文中,我们专注于Android汽车,并对IVI系统的蓝牙功能进行系统级、子系统级和控制级分析。运行 Android 操作系统的 IVI 单元需要蓝牙、Wi-Fi 和远程信息处理控制单元 (TCU) 与车载网络 CAN 接口。IVI 单元在接收到用户输入的数据时执行不同的操作。例如,在HMI的帮助下,用户可以通过蓝牙将移动设备与主机配对,并利用拨打/接听电话等免提应用程序。由于添加了 CAN 等低级车载网络模块,Android 的框架新增了一个名为 Vehicle HAL (VHAL) (PK 2019) 的硬件抽象层 (HAL)。但是,我们专注于汽车服务(GAS)和Android(2021a)提供的系统应用程序(图中的绿色框)。1).
GAS 是由 Android 开发团队定义的一组特定技术服务(Gessler 等人,2020 年)。地图和导航、Playstore、语音助手、SetupWizard 和汽车键盘是 GAS 的一些基本服务。除GAS外,其他重要应用包括(i)用于集成媒体播放器的Media Center,(ii)用于从连接的智能手机进行电话应用的拨号器,(iii)用于管理汽车系统设置的汽车设置,以及(iv)用于智能手机和车辆的系统通知的通知中心。Android 汽车架构提供了框架和库,可与蓝牙、Wi-Fi、VHAL 模块和其他应用等无线模块完美集成。
Android 的蓝牙架构
Android 蓝牙架构的抽象版本如图所示。2 (Android 2021b)。应用层中的 android.bluetooth API 通过 Binder 与位于 packages/apps/Bluetooth 中的蓝牙服务和蓝牙配置文件进行通信。蓝牙进程通过 Java 本机接口 (JNI) 与蓝牙堆栈进行通信。HAL 中所需的配置是通过蓝牙堆栈实现的。可自定义的蓝牙堆栈通过 HAL 接口定义语言 (HIDL) 与嵌入式蓝牙芯片组进行通信。蓝牙芯片组上的较低级别的控件包括无线电控制器、基带控制器等。它们通过 HCI 与主机通信。各自的主机在中间层(蓝牙堆栈和蓝牙进程)和应用层实现协议。因此,蓝牙堆栈的实现和蓝牙配置文件的要求取决于主机,对堆栈或配置文件的任何更改都可能引入新的漏洞。这些漏洞是操作系统中引入的实现错误。 因此,强烈建议通过蓝牙 SIG 重新测试和重新认证设备。
为了根据 STPA 缩小我们的分析范围,我们特别选择了那些导致漏洞并违反我们声明的隐私约束的子系统。蓝牙配置文件和蓝牙堆栈 (system/bt) 是两个这样的子系统。这是因为存储和擦除机密用户数据的过程是在蓝牙堆栈中执行的,并且通过蓝牙配置文件获得访问用户数据的权限。
Android 的蓝牙堆栈
Android 的蓝牙堆栈称为 Bluedroid(如图所示)。2).蓝牙电源控制API属于蓝牙栈中的蓝牙内核,通过函数调用与蓝牙芯片组通信。与我们的分析范围相吻合的电源控制 API 中的库是 CarPowerManager 和 CarPowerManagementService。关闭和通过挂起到 RAM (STR) 清除内存是这些库的两个重要结果。根据 STPA,这些控制措施之所以入围,是因为它们负责擦除机密用户数据。库的状态机如图所示。3. 车辆主控单元 (VMCU) 触发状态转换,并使用积分器确保关机过程不会无限延迟(Android 2021c)。
状态机中的重要转换是:
(i) 开启:VHAL 模块指示操作系统进入开启状态。操作系统在此级别上功能齐全。
(ii) 关机准备:在此阶段,IVI 系统处于 OFF 状态,但操作系统仍在后台运行以进行更新。
(iii) 等待 VHAL:这是用户仍在与车辆交互的时候。VHAL 仍为片上系统 (SoC) 供电。
(iv) 等待 VHAL 完成:操作系统已准备好关机。SoC 处于深度睡眠状态,应用处理器已关闭。然后,操作系统将进入 STR 状态。
(v) STR:SoC 和车辆关闭,代码不执行。
状态机中的这些转换很重要,我们将在 Sect.4 关于我们如何利用它们对系统进行攻击。
蓝牙配置文件
蓝牙配置文件定义了蓝牙设备应用程序的标准协议。它专门定义了通过蓝牙连接传输的数据。根据配置文件的不同,蓝牙 SIG 具有不同的物理传输协议。例如,我们有用于 PBAP 的 OBEX 和用于 BLE 数据传输的通用属性配置文件 (GATT)。本文有 30 多个标准化配置文件,重点介绍 PBAP 和 MAP,因为它们是与隐私相关的蓝牙配置文件,它们以纯文本形式存储在蓝牙日志中。
电话簿访问配置文件 (PBAP)
PBAP 基于客户端-服务器交互,其中客户端(电话簿客户端设备 - PCE)从服务器(电话簿服务器设备 - PSE)设备接收电话簿对象。在我们的例子中,用户的电话是PSE,IVI单元是PCE。为了方便在车辆中免提应用,PBAP是IVI单元中最重要的蓝牙配置文件之一。在这种情况下,蓝牙 SIG (BluetoothSIG 2019b) 对 PMAP 规定了特定的安全要求:(i) PCE 只有在成功连接后才能请求 PSE 访问电话簿。(ii) 连接初始化应包括服务发现、安全初始化消息、链接密钥和加密。(iii) 应完成通用访问配置文件 (GAP) 中描述的身份验证程序。(iv) PSE 的用户应确认共享其电话簿的访问权限。
整个电话簿通常下载并存储在PCE设备中。从PSE到PCE的数据传输使用通用对象交换配置文件。PBAP (BluetoothSIG 2019b) 的下载过程如图所示。4.
图4
(1). 蓝牙堆栈在收到用户共享电话簿的权限后,会请求与电话簿存储管理器建立免提配置文件连接。(2). 然后,电话簿管理器更新 HMI 以显示所有电话簿数据,例如最近的通话、收藏的联系人等。 (3).成功连接后,电话簿管理器会向堆栈发送成功的 PBAP 连接确认。(4).在确认的同时,它还发送电话簿下载请求(5)。成功下载后,蓝牙堆栈会向电话簿管理器发送下载完成命令。(6).电话簿管理器设置vCard(虚拟联系人文件-VCF)参数,并根据存储要求解析vCard。一个示例vCard如图所示。5 (左) (7).然后,电子名片将存储在电话簿存储数据库中。(8, 9, 10).在数据库中成功存储后,电话簿管理器将请求下一组电话簿存储。重复步骤 4-7,直到所有联系人都存储在数据库中。(11). 确认后,HMI 将更新所有联系人和电话簿,然后在步骤 12 中断开配置文件。
消息访问配置文件 (MAP)
MAP 类似于 PBAP,并使用类似的客户端-服务器交互来交换消息对象(消息客户端设备 - MCE 和消息服务器设备 - MSE)。IVI 单元的免提配置文件中的 MAP 提供了使用 HMI 甚至通过音频系统发出语音命令的便利,以轻松阅读、发送、通知或浏览消息。支持的 MAP 版本包括 (BluetoothSIG 2019c) 短信、彩信、电子邮件和即时消息 (IM)。我们在本例中利用的 IM 格式如图所示。5(右)。MAP 的安全要求与 PMAP 非常相似,包括配对和加密要求、使用 GAP 进行身份验证以及用户一致性。MAP 基于 OBEX 配置文件,使用以下 OBEX 服务:消息访问服务 (MAS) 和消息通知服务 (MNS)。在除MNS以外的所有服务中,MCE作为OBEX客户端,MSE作为OBEX服务器。在MNS中,MSE作为OBEX客户端,连接到MCE作为OBEX服务器。除了用于从客户端到服务器的数据传输的 OBEX 配置文件外,MAP 还使用 PBAP 来引用联系人。
威胁模型和攻击描述
蓝牙安全基于用户信任与他们配对个人设备的设备的前提强制执行身份验证、授权和加密(Tschirschnitz 等人,2021 年)。然而,这种假设并不总是适用于车辆中的IVI装置,尤其是由多个用户处理的IVI装置。攻击者可以操纵 IVI 单元并悄悄地损害用户的隐私。本文提出了三种攻击场景,如图所示。6,这在日常车辆使用中很常见。
Android 是一个免费的开源操作系统,对开发人员非常友好。测试开发的软件或应用程序的最佳方法之一是在设备上对其进行物理测试。因此,出于测试目的,Android 具有开发人员选项,允许开发人员访问某些通常被锁定的设备功能。Android 设备中的开发者选项“隐藏”在易于访问的位置。根据 Android 社区的说法,启用开发者选项是安全可靠的,启用开发者选项不会使设备的保修失效。此外,通过启用开发人员选项,设备的通常工作功能不会以任何方式改变。因此,对于典型用户来说,除非他们在设备设置中进行调查,否则很难知道开发人员选项是否已启用。开发人员选项的一个基本功能是蓝牙 HCI 窥探日志。此 snoop 日志以纯文本形式存储 PBAP 和 MAP。日志文件在蓝牙连接时创建,用于捕获、监控和分析蓝牙数据包。此数据存储在设备中,可以通过USB或无线Android调试进行检索。
在本文中,我们利用这一特性成功地对 Android 操作系统的 IVI 单元进行隐私攻击。 成功的攻击执行取决于是否启用了开发人员选项,我们认为这是一个实现错误,也是 Android 蓝牙堆栈中可利用的弱点。在我们研究的三种攻击场景中,攻击者在IVI单元中秘密启用了开发者选项,而信息娱乐系统用户完全不知道这一点。当用户使用蓝牙将手机与 IVI 系统配对以进行通话、发短信和娱乐等免提应用时,他们的个人信息会根据蓝牙配置文件与 IVI 设备同步。攻击者可以通过与车辆的有线连接(USB-在本例中为/CAN)或无线连接(在本例中为普通Wi-Fi网络)检索此存储信息。攻击者通过开发者选项检索到的数据(个人联系人、消息和通话记录)未加密。分析IVI系统后,图中的汽车电源状态机。3、我们还发现,内存清除(挂起到RAM)功能是由车辆关机触发的,而不是在蓝牙连接状态上触发的。因此,存储在IVI系统中的数据会一直保留在系统中,直到车辆点火开关关闭,从而增加了攻击的时间窗口。我们在信息娱乐系统中对装有 Android 操作系统 6.0.1 版的实际量产车辆进行了测试。出于发布目的,我们报告了对 Android 开源 (AOS) 平台 (Android 2021d) 的攻击。此外,该攻击与具有 Android 操作系统的 IVI 单元一致,并具有启用开发人员选项(Android 版本 4.2 及更高版本)的选项(2022 年失败)。实验装置如图所示。7. Android Automotive OS 11 是在 Raspberry Pi-4B (Sutton 2021) 上设置的。
攻击的步骤如下:
- 1.
在Android IVI单元中启用开发者选项。
- a.
在某些系统中,这可能与Android手机类似的操作。在搭载Android 9或更高版本的设备上,通过在“设置” > “关于手机” > “版本号” (Android 2021e) 中连续点击版本号7次来启用开发者选项。
- b.
一些车辆中,制造商可能会隐藏这个功能,但可以通过在IVI单元中选择一组按钮的组合来解锁。然而,解读按钮组合并不复杂;对于流行的单元,这些信息通常可以在在线论坛上找到。
- a.
- 2.
在开发者选项中启用Bluetooth HCI(Host Controller Interface)嗅探日志。路径为“设置” > “开发者选项” > “启用Bluetooth HCI嗅探日志”。
- 3.
在用户连接他们的个人设备之后,从IVI单元检索数据。
- a.
日志文件通常存储在内存存储器中。可以通过USB端口将其传输到存储设备。我们还可以使用Android调试桥(ADB)并通过Linux终端使用ADB pull命令将日志文件拉取到Linux计算机(当Linux计算机和IVI系统通过相同的网络连接时)。
- a.
- 4.
分析在Wireshark中捕获的日志。在日志中捕获的Bluetooth OBEX数据包显示了手机联系人、通话记录和短信的明文信息,如下所示:
分析的蓝牙数据包揭示了所有联系人和短信,直到访问配对的 IVI 设备中存储的信息的最后一刻。这意味着攻击者将有权访问所有联系人以及以前和当前的短信,其中可能包括来自银行的安全关键消息、密码重置消息,甚至是一次性密码 (OTP),这可能会导致不利的隐私侵犯。例如,图。8 以纯文本形式向攻击者显示受害者从银行收到的消息以及从电子商务网站向攻击者登录的尝试。如前所述,执行攻击的步骤在技术上并不复杂,也不需要像大多数网络安全漏洞那样昂贵的计算工具,攻击者可以很容易地使用拟议的攻击来利用目标受害者的隐私。
攻击评级和系统分析
除了识别系统中与隐私相关的问题外,我们还提供了一种对隐私威胁进行建模的方法。通过对系统的威胁进行建模,我们强调了攻击的严重性,引出了隐私要求,并提出了针对攻击的潜在对策。我们根据(Shapiro 2016)STPA-Priv对系统进行了建模。其他用于隐私分析的数据流技术,如“条件流识别和联合流跟踪”(Lu 等人,2015 年)、数据交换和数据观察技术(Egele 等人,2011 年;Enck 等人,2014 年)主要关注对数据源设备的分析,而不是在同意其他已知设备的情况下共享的数据。另一个全面的数据流分析是 LINDDUN(可链接性、可识别性、不可否认性、可检测性、信息披露、无意识和不合规),由 Wuyts 等人 (2014) 提出。LINDDUN使用自下而上的方法分析数据流中的隐私约束,这与STPA-Priv不同,STPA-Priv使用自上而下的方法。直观地说,当涉及通过用户界面进行的人机交互时,以自下而上的方法跟踪数据流变得更加复杂(Mindermann 等人,2017 年)。
作为第一步,我们使用 CVSS 分析攻击的严重程度(Mell 等人,2006 年)——分数范围为 0.0-10.0(定性严重性评定量表)。根据 CVSS 分数,分配的评级为无:0.0、低:0.1-3.9、中:4.0-6.9、高:7.0-8.9 和严重:9.0-10.0。CVSS 由三个指标组组成:基本、临时和环境。基本分数表示漏洞的严重性,时间分数表示随时间变化的因素,环境分数表示由于计算环境而发生的变化。我们专注于基本分数,因为其他两个分数可能非常不稳定。数值是根据 CVSS 指标得出的,如表 1 所示。可利用性指标定义漏洞的特征,影响指标定义被利用的漏洞对因攻击而遭受最坏结果的组件的影响(Mell 等人,2006 年)。
表1 CVSS指标漏洞等级
影响和不变范围的基本分数为 6.42\times ISS=3.5952
因此,从定性 CVSS 评级量表来看,所提出的攻击具有中等严重性。然而,随着越来越多的汽车制造商在其IVI单元中转向Android Automotive OS,攻击的范围甚至更大。到 2023 年,预计将有来自 15 家制造商的 40 多辆汽车在其信息娱乐系统中配备 Android Automotive 版本,这可能会受到拟议攻击的影响(Popa 2021)(本田,“本田新闻”,2021 年)。
隐私问题的系统分析
使用STPA-Priv进行系统分析是一个四步过程(Shapiro 2016),并根据图中的状态机图分析控制动作。三、
- 1.
识别不利的隐私后果 - 这些不利的隐私后果可能由一个或多个易受攻击的系统状态引起。在我们的案例中,不利的隐私后果是攻击者丢失了机密用户信息。这是因为 PBAP 和 MAP 包含机密用户信息,并以纯文本形式存储在蓝牙日志中,攻击者可以通过开发人员选项访问该日志。
- 2.
识别导致不利隐私后果的漏洞 - 我们现在确定导致不利隐私后果的子系统状态或环境状态。此处,已识别的漏洞是内存清除与电源控制 API 中的关机准备状态同步。负责电源控制的库是 CarPowerManager 和 CarPowerManagementService,如“汽车信息娱乐单元”部分所述。此外,此漏洞通过提供较长的内存保留时间,直到汽车点火开关关闭,从而扩大了攻击范围。
- 3.
识别系统隐私约束和功能控制结构 - 在此步骤中,我们可以分配一些系统必须强制实施的约束,以缓解已识别的漏洞。
- 其中一个限制是,在配对设备时,可以通知用户开发人员选项已打开,并启用了蓝牙窥探日志记录。
- 另一个限制是,在汽车点火关闭状态下,不得触发内存清除。正如Mindermann等人(2017),Shapiro(2016)所讨论的那样,控制结构不在我们的分析范围内。
- 4.
识别损害隐私的控制操作 - 控制操作分析也是一个两步过程
- 识别每个隐私约束的错误控制操作,如表 2 所示
- 确定控制行动的因果因素,即提出可以减少漏洞影响的缓解策略。建议的缓解策略在“可能的对策”部分中详细讨论。
表2 车载信息娱乐单元的STPA-Priv分析
全尺寸表https://cybersecurity.springeropen.com/articles/10.1186/s42400-022-00132-x/tables/2
可能的对策
本节根据系统分析结果提出可能的对策。尽管电话簿存储管理器的加密是一个可行的选择,但在我们的情况下是不够的。信息娱乐系统的某些HMI需要解密某些服务的数据。因此,我们针对特定攻击制定了对策,以确保系统对个人信息的可信度(Tanaka 等人,2017 年)。
- 检查 IVI 单元中是否启用了显影选项。如果启用了开发人员选项,请通知用户并请求用户的其他同意。这将使用户意识到潜在的攻击情况或隐私风险。他们可能准备在将车辆移交给攻击者之前关闭点火开关,或者在将他们的设备连接到未知汽车时要小心。
-
经常检查蓝牙状态,如果检查状态为准备断开连接,请调用 Wait for VHAL Finish 状态并进入 Suspend to RAM (STR) 状态。断开连接后,STR 状态会清除内存和 IVI 单元上所有保存的个人数据。因此,当用户将汽车留给攻击者后走开并超出蓝牙操作范围时,STR 状态会自动清除内存。因此,在很大程度上缩小了攻击时间。所提出的对策的更新状态机如图所示。
算法 1 给出了 AOSP 中建议的缓解措施的伪代码 bluetoothdeviceconnectionpolicy.java,这是一种用于决定蓝牙连接和断开连接的设备连接策略管理。
“威胁模型和攻击描述”部分重点介绍了 Android 操作系统中开发人员选项的重要性。因此,我们确保建议的对策不会影响开发人员选项的工作。通过通知用户潜在危险,用户可以手动关闭开发人员模式,并警告他们附近有潜在的攻击者。蓝牙日志不存储在设备中,当设备未处于开发者模式时,攻击者无法访问。提出的第二种对策是在断开连接时清除蓝牙日志。因此,当用户不在车辆附近(在蓝牙范围内)时,蓝牙日志将被清除,攻击者无法访问。因此,在这两种情况下,用户都受到保护,不会成为受害者,因为攻击者无法访问蓝牙日志。但是,在应用程序开发的测试阶段,实际开发人员仍然可以访问这些日志。
我们工作的局限性和范围
代客攻击发现了两个潜在的漏洞,并提出了一种利用该漏洞的方法。但是,很明显,该攻击在实际执行中范围狭窄。该攻击的前提是攻击者可以访问车辆并可以改变信息娱乐系统的原始状态。也就是说,攻击者可以启用开发人员选项并启用蓝牙 HCI 监听日志。只有当信息娱乐单元与攻击者位于同一网络中时,攻击者才能从受害者的设备访问机密和私人信息,或者攻击者再次对车辆具有物理访问权限。如果在攻击者进入车辆之前关闭车辆点火开关,则攻击是不可能的。
在这项工作中,通过提出攻击和对策,我们打算向原始设备制造商和车辆用户展示他们的私人和机密信息容易受到攻击。我们严格遵守工程伦理,没有对指定测试设备以外的设备进行攻击。我们不会透露车辆的制造商,也不鼓励尝试攻击和从未知设备访问机密信息。
负责任的披露
我们负责任地向 Android 汽车团队报告了该错误。我们希望他们承认这个问题,并努力寻求可行的解决办法。我们保证进一步合作,并在必要时与他们合作制定防御机制和对策。
结论
蓝牙是汽车信息娱乐单元中必不可少的无线通信技术。信息娱乐单元的人机界面通过免提通话和发短信功能帮助驾驶员在驾驶时不会分心。在汽车领域的关键应用中,蓝牙的安全性在保护用户的个人信息和隐私方面发挥着至关重要的作用。在本文中,我们简要介绍了蓝牙技术在汽车信息娱乐单元中的应用,并提出了一种利用隐私漏洞进行攻击的方法。我们还描述了我们在引出和利用漏洞时所遵循的系统方法(STPA-Priv)。此外,我们还提出了一种潜在的防御解决方案来防止攻击。我们注意到,这些攻击的原因是基于对受信任设备的假设,可以通过 Android 蓝牙堆栈上的软件更新来纠正。
数据和材料的可用性
本文没有公开的数据或材料。