基于云平台的智能网联汽车软件测试技术研究

2019-01-04 07:57郑家波
汽车电器 2018年12期
关键词:智能网安全性软件

郑家波,陈 卓

(广州电力设计院,广东 广州 510000)

随着全球工业智能化发展以及交通安全、出行效率和环境保护等系列问题凸显,智能网联汽车基于V2X技术建立的智能安全辅助驾驶系统,能够通过车辆间无线通信,实现道路安全提升,疏解交通拥堵,提高运输效率。基于智能网联汽车的研究与测试,已经逐步成为一个研究热点并形成了相关的标准规范[1]。V2X技术也逐渐引用和部署至智能交通领域,智能网联汽车发展也列入国家“中国制造2025”的战略规划,成为重点研发产业之一[2]。

V2X智能网联技术是基于物联网车载传感器、控制器、执行器等装置,运用D2D技术、信息通信技术等,实现车与人、车、路、后台等在内的面向应用的智能信息交换共享,实现复杂的环境感知、智能识别、决策控制和协同执行等智能操作,并可替代人类操作的新一代智能汽车。

目前V2X技术在汽车智能化应用中还处于起步阶段,其技术应用带来的交通安全问题、信息安全问题以及各类软硬件设备的稳定性、兼容性及各类车载无线设备的频谱共存和电磁兼容等问题尚未解决,针对智能网联汽车V2X技术的测试及示范运行是智能网联汽车行业普及应用的关键[3]。

1 智能网联汽车软件测试方法

智能网联汽车已经成为继传统PC、智能手机、平板电脑后衍生出来的第四个大规模扩展应用的终端。V2X技术包含了汽车自身驾驶功能,还包含其他应用满足其驾驶的安全性、稳定性需求,因此,基于V2X的软件测试技术需要覆盖所有的功能、性能、安全性、可靠性,同时需要满足相应的行业标准规范。

1.1 功能测试

汽车电子电气系统功能与安全密切相关,由于可能存在系统性失效和随机硬件失效,导致功能性故障,产生不可接受的风险。随着智能网联汽车电子电气系统的复杂性和集成度不断提高,功能安全风险随之增大。功能安全重点关注系统故障后的行为,而不是系统的原有功能。智能网联汽车自身的安全性应得到保证,即其中可能存在的残余安全风险应当被控制在可接受的范围之内。功能安全检测应满足国际标准ISO 26262的功能要求[4]。ISO 26262标准定义了贯穿车辆系统全生命周期的一系列功能要求,将汽车安全完整性等级 (ASIL)分为A、B、C、D 4个等级,其中ASIL D为最高等级,同时将功能安全验证测试作为检验系统是否满足既定安全要求的重要手段。

功能安全验证测试首先需要分析待测系统的功能和组成 (包括传感器、控制器和执行器),然后考虑系统及各个组成部分需要达到的ASIL等级,对最关键的单点故障进行故障注入测试。ISO 26262定义了不同ASIL等级的系统单点故障指标应达到的诊断覆盖率,如表1所示[5]。

表1 基于ASIL等级的诊断覆盖率

进行功能验证时,对待测对象注入典型故障进行测试,系统应能对故障进行正确探测,并产生适当的降级响应,测试评估准则为注入故障后系统不能产生任何违背车辆安全目标的失效行为。

1.2 性能测试和压力测试

V2X技术高度融合了移动互联网、大数据及云计算等平台的数据处理技术,需要对海量数据进行处理和分析,将处理结果作为智能决策依据,智能网联汽车在车联网系统中需要及时上传自身行驶数据和车辆情况,收集车联网系统中其他汽车行驶数据并反馈行驶建议,因此,在数据处理方面需要满足更高的性能要求。车联网应用软件开发者和测试人员在软件应用的开发和测试过程中,对软件品质、性能的测试环节工作量异常繁重、测试手段较为原始、效率低、成本高、周期长,无法满足软件快速迭代特性及大用户负载需求。采用云测试模型,在本地写好自动化测试脚本,上传至服务器平台网站,在云平台运行脚本,进行性能压力测试,实现大用户负载、并发,更真实地对V2X应用软件进行性能测试。

1.3 安全性测试

智能网联汽车的大量生产及车联网发展的同时,尚未考虑相关安全防护建设,导致存在很多漏洞。通过车联网的安全漏洞给用户带来很大的财产安全风险,诸如TSP平台、APP应用、Telematics上网系统、车机IVI系统、CANBUS车内总线等相关安全威胁风险。基于V2X技术的智能网联汽车安全驾驶功能的实现,需要对海量数据进行处理分析,其产生的数据规模呈现爆炸式的增长,也隐藏巨大的价值,同时面临黑客攻击、木马病毒等安全威胁,安全风险与日俱增,针对智能网联汽车产生的敏感信息安全风险防范与管理亟待加强。

通过内部测试、数据共享等方式收集漏洞信息,按照云服务、通信、车内、外部威胁4种类型对漏洞进行分析、审核、验证和存储,并逐步对行业公开通用型漏洞,形成安全漏洞智库。同时,围绕数据全生命周期,在数据产生、传输、存储、应用等环节存在的安全风险进行检测评估。安全性测试主要体现在以下几个方面:①汽车驾驶身份识别;②敏感信息的窃取泄露;③典型车载应用软件的安全性,例如移动金融类软件;④智能网联汽车系统自身的防破坏及自修复能力。

安全性测试主体包含基于渗透、基于风险和基于威胁的3种测试途径。基于渗透的安全性测试使用自动化或人工方法模拟黑客输入,对车联网系统进行攻击性测试,从中找出运行时刻存在的安全漏洞;基于风险的安全性测试把风险分析与管理、安全测试以及软件开发过程统一起来,在软件开发各个阶段把安全风险漏洞考虑在内,通过误用模式、异常场景、风险分析等技术进行安全测试[6];基于威胁的测试从软件外部考察软件的安全性,识别软件面临的安全威胁并测试是否能够发生。威胁建模的主要步骤是识别要保护的资产,分解应用程序,包括识别入口点、出口点、信任边界、数据流描述等,识别安全威胁,找出威胁可能的实现过程,例如欺骗、篡改、否认、信息泄露、拒绝服务和特权提升等。通过攻击树对威胁实施过程建模,量化潜在损失、威胁重现性、可利用性、受影响的用户数量、威胁的可发现性,评估量化威胁等级,计算威胁风险值。

1.4 可靠性测试

智能网联汽车软件可靠性测试采用嵌入式软件可靠性应用模型,基于故障注入技术,按照已知的故障模型,将故障注入运行环境下的智能网联汽车系统中,分析被测系统的行为,针对其稳定性、可靠性给出定性或定量的测试验证结果[7]。基于故障注入的可靠性测试框架如图1所示。

图1 基于故障注入的可靠性测试框架

智能网联汽车软件可靠性测试要求具备多种不同类型的故障模式,例如电气信号故障注入、通信接口故障注入、软件缺陷故障注入等,按照一定的策略组织起来并连续注入到被测系统,为故障场景仿真提供高可信的技术手段。

针对智能网联汽车软件可靠性因素的故障注入测试系统可以完成产品计量、通信和时钟3个主线的故障注入测试及分析。故障注入系统由六大部分组成,包括控制器、故障模式库、故障数据、故障注入器、数据收集器、结果分析器。控制器采用设计的故障模型或根据故障模式库生成故障数据。故障注入器将生成的故障数据注入待测系统。故障注入后数据收集器收集故障对目标系统影响的信息,导入分析器,对结果数据进行分析并生成统计数据。

2 基于云平台的智能网联汽车软件测试

车联网资源整合的发展趋势是云计算,云计算系统是向用户提供各种服务的分布式计算系统,其本质是对虚拟化的计算和存储资源进行动态部署、动态分配/重分配、实时监控的系统,从而向用户提供满足QoS要求的计算服务、数据存储服务及平台服务[8]。智能网联汽车作为大型的移动终端,能够采取其他移动终端的测试方法和测试管理经验[9]。基于测试云的新型测试方案,结合其交通工具的基本属性,能够满足测试需求,并有效降低巨量的测试工作。

2.1 云测试概念服务与架构

智能网联汽车应用软件云测试基于足够规模的集群,满足申请用户需求,提供以下几种服务。

1)测试环境可伸缩。用户通过请求,申请不同的环境资源和测试云服务,云服务提供商提供用户完整可用的环境。

2)多用户并发测试。云测试平台提供多类型的编译测试工具及用例覆盖分析工具,具备不同类型的测试能力,包括功能测试、性能测试、安全性测试、可靠性测试等。从系统整体实现角度出发,根据测试周期选择不同的测试类别,涵盖车载终端单元测试,车内网集成测试,接入系统平台系统测试等。

3)管理服务。智能网联汽车后台信息服务借助移动互联网技术整合第三方内容和数据,并对海量信息进行融合处理,实现车辆检测、道路救援、实时交通、网上预约等服务与应用,该子系统是车辆网测试中发现的问题高发区。云测试平台应提供数据驱动测试管理服务,支持测试管理及缺陷管理,根据测试脚本和测试数据以及测试主题进行问题分析,同时满足用例的云端上传、下载、分享和迁移。

4)自动化测试与控制服务。根据智能网联汽车应用软件的测试需求,对测试任务进行合理分配调度,提供自动化测试及用例控制。

5)测试集成解决方案。车联网系统的复杂性决定了测试过程需要从多角度、多维度对系统进行综合测试。以测试需求说明为输入,对功能逻辑分析、特性分析、因果分析、场景分析、优先级分析等加工输出系统测试用例。通过提供不同的解决方案、测试模型、测试方法和算法适配及组合,提供集成化测试方案。

6)仿真环境测试。提供虚拟实验场景的车辆仿真软件,实现对确定性的交通情况模拟,基于Matlab/Simulink软件环境进行建模和仿真计算与验证,结合模糊控制、自适应神经网络算法及虚拟现实技术,满足智能化研究和测试需求。

7)在线监测与跟踪。提供灵活的查询机制,用户能够随时查询各条测试用例执行情况,以及测试主机的运行和负载情况。

基于云平台的智能网联汽车软件测试技术架构 (图2)采用“云+端”模式部署软件测试工具,建成测试功能全面的品质检测平台、安全防护与品质保障平台、品质公共服务支撑平台,为政府、运营商、企业及个人用户提供智能网联汽车品质测评服务。

品质检测平台主要面向智能网联汽车操作系统、移动应用软件的测评。平台包含了软件功能测试、性能测试、安全性测试、可靠性测试和兼容性测试的各类测试工具。在平台建设过程中,采用脚本录制、软件探针、多维特征提取和快速匹配等先进的测试技术,将“云测试”、“自动化测试”、“虚拟化测试”和“多协议分析仿真”等先进的测试理念融入到测试过程中,提供测试服务、在线监测服务、品质评价服务和基础配置服务。

安全防护与品质保障平台围绕车载信息终端、无线通信网络及后台信息服务,对CAN总线网络数据及GPS数据信息、4G、Wi-Fi等网络通信传输过程、信息融合处理及消息推送等任务的运行环境进行实时监测,提供安全防护。

公共服务支撑平台主要包括智能网联汽车软件品质信息发布系统、软件开发资源共享系统、软件信息收集分析检索系统以及标准法规、发展规划、测评技术、知识产权咨询系统。面向软件开发商,提供软件开发的共性资源;针对智能网联汽车软件的品质保障和品质管理等问题,进行品质信息收集、整理与分析,支持对重大品质问题的持续跟踪;面向智能网联汽车软件主管部门、科研院所和研发企业,提供发展规划、技术咨询、知识产权分析等咨询服务。

系统及服务测评知识库覆盖智能网联汽车软件功能、性能、安全性、可靠性和兼容性测评的资源库,包含系统服务典型案例、品质评价准则及模型、测试工具方法等。政策法规库:采集并通过平台发布国际、国家和地区有关发展智能移动终端软件的各类政策、法律和规定;采集并通过平台发布国际、国家和行业上有关智能网联汽车相关标准及政策法规。

2.2 智能网联汽车操作系统测试

智能网联汽车硬件架构的改变导致软件及底层虚拟化技术相应改变。操作系统提供人与车、车与车、车与互联网等全方面交互功能。智能网联汽车操作系统OS包括Windows CE、QNX、Linux、风河、Android等,操作系统平台包括用于自动驾驶的硬件、软件以及云数据服务等,云计算和网络化环境下汽车操作系统研发是新的发展方向,建立操作系统补丁情况更新、漏洞信息通报、安全漏洞分析、安全应急处置及信息处理机制是操作系统测试的重点。

图2 基于云平台的智能网联汽车测试技术架构

测试云将服务器、主机、存储空间、网络环境等基础设施进行虚拟化,形成共享可用的资源池。测试人员通过配置环境、开放端口,登录测试云随时随地进行不间断的功能和性能测试,获得实时测试结果。同时对测试资源进行动态监控管理、对被测系统自动备份和恢复、发现软件缺陷、诊断和优化分析。根据操作系统常见的安全缺陷,针对移动操作系统的特点,从各个功能组件上分析安全性,包括操作系统管理的通信功能、语音识别功能、车辆工况、路况、乘客信息等实时数据采集与分析等功能。根据系统不同模块,研究其设计原理,代码实现及功能、性能、安全缺陷评测方法,归纳形式化描述方法,进行代码级静态扫描和动态分析。

基于Linux、Android等免费开源操作系统,对操作系统安全检测过程采用源代码静态分析技术,从安全层面,对用户身份认证、数据访问控制、存储安全等方面进行评测。其中,针对Android操作系统直接对操作系统进行源代码级别静态分析,通过控制流、数据流分析技术,制定安全规则,在应用程序框架层,利用操作系统API封装的管理程序,静态分析内核。采用应用软件安全缺陷的形式化描述语言对安全缺陷形式化描述生成安全规则,通过恶意代码形式化描述方法、安全缺陷检测模型、字节码反编译、二进制应用程序反汇编、反编译等测试方法实现安全缺陷静态分析检测。根据静态代码分析出结构特征和变量调用关系,找到安全问题。

根据智能网联汽车操作系统类型,终端程序运行时行为终端侧安全评测方法有所不同。系统的开放程度与应用程序编程接口的丰富程度决定监测功能的数量和监测执行粒度。对于开源操作系统,通过在系统代码和对应用程序编程接口中添加监测模块,进行监测点的定制和扩展,实现动态跟踪。对于非开源系统,例如黑莓的QNX操作系统,利用应用程序编程接口,实现程序层面的跟踪检测。针对恶意代码的行为特征,完成定位功能监测、语音识别操作监测、运行权限监测、系统资源非法占用监测等。

2.3 智能网联汽车移动应用软件测试

V2X技术以车内网、车际网和车载移动互联网为基础,整合第三方应用对海量信息进行融合处理。移动社交、地图导航、电子支付及移动办公等移动应用已经渗透到车辆网系统。终端操作系统上的移动应用软件没有很强的安全防护能力,恶意移动应用与日俱增,很容易影响操作系统安全,严重的还会危机智能网联汽车的行驶安全。构建测试云上的移动应用安全测试,实时检测和分析应用是否被篡改,提供加固和认证的大规模在线服务,从而为智能网联汽车用户提供有效的安全防护。

移动应用软件包含的不同恶意代码表现形式各不相同,包含特殊的静态文件特征及动态行为模式,例如恶意代码自启动、进程隐藏、通信隐藏等。静态分析采用基于特征码扫描的检测技术、启发式扫描技术等提取恶意代码的静态结构性内容,在此基础上,对恶意操作行为进行动态跟踪,通过基于行为监控的动态扫描、基于函数调用的分类检测、基于主机异常的检测技术实现安全性检测。

2.4 智能网联汽车系统在线监测

车载信息终端采用CAN网络数据及GPS数据信息,通过无线通信网络传送至后台信息服务平台,为满足车载终端与后台服务平台的信息传输,需要对传感器及网络通信服务实时在线监测。对软硬件工作过程中出现的异常情况需要提醒用户及时校正系统或停止使用汽车。

3 智能网联汽车软件安全可靠性测试评估体系

3.1 可靠性测试评估体系

基于ISO/IEC25010质量度量模型,结合SMART准则构建智能网联汽车软件测试评估体系。确定构建智能网联汽车软件评估指标体系的基本原则,根据可靠性测试评估要求构建评估指标,将系统分为“目标层-准则层-方案层”三层次结构模型,其中,智能网联汽车软件可靠性为目标层,准则层包括车载信息终端、无线通信终端、后台信息服务终端,各主线的具体测试指标视为方案层,包括初始故障数、剩余故障数、故障密度、失效概率、失效强度、平均失效时间及平均失效间隔时间等。智能网联汽车软件可靠性测试评估体系见图3。

图3 智能网联汽车安全性测试评估体系

3.2 安全性测试评估体系

安全性测试评估体系的制定,需要根据智能网联汽车安全性测试技术研究形成的成果,结合现有的信息安全和功能安全的测试标准、测试方法,并与汽车厂商、用户深入沟通,制定完善可行的安全测试评估体系,指导智能网联汽车软件的安全性测试评估。安全性测试评估体系包括测试与评估内容、测试策略、测试方法等部分,而每个部分都需要考虑车联网系统整体的安全性,包括信息安全和由于功能失效带来的安全风险等。其中,测试评估内容包含用户认证机制、加密机制、安全防护策略、数据备份与恢复、病毒智库及功能安全风险评估分析等内容。安全性测试策略包含基本安全防护测试、安全防护体系及功能安全分析策略的制定等。安全性测试方法包括功能验证、漏洞扫描、安全攻击模拟、安全侦听等技术。智能网联汽车安全性测试评估体系见图4。

图4 智能网联汽车安全性测试评估体系

4 结语

智能网联汽车将电子电气架构、车载网络、域控制及信息安全等技术融合,实现汽车产品智能化、电动化、网联化及共享化,其软件品质直接影响车辆的安全运行。本文对智能网联汽车软件的功能性、安全性、可靠性测试进行了研究,介绍了相关技术路线及测试方法。同时,将云计算与智能网联汽车软件测试相结合,提出了基于云平台的测试服务架构,提供实时、在线、大规模自动化测试服务,提高业务支撑能力。通过云平台的资源弹性收缩性,扩展测试服务模式及类型,降低测试成本和部署测试环境的复杂度。再者,本文提出了智能网联汽车软件安全可靠性测试评估体系,为智能网联汽车的可靠性及安全性测试提供理论依据,进一步优化软件品质和提高测试效率。

猜你喜欢
智能网安全性软件
交通运输部:扩大新能源智能网联汽车应用
两款输液泵的输血安全性评估
新染料可提高电动汽车安全性
智能网联汽车管理政策研究
禅宗软件
某既有隔震建筑检测与安全性鉴定
工业软件 自主创新
加强广播电视信息安全性的思考
迎战智能网联大爆发
VoLTE时代智能网架构演进研究