编辑推荐: |
本文主要介绍了汽车OTA更新的系统性威胁评估与安全测试相关内容。希望对你的学习有帮助。
本文来源于微信公众号猿力部落,由火龙果软件Linda编辑,推荐。 |
|
摘要:现代汽车搭载了众多专用计算和连接设备,以促进各种车载系统的正常运行。这些设备承载着复杂的软件系统,代码量超过1亿行,需要定期及时更新以实现功能和安全性的改进。为解决传统更新系统的不足,空中下载(OTA)软件更新系统已成为一种高效、经济且便捷的远程向汽车交付更新的解决方案。虽然OTA带来了诸多好处,但也引入了新的安全挑战,需要立即关注,因为攻击者可能会滥用这些更新系统来破坏车辆的安全性。已有大量研究调查了汽车网络安全的各个方面,然而,汽车OTA的安全测试尚未得到充分覆盖,大多数先前的工作主要侧重于提出改进的技术来保护汽车OTA更新。为确保这些更新系统切实安全,需要进行全面的安全评估。据我们所知,目前没有研究提出或采用系统性的安全测试方法来评估汽车OTA更新系统的安全性。本研究通过对Uptane框架进行深入的安全评估来填补这一空白,采用结构化威胁分析方法构建攻击树,并应用基于模型的安全测试方法生成有效的安全测试用例。我们实现了一个软件工具,通过分析攻击树的结构生成安全测试用例,并最终针对目标系统执行这些测试用例。我们对Uptane参考实现进行了多次实验性攻击。虽然许多实验结果表明该参考实现在应对不同威胁和网络攻击方面是安全的,但一些发现表明该实现在拒绝服务和窃听攻击方面存在漏洞。
01. 简介
现代车辆配备了众多复杂的计算(即电子控制单元)和连接功能,这些功能支持各类车载系统的正常运行。随着安装的电子控制单元数量不断增加,如今的豪华汽车承载着复杂的软件系统,代码量超过1亿行。由于代码量巨大,定期及时的更新是不可避免的,这不仅是为了增强功能,更重要的是修复与安全问题相关的漏洞,这些漏洞可能会被攻击者利用来危害车辆安全。
对于这些更新的部署,传统上车辆需要前往服务中心或经销商处,由机械师进行安装。这种更新车载软件的旧机制不仅对汽车制造商而言成本高昂且效率低下,对客户来说也很不方便。例如,通用汽车在2014年不得不花费41亿美元用于车辆召回,而该年度的总净收入为40亿美元。另一个有趣的相关例子是Koscher等人的研究,该研究导致汽车制造商召回了140万辆汽车。最近有大量车辆因更新而被召回,给汽车制造商带来了巨大的财务成本。空中下载软件更新系统正成为一种高效、经济且便捷的方式,用于远程向汽车交付软件更新,能够经济、及时地省事交付关键更新。
1.1 动机、创新性与贡献
毫无疑问,OTA带来了诸多好处,但它也引入了新的安全挑战,必须认真对待,因为攻击者可能会危害软件更新系统,进而危害车辆安全。
与其他接收OTA更新的设备不同,汽车更新的安全性是一个重大问题,因为恶意或损坏的更新在联网汽车中可能造成的破坏是其他设备无法比拟的,甚至可能导致人员伤亡。虽然保护OTA更新对任何物联网设备都至关重要,但联网汽车的更新安全更应受到重视。原始设备制造商必须采取有效的安全措施,以检测、缓解和预防OTA更新中可能出现的任何安全漏洞。这意味着对这些系统的安全测试对于评估现有的安全措施以及确定需要采取哪些进一步行动来加强对潜在网络攻击的防护至关重要。虽然已有大量现有研究广泛研究了汽车系统的网络安全测试,探讨了挑战、测试方法、测试环境、安全威胁、漏洞、相关解决方案和防御机制,但汽车OTA更新的安全测试尚未得到充分研究。为确保这些更新系统安全,并对各种网络攻击和威胁有足够的防护措施,必须进行全面的安全分析和评估。据我们所知,目前没有研究采用规范的安全测试方法来评估汽车软件空中下载更新系统的安全状况。我们试图通过结合基于模型的安全测试技术和渗透测试,对汽车OTA更新进行系统性威胁评估和安全测试,以填补这一空白。
本研究的贡献如下:
贡献1:一种用于构建攻击树的系统性威胁分析方法
通过对OTA/Uptane的深入分析,我们展示了我们的逐步威胁分析方法如何帮助枚举安全威胁并构建攻击树,这些攻击树通过系统测试得到验证(这一贡献的图形概述见图1)。

图1.贡献1:系统构建攻击树的威胁分析方法概述
贡献2:一种基于攻击树的基于模型的安全测试方法,用于推导安全测试用例
我们的基于模型的安全测试方法利用攻击树,通过分析这些攻击树的结构来推导有效的安全测试用例。为验证该方法,我们使用生成的安全测试用例演示了一系列网络攻击。
贡献3:对Uptane框架参考实现的深入实验性安全分析
对Uptane框架的参考实现进行全面的安全分析,包括完整的威胁分析、攻击树构建以及从构建的攻击树中推导的各种安全测试用例和安全测试,突出了该参考实现的优势和劣势。
贡献4:通过设计软件工具实现测试用例生成和执行的自动化
通过设计和实现一个定制软件工具,实现了安全测试用例生成和执行的自动化,该工具能够利用我们简要介绍的攻击树结构分析方法推导出适当的安全测试用例。该工具针对目标系统执行所有生成的测试用例,并生成一份报告,显示执行的测试用例数量以及它们是否成功。
1.2 文章结构
本文的其余部分组织如下。在第2节中,我们提供背景信息,包括汽车网络安全测试的概述、Uptane框架的介绍以及相关解决方案,还有威胁建模,包括STRIDE分类模型和攻击树。第3节概述了相关工作,重点介绍了一些现有的基于模型和系统性的安全测试研究,特别关注汽车领域。我们在第4节介绍我们的系统性威胁评估和安全测试方法,详细说明其不同阶段、相关步骤以及支持不同活动的工具和技术。第5节介绍了演示该测试方法应用的实验,详细说明了在Uptane框架的参考实现上进行的各种安全测试以及测试结果。第6节讨论了该方法、实验和结果。最后,第7节总结了本文。
02. 背景
本节提供与汽车系统安全测试相关的背景信息。
2.1 汽车安全测试
软件测试的目的是检测错误、验证软件是否满足指定要求以及确认其是否适用,而软件安全测试则涉及验证系统是否满足指定的安全要求(即信息保密性、隐私性、完整性、可用性、真实性、访问控制、防止滥用等)。已经提出了多种软件安全方法,包括使用形式化规范语言并依赖软件数学模型的形式化方法;基于故障注入的安全测试是另一种方法,侧重于应用程序交互点、网络接口、用户输入、文件系统和环境变量;基于风险的安全测试涉及尽早发现软件中的高风险漏洞。
然而,与一般的软件安全测试相比,汽车安全测试可能更为重要,因为在某些情况下,其后果可能是灾难性的,甚至会导致人员伤亡。现代汽车由于内置强大的计算和通信能力,面临着众多网络安全威胁。识别联网汽车中通信和其他车载技术中的漏洞和安全缺陷至关重要,因为网络犯罪分子可能会利用这些弱点获取车辆安全关键系统的访问权限。
如今,大多数汽车都搭载了许多计算设备,称为电子控制单元(ECUs)。每个电子控制单元都有特定的职责,它们可能需要相互通信以及与外部世界通信以成功完成任务。对于本地通信,它们依赖于一种或多种车载通信网络,如控制器局域网(CAN)、本地互联网络(LIN)、FlexRay和面向媒体的系统传输(MOST)。每种类型的网络都旨在支持具有不同需求的应用程序。例如,LIN主要用于低速应用,而需要高速数据传输的应用则使用MOST。现代车辆中法律规定的车载诊断(OBD)端口用于电子控制单元固件更新、车辆维修和检查。它们还用于将汽车中各种传感器收集的数据报告给外部世界,提供有关车辆健康状况的信息。
攻击者可以利用多个入口点入侵车辆的内部系统,先前的研究已广泛探索并呈现了这些入口点。例如,有研究探讨了CAN漏洞利用,有研究报告了利用OBD端口的攻击,提出了与车载信息娱乐相关的安全问题。汽车空中下载软件更新系统也可能以多种不同方式成为黑客的目标,从而危害联网车辆的安全性。
虽然汽车OTA带来了诸多好处(例如,远程无缝交付软件更新),但此类系统中的安全缺陷和漏洞可能会被攻击者利用,从而危害联网汽车的安全。例如,攻击者可能会危害托管软件更新的存储库,如Kuppusamy等人所描述的。已经提出了多种测试方法和测试环境用于汽车系统的安全测试。这些测试平台和技术主要旨在发现车载网络(例如,CAN、MOST、LIN等)、电子控制单元和信息娱乐系统中的安全缺陷。这些工作没有考虑汽车OTA软件更新系统的网络安全测试。
2.2 汽车OTA更新:概述
空中下载(OTA)或软件空中下载(SOTA)指的是使用WiFi、蓝牙或蜂窝网络链路远程交付软件更新的方法。虽然缩写SOTA通常用于指代所有类型的软件更新,但固件空中下载(FOTA)专门用于指代将固件部署到目标设备。在大多数情况下,FOTA用于交付涉及替换设备上现有固件的更新(更准确地说,是电子控制单元上的固件)。OTA更新系统的三个主要组件通常包括:后端云服务器、车辆中的电子控制单元或其他类似设备以及合适的通信链路。OTA更新在软件行业已经存在多年,用于向笔记本电脑和其他手持计算和通信设备中的操作系统和应用程序部署关键漏洞修复和功能增强。在汽车行业,原始设备制造商越来越多地采用OTA技术向联网车辆中的嵌入式设备交付更新。据预测,到2022年,汽车制造商通过依赖OTA技术远程发送更新将节省350亿美元。
2.2.1 用例
汽车更新的一些主要用例所述如下:
· 错误修复:为了遵守法律和法规要求,汽车制造商可以利用SOTA技术经济快速地交付解决安全和/或安全问题的更新,无需召回车辆。这种类型的SOTA更新通常涉及修复安全关键故障。
· 质量改进:汽车制造商可以使用SOTA更新进行质量提升,例如提高燃油效率。
· 研究与开发:SOTA技术还可用于收集有关车辆各个方面的有用信息,这些信息可能对未来的发展非常有用。这可能包括收集有关性能或其他技术问题的数据。
2.2.2 漏洞和威胁
软件更新系统曾遭到网络犯罪分子的攻击和危害,他们通过这些系统在计算机和移动系统上交付和安装恶意软件。世界车辆法规协调论坛(WP.29)——
联合国欧洲经济委员会(UNECE)机构框架内的国际监管论坛 —— 引入了新法规。这些法规涉及汽车网络安全、汽车网络安全管理系统、汽车OTA更新和汽车OTA更新管理系统的监管。UNECE最近发布了这些法规的修订草案提案,该提案确定了汽车更新程序面临的主要威胁以及相关漏洞和攻击方法。
道路车辆的安全标准,如ISO 26262和IEC 61508,提供了功能安全和网络安全之间相互作用的建议。汽车安全工程标准,包括SAE
J3061和ISO-SAE 21434,包括威胁和风险评估(即威胁分析和风险评估或TARA)的建议,以确定是否存在可能影响功能安全的网络安全威胁。特别是,ISO-SAE
21434定义了一种结构化方法,用于确保车载系统的网络安全工程,降低安全攻击的可能性。虽然与汽车系统没有直接关系,但ISO
27000系列和IEC 62443标准可能与汽车生产和后端系统相关。
还有研究提出了一个更全面的威胁模型,该模型识别了OTA系统面临的各种安全威胁,恶意实体可能利用这些威胁危害联网车辆的安全。每种威胁都有一种或多种相关的攻击类型,从读取更新内容到获得车辆控制权不等。攻击者可能有一个或多个攻击目标。以下是这些目标的摘要:
· 读取更新内容以发现机密信息、逆向工程固件,或比较两个固件镜像以识别安全修复,从而确定已修复的安全漏洞
· 拒绝安装更新,以防止车辆修复软件问题
· 导致车辆中的一个或多个电子控制单元故障,使车辆或某些功能无法使用
· 控制车辆内的电子控制单元,甚至可能控制车辆本身
2.3 安全的OTA更新方法和技术
毫无疑问,未来所有或大多数联网汽车的更新都将使用OTA技术交付;因此,这些更新的安全性至关重要。已经发表了许多研究,提出了不同的OTA更新安全解决方案。我们在以下小节中概述了其中一些解决方案。
2.3.1 AiroDiag:一种OTA诊断和更新系统
Mansour等人提出了AiroDiag—— 一种空中下载系统,用于执行汽车诊断和软件更新。AiroDiag客户端监控诊断信息(例如,故障和性能)并将其发送给原始设备制造商,原始设备制造商可以利用这些信息建议客户任何检测到的问题或需要安装的新更新。原始设备制造商后端的数据库既包含车辆信息(例如,详细说明车辆上已安装哪些更新的车辆清单),也包含每辆安装了AiroDiag的汽车的认证通信密钥(标有唯一的制造商ID)。当客户端请求建立连接以验证客户端是可信实体时,会向服务器提供此认证密钥。电子控制单元可以使用CAN或串行通信与车辆上的AiroDiag组件进行通信。与服务器连接后,客户端发送每个电子控制单元上当前安装的所有软件的列表。服务器将收到的列表与其数据库中包含的列表进行比较,并在适用的情况下通知客户端新的更新。会向驾驶员显示警报,询问是否继续下载和安装更新。如果驾驶员允许,车辆侧的AiroDiag客户端将继续下载软件更新,并将所有更新存储在非易失性存储器(例如SD卡)上,下载完成后将其刷新到相应的电子控制单元上。为确保不损害客户的隐私,车辆与原始设备制造商系统之间使用加密通道,并且AiroDiag提供的所有功能在执行任何操作之前都必须获得驾驶员的批准。
AiroDiag的作者对其进行了实现以模拟更新过程,并分享了显示OTA更新过程所花费时间的结果。服务器和客户端之间的所有通信都使用AES。强调的一些局限性关键考虑因素包括AiroDiag客户端的启动时间较长(由于安装了Ubuntu操作系统)以及存在网络攻击的可能性。
2.3.2 一种用于保护OTA软件更新的集成方法
Mayilsamy等人提出了一种结合增强加密和图像隐写技术的方法来保护汽车OTA软件更新。作者使用定制的RSA加密算法对更新数据进行加密,然后使用最低有效位技术将其嵌入到图像边缘。他们使用模糊逻辑进行边缘检测。为了验证软件更新来源的真实性,他们利用哈希算法。所提出的方法为汽车的安全
OTA 更新提供了两级安全保障:修改后的RSA算法用于提供第一级安全保障;第二级安全保障通过使用图像隐写技术(使用模糊逻辑进行边缘检测)实现。根据他们提出的方法的评估结果,作者得出结论,与传统的加密技术相比,他们提出的方法在安全性方面表现更好。然而,他们提出的方法的一个主要局限性是加密/解密时间方面的性能。
2.3.3 使用区块链技术的OTA更新安全
为了有效保护联网车辆的OTA更新安全,Steger等人提出了一种采用区块链(BC)技术的安全架构。所提出的架构通过在所有参与系统的实体之间提供安全可靠的互连,确保软件更新的机密性和完整性以及所有参与实体的隐私,该互连依赖轻量级可扩展区块链来解决传统基础共识算法的固有局限性(即高资源消耗和高延迟),以满足本质上资源受限的嵌入式系统的特殊要求。这种基于BC的架构不依赖于涉及中央管理的网络模型,而是使用分布式环境,每个参与的利益相关者形成一个集群,该集群由一个集群头和多个集群成员组成。使用网络覆盖来互连所有集群头。软件提供商将新软件和更新分发给原始设备制造商,原始设备制造商将其转发给本地软件更新提供商,最终发送给目标车辆,以便安装在目标电子控制单元上。云存储作为安全存储库,用于保存从软件提供商或原始设备制造商收到的更新。这些云存储库通过高级认证机制进行保护,以确保只有授权实体能够访问、修改和下载软件镜像。作者通过OTA更新系统的概念验证实现来评估他们提出的架构,并将其与基于证书的系统进行比较。结果表明,所提出的用于OTA更新的基于BC的架构在性能方面优于传统的基于证书的系统。
尽管区块链技术可以有效地用于保证OTA更新的完整性、真实性和机密性方面,但由于其固有的分布式架构和冗余/复制要求而导致的复杂性增加,引发了成本、时间和精力方面的担忧。此外,更多与更新存储库相关的高级攻击,如慢速检索攻击、冻结更新攻击、无尽数据攻击等,需要进一步关注,这带来了更多的复杂性。最后,该特定解决方案没有考虑根据先前安装的更新向车辆交付所需更新的定制需求。
上述解决方案通过使用加密和哈希函数关注更新内容的机密性和完整性。虽然此类技术有其自身的优点,但它们并未全面覆盖可能危害此类系统安全性的所有威胁类型。
2.4 Uptane框架
Uptane由美国研究人员与汽车行业利益相关者合作开发,是一种汽车软件更新框架,据称能够解决汽车特定的安全缺陷,并提供针对各种安全攻击的保护,同时为不同车辆根据其特定需求提供更新的安全性和定制性。如图2所示,Uptane框架有三个核心组件:图像存储库、控制器存储库和时间服务器。以下是每个组件的简要描述:

图2. Uptane框架概述,说明时间服务器、图像存储库、控制器存储库、主ECU和辅助ECU之间的互连和信息流
2.4.1 图像存储库
图像存储库保存原始设备制造商部署的所有图像以及用于证明所托管图像真实性的元数据文件。原始设备制造商使用离线密钥对存储库中存储的元数据进行签名,以防止攻击者篡改此元数据。
2.4.2 控制器存储库
控制器存储库负责根据存储库的当前状态和当前安装的更新,跟踪并确定向每个电子控制单元交付哪些更新。基于车辆提供的签名清单中包含的信息,控制器存储库确定并准备适合该车辆的更新包。车辆清单告知控制器其先前安装的更新版本。与图像存储库不同,控制器存储库使用在线密钥对元数据进行签名。
2.4.3 时间服务器
由于时间是汽车软件更新中的一个关键方面,因此电子控制单元了解当前准确的时间对于防范冻结攻击至关重要,冻结攻击包括无限期发送相同的更新,即使有新的更新可用。许多电子控制单元不知道当前时间,因为它们没有内置时钟,这正是时间服务器发挥重要作用的地方,它以加密安全的方式向车辆提供准确的时间,帮助电子控制单元抵御与时间相关的攻击。
2.4.4 主电子控制单元和从电子控制单元
主电子控制单元通常在存储容量和连接性方面比从电子控制单元更具能力,从电子控制单元需要主电子控制单元的帮助才能接收和安装软件更新。主电子控制单元直接与控制器存储库通信,以下载元数据和固件图像,进行验证以确认更新的真实性和完整性,最后将下载的更新分发给从电子控制单元。从电子控制单元根据其能力,对图像与元数据进行全部或部分验证,如果验证成功则进行安装。
2.4.5 角色
Uptane框架依赖不同的角色,每个角色负责对不同类型的元数据进行签名,如下所述:根角色负责对元数据进行签名,用于分发和撤销用于验证根、目标、时间戳和快照元数据的公钥。快照角色负责对指示存储库同时发布的图像的元数据进行签名。目标角色负责对验证图像的元数据(例如,加密哈希和文件大小等)进行签名。时间戳角色用于对指示存储库上有新元数据或图像可用的元数据进行签名。下面我们概述威胁建模方法。
2.5 威胁建模
威胁建模是一种安全分析技术,通过使用抽象来帮助识别风险。它在汽车安全工程中起着至关重要的作用,有助于识别潜在威胁和相关防御机制。特别是,威胁建模有助于对系统及其信任假设进行建模,并有助于对攻击者进行建模,以了解他们的动机、能力、策略、技术和程序。已经提出了多种威胁建模方法和技术,下面简要介绍其中一些:
2.5.1 CORAS
CORAS基于澳大利亚风险管理标准AS/NZS 4360:2004,是一种威胁建模和规范语言,包括五个主要活动:1)建立背景;2)识别风险;3)分析风险;4)评估风险;5)处理这些风险。它使用专门的UML用例图来建模威胁和不良行为。
2.5.2 PASTA
PASTA或攻击模拟和威胁分析过程 [86] 是一个七阶段威胁建模框架,旨在提供攻击者中心的系统视图,这有助于制定针对网络威胁和攻击的相关有效缓解策略。PASTA
的七个阶段包括:1)定义目标;2)定义技术范围;3)分解应用程序;4)分析威胁;5)分析漏洞和弱点;6)建模攻击;7)分析风险及其影响。
2.5.3 T-MAP
T-MAP是一种基于攻击路径分析的威胁建模方法,用于基于商用现货(COTS)系统的相关安全路径的总严重程度权重来量化安全威胁。UML类图用于开发攻击路径模型。每个步骤生成四个不同的类图:访问类图、漏洞类图、目标资产类图和受影响价值类图。
2.5.4 STRIDE
STRIDE是一种网络安全威胁识别和分类模型,提供了一种结构化方法,将威胁分为六类:身份欺骗、数据篡改、否认、信息泄露、拒绝服务和权限提升,汇总于表1中。虽然上面介绍的威胁建模方法/系统各有其优点,但在本研究中我们使用STRIDE的主要原因如下:首先,STRIDE
是一种成熟、知名的威胁建模工具,在汽车行业和研究环境中都被广泛使用。其次,它是熟悉且广泛使用的CIA三元组(机密性、完整性、可用性)的扩展。最后,STRIDE有一个相关的威胁建模工具,我们在本研究中利用该工具进行威胁枚举,这有助于我们的攻击树构建过程。

表1. STRIDE模型概述,总结了威胁类别和相关受影响的安全特性
2.5.5 威胁建模工具
微软的威胁建模工具(TMT)最初是为支持其著名的安全开发生命周期(SDL)过程而开发的,用于在软件开发生命周期的初始阶段系统地识别各种安全威胁。顾名思义,TMT允许安全分析师通过采用一种标准符号(称为数据流图(DFD))来对目标系统进行建模,以可视化系统组件、信息流和信任边界,从而使用STRIDE威胁分类模型识别和分类各种威胁。威胁建模工具已经存在多年,其采用和应用不仅限于安全软件工程,还广泛用于支持其他领域的安全评估,包括汽车网络安全测试。
2.5.6 攻击树
攻击树用于以树结构表示对系统的攻击,根节点为攻击目标,叶节点为实现该目标的不同方式。它们可以帮助从攻击者的角度识别系统的各种潜在威胁。作为一种结构化方法,攻击树通过关注恶意行为者为对目标系统发起攻击而实施的威胁和相关行动,实现系统性安全评估。攻击树(如图3所示)包含一个目标(树的根)、一组使用合取(AND)和析取(OR)运算符构建的子目标,以及表示原子攻击者行动的叶节点。当所有子节点都执行时,AND节点完成;当至少一个子节点完成时,OR节点完成。

图3.示例攻击树:此示例攻击树描绘了一个根节点、两个子节点和四个不同的叶子节点。注释指示每种节点类型所承担的角色类型
已经提出了使用顺序AND(或SAND)的扩展。如果A是可能的原子攻击者行动的集合,则攻击树 T 的元素是A
∪{OR, AND, SAND},攻击树由以下语法生成,其中


通过将攻击树解释为串并行(SP)图的集合,定义了攻击树语义。
03. 相关工作
在本节中,我们概述了侧重于汽车渗透和基于模型的安全测试的相关研究。
3.1 基于模型的安全测试
基于模型的安全测试涉及以系统和高效的方式指定、记录和生成安全测试目标、测试用例和测试套件(其中测试用例涉及验证系统是否按预期工作,而测试套件只是为了执行而分组在一起的一组此类测试用例。MBST主要使用模型来验证目标系统是否满足其安全要求(如上面第2.1节所述)。尽管MBST是一个相对较新的研究领域,但已有少数研究将其用于嵌入式和并发系统(涉及网络物理组件)的安全测试,下面介绍其中的两项:
Santos等人提出了他们的汽车网络安全测试框架,该框架使用通信顺序进程(CSP)来表示车辆总线系统的模型以及针对这些系统的一组攻击。CSP是一种具有自己语法和语义的语言,是一种用于建模和分析并发系统的进程代数形式主义。他们使用CSP创建车辆网络和总线系统的架构以及攻击模型。作者声称在其工作中解决的关键挑战之一是分布式环境中测试的可扩展性。他们的系统模型包括网络、连接到每个网络的总线系统以及网关。此外,还可以对网络参数(如延迟)进行建模。还创建了一个攻击模型,将攻击者的能力定义为通道。攻击者的能力可能包括命令欺骗、通信中断、窃听和影响系统行为。作者认为,使用这些模型进行安全测试的一个关键优势是能够详细定义攻击范围和测试用例。
Wasicek等人提出面向方面编程作为一种强大的技术,用于网络物理系统的安全评估,特别关注汽车控制系统中的安全关键元素。面向方面建模(AOM)基于面向方面编程的思想,涉及将横切方面表示为关注点(例如,安全性、服务质量、缓存等)。面向方面建模用于通过建模元素在更高的抽象级别表达横切关注点。有研究提出的技术将攻击建模为方面,旨在在设计时发现和修复潜在的安全缺陷和漏洞,因为对于汽车系统,如果在开发生命周期的后期阶段发现并修复错误,成本会非常高。使用AOM进行汽车系统安全评估可以实现的一些主要好处包括:将功能模型和攻击模型分离为不同的方面,使领域专家能够在不同方面工作而不受干扰;可以轻松建模涉及高风险的现实世界攻击场景;通用模型可以在其他系统中重用。作者介绍了一个汽车案例研究,以自适应巡航控制系统为例。他们使用一个名为Ptolemy
II的特殊建模和仿真框架来开发他们的模型。作者旨在探索攻击对两辆车之间通信的影响。讨论了四种不同的攻击(即中间人攻击、模糊测试、中断和重放)。
上述两项工作都依赖于系统模型,而不是执行任何涉及针对目标系统执行测试脚本的实际测试,没有提供关于被测系统中任何行为/功能变化的可观察见解。另一方面,本研究中应用的方法通过将MBST与渗透测试相结合,使用威胁模型自动推导和执行安全测试用例。
3.2 汽车渗透测试
一般来说,渗透测试是安全测试专业人员通常采用的一种安全评估方法,从攻击者的角度进行安全测试,以发现系统中的安全弱点。
Durrwang等人介绍了他们的方法,该方法结合了安全(危害分析和风险评估)和威胁(威胁分析和风险评估)分析,以支持渗透测试,从而增强汽车安全评估。他们引入了一种使用攻击树来推导安全测试用例的方法。他们的测试用例推导方法主要依赖于安全和威胁分析。作者进行了针对汽车安全关键安全气囊电子控制单元的渗透测试实验,以演示和评估他们的测试方法。由于测试用例来自威胁和安全分析,因此推导的测试用例的充分性和有效性取决于这些分析的质量。此外,该方法的主要重点是识别和测试影响汽车安全的安全威胁。最后,实验仅限于针对车辆中单个电子控制单元的威胁。
Cheah等人提出了一种用于汽车蓝牙接口系统安全测试的框架,该框架依赖于概念验证工具、威胁建模(使用攻击树)和渗透测试方法。虽然该测试方法帮助作者发现了汽车蓝牙接口中的各种漏洞,但安全评估仅限于一个旨在从车辆中提取数据的场景。此外,作者没有使用或解释构建他们所使用的攻击树的系统方法,他们依赖于预定义的攻击树。
04. 威胁评估和安全测试方法
我们的工作在许多方面与上述方法不同:我们使用的方法对汽车OTA更新进行系统安全测试。我们使用结构化威胁枚举方法以及威胁树,通过能够自动推导和执行测试用例的定制软件工具,系统地推导可执行的安全测试用例。
在本节中,我们详细介绍了我们的测试方法,该方法包含一个用于自动生成和执行测试用例的软件工具。
本研究中采用的测试方法受到渗透测试和执行标准(PTES)以及提出的一些想法的启发。PTES 测试方法的一个关键特征是使用威胁建模技术。我们将基于模型的安全测试技术与渗透测试相结合,以更好地识别威胁、系统地推导安全测试用例,并针对汽车OTA更新系统自动生成和执行测试用例。我们方法的图形概述如图4所示。第一阶段
“信息收集” 涉及尽可能收集有关目标系统的信息。此阶段的系统分解是指识别主要组件及其内部和外部接口与交互的过程。该阶段的输出是系统描述,然后由下一阶段“威胁评估”用于检查系统,以确定网络犯罪分子可能利用哪些潜在威胁/漏洞来危害系统安全。基于前一阶段收到的信息,“威胁枚举”步骤生成威胁列表,这反过来又有助于同一阶段的“威胁建模”步骤。由于威胁列表仅提供潜在威胁的高级描述,因此可以通过创建攻击树来识别特定的攻击行动/步骤。下一阶段(即“安全测试”)中的步骤使用这些攻击树来推导测试用例、准备测试脚本,并最终针对目标系统执行它们。我们的原型软件工具分析每个攻击树的结构,以识别和提取可执行的测试用例/脚本。这一系统过程的最终输出是提供已执行测试用例简要摘要的测试报告。我们在以下小节中更详细地描述所有阶段/步骤。

图4.概述用于汽车OTA更新系统的威胁评估和安全测试方法,显示每个阶段的关键阶段、输入和输出
4.1 信息收集
有效的测试需要非常了解被测系统和相关技术细节。然而,在大多数情况下,由于商业原因和子系统的模糊性,车载数字系统的设计规范和实现细节并不容易获得;因此,需要从其他来源收集此类信息,包括公开可用的文档、技术手册,并且通常通过直接观察(如果可行,有时还通过逆向工程)系统来收集。
系统分解 —— 如前所述,有效安全测试的关键要素和先决条件之一是对目标系统的了解。因此,此步骤涉及尽可能多地查找和收集有关该系统的信息。特别是,识别核心硬件和软件系统组件、任何接口、这些组件之间的相互关系、通信技术、协议和关键过程可能非常有用。在此步骤中收集的所有信息都应有助于构建系统模型。系统模型应描述系统的架构和行为方面。为实现这一目标,我们决定依赖标准且广泛使用的建模技术:统一建模语言(UML)。另一种选择是SysML。有了在此阶段创建的系统模型,我们现在能够继续进行下一步:威胁识别。
4.2 威胁评估
此阶段包括两个主要步骤:威胁枚举和威胁建模。威胁枚举涉及使用广泛使用的标准方法 STRIDE 以及相关的威胁建模工具来识别系统的任何潜在威胁,该工具能够以结构化方式枚举各种类型的威胁。
4.2.1 威胁枚举
如前所述,为了进行结构化威胁识别,我们使用了微软的威胁建模工具。信息收集阶段的系统分解步骤(如图4所示)生成的动态系统模型作为绘制系统DFD的输入。DFD绘制完成后,可以生成与系统每个元素相关的潜在威胁报告。工具使用微软的威胁分类系统STRIDE将生成的报告中识别的潜在威胁分类到不同的威胁组中。
4.2.2 威胁建模
虽然使用TMT生成的威胁报告枚举了攻击者可能利用来危害系统安全的所有已识别威胁,但它通常仅限于威胁的高级描述,不提供有关为危害系统安全而执行的特定步骤/行动的信息。有效的安全测试需要充分了解攻击者实施这些攻击所采用的不同方式。攻击树可以有效地帮助识别攻击者使用的特定方法和执行的行动。攻击树构建过程需要明确识别攻击者的目标,该目标作为攻击树的根节点。然后,确定有助于实现总体目标的子目标和特定攻击技术。
4.3 安全测试
此阶段涉及推导测试用例和相关测试脚本以执行它们,以评估安全保护的有效性。我们通过开发软件工具自动化了测试用例生成和执行过程。以下小节介绍了该工具的详细信息。
4.3.1 测试用例生成和执行
传统的安全测试用例推导过程往往是非结构化的、不可重现的、依赖于测试人员的专业知识和经验、未记录在案,并且对测试设计没有或没有足够的理由。为了解决这些缺点或最大限度地减少其影响,基于模型的安全测试方法依赖于被测系统的显式模型,用于系统地(通常是自动化地)指定、推导和执行安全测试用例。
由于本研究采用基于模型的安全测试方法,因此设计并实现了一个软件工具来自动化测试用例的推导和执行过程。该工具经过完全重新设计和重写,消除了对第三方工具和库的依赖,以提高性能和效率。该工具采用Python编程语言编写,具有基于命令行的用户界面,由两个主要模块组成,其中一个负责测试用例生成,另一个负责针对被测系统执行这些测试用例。测试用例生成器模块接受基于XML的攻击树,分析其结构,基于输入攻击树的语义推导测试用例,并将推导的测试用例写入纯文本文件。执行器模块使用该文件针对目标系统执行测试用例。所有测试用例都有其相应的测试脚本存储在单独的文件中。测试执行器使用该文件加载要针对与正在执行的安全测试用例对应的目标执行的测试脚本。
4.3.2 算法
算法1概述了通过分析攻击树结构推导安全测试用例的主要逻辑和主要步骤。函数GenerateTestCases(为方便起见,我们以下将GenerateTestCases称为GTC)接受攻击树作为输入。为此,该工具要求攻击树采用XML表示形式,如表2中的示例所示。可以通过使用ADTool的内置功能来完成转换,允许将攻击树导出为XML格式。可以看出,GTC有多个if-else块,用于确定输入攻击树的细化类型,并相应地处理攻击树/节点。


表2.以XML格式表示的攻击树
第一种情况(从算法的第三行开始)确定输入攻击树/节点是否为叶节点。这是通过确定当前节点是否有子树或子节点来确定的,如果两者都没有,则该节点将被视为叶节点并附加到集合TC中。此处使用集合数据结构的理由是受该数据结构的独特特性(即集合是无序的,其元素是唯一的,不允许重复,并且元素是不可变的)的启发,这使得它们适合保存从OR和AND树推导的测试用例,因为顺序的保留仅适用于顺序AND(SAND)树。
第二种情况(从第六行到第十一行)适用于攻击树 / 节点是OR树的情况。由于这种类型的攻击树假定有一个或多个子节点,因此通过提供当前(即第i个)子节点作为输入,对函数GTC进行递归调用,该子节点经历相同的过程,并且该函数调用的结果返回值(即测试用例)作为子集添加到集合TC中。此过程重复n次,其中n是给定攻击树/子树的子节点数量。处理完所有子节点后,所有测试用例(即TC0到TCi)的并集附加到集合TC中。重要的是要注意,OR的每个叶节点代表一个完整的测试用例。也就是说,如果给定的OR有n个叶节点,则推导的测试用例数量将等于n。然而,请记住,在根节点为OR的复杂攻击树的情况下,该OR包含其他类型(即AND或SAND)的攻击树作为子树,测试用例的数量不太可能等于该OR树的叶节点数量。从算法的第十二行开始,第三种情况适用于AND攻击树/节点。与上面解释的OR树情况类似,子节点被递归处理,返回值一个接一个地附加到中间变量TCi中。处理完所有子节点后,计算所有元素的笛卡尔积,然后执行所有这些积的并集,最后将其附加到TC中。此处的一个额外步骤是置换函数,该函数计算TC中包含的测试用例的所有有效置换,并将结果输出重新分配给TC。最后两个步骤有助于实现叶节点的交错。从AND攻击树推导的单个测试用例可能包含多个操作步骤。也就是说,多个叶节点可以是一个测试用例的一部分。一般来说,从AND攻击树推导的测试用例数量将是n!,其中n表示给定AND攻击树的叶节点总数。
最后一种情况处理SAND攻击树/节点。这种情况与AND树非常相似,但有几个区别。首先,由于保持测试步骤的顺序至关重要,因此应使用能够保留测试步骤顺序的兼容数据结构(例如,列表)。其次,与
AND攻击树/节点不同,不生成置换。通过利用递归一个接一个地处理所有子节点。返回的元素的有序列表包含在TC中。从SAND攻击树推导的测试用例由所有操作步骤连接在一起组成。然而,请记住,包含其他类型攻击树作为其子树的SAND攻击树将基于所涉及的父树和子树的组合语义产生多个测试用例。
05. 实验和结果
在本节中,将介绍汽车OTA安全测试的实验和相关结果。此外,如表3所示,我们列出了在执行安全测试时所做的一些重要假设。对于每个假设,还提供了相应的理由。我们在相关的后续部分(见表9至表13)中指出了其中一个或多个假设的适用之处。

表3. 为各种安全测试用例所做的各种假设列表
定制软件工具对每个攻击树进行了分析,以推导测试用例并生成适当的测试脚本,以便在参考实现上执行。该工具推导了总共15个不同的测试用例,并生成了相关的测试脚本。其中7个安全测试用例在成功执行测试脚本后失败。虽然该参考实现在防御不同攻击方面表现良好,但一些攻击表明,需要对生产系统应用有效的安全控制,以保护电子控制单元与
Uptane 存储库之间的信息交换以及后端服务器基础设施,确保及时且不间断地交付更新。
实验设置
本节详细介绍了用于汽车空中下载更新系统安全评估的测试环境(见图5)。该测试平台使用易于获得的廉价硬件组件构建,为汽车安全测试提供了一个安全、适应性强且便携的测试设置。测试平台的核心组件如图6所示,其所有硬件/软件组件的描述汇总于表4中。我们使用Raspberry
Pi微控制器来模拟主电子控制单元和从电子控制单元,代表Uptane客户端。笔记本电脑托管参考实现的Uptane存储库。使用标准网络交换机促进服务器和客户端设备之间的连接。

图5. OTA测试台示意图,提供主要组件和通信链路的图形概述

图6. OTA测试平台更新安全测试

表4. 用于构建图6所示安全测试环境的硬件和软件组件摘要
5.1 信息收集
在该过程的第一阶段(包括系统分解步骤)中,收集了有关Uptane框架的信息,详情如下。
5.1.1 系统分解
回想一下,为了识别攻击者可能作为入侵点的核心系统组件/外部接口,需要收集有关目标系统的信息。理想情况下,应该生成系统的架构和功能模型,以确定潜在的攻击面。Uptane框架的参考实现以及详细的设计文档可在互联网上找到,这些资源为我们的研究提供了有用的起点。通过在互联网上查看有关该框架的信息,我们重现了Uptane的架构图,如图2所示。
在确定了OTA更新系统的主要实体之后,下一步是识别和理解这些实体之间的交互。基于对收集到的信息的分析,生成了UML序列图(如图7所示),该图表示服务器端和车载组件之间的各种交互。可以清楚地看到,该图提供了有关关键过程以及它们之间发生的信息交换的更有意义的见解。这引出了测试过程的下一步,即威胁评估。

图7. Uptane框架序列图,描绘了Uptane OTA服务器端与车载主ECU和辅助ECU之间的空中更新交互
5.2 威胁评估
威胁评估(如图4所示)有两个步骤,下面的小节分别解释了针对Uptane框架执行每个步骤的方式。
5.2.1 威胁枚举
虽然图7中的序列图捕获了关键的系统过程和交互,但它没有提供有关安全威胁的任何信息。因此,借助这两个图(即图2和图7),构建了图8所示的DFD。请注意,数据流图(图8)包括来自服务器端和车辆端的Uptane
OTA更新系统的主要组件。

图8. Uptane框架后端服务器(参考实施)和车载组件的数据流图(使用威胁建模工具和NCC集团的模板创建)
从图8中的DFD可以看出,服务器端和客户端组件都被矩形包围,表示信任边界。使用了三种不同类型的数据流来指示不同组件之间使用的通信类型。更新服务器和远程信息处理控制单元(TCU)之间的通信使用
HTTP 协议,而车载组件之间使用CAN协议。第三种数据流类型是命令,描述服务器端组件(即图像存储库、控制器存储库、库存数据库等)之间的通信流,假设它们位于同一物理系统上。
TMT工具生成的报告识别了53种不同类型的威胁(表5中提供了摘要),这些威胁可能以多种不同方式危害OTA更新系统的安全。除了威胁的标题外,表5还显示了相关的STRIDE类别和每种威胁的出现次数。例如,第一个威胁
“数据流嗅探” 的计数为9,这意味着有9个不同的数据流可能被攻击者嗅探。同样,TMT识别出至少7个不同的脆弱点可用于未经授权下载更新。图9中的饼图提供了已识别威胁的概述,显示了STRIDE每个类别中的威胁总数。

图9. 在STRIDE威胁分类模型的每个类别中,OTA更新系统识别的威胁数量的图形概述

表5. 该工具识别的威胁摘要。标有*的威胁已包含在实验中,而**表示已考虑了威胁的多个变体
5.2.2 威胁建模
TMT在前面的步骤中识别的潜在威胁并未完整描述攻击者实际如何实现这些威胁。因此,为了识别攻击者可能采用的不同方式,构建了攻击树,详情如下。
5.2.3 攻击树构建
本小节涉及基于先前步骤中识别的威胁构建攻击树的过程。实验中仅包含了一部分威胁,因为这种策略有助于以适当的详细程度有效演示系统安全测试方法的应用。
针对TMT枚举的各种选定威胁(见表5)构建了攻击树,随后是文献中公布的一些已知威胁。回想一下,构建攻击树的分步方法包括识别攻击者通过危害系统安全想要实现的目标,然后确定有助于实现该目标的一种或多种方式。该高级目标成为攻击树的根节点。还回想一下,表5中列出的每种威胁都代表一个潜在的高级目标(根节点)。TMT生成的威胁报告提供了有关攻击者针对每种威胁可能使用的攻击方法/技术的建议。举行了头脑风暴和专家讨论会议,以识别子目标(中间节点)和操作步骤(叶节点)。必要时并在适用的情况下,还查阅了用于识别恶意实体使用的相关攻击技术的在线资源。为了构建每个攻击树,每个选定的威胁场景都被指定为攻击树的根节点。考虑到TMT建议的攻击方法,随后通过头脑风暴会议确定网络犯罪分子可能执行的可能步骤/行动,对每个攻击树进行了细化和填充。按照上述步骤构建的攻击树在后续部分中呈现(见图10至图12)。可以注意到,文章中仅呈现了总共15个攻击树中的3个,而提供了其他相关威胁的摘要。为选定的威胁构建这些攻击树后,将它们组合起来,为Uptane框架的参考实现构建了一个整体攻击树,如图13所示。
如前所述,测试用例的生成和执行是自动化过程,由我们的定制软件工具执行。攻击树是我们自动化测试用例生成和执行过程中不可或缺的关键部分。通过分析每个攻击树的结构,该工具成功推导了安全测试用例,生成了测试脚本并在参考实现上逐步执行。所有测试脚本的执行都是使用前面详细介绍的测试平台进行的。每个实验性攻击的结果以及测试用例详细信息将在文章后面的单独部分中给出。除了测试脚本外,每个测试结果还概述了测试的结果(即攻击对系统的影响)和由此产生的系统行为。下面概述了构建攻击树的过程。
威胁6 - 可以下载更新
这种攻击的主要目的是直接从Uptane存储库下载固件镜像文件,以读取敏感/机密和专有信息(这种威胁属于“读取更新”类别),这些信息以后可用于精心策划和发起针对联网汽车的破坏性攻击。如图10所示,除了主要目标外,攻击树还显示了两种从Uptane服务器下载图像的不同方式(子目标):要么从图像存储库下载,要么从控制器存储库下载。

图10.攻击树-可以下载更新:此攻击树表示表5中列出的威胁6,该威胁涉及在没有任何身份验证的情况下从Uptane存储库下载固件映像
然而,从任一存储库下载固件图像的两个步骤是相同的。这个OR攻击树有两个SAND(回想一下,顺序AND或SAND树是指其每个操作都必须按照箭头所示的顺序执行的树)子树,每个子树都描述了入侵者从服务器下载图像的一种可能方式。
威胁7 - 数据流嗅探
将威胁7的标题分配给树的根节点后,识别实现威胁的具体操作就很简单了。用于确定控制器存储库网络信息的AND子树有两个步骤:一个用于确定IP地址,另一个用于端口号。由于这两个操作可以按任何顺序执行;因此,选择AND合取作为细化运算符。
相比之下,属于根节点的所有其他叶节点必须按照所示顺序执行,否则攻击将不会成功或不会产生预期结果。这种特定威胁旨在拦截Uptane存储库和客户端电子控制单元之间的网络通信。如表5所示,这种威胁总共有9次出现,每个对应于图8中的DFD中的一个数据流。这表明TMT识别出所有这些数据流都容易受到这种威胁的影响。测试中仅包含了这种威胁的一个实例,因为其过程和最终结果将是相同的
—— 不会提供更多见解。图11中的SAND攻击树提供了威胁和相关操作的图形概述。请注意,“数据流嗅探”代表攻击树的主要目标,已识别出四个不同的操作(叶节点)来实现主要目标:第一个和最后一个操作是手动执行的,而其他两个是由工具执行的。请注意,这种威胁对应于“读取更新”类别下的“窃听攻击”。这种威胁和前面的威胁都有一个相同的最终目标,即读取/下载受限制/机密内容以用于恶意目的。如前所述,此类内容可用于创建更强大和复杂的攻击。

图11. 攻击树-数据流嗅探:此攻击树表示表5中列出的威胁7,涉及监控和捕获Uptane服务器和客户端之间的信息交换
威胁9 - 导致控制器存储库远程崩溃或停止
攻击者可能采用多种方式对关键软件更新的交付和/或安装产生不利影响。例如,攻击者可以通过对更新服务器发起拒绝服务攻击来中断重要固件/软件更新的交付。拒绝或阻止更新是黑客可以采用的策略之一,用于阻止删除或纠正当前安装的软件/固件中的软件错误或安全漏洞。
图12中描述的攻击树代表威胁9,该威胁涉及通过向控制器存储库发送大量通信请求使其不堪重负,从而对其发起DoS攻击,导致其无法响应来自客户端的合法请求。攻击的主要目标是阻止向车辆中的电子控制单元交付更新。

图12. 攻击树-导致主管报告崩溃或远程停止:此攻击树表示表5中列出的威胁9,该威胁涉及阻止向ECU发送更新
为了开始执行攻击,需要有关目标(即OTA更新服务器)的基本信息。因此,第一步(叶节点)涉及确定控制器存储库的IP地址。
图12中的攻击树代表表5中列出的威胁9,该威胁涉及阻止向电子控制单元交付更新。
同样,构建了针对图像存储库(威胁10)、主电子控制单元(威胁11)、时间服务器(威胁12)的DoS攻击以及其他涉及危害Uptane存储库/组件的攻击树(即威胁21.1
- 3、22.1 - 2、26.1 - 2、27和28)(然而,为了节省空间,文章中没有呈现这些攻击树)用于实验性攻击。
整体攻击树
为选定的威胁构建所有攻击树后,将它们组合成Uptane框架参考实现的整体攻击树。该整体树如图13所示。子树按
STRIDE 威胁类别进行组织。

图13.攻击树-入侵Uptane框架:此图通过组合所有攻击树,全面概述了实验中包含的所有威胁(入侵Updane框架)。请注意,攻击树已被组织成不同的STRIDE威胁类别。叶子节点包含在此图中
值得在此提及的是,为了构建整体攻击树,仅包含了树的主要目标,不包括叶节点/子节点。该树的总体目标变为
“危害Uptane框架”,子树是实现这一目标的不同方式。由于这个整体攻击树是一个OR树,较小的子树可以在实验中单独使用。此外,由于Uptane框架是一个分布式系统,同时运行所有测试具有挑战性。这是因为当执行一个包含一个或多个测试用例的实验时,它会影响系统配置,需要重置系统才能有效运行其他测试。此外,一些测试需要在客户端进行人为干预/观察才能使攻击行动生效,而当所有测试在单个会话中执行时,这是不可能的。
5.3 结果
在本节中,将介绍汽车OTA安全测试实验的结果。定制软件工具对每个攻击树进行了分析,以推导测试用例并生成适当的测试脚本,以便在参考实现上执行。该工具推导了总共15个不同的测试用例,并生成了相关的测试脚本。其中7个安全测试用例在成功执行测试脚本后失败;这些测试的详细结果在以下小节中呈现。
威胁6:可以下载更新
如表6(左列)所示,我们能够直接从控制器存储库和图像存储库下载固件图像文件,这表明服务器端缺乏任何身份验证/访问控制机制来限制仅允许合法客户端下载。

表6. 威胁6和7的分析结果
威胁7:数据流嗅探
表6(右列)提供了嗅探攻击的摘要,列出了步骤并概述了结果。如表中所示,Uptane服务器和客户端之间的信息交换未加密。来自主电子控制单元的所有远程过程调用(RPC)和来自存储库的响应都是可读的。这个特定的拦截会话还能够捕获固件图像内容。
威胁 9:导致控制器存储库远程崩溃或停止
表7(左列)显示了在控制器存储库受到DoS攻击影响后,主电子控制单元接收来自控制器存储库的任何响应的尝试失败的结果。由于控制器存储库负责与主电子控制单元直接通信,其不可用性将影响整个更新过程的正常运行,因为没有进一步的操作会成功。为了恢复正常操作,必须重新启动服务器。

表7. 威胁9和10的分析结果
威胁10:导致图像存储库远程崩溃或停止
如表7(右列)所示,对图像存储库的DoS攻击导致其停止响应来自客户端的请求。然而,控制器存储库未受到攻击的影响,并继续响应客户端请求。结果表明,主电子控制单元成功从控制器存储库下载了元数据。
威胁11:导致主电子控制单元远程崩溃或停止
在对Uptane存储库成功实施DoS攻击后,我们对主电子控制单元发起了DoS攻击,成功导致主电子控制单元无法正常工作。如表8(左列)所示,从电子控制单元显示错误消息,表明无法与主电子控制单元建立连接。因此,无法向从电子控制单元交付任何新的更新。与针对Uptane服务器发起的攻击相比,这种DoS攻击的严重性较低,因为其影响仅限于一辆车。

表8. 威胁11和12的分析结果
威胁12:导致时间服务器远程崩溃或停止
表8(右列)显示的结果表明,对时间服务器的DoS攻击破坏了其功能,导致主电子控制单元出现不良行为,因为它似乎会永远等待来自时间服务器的包含已验证时间的响应。据观察,对于防止客户端无限期等待响应的情况,没有设置超时限制。为了验证控制器存储库是否响应来自客户端的其他请求,发起了一个向控制器存储库注册电子控制单元的请求,该请求被控制器存储库成功处理,这表明所有其他服务器组件/服务都在正常运行。
威胁21.1:危害控制器存储库以发送恶意更新
表9(左列)展示了旨在向客户端发送恶意固件图像的攻击结果。主电子控制单元在执行验证时发现哈希值不匹配后,没有从控制器存储库下载受危害的固件图像。另一方面,由于图像存储库发送的元数据没有问题,它继续从图像存储库下载固件文件。主电子控制单元检测到异常后,没有将更新提供给从电子控制单元。

表9. 威胁21.1和21.2的分析结果
威胁21.2:危害控制器存储库(使用有效密钥)以发送恶意更新
如表9(右列)所示,主电子控制单元在检测到来自控制器存储库和图像存储库的元数据异常后,拒绝从服务器下载图像。与之前的尝试不同,固件元数据使用有效密钥进行了签名。尽管从两个存储库收到的元数据都是正确的;但是,由于从每个存储库收到的哈希值不一致,主电子控制单元丢弃了该更新。
威胁21.3:同时危害图像存储库和控制器存储库(使用受危害的密钥)以发送恶意更新
表10(左列)中的信息显示了最危险攻击的结果,其中攻击者能够向固件图像添加恶意内容,并使用图像存储库和控制器存储库的有效密钥对其及其相关元数据进行签名。由于更新本身和相关元数据都是有效且正确的,主电子控制单元继续下载恶意图像文件并将其传递给从电子控制单元进行安装。

表10. 威胁21.3和22.1的分析结果
威胁22.1:危害图像存储库以发送恶意更新
表10(右列)总结了一项攻击的结果,该攻击涉及修改图像存储库上的固件图像,使其包含恶意内容,以便发送给主电子控制单元。这种攻击是在没有访问用于签署更新和元数据的密钥的情况下进行的,因此不会成功,因为主电子控制单元不会下载额外的数据。此外,由于仅对图像存储库中的固件进行了更改,当主电子控制单元尝试使用图像存储库和控制器存储库验证图像时,验证将不会成功。
威胁22.2:危害图像存储库(使用有效密钥)以发送恶意更新
主电子控制单元不接受该更新(如表11(左列)所示),因为它在与控制器存储库和图像存储库验证元数据时发现元数据异常。尽管图像存储库使用有效密钥对恶意更新进行了签名,但控制器存储库发送的元数据与图像存储库发送的元数据不同。

表11. 威胁22.2和26.1的分析结果
威胁26.1和26.2:无尽数据攻击
表11(右列)和表12(左列)显示了两种无尽数据攻击变体的结果,其目标是向主电子控制单元发送大量数据以影响其功能。在第一个场景中,我们向固件图像附加了额外内容,并将其重新添加到控制器存储库和图像存储库中。不出所料,主电子控制单元仅下载了原始图像,忽略了附加的额外数据。主电子控制单元读取相关元数据,并下载元数据文件中指定数量的更新数据。然后,我们决定通过替换现有内容或将数据插入到图像文件中除文件末尾之外的位置,向固件添加额外数据。这样做是为了观察主电子控制单元对此情况的响应。主电子控制单元通过发现元数据中的异常检测到对原始固件文件所做的更改。值得注意的是,这两种测试变体都是在没有生成和签署元数据/更新的情况下进行的。

表12. 威胁26.2和27的分析结果
威胁27:回滚攻击
顾名思义,这种攻击的目的是通过替换控制器存储库和图像存储库上的时间戳,使电子控制单元卸载最新安装的图像版本并安装较旧的版本。表12(右列)总结了测试的关键步骤(操作)和结果。主电子控制单元检测到发送给它的是较旧版本的时间戳;因此,它拒绝了该时间戳,因此最新版本的更新没有被回滚。
威胁28:混合匹配攻击
如表13所示,发送给主电子控制单元的较旧固件图像被拒绝,因为附带的元数据不包含该图像的正确属性。因此,攻击未能成功。这种攻击旨在在包含其他图像的更新包中安装不兼容版本的固件。

表13. 威胁28-混合匹配攻击分析结果
06. 讨论
我们在本研究中采用的系统性威胁评估和安全测试方法通过应用结构化方法进行威胁识别、逐步推导测试用例以及实现安全测试用例生成和执行的自动化,揭示了Uptane框架参考实现中的未缓解威胁/漏洞,取得了令人满意的结果。由于除了了解潜在威胁外,还需要清楚知道要测试什么以及从哪里开始,因此推导适当且有效的安全测试用例通常被认为是一项具有挑战性的任务。我们使用的威胁建模技术和工具使我们能够以系统且可重复的方式识别针对汽车OTA更新的多个安全威胁。
6.1 主要发现
虽然使用STRIDE模型进行威胁枚举使我们能够识别可能以多种方式影响汽车OTA更新过程安全性的多个威胁,但我们还纳入了一些过去在更新系统/存储库上实施的已知攻击,包括:混合匹配攻击、回滚攻击和无尽数据攻击。这些攻击的实验结果表明,Uptane框架具有强大的机制来有效抵御涉及更新篡改的威胁。
另一方面,我们的一些测试结果表明,Uptane框架的生产质量、现实世界实现需要针对常见威胁(如拒绝服务和信息泄露)采取有效措施。例如,我们展示了如何在不经过任何访问控制/身份验证限制的情况下轻松从Uptane服务器下载固件图像。此外,结果表明服务器和客户端之间的信息交换如何容易被拦截。为了确保和维护敏感信息的机密性,需要应用最先进的技术来提供足够的保护以抵御信息泄露威胁。同样,针对Uptane存储库和主电子控制单元发起的拒绝服务攻击表明,关键更新的及时交付可能会受到阻碍,从而影响关键更新服务的可用性。
虽然Uptane框架通过引入有效的机制为更新过程中的各种主要威胁提供了解决方案,但我们的实验结果表明,该参考实现在窃听和拒绝服务攻击方面存在漏洞。在生产环境中利用这些漏洞可能会严重干扰向联网车辆分发重要更新。
6.2 局限性
虽然我们使用的方法使我们能够系统地识别各种威胁并推导安全测试用例,但由于不同原因,我们没有在实验中包含所有这些威胁。首先,我们主要关注危害服务器端OTA更新程序的威胁,而没有考虑车辆端的漏洞利用(例如,重新刷新远程信息处理控制单元(主电子控制单元)固件以发送任意CAN消息),因为先前的研究已广泛探讨了这些内容。其次,我们没有考虑STRIDE模型中“否认”类别的威胁,因为这些威胁本身不能对更新程序或系统造成任何损害/干扰。第三,“汽车可能被跟踪”
这一威胁没有包含在实验中,因为它与OTA更新系统没有直接关系/并非OTA更新系统所特有,并且不会影响更新的交付或安装。最后,我们在实验中排除了那些与已研究的威胁具有非常相似的攻击步骤、影响和/或结果的威胁。例如,“使控制器存储库离线”、“向控制器存储库发送大量无效数据”和“导致控制器存储库远程崩溃或停止”具有相似的攻击方法(即DoS攻击)和相同的效果:导致控制器存储库无法响应来自客户端的合法请求。
我们构建的一些攻击树可以进一步详细阐述以包含更多攻击步骤;然而,由于我们的主要目标是演示如果攻击者成功危害更新系统,他们能够做什么,因此我们有意不关注攻击者可能用来侵入OTA服务器的策略和方法。此外,由于我们的研究依赖于自动化测试用例生成和执行过程,因此社会工程学技术(例如,窃取用于在Uptane图像存储库上签署更新和元数据的离线加密密钥或系统管理员的凭据)和其他手动步骤无法纳入攻击树和测试脚本中。
尽管威胁建模工具在STRIDE的不同类别中识别了各种威胁(如表5和图9所示),但它没有报告针对Uptane存储库和客户端的任何欺骗威胁。攻击者完全有可能将欺骗作为危害更新的策略之一。事实上,在我们的许多实验中,我们假设攻击者正在欺骗/冒充Uptane服务器。
07.结论
许多主要的原始设备制造商正在采用Uptane框架向联网汽车中的车载组件交付所有类型的软件和固件更新。这些现代汽车搭载了复杂的计算系统,运行着数百万行代码的软件应用程序,需要频繁且定期的更新以增强功能、进行维护和修复安全漏洞。因此,远程交付的更新和相关程序必须是安全的,因为恶意或受危害的更新可能会危害车辆及其乘员的安全。最重要的是,考虑到其未来可能被广泛采用(影响数百万辆汽车),对该解决方案进行深入的安全分析至关重要。为了提供全面的安全测试/分析,本研究展示了系统性威胁评估和基于模型的安全测试方法在汽车OTA更新系统(使用Uptane框架的参考实现)中的应用。
我们的测试方法包括使用标准威胁分类系统STRIDE和相关工具(称为威胁建模工具)对OTA更新系统的主要威胁进行系统性威胁枚举。由于生成的测试用例的质量在很大程度上取决于所使用的方法(本研究中是基于攻击树的威胁建模)的质量,因此定义明确的结构化方法可能会在构建有效的攻击树和安全测试用例方面产生重大影响。
本工作的核心科学和技术贡献概述如下:
1. 一种用于构建攻击树的系统性威胁分析方法;
2. 一种使用基于攻击树的基于模型的安全测试方法的测试推导方法;
3. 通过应用系统性威胁评估和安全测试方法对Uptane框架进行深入的实验性安全分析;
4. 通过实施专用软件工具实现测试用例生成和执行的自动化。这个强大的软件工具能够通过对攻击树结构进行智能分析来生成和执行安全测试用例。
本研究对Uptane框架进行了深入的安全分析和系统测试,通过检查系统模型枚举各种威胁、从威胁枚举结果构建攻击树、通过分析构建的攻击树结构推导有效的安全用例以及最终在该实现上运行这些测试用例,证明了我们方法的有效性。前面部分介绍的安全评估的详细结果和发现通过揭示系统的未缓解威胁和漏洞展示了我们方法的有效性。根据攻击树精心设计的实验性安全攻击帮助我们评估了框架中内置的安全控制和机制。本研究的实验结果发现表明,虽然Uptane总体而言是一种有效的解决方案,可针对众多安全威胁提供保护,但该参考实现在信息泄露和拒绝服务威胁方面存在漏洞,在生产环境中必须认真考虑这些漏洞,以保护更新免受网络攻击。
对于未来的工作,我们旨在自动化攻击树构建过程,这是我们方法中当前的手动步骤。我们还计划在其他汽车OTA更新系统上评估该测试方法。
|