维克多(Vector)为汽车及相关产业的OEM及供应商,提供专业的开放式开发平台。在安全领域中提供各种安全开发和测试工具,安全软件组件和安全咨询服务,应用于嵌入式系统的创建,基础协议站在MICROSAR的网络安全部署中居于关键地位。
维克多汽车技术(上海)有限公司商业开发经理范科发围绕《车端网络安全一站式解决方案》展开演讲,以下是演讲内容整理:
维克多汽车技术(上海)有限公司商业开发经理范科发
ISO 21434标准下的车端安全测试
今天话题主要聚焦在车内安全通讯和相应的测试技术适用上。比如说已七层架构的以太网为例,需要在每一层之间实现通信,那么每一层都会有潜在的网络攻击点,就要求我们对各种各样的入侵手段进行相应的处理。具体来看,汽车行业已经给出了明确的答案,分别在每一层上都有相应的技术手段,去保证通讯是能够安全进行,比如SecOC、TLS、IPsec和MACsec等
我的同事刚才已经介绍了设计和实现阶段维克多提供的安全方案,我现在要谈的是测试端的安全测试,后面会提到如果客户使用了加密技术,那么从开发到调试的过程中怎么进行解密。安全规范体系ISO 21434里面有定一些方法论,同功能安全ISO 26262测试的规范有一定差异,但大部分还都是类似的。
车端安全测试主要包括涉及安全的功能测试,主要测试与安全相关的函数的正确行为和系统健壮性,是对产品安全性(机制)的测试,后面就是漏洞扫描(用于测试已知漏洞)、模糊测试(尝试通过向目标系统发送无效的、未定义的或随机的输入来发现实现的新漏洞,属于黑客视角寻找漏洞的首选技术)和渗透测试(对SW+HW系统进行高度个性化和创造性的测试)。
CANoe在SIL/HIL网络安全测试中的应用
维克多持续在测试领域深耕,在网络安全引入车载系统中也构建完整的测试解决方案。一般而言,供应商会接触到大量不同的OEM加解密项目需求,因此选用的工具也需要支持不同的OEM加解密体系,才能够将后续生产、测试、DV、PV等各个阶段衔接起来。工具仅仅捕捉数据是远远不够的,还需要将数据转变为能够识别的报文,进而加为开发、测试和生产环节服务。
从工具层面看,OEM这几年进行通信加解密处理时,有可能通过密钥,也有可能通过证书,所用到加解密算法、在不同层面使用的加解密技术都不同,尤其在HPC、区域控制器领域。因此,供应商需要在工程中花大量的时间,去提前了解不同加解密技术,最终在开发环境进行调试和测试,这样看下来是一件很麻烦的事情。
此外,安全性、新鲜值、证书等状态在开发ECU、量产交付、售后维护这三个阶段的状态也不一样,这就带来一个问题:供应商在生产线上部署的工具体系能否支持不同阶段的应用?维克多所推出的CANoe作为老牌的工具,也是希望在网络安全领域更好地满足工程应用。
图片来源:维克多
那么如何处理以上的各种问题?维克多提供包含系统化的安全管理工程方案,包含HSM, Secure Boot, SecOC, Secure Diagnostics等,安全管理方案(Security Manager)可以为维克多所有工具和加密材料的来源提供一致的接口,降低nominal函数测试人员的安全性复杂度,属于高度集成的解决方案(不需要适应现有的工具链)。
图片来源:维克多
此外,维克多CANoe可以针对专门的安全性插件提供所需服务,我们部门主要做的就是将加密报文呈现为明文,支持AUTOSAR标准和OEM所需特定变体的SecOC通信,可以实现消息加密、新鲜值的管理,针对以太网通信安全也能够做相应的支持。
汽车网络安全模糊(Fuzzy)测试“利器”:vTESTstudio
接下来是模糊测试,通过CANoe可以将通讯测试系统上的加密报文转换为明码,使得后续测试可以依照传统测试的步骤进行。在做好安全功能和安全通信模块的测试后,需要去做相应的模糊测试,模糊测试主要有两个方面的区分:第一是针对信号应用层做模糊,另一方面是基于通讯、基于报文去做模糊。
在模糊测试中比较核心的概念是:模糊测试的时候要监控什么,希望发现什么问题?这一点在行业仍然没有很明确的定义,有可能去测应用,有可能去测ECU,不同层面、不同工程师关注的不一样。
接下来讲一下什么是模糊测试,模糊测试由测试环境、模糊测试用例生成器和监控数据流三部分组成,需要易用的测试工具来实现各类攻击的模拟,即自动化生成模糊测试用例,从而为测试系统提供高收益。用于模糊测试的模糊测试器(Fuzzer)分为两类:基于变异的模糊测试器,通过对已有数据样本进行变异来创建测试用例;基于生成的模糊测试器,利用被测系统使用的协议或文件建模,基于模型生成输入并据此创建测试用例。
以上,模糊测试定义中最重要的其实是模糊测试器。简单来说,只要测试人员在工具体系里面修改模糊测试器,能够按照算法规则去生成相应的随机数,给到ECU,就可以定义为模糊测试,只是生成器需要用的数据不同。
维克多的方案复用了HIL和SIL的自动化脚本开发工具vTESTstudio,嵌入模糊测试所要用到的模糊测试引擎,在里面配置相应的测试数据主要是Ethernet和CAN通信的报文层面,Ethernet和CAN传输的信号层面、I/O或A2L信号层面等。以DBC里面定义的三个信号为示例,把这三个信号通过vTEST studio中的模糊引擎在工具里面进行相应的配置,每个信号会按照配置的规则生成模糊测试数据。这三个信号在生成的时候,信号之间会按照Sequential、Pairwise、Combinatorial几种规则进行配置组合,组合之后,测试人员会把这些数据输入到测试环境和ECU。
在模糊测试这块,最难的在于测试需要监控观测项。比如说,有可能一组数据给到ECU,使得对应Task对CPU的占用率很高,如果观测人员要去监控数据输入中对CPU的占用率,这个时候怎么做?毫无疑问要在板子里面设置测量函数,要对一定时间内的CPU占用率进行监控,这就需要利用控制器本身的调试口,将其对CPU的占有率在测试过程中传递到CANoe中。
除了报文层面能够做模糊,维克多也能够做I/O层面的模糊,因为CANoe本身是HIL环境的测试工具。CANoe结合vTESTstudio为嵌入式系统开发工程师提供攻击者视角的同类攻击注入,并通过复用已有配置工程数据生成模糊测试用例。CANoe的强大功能有助于强化汽车电子行业Fuzz test器环境:可适配不同OEM,不同网络协议和数据库;支持数据记录、数据回放,并提供详细的自动化测试报告。
图片来源:维克多
此外,动态测试方案可覆盖HIL中的真实ECU和SIL中的虚拟ECU两种情况,维克多两种都可以提供,只不过在真实板测需要提前插桩,通过调试口拿数据,维克多在工具里面给定的每一条测试率都可以在执行过程中拿到Coverage。
接下来讲一下CANoe做模糊测试的优势,简单来说,测试人员可以直接使用研发部门所开发的CANoe工程,在上面嵌入模糊测试器,进而直接进行相应的模糊测试。
通常模糊测试引擎是基于“黑盒”测试技术,然而在汽车电子行业开发验证系统中复用已有的配置工程(如网络通信协议和控制器逻辑状态功能)及工具可实现“白盒”测试技术。此外,当软件功能发生变更时,可结合持续集成环境实现验证的快速迭代。
因为CANoe的存在,维克多更多会使用灰盒模糊测试,黑盒是对于通信报文做模糊测试,利用已有数据库,利用其内部的信号和变量,直接操纵报文中传输的信号,从而更加高效地得出结果,因为灰盒的模糊测试效率比“暴力”黑盒的方式更能确定系统存在的问题。
渗透测试、漏洞扫描和诊断测试
模糊测试的下一个环节是渗透测试,一般OEM会委托指定的机构作渗透测试,在渗透测试里面用的最多的技术手段就是刚才讲的模糊测试,测试人员会通过模糊的方式排查ECU的漏洞,也是有白盒、灰盒、黑盒的不同方式,维克托咨询部门为整车厂和tier1在ECU和车辆层面提供独立的渗透测试和进一步的操作保证。基于灰盒方法,适合增量回归测试,比传统的渗透测试更高效。
图片来源:维克多
最后讲一下漏洞扫描和诊断测试,漏洞扫描主要是针对已知进行测试,需要提前积累漏洞库,也就是对代码规则,行业规则有一个提前的把握,这一方面维克多已经有多年的行业积累。
随着车辆中ECU复杂度的增加,诊断测试的测试范围以及完成诊断功能验证需要花费的时间和精力也在增加,尽管诊断测试的范围不断扩大,但创建和执行测试用例的时间和人力投入相对稳定。基于CANoe.DiVa的诊断自动化测试方案显著减少了诊断验证所用的时间和人力投入,同时极大地增加了测试的广度和深度。如果每个ECU都有CDD或ODX格式的诊断数据库,那么从诊断需求规范到全面的自动化协议测试只需一小步,仅需很少的准备工作就可以检测到协议错误。CANoe.DiVa的测试后处理能力包括:分类、过滤测试报告,便于获取期望的测试结果;链接失败的测试用例与测试数据流(Trace);为各个测试结果添加注释,便于对错误以及错误原因进行分类。记录纠正措施,控制故障排除;将测试解决方案链接到现有测试数据管理系统或需求管理系统,方便集成到现有流程中。当前,全球众多整车厂都在采用CANoe.DiVa实现诊断测试。
在安全测试服务方面,维克多不仅仅提供工具咨询,也提供安全测试系统搭建和改造升级服务。
图片来源:维克多
(以上内容来自维克多汽车技术(上海)有限公司商业开发经理范科发于2022年8月25日由盖世汽车主办的2022中国汽车信息安全与功能安全大会发表的《车端网络安全一站式解决方案》主题演讲。)