汽车网络安全渗透测试

创提信息
2022/02/14

分享到

“转载自维克多汽车技术(上海)有限公司,作者Vector China”


产品和企业IT的融合引发了新的网络安全风险,从功能安全到数据隐私都面临潜在威胁。汽车行业正在使用各种方法进行安全检测和验证,但传统的安全测试中漏洞检测低效且不完整。Vector带来一种使用更少测试案例的增强型灰盒渗透测试,能够在提高覆盖率的同时降低误报。


汽车是车轮上的计算机,安全对其至关重要。这也对其他IT系统提出了挑战:确保所有操作模式下的功能安全。产品IT和企业IT的不断融合对网络安全提出了较高要求。当前,ISO 21434国际标准和UNECE R.155(CSMS)以及R.156(SUMS)两个法规,要求在汽车整个生命周期中强制执行系统性的风险缓解措施[1,2,3,4,5],并且对于安全测试部分,法规和标准要求实施传统测试叠加专属安全测试的解决方案。
 
渗透测试特别有助于识别和降低在开发设计过程中未被考虑的网络安全攻击。作为白帽黑客常用技术,渗透测试通常在与安全相关的V模型开发流程中的验证阶段进行。为了有效地使用渗透测试,本文会介绍如何将其与V模型左侧连接起来。涉及的相关步骤为:范围界定、信息收集和监测、威胁建模、漏洞分析、发掘和报告。渗透测试人员需要像黑帽黑客一样思考,以白帽黑客的角度渗透到系统中,去发掘和排除漏洞,以消除或降低其所带来的潜在威胁。
 
渗透测试主要有三种类型,即白盒、传统黑盒和创新的灰盒渗透测试(GBPT)。白盒渗透测试方法是一种纯粹的知识型测试,系统的所有源代码和内部数据都可供测试人员使用。虽然这种方法相对来说带来最多的测试结果,但耗费大量的时间和精力。黑盒渗透测试(BBPT)也被称为传统渗透测试,是一种非知识型测试,测试者只了解公开的文件和标准。通常在这种测试中会采用暴力破解法,由于需要覆盖大量信号和场景的排列组合,同样需要投入相对较多的时间和精力。
 
由于黑客掌握大量的架构知识、软件和漏洞信息,他们会通过各种途径攻击系统。GBPT有助于提高系统在网络安全方面的鲁棒性。在GBPT中,基本的高层架构信息和来自网络安全需求分析阶段的TARA分析结果,共同被作为GBPT的输入。这种方法花费的时间和精力相对较少,在当前阶段比传统的BBPT更具优势。而传统的BBPT既没有一个良好的功能需求跟踪机制,也没有考虑高层架构信息以确保涵盖所有的漏洞和攻击路径,缺点在于不能首先解决风险最高的漏洞。这种传统的BBPT机制需要大量的时间和精力,因此需要修改测试方案,使之既有效又高效。


灰盒渗透测试
 
基于TARA的增强型灰盒渗透测试(GBPT)方法包括10个步骤,已被证明在效率和覆盖率方面比传统的BBPT更具优势。该测试方法以风险为导向且具有良好的可追溯性机制,以确保用最少的时间和精力来覆盖所有的漏洞。GBPT基于传统的渗透测试,通过引入资产、威胁和架构等理念来增强测试效率和效果。具体来说,GBPT采用三峰模型来建立和维护基础的可追溯性[6]。为了避免像单纯的白盒方法那样产生盲点,测试中保留了外部黑盒的视角,因此称之为 "灰盒"。


汽车网络安全渗透测试-2.png
 
图 1| 贯穿整个生命周期的灰盒渗透测试十步法则

 
为了便于实施,GBPT可以分为10个步骤[6],图1。
 
1. 提取系统信息。这涉及到基本特性、用户体验,也包括负面需求(误用、滥用和混淆的情况)。特性被推导出来的过程是专业级可追溯性模型的起点。
 
2. 模型化基本架构和接口。确定产品的组件,这些组件应该能够纵向追踪到电路级组件,以进行自上而下的递归渗透测试。
 
3. 识别相关资产。从安全、操作性能、隐私和立法等四方面追踪各资产的特征,以确保详尽的覆盖。
 
4. 分析硬件和软件需求。许多与硬件、协议、IP堆栈等相关的规范都可以在网上找到,黑客也会使用这些规范。使用公共漏洞数据库,如CVE漏洞库来锁定弱点。
 
5. 进行威胁分析和风险评估(TARA)。基于面向攻击向量的前向追踪链路,借助与需求相关的失败系统测试用例,进而推导出危害场景。
 
6. 创建一个最小可行的渗透测试案例库。通过攻击向量的ID对其进行追踪,以确保良好的测试案例覆盖率,并产生一个最小的、非冗余的渗透测试案例库。
 
7. 实施渗透测试。使用上一步骤中产生的最少可行测试案例,并报告有效和无效的漏洞。
 
8. 用KPI来衡量性能。有效漏洞的数量和最少可行的测试案例数量被用来计算衡量GBPT有效性和效率的KPI。
 
9. 进一步提炼出功能性网络安全要求。使用三峰模型法来系统地识别必要的安全保护[6]。
 
10.实施回归测试。每一次变化都需要进行回归测试,使用GBPT开始阶段创建的可追溯模型,可以使该测试效率最大化。


案例研究:信息娱乐系统和以太网
 
在以太网的帮助下,软件和配置的更新可以更快地部署。与CAN等总线技术相比,以太网可以通过VLAN和网络交换机等技术实现更彻底的功能解绑(即独立的功能域,一个功能域内的独立功能)。结合使用交换机、与IEEE 802.1Q标准相关的VLAN规范、服务质量(QoS)以及防火墙等概念,可以限制网络内部的通信路径并兼顾数据包的优先级。
 

汽车网络安全渗透测试-3.png

图 2| 基本网络拓扑的简化架构


在此基础上,我们将应用TARA分析。Vector Security Check和既有的基本网络安全工程方法,已经完成了对目标的安全评估并对相关建议措施进行了实践。TARA分析汲取了Vector全球范围内网络安全项目的宝贵经验,并参考行业内如EVITA,HEAVENS等汽车开发中关于安全风险评估方法的最佳实践[1, 2]。在此基础上,简化后的用例场景包括汽车的常规使用、汽车诊断和售后优化改进。
 
首先,对资产进行分析。所需的资产存在于给定的架构中,他们是开关的开关功能和过滤功能,过滤器,防火墙的前向功能,以及通过交换机和防火墙的跨域通信,域的正常运行,与隐私有关的数据和知识产权(IP)。
 
可识别到的以太网交换机和连接区域的具体威胁为检测到ECU性能下降,访问个人数据(如联系人),数据丢失和向驾驶员显示错误警告。此外,通过使用有效的组件号克隆和引进假冒组件,窃取制造商的知识产权或安装非授权软件来威胁车辆的安全,干扰和分散驾驶员的注意力,以上这些也都属于被识别到的威胁。
 
由此可以得出以太网交换机和连接区域的具体攻击向量,例如抑制通信的DoS攻击、漏洞利用、CAN总线上的报文欺骗和个人数据的窃听,以及功能的远程控制,操纵中央网关模块(CGM)的路由表和改变过滤策略。其它衍生的攻击向量比如重放旧的清单和报文,破坏或删除日志,以及破坏从信息娱乐系统发送到其他ECU的关键信息。COMPASS工具被用来归档威胁和攻击向量,从而实现对渗透测试的追踪、优先级处理和归档(图3)。


汽车网络安全渗透测试-4.png

 
图 3| 完成资产和攻击向量定义后的威胁场景示例


鉴于攻击向量和参考架构,GBPT的先决条件可以用最常见的预期攻击来完成,如DoS、MAC欺骗、窃听、VLAN跳转和注入恶意软件。在重复GBPT的基础上,采用适当的安全机制以降低重大安全风险,例如防火墙、VLAN和网络隔离、IDS和安全启动以及安全记录、安全通信(MACs、MACSec)和加密。
 
所提出的安全目标被进一步分解为安全要求,以便于实施和测试。应选择合适的安全机制来实现安全目标。为了将可行的回归策略制度化,每一个增量都要执行GBPT的子集,每次交付时Security Check都是更新Safety Case的一部分,而该Security Check是基于一组给定的设计规则而进行的剩余风险分析。图4提供了案例研究中的一个例子。


汽车网络安全渗透测试-5 小.png汽车网络安全渗透测试-6 小.png

 
图 4| 案例研究中的剩余风险分析


灰盒渗透测试(GBPT)的好处
 
GBPT有助于创建一个更准确的攻击树,包括所有可能的攻击向量并且涵盖全部场景。不像传统的BBPT,攻击树可能包括失败的威胁路径,并可能错过一些重要的威胁路径,因为测试人员没有完全了解系统的原理图。黑盒渗透测试员可能会漏掉不同的架构配置。这些不同的配置和路径对渗透测试者来说是至关重要的,因为它们有助于排除破坏系统的所有可能性。与GBPT方法相比,黑盒渗透测试者只知道现有文件的信息,没有系统的内部架构知识。通常在这样的测试策略中会使用暴力强迫法,这导致需要执行很多步骤去发掘系统,耗费了更多的时间和精力。此外,攻击向量不会根据风险等级被优先排序,因此可能导致由于可用资源有限或由于测试案例失败而错过最关键的攻击向量。所以,一个传统的BBPT会产生许多测试案例,而测试案例数量的增加会导致额外的工作量、时间、资源投入和成本。
 
有效漏洞的发现数量和测试案例的数量被用来作为衡量测试有效性和效率的KPI。以效率和效益为指标对两种策略进行比较,结果表明GBPT使用较少的测试案例数量,从而降低了测试成本,提高了效率。与传统的渗透测试相比,GBPT的缺陷检测率也更高,也因此提高了有效性或覆盖率。通过直观的对比,我们能够用GBPT识别更有效的威胁,耗时大约是BBPT的一半。实际案例研究的分析表明,基于TARA的GBPT测试,案例数量更少,命中率更高。因此,以风险为导向的GBPT是更有效和更高效的测试策略。
 
有效的网络安全要求在汽车自身及其组件的生命周期中采用系统化的流程,尤其是在后期由于法律的缘由而必须证明这一有效性时,在前期确保流程的系统化就更加至关重要。本文努力为具体的误用案例以及如何进行相应的验证提供指导。事实证明,GBPT比传统的验证方案更有效率和效果。此外,工程师的心态也必须改变,除了要关注安全功能,更要关注安全设计和验证。企业IT部门多年前就意识到采取一些隔离机制,比如将功能分布在专属子系统中、组件级的保护、组件间的网关和防火墙、关键功能的验证等是不够的,以攻击者的视角进行智能测试同样不可或缺。