汽车蓝牙信息娱乐系统隐私风险:攻击分析与防御策略

摘要

现代汽车配备了互联功能以提升用户舒适度。蓝牙作为一种通信技术,可将个人设备与汽车信息娱乐单元配对。配对后,用户在驾驶时能以最小干扰通过汽车主机访问手机上的个人信息。然而,此类互联功能也带来了隐私攻击的风险。因此,结合隐私约束对系统进行深入分析,对于防止个人信息被未授权访问至关重要。本研究对汽车信息娱乐单元的蓝牙网络展开系统分析,以挖掘与安全和隐私相关的漏洞。我们结合系统的隐私约束对已识别的威胁进行建模,通过标准化评分指标强调攻击的严重程度,并提出潜在的防御措施。作为系统分析的一部分,我们采用隐私系统理论过程分析(STPA-Priv),并利用通用漏洞评分系统(CVSS)确定攻击严重程度。已发现的漏洞源于汽车信息娱乐系统中蓝牙协议实现的设计缺陷和预设假设。我们通过在实际车辆的汽车系统上实施隐私攻击,验证了该漏洞的存在。我们借助安卓开源项目(AOSP)报告研究发现,并提出防御策略。

1、引言

车辆的舒适度取决于其为驾驶员和乘客提供的便捷程度。现代汽车应具备的基本便捷性包括:在驾驶时无需分心即可完成发短信、打电话、接收重要事件通知等操作。因此,汽车制造商持续改进互联功能,以实现智能出行。然而,功能的增加也为多种安全漏洞和潜在攻击创造了条件。例如,无线互联的增强使得更多外部设备能够接入车载网络,从而增加了系统可被利用的薄弱环节,攻击者可能通过这些环节实施不安全的控制操作,引发危害情况。此外,攻击手段与安全机制之间的差距不断扩大。软件安全领域的标准防御技术(如防火墙和加密技术)在车辆级别的复杂嵌入式系统中效果不佳,原因在于车辆变体和配置具有异构性。

系统理论过程分析(STPA)是一种基于系统理论的危害分析技术,它利用功能控制图将安全与网络安全问题视为控制问题来解决。STPA - 网络安全侧重于通过保护那些可能导致漏洞的控制操作,来管控系统漏洞。本研究中,我们通过隐私系统理论过程分析(STPA-Priv),对汽车中的网络模块及其操作系统(OS)进行组件级、子系统级和系统级的验证与确认。我们选择基于模型的方法,因为我们了解系统的状态机以及子组件与系统的交互方式。通过理解汽车单元中蓝牙的实现原理,我们构建了用于分析的模型表示,而非采用黑盒方法。采用自上而下的 STPA-Priv 方法分析系统的隐私约束,能够高效识别系统中最关键的安全部分。我们提出的安全机制有望防止隐私约束被违反。我们还强调了进行结构化分析的重要性,这种分析在设计阶段就能直观地评估隐私约束。

通过对蓝牙组件的分析发现,软件层面的蓝牙协议栈实现对安全性起着至关重要的作用。这意味着固件级别的更新可能会引入新的安全漏洞,因此建议重新进行蓝牙技术联盟(Bluetooth SIG)认证测试。本文的研究重点是系统分析,除了识别基于安卓的汽车主机中的隐私约束外,我们还提出了一种高效识别蓝牙实现中易受攻击的控制操作的方法。我们利用安卓开源项目(AOSP)------ 安卓汽车操作系统 11深入研究软件实现,对蓝牙协议栈的变化进行实验,并发布相关漏洞和潜在攻击。我们还在运行安卓 6.0.1 系统的实际车辆的信息娱乐单元上对攻击进行了评估,以验证研究结果。

本研究强调了系统设计中与隐私相关的约束和安全防范措施的必要性。本文所指的隐私是指用户在不知情的情况下与攻击者共享的个人信息,攻击者可能会利用这些收集到的信息。本研究的前提是,用户信任汽车信息娱乐系统,并通过同意披露协议,允许该系统共享和同步个人信息。但用户并不清楚,当他们不在车辆附近时,可能发生的变化会影响系统的隐私保护。这一前提与 Spiekermann 等人的研究结论一致,即用户只有在了解信息交换过程的情况下才会共享个人信息。因此,用户完全忽视了在其离开期间系统可能遭受的损害。在提出防御措施时,我们考虑到了这一点,同时也兼顾了用户在理解权限方面面临的困难。本研究的主要动机来自联合国第 155 号法规(UN R155),该法规要求建立和实施专注于车辆网络安全的管理系统,并强制规定了车辆需遵守的相关要求。UN R155 指出,当车辆使用者变更时,可能会发生信息泄露(可能被泄露的个人数据),这是一个可能被利用的潜在漏洞。此外,针对防止未授权访问车主私人信息(如个人身份、支付相关信息或通讯录信息)的建议缓解措施,是通过系统设计和访问控制来保护安全关键型个人数据。因此,我们提出了一个系统理论框架来分析系统漏洞,并提供一种访问控制解决方案来修复漏洞,而非采用常规的战术防御策略。

本文的贡献如下:

  1. 揭示了汽车信息娱乐系统中蓝牙协议栈实现所导致的漏洞,并通过利用该漏洞实施隐私攻击,从个人设备中获取机密数据。

  2. 提供了一种系统的方法 ------STPA-Priv,用于分析系统,找到可能导致危害的最脆弱部分。

  3. 通过攻击和系统分析,得出了可在蓝牙协议栈中实施的防御策略,以防止此类攻击。

本文的其余部分结构如下:"相关工作" 部分总结了与汽车蓝牙攻击相关的研究;"背景" 部分简要概述了蓝牙互联、蓝牙配置文件以及安卓汽车中蓝牙协议栈的实现;"威胁模型与攻击描述" 部分介绍了威胁并提供了攻击详情;"攻击评分与系统分析" 部分利用通用漏洞评分系统(CVSS)指标对所提出的攻击进行评分,并通过系统分析验证攻击;"潜在防御措施" 部分提出了抵御该攻击的潜在对策,并讨论了攻击结果和所提防御措施的有效性;"结论" 部分对研究工作进行了总结。

2、相关工作

本节讨论与汽车蓝牙安全漏洞、系统验证方法和攻击相关的文献。通用蓝牙安全架构和安全问题已有明确界定,汽车应用中的隐私问题也在多项研究中有所探讨。本文重点分析汽车信息娱乐单元,因为它与传统的移动和个人电脑平台完全不同。例如,通过数字比较或静态 / 动态 PIN 等手动交互进行认证可提高安全性。Oka 等人的调查解释了使用静态 PIN 的缺点,并阐明了其攻击范围。Cheah 等人将蓝牙攻击分为 "监控、范围扩展、混淆、模糊测试、嗅探、拒绝服务、未授权直接数据访问、恶意软件和中间人攻击"。他们采用基于攻击树的系统方法对汽车蓝牙进行安全评估。攻击树中考虑的一种攻击是通过对象交换协议(OBEX)提取数据。nOBEX 是基于 PyOBEX 构建的工具,允许将蓝牙配置文件(电话簿访问配置文件 - PBAP 和消息访问配置文件 - MAP)从真实手机克隆为虚拟文件系统。然后,这些虚拟文件系统可以作为 PBAP/MAP 服务器与汽车主机交互,并向车载信息娱乐(IVI)系统注入畸形用户数据。该攻击具有隐蔽性,因为它通过支持免提配置文件(HFP)和 AT 命令响应来模拟真实手机。如果带有畸形数据包的汽车主机与其他安全关键型电子控制单元(ECU)(如发动机控制模块(ECM)和变速箱控制模块(TCM))连接到同一控制器局域网(CAN BUS),则该攻击可能会带来危害。Checkoway 等人发现了远程信息处理单元定制软件中的漏洞。他们获取了远程信息处理 ECU 的操作系统访问权限,并发现了约 20 个不安全的 strcpy 调用。他们指出,该漏洞可被利用在远程信息处理单元上执行任意代码。Costantino 等人对特定车辆的 IVI 单元进行逆向工程以寻找漏洞,并通过注入 CAN 帧控制车辆。他们还开发了一个名为 "Metasploit" 的模块,用于控制 IVI 单元和注入 CAN 帧。

Bluesnarfer是一种利用 AT 命令的隐私侵犯攻击。Zhou指出,智能设备中的漏洞容易导致敏感个人信息泄露给攻击者。这是由于配对蓝牙设备之间需要信任关系而被利用。此外,认证机制仅在初始配对过程中执行一次。为了使用方便和支持免提应用,避免了重复认证。然而,在重新连接时,设备完全无法察觉对方设备可能发生的恶意更改。Antonioli 等人实施了 KNOB(CVE-2019--9506)和 BIAS(CVE-2020-10135)攻击,以伪装车辆中的蓝牙设备。他们对来自五家车辆制造商的主流信息娱乐单元进行了信息泄露攻击和远程代码执行评估。

3、背景

本节简要介绍 STPA 系统分析和汽车蓝牙的背景。蓝牙背景部分按层次结构安排:首先介绍蓝牙作为无线通信介质,然后是更高层级的信息娱乐系统,接着是信息娱乐单元中的特定操作系统,之后讨论操作系统中蓝牙架构的实现,最后是蓝牙配置文件和连接机制等底层蓝牙控制操作。

系统理论过程分析(STPA)

STPA 以分层方式对系统进行分析。其目的是识别每个子系统试图修改其下一级组件行为的控制操作。这些控制操作是在系统和子系统级别实施安全保障的约束条件。将 STPA 应用于本文的案例(增强隐私的汽车蓝牙安全)需遵循 "隐私问题系统分析" 部分详细阐述的四步流程。本节将讨论建立系统并从隐私角度识别最脆弱子组件的过程。我们此时考虑的高层级隐私目标是保护通过蓝牙与信息娱乐单元共享的机密用户数据。基于这一隐私约束,我们从高层到低层对系统进行分析,以确定必须加以保护以防受到干扰的关键组件。因此,本文所研究的高层级系统是搭载安卓操作系统的汽车信息娱乐系统,其次是操作系统中的蓝牙实现,然后是该实现中与隐私相关的安全关键型控制操作。

蓝牙概述

蓝牙是一种在未授权的 2.4 GHz 工业、科学和医疗(ISM)频段运行的无线技术。蓝牙采用超高频(UHF),有效工作范围为 10-100 米(无放大器和定向天线等外部范围扩展器时)。蓝牙连接时,一个设备被指定为主设备,其他所有设备为从设备。蓝牙采用跳频扩频(FHSS)技术,每秒切换 1600 个频率,因此每个信道仅使用 625 微秒。连接成功后,从设备与主设备的时钟同步,以获取正确的跳频模式。由于有 79 个跳频信道,其他蓝牙设备之间的干扰概率极低。蓝牙设备主要分为两类:(i)工作在基本速率(BR)或增强数据速率(EDR)的经典蓝牙设备;(ii)低功耗蓝牙(BLE)设备。这些不同架构的设备以双模方式相互通信。蓝牙通过认证、加密和授权来保障安全。所有蓝牙设备都有一个由制造商分配的唯一 48 位地址(BD_ADDR)。

蓝牙架构的核心组件包括:(i)蓝牙控制器;(ii)主机控制器接口(HCI);(iii)蓝牙主机。

汽车信息娱乐单元

现代 IVI 单元为驾驶员提供音频、视频娱乐和导航功能,通常与车载网络连接,以支持空调(HVAC)控制和一些关键驾驶辅助功能(如泊车辅助)。信息娱乐单元提供互联功能,允许用户在驾驶时访问手机应用程序。通过将手机与信息娱乐单元配对,用户可以访问手机的联系人、信息,并以最小干扰进行免提通话或发短信操作。用户通过信息娱乐单元的人机界面(HMI)执行这些操作。前端直观高效的 HMI 由汽车操作系统提供。近年来,汽车制造商和原始设备制造商(OEM)一直在试验和更新不同的操作系统。一些 OEM 已在其量产车辆中采用了定制版本的安卓系统。

安卓汽车操作系统

本文重点研究安卓汽车系统,并对 IVI 系统的蓝牙功能进行系统级、子系统级和控制级分析。运行安卓操作系统的 IVI 单元需要通过蓝牙、Wi-Fi 和远程信息处理控制单元(TCU)与车载网络(CAN)交互。IVI 单元在接收用户输入数据后执行不同的操作。例如,用户可以借助 HMI,通过蓝牙将移动设备与主机配对,并使用免提应用程序(如拨打电话 / 接听电话)。由于添加了 CAN 等底层车载网络模块,安卓框架新增了一个名为车辆硬件抽象层(VHAL)的硬件抽象层。然而,我们的研究重点是安卓提供的汽车服务(GAS)和系统应用程序(图 1 中的绿色框)。

图 1、展示汽车服务与系统应用的安卓汽车操作系统架构

GAS 是安卓开发团队定义的一组特定技术服务。地图与导航、应用商店(Playstore)、语音助手、设置向导(SetupWizard)和汽车键盘是 GAS 中的一些核心服务。除 GAS 外,其他重要应用程序包括:(i)用于集成媒体播放器的媒体中心;(ii)用于连接智能手机的电话应用程序拨号器;(iii)用于管理汽车系统设置的汽车设置;(iv)用于接收智能手机和车辆系统通知的通知中心。安卓汽车架构提供了框架和库,以实现与蓝牙、Wi-Fi、VHAL 模块和其他应用程序等无线模块的完美集成。

安卓的蓝牙架构

安卓蓝牙架构的简化版本如图 2 所示。应用层中的 android.bluetooth API 通过 Binder 与位于 packages/apps/Bluetooth 中的蓝牙服务和蓝牙配置文件通信。蓝牙进程通过 Java 原生接口(JNI)与蓝牙协议栈通信。硬件抽象层(HAL)所需的配置通过蓝牙协议栈实现。可定制的蓝牙协议栈通过硬件抽象层接口定义语言(HIDL)与嵌入式蓝牙芯片组通信。蓝牙芯片组的底层控制包括无线电控制器、基带控制器等,它们通过 HCI 与主机通信。相应的主机在中间层(蓝牙协议栈和蓝牙进程)和应用层实现协议。因此,蓝牙协议栈的实现和蓝牙配置文件的需求取决于主机,对协议栈或配置文件的任何更改都可能引入新的漏洞。这些漏洞是操作系统中引入的实现缺陷,因此强烈建议由蓝牙技术联盟(Bluetooth SIG)对设备进行重新测试和认证。

图 2、安卓系统的蓝牙架构

为了根据 STPA 缩小分析范围,我们专门选择了那些会导致漏洞并违反我们所声明的隐私约束的子系统。蓝牙配置文件和蓝牙协议栈(system/bt)就是这样的两个子系统。这是因为机密用户数据的存储和删除过程在蓝牙协议栈中执行,而访问用户数据的权限通过蓝牙配置文件获取。

安卓的蓝牙协议栈

安卓的蓝牙协议栈称为 Bluedroid(如图 2 所示)。蓝牙电源控制 API 属于蓝牙协议栈中的蓝牙内核,通过函数调用与蓝牙芯片组通信。与我们分析范围相关的电源控制 API 中的库包括 CarPowerManager 和 CarPowerManagementService。挂起到内存(STR)实现的关机和内存清除是这些库的两个重要功能。基于 STPA,这些控制操作被选中,因为它们负责机密用户数据的擦除。这些库的状态机如图 3 所示。车辆主控制单元(VMCU)触发状态转换,积分器用于确保关机过程不会无限延迟。

图 3、汽车电源状态机。各状态(以椭圆形表示)通过状态转换触发

状态机中的重要转换如下:(i)开启(On):VHAL 模块指示操作系统进入开启状态,此时操作系统完全正常运行。(ii)关机准备(Shutdown Prepare):在此阶段,IVI 系统处于关闭状态,但操作系统仍在后台运行以进行更新。(iii)等待 VHAL(Wait for VHAL):用户仍在与车辆交互,VHAL 仍为片上系统(SoC)供电。(iv)等待 VHAL 完成(Wait for VHAL Finish):操作系统准备关机,SoC 进入深度睡眠状态,应用处理器断电,随后操作系统进入 STR 状态。(v)STR:SoC 和车辆关闭,代码不再执行。

蓝牙配置文件

蓝牙配置文件定义了蓝牙设备应用程序的标准协议,具体规定了通过蓝牙连接传输的数据类型。根据配置文件的不同,蓝牙技术联盟(Bluetooth SIG)制定了不同的物理传输协议。例如,PBAP 使用 OBEX 协议,BLE 数据传输使用通用属性配置文件(GATT)。蓝牙有超过 30 种标准化配置文件,本文重点关注 PBAP 和 MAP,因为它们是与隐私相关的蓝牙配置文件,会将数据以明文形式存储在蓝牙日志中。

电话簿访问配置文件(PBAP)

PBAP 基于客户端 - 服务器交互,客户端(电话簿客户端设备 - PCE)从服务器(电话簿服务器设备 - PSE)接收电话簿对象。在本文的场景中,用户的手机是 PSE,IVI 单元是 PCE。由于 PBAP 为车辆中的免提应用提供了便利性,因此它是 IVI 单元中最重要的蓝牙配置文件之一。鉴于此,蓝牙技术联盟对 PBAP 规定了特定的安全要求:(i)PCE 仅在连接成功后才能向 PSE 请求访问电话簿;(ii)连接初始化应包括服务发现、安全初始化消息、链路密钥和加密;(iii)应完成通用访问配置文件(GAP)中描述的认证过程;(iv)PSE 的用户应确认同意共享其电话簿。

通常,整个电话簿会被下载并存储在 PCE 设备中。PSE 向 PCE 的数据传输使用通用对象交换配置文件。PBAP 的下载过程如图 4 所示。(1)蓝牙协议栈在收到用户同意共享电话簿的权限后,向电话簿存储管理器请求免提配置文件连接;(2)电话簿管理器随后更新 HMI,以显示所有电话簿数据(如最近通话、常用联系人等);(3)连接成功后,电话簿管理器向协议栈发送 PBAP 连接成功确认;(4)连同确认信息,电话簿管理器还发送电话簿下载请求;(5)下载成功后,蓝牙协议栈向电话簿管理器发送下载完成命令;(6)电话簿管理器设置虚拟联系人文件(VCF)参数,并根据存储要求解析 VCF 文件(图 5 左侧展示了一个 VCF 示例);(7)然后将 VCF 文件存储在电话簿存储数据库中;(8、9、10)数据库存储成功后,电话簿管理器请求下一组电话簿存储,重复步骤 4-7 直到所有联系人都存储在数据库中;(11)确认所有联系人存储完成后,HMI 更新显示所有联系人及电话簿信息,步骤 12 中 PBAP 断开连接。

图 4、信息娱乐系统与蓝牙设备间的电话簿访问配置文件(PBAP)下载流程

图 5、虚拟联系人文件(vCard)格式示例(左)与消息格式示例(右)

消息访问配置文件(MAP)

MAP 与 PBAP 类似,采用类似的客户端 - 服务器交互来交换消息对象(消息客户端设备 - MCE 和消息服务器设备 - MSE)。IVI 单元免提配置文件中的 MAP 允许用户通过 HMI 甚至音频系统的语音命令,轻松读取、发送、接收通知或浏览消息。支持的 MAP 版本包括短信(SMS)、彩信(MMS)、电子邮件和即时消息(IM)。本文中利用的 IM 格式如图 5 右侧所示。MAP 的安全要求与 PBAP 非常相似,包括配对和加密要求、基于 GAP 的认证以及用户一致性。MAP 基于 OBEX 配置文件,使用以下 OBEX 服务:消息访问服务(MAS)和消息通知服务(MNS)。除 MNS 外,在所有其他服务中,MCE 充当 OBEX 客户端,MSE 充当 OBEX 服务器;在 MNS 中,MSE 充当 OBEX 客户端,并连接到充当 OBEX 服务器的 MCE。除了用于客户端到服务器数据传输的 OBEX 配置文件外,MAP 还使用 PBAP 来引用联系人。

4、威胁模型与攻击描述

蓝牙安全基于这样一个前提:用户信任与其个人设备配对的设备,并在此基础上实施认证、授权和加密。然而,对于车辆中的 IVI 单元(尤其是多用户使用的 IVI 单元),这一假设并不总是成立。攻击者可能操纵 IVI 单元,秘密侵犯用户隐私。本文制定了三种攻击场景(如图 6 所示),这些场景在日常车辆使用中非常常见。

图 6、高层级攻击概览 ------ 隐秘攻击者窃取受害者个人信息的攻击场景

安卓作为免费开源操作系统,对开发者非常友好。测试已开发软件或应用程序的最佳方式之一是在设备上进行物理测试。因此,为了测试目的,安卓系统设有开发者选项,允许开发者访问一些通常处于锁定状态的设备功能。安卓设备中的开发者选项 "隐藏" 在易于访问的位置。根据安卓社区的说法,启用开发者选项是安全的,不会使设备保修失效,也不会以任何方式改变设备的正常工作功能。因此,除非用户在设备设置中专门查看,否则普通用户很难知道开发者选项是否已启用。开发者选项的一项重要功能是蓝牙 HCI 监听日志(Bluetooth HCI snoop log)。该监听日志以明文形式存储 PBAP 和 MAP 数据,日志文件在蓝牙连接时创建,用于捕获、监控和分析蓝牙数据包。这些数据存储在设备中,可通过 USB 或无线安卓调试(Android Debug Bridge,ADB)获取。

本文利用这一功能,成功在运行安卓操作系统的 IVI 单元上实施了隐私攻击。攻击的成功执行取决于开发者选项是否已启用,我们认为这是安卓蓝牙协议栈中的一个实现缺陷和可利用的弱点。在我们考虑的三种攻击场景中,攻击者已秘密启用 IVI 单元中的开发者选项,而信息娱乐系统的用户对此完全不知情。当用户为了使用免提通话、发短信和娱乐等功能,通过蓝牙将手机与 IVI 系统配对时,其个人信息会根据蓝牙配置文件与 IVI 单元同步。攻击者可以通过与车辆的有线连接(本文中使用 USB/CAN)或无线连接(本文中使用公共 Wi-Fi 网络)获取这些存储的信息。攻击者通过开发者选项获取的数据(个人联系人、消息和通话记录)均未加密。通过分析图 3 中的 IVI 系统 - 汽车电源状态机,我们还发现内存清除(挂起到 RAM)功能由车辆关机触发,而非蓝牙连接状态。因此,存储在 IVI 系统中的数据会一直保留到车辆点火开关关闭,这增加了攻击的时间窗口。我们在一辆量产车辆上测试了所提出的攻击,该车辆的信息娱乐系统运行安卓 6.0.1 版本。为了发布目的,我们在安卓开源平台(AOS)上报告了我们的攻击(Android,2021d)。此外,该攻击适用于所有运行安卓操作系统且支持启用开发者选项的 IVI 单元(安卓 4.2 及更高版本)。实验设置如图 7 所示,我们在树莓派 4B 上搭建了安卓汽车操作系统 11。

图 7、隐私攻击实验设置 ------ 在树莓派 4(Raspberry Pi4)上模拟安卓车载信息娱乐(IVI)单元及三台受试移动设备

攻击步骤如下:

  1. 在安卓 IVI 单元中启用开发者选项:a. 在某些系统中,操作方式与安卓手机类似。对于安卓 9 或更高版本的设备,可通过在 "设置> 关于手机 > 版本号" 中连续点击版本号 7 次来启用。b. 在某些车辆中,制造商可能隐藏了此功能,但可通过在 IVI 单元中按下特定的按键组合来解锁。然而,破解这些按键组合并不复杂,对于主流单元,相关信息可在在线论坛上找到。

  2. 在开发者选项中启用蓝牙 HCI 监听日志:设置 > 开发者选项 > 启用蓝牙 HCI 监听日志。

  3. 在用户连接其个人设备后,从 IVI 单元中获取数据:a. 日志文件通常存储在内存中,可通过 USB 端口传输到存储设备。也可以使用安卓调试桥(ADB),当 Linux 计算机与 IVI 系统连接到同一网络时,通过 Linux 终端中的 ADB pull 命令提取日志文件。

  4. 在 Wireshark 中分析捕获的日志。日志中捕获的蓝牙 OBEX 数据包会以明文形式泄露手机联系人、通话记录和消息,如图 8 所示。

图 8、Wireshark 中的攻击结果 ------ 向攻击者明文泄露手机联系人及用户机密信息

分析后的蓝牙数据包显示了从配对 IVI 设备中获取的所有联系人以及直到最后一刻的短信。这意味着攻击者可以获取所有联系人以及过往和当前的短信,其中可能包括来自银行的安全关键型消息、密码重置消息甚至一次性密码(OTP),这可能导致严重的隐私侵犯。例如,图 8 显示攻击者以明文形式获取了受害者收到的银行消息以及电子商务网站的登录尝试通知。

上述攻击步骤在技术上并不复杂,也不需要像大多数隐私分析网络流量技术(如 "条件流识别和联合流跟踪"那样昂贵的计算工具。数据交换和数据观察技术主要侧重于分析数据来源设备,而非用户同意共享给其他已知设备的数据。另一种全面的数据流分析方法是 LINDDUN(可链接性、可识别性、不可否认性、可检测性、信息泄露、不知情和不合规),由 Wuyts 等人提出。与采用自上而下方法的 STPA-Priv 不同,LINDDUN 采用自下而上的方法分析数据流中的隐私约束。直观地说,当涉及到通过用户界面进行人机交互时,采用自下而上的方法跟踪数据流会变得更加复杂。

由于攻击步骤简单且可能导致严重的安全漏洞,攻击者可以轻松利用所提出的攻击来侵犯目标受害者的隐私。第一步,我们使用 CVSS分析攻击的严重程度,该评分范围为 0.0-10.0(定性严重程度评分量表)。根据 CVSS 评分,可分为以下等级:无(None):0.0;低(Low):0.1-3.9;中(Medium):4.0-6.9;高(High):7.0-8.9;严重(Critical):9.0-10.0。CVSS 包括三个指标组:基础指标(Base)、时间指标(Temporal)和环境指标(Environmental)。基础评分表示漏洞的严重程度,时间评分表示随时间变化的因素,环境评分表示因计算环境不同而产生的变化。我们重点关注基础评分,因为另外两个指标波动性较大。数值是根据 CVSS 指标得出的,如表 1 所示。可利用性指标定义了漏洞的特征,影响指标定义了被利用的漏洞对遭受最严重后果的组件的影响。

表 1、基于通用漏洞评分系统(CVSS)指标的漏洞评分

可利用性计算公式:

范围不变时的影响和基础评分:

基础评分计算公式:

因此,根据定性 CVSS 评分量表,所提出的攻击属于中等严重程度。然而,随着越来越多的汽车制造商在其 IVI 单元中采用安卓汽车操作系统,该攻击的影响范围可能会进一步扩大。到 2023 年,来自约 15 家制造商的 40 多款汽车将在其信息娱乐系统中搭载安卓汽车系统版本,这些车辆都可能受到所提出攻击的影响。

5、攻击评分与系统分析

除了识别系统中的隐私相关问题外,我们还提供了一种建模隐私威胁的方法。通过结合系统对威胁进行建模,我们强调了攻击的严重程度,明确了隐私要求,并提出了潜在的攻击防御措施。我们根据 Shapiro的 STPA-Priv 对系统进行建模。

隐私问题系统分析

采用 STPA-Priv 进行系统分析分为四个步骤,并根据图 3 中的状态机图分析控制操作。

  1. 识别不良隐私后果:这些不良隐私后果可能由一个或多个脆弱的系统状态导致。在本文的案例中,不良隐私后果是攻击者获取机密用户信息。这是因为 PBAP 和 MAP 包含机密用户信息,并以明文形式存储在蓝牙日志中,攻击者可通过开发者选项访问这些日志。

  2. 识别导致不良隐私后果的漏洞:我们现在识别导致不良隐私后果的子系统状态或环境状态。此处识别的漏洞是,内存清除与电源控制 API 中的关机准备状态同步。如 "汽车信息娱乐单元" 部分所述,负责电源控制的库是 CarPowerManager 和 CarPowerManagementService。此外,该漏洞延长了内存保留时间(直到汽车点火开关关闭),从而扩大了攻击范围。

  3. 识别系统隐私约束和功能控制结构:在这一步骤中,我们可以制定一些系统必须执行的约束,以缓解已识别的漏洞。a. 其中一项约束是,当用户配对设备时,如果开发者选项已启用且蓝牙监听日志功能已开启,应通知用户并请求用户进一步确认。b. 另一项约束是,内存清除不应在汽车点火开关关闭状态时触发。如 Mindermann、Shapiro所讨论的,控制结构不在我们的分析范围内。

识别侵犯隐私的控制操作:控制操作分析分为两步:a. 识别每个隐私约束对应的错误控制操作,如表 2 所示。b. 识别控制操作的因果因素,即提出可降低漏洞影响的缓解策略。拟议的缓解策略将在 "潜在防御措施" 部分详细讨论。

表 2、汽车信息娱乐单元的隐私系统理论过程分析(STPA-Priv)

6、潜在防御措施

本节基于系统分析结果提出潜在的防御措施。尽管对电话簿存储管理器进行加密是一种可行的选择,但在本文的案例中并不足够。一些信息娱乐系统的 HMI 需要解密数据才能提供某些服务。因此,我们针对特定攻击制定了防御措施,以确保系统在处理个人信息时的可信度。

i. 检查 IVI 单元中开发者选项是否已启用。如果已启用,通知用户并请求用户进一步同意。这将使用户意识到潜在的攻击情况或隐私风险,他们可能会在将车辆交给攻击者之前关闭点火开关,或者在将设备连接到未知车辆时保持谨慎。ii. 频繁检查蓝牙状态,如果检测到蓝牙正准备断开连接,则调用 "等待 VHAL 完成" 状态,并进入挂起到 RAM(STR)状态。STR 状态会在断开连接时清除 IVI 单元上的内存和所有保存的个人数据。因此,当用户离开车辆交给攻击者并超出蓝牙工作范围时,STR 状态会自动清除内存,从而在很大程度上缩小了攻击时间窗口。拟议防御措施的更新状态机如图 9 所示。

图9、为减轻攻击而提出的状态机------在蓝牙断开连接时清除存储的内存。虚线所示的挂起到RAM(STR)和蓝牙断开连接是一个同步过程,而不是边缘转换

AOSP 中拟议缓解措施的伪代码(bluetoothdeviceconnectionpolicy.java)------ 用于决定蓝牙连接和断开的设备连接策略管理 ------ 如算法 1 所示。

算法 1:断开连接时清除内存

"威胁模型与攻击描述" 部分强调了安卓操作系统中开发者选项的重要性。因此,我们确保拟议的防御措施不会影响开发者选项的功能。通过通知用户潜在的危害,用户可以手动关闭开发者模式,并警惕周围可能存在的攻击者。当设备未处于开发者模式时,蓝牙日志不会存储在设备中,攻击者也无法访问。第二项拟议的防御措施会在断开连接时清除蓝牙日志。因此,当用户不在车辆附近(蓝牙范围内)时,蓝牙日志会被清除,攻击者无法访问。因此,在这两种情况下,用户都能得到保护,避免成为受害者,因为攻击者无法获取蓝牙日志。然而,实际开发者在应用程序开发的测试阶段仍然可以访问这些日志。

7、研究局限性与适用范围

代客攻击识别了两个潜在漏洞,并提出了一种利用该漏洞的方法。然而,显然该攻击在实际执行中适用范围较窄。该攻击的前提是攻击者能够接触到车辆并改变信息娱乐系统的原始状态,即攻击者能够启用开发者选项和蓝牙 HCI 监听日志。只有当信息娱乐单元与攻击者处于同一网络,或者攻击者再次获得车辆的物理访问权限时,攻击者才能从受害者的设备中获取机密和私人信息。如果攻击者在获得车辆访问权限之前车辆点火开关已关闭,则无法实施攻击。

本研究通过提出攻击和防御措施,旨在向原始设备制造商(OEM)和车辆用户表明,他们的私人和机密信息容易受到攻击。我们严格遵守工程伦理,仅在指定的测试设备上实施攻击,未披露车辆制造商信息,也不鼓励尝试此类攻击或从未知设备中获取机密信息。

8、结论

蓝牙是汽车信息娱乐单元中一项重要的无线通信技术。信息娱乐单元的人机界面(HMI)为驾驶员提供了免提通话和发短信功能,使驾驶员在驾驶时不会分心。由于蓝牙在汽车领域的重要应用,其安全性对于保护用户的个人信息和隐私至关重要。本文简要介绍了蓝牙技术在汽车信息娱乐单元中的应用,并通过利用隐私漏洞提出了一种攻击方法。我们还描述了用于识别和利用该漏洞的系统方法(STPA-Priv)。此外,我们还提出了一种潜在的防御解决方案来防止此类攻击。我们注意到,这些攻击的起因是基于对可信设备的假设,可通过安卓蓝牙协议栈的软件更新来修复。

相关推荐
武汉唯众智创6 小时前
网络安全教学升级!基于深度强化学习的动态对抗网络安全防护教学方案全解析
网络·人工智能·安全·web安全·生成对抗网络·网络安全
NewCarRen9 小时前
智能电动汽车网络安全与功能安全融合框架构建及验证
网络安全·汽车·汽车网络安全
WayneJoon.H11 小时前
Java反序列化 CC6链分析
java·安全·网络安全·cc链·反序列化
汤愈韬13 小时前
MSTP工作原理、MSTP配置案例、MSTP负载均衡
网络·网络安全
大白IT15 小时前
第二部分:感知篇——汽车的“眼睛”与“耳朵”(第4章:多传感器融合——从“各抒己见”到“共识决策”)
汽车·智能驾驶
Joe_Blue_021 天前
中保研汽车小偏置碰撞案例分析
安全·性能优化·汽车·硬件工程
大白IT1 天前
第二部分:感知篇——汽车的“眼睛”与“耳朵”(第3章:传感器技术深度解析)
汽车·智能驾驶
麦烤楽鸡翅1 天前
give_you_flag(攻防世界)
网络安全·信息安全·ctf·misc·杂项·攻防世界·二维码处理
云安全联盟大中华区1 天前
构建AI原生工程组织:关于速度、文化与安全的经验
人工智能·安全·web安全·网络安全·ai·ai-native