智能网联汽车软件安全测试关键技术研究
2018-02-14贾世准麦松涛陈志远
贾世准 麦松涛 李 冬 陈志远 肖 静
1(工业和信息化部电子第五研究所 广州 510610)2 (广州小鹏汽车科技有限公司 广州 510640)
从汽车发展趋势方面看,当前世界汽车产业有2个重要发展方向:智能网联化和动力电动化.“十三五”期间,从“汽车+互联网”的驱动方面看,智能网联汽车将伴随“中国制造2025”有长足的发展[1].在智能网联汽车方面,虽然我国基础薄弱、起步稍晚,但存在2方面优势:一是中国消费者对智能产品的偏好;二是互联网产业优势.发展智能网联汽车是一个实现弯道超车、追赶世界先进水平的机会.
智能网联汽车与传统汽车的差别关键在于基于软件的智能化应用与服务.从技术角度看,智能网联汽车所采用的关键技术,包括车控终端技术、定位技术、环境感知技术、智能决策技术、无线通信技术、语音识别技术、互联网技术、移动计算技术等[2-4];从核心价值看,车联网最具价值的是应用信息服务;从面临的挑战看,车联网面临着诸多信息安全风险[5],这些无一不是与软件息息相关.软件是智能网联汽车技术发展的核心与关键,汽车软件的质量是保障智能网联汽车产业健康发展的保证.
因此,本文将围绕智能网联汽车软件质量与安全问题,阐述开展安全性与可靠性测评的关键技术与方法,并提出相应的解决方案.
1 智能网联汽车信息安全风险分析
随着汽车电子系统的日渐丰富,在为用户提供更好便利的同时,也带来了一系列的信息安全风险,黑客通过汽车电子系统非法操控汽车的案例屡见不鲜.从目前车联网的发展趋势来看,以V2X为代表的通信系统已经成为车辆智能化、网联化的一个重要标志.但随着更多车辆接口的开放和更多接入方式的引入,车辆信息安全又成了一个重要的问题[6].因此一旦智能网联汽车电子系统出现缺陷,将导致严重的信息泄露、财产损失、行车安全等风险.
2 智能网联汽车软件安全性测试关键技术
通过综合分析,智能网联汽车信息安全风险主要存在于以下3个方面:1)汽车总线及网关系统;2)汽车操作系统及应用程序;3)V2X网络.因此针对智能网联汽车信息安全的测试应着重针对以上3个方面展开.
2.1 总线及网关系统安全测试
目前汽车采用的总线类型主要有:CAN总线、LIN总线、MOST总线、FlexRay总线等,通过上述总线连接动力系统、诊断系统、舒适系统、信息系统和仪表系统等,各系统的通信数据、传输速度和成本限制等实际要求不尽相同.而总线网关能实现子网内部通信的隔离, 有效降低网络流量; 支持子网间通信信息的协议转换, 路由转发, 以实现子网间的通信; 并能在各类总线的基础上实现网路控制、差错控制和实时控制等功能.总线网关使车身系统实现真正的网络化, 使汽车更方便、高效地行驶.
对总线和网关开展安全测试,应依据测试对象的真实运行环境和测试方法实施的需求,搭建总线安全HIL仿真测试环境,综合采用代码逆向工程、总线指令分析、ECU重刷写、软件行为监控等关键技术,解决总线数据量大、指令加密等难点,对总线和网关的体系结构进行分析,识别危险源和脆弱点,综合分析存在的安全风险,从标识和鉴别、通信保密性、审计、用户数据保护等方面进行安全测试.
2.2 汽车操作系统及应用程序测试
目前,谷歌和苹果公司都已推出各自的汽车操作系统,国内的小米、魅族、腾讯等公司基于安卓操作系统也推出了车载系统.因安卓操作系统开放性强、兼容性好,对应的APP研发、创新也多,因此在汽车领域市场占有率很高.
而大量的终端软件和应用也意味着大量的安全风险,当前情况下有相当一部分车机是通过总线接入车载网络系统,一旦车载应用程序感染病毒,将有可能对车辆总线及其他控制单元造成安全威胁,导致行车安全事故等严重后果.
针对上述问题,采用静态分析技术、动态分析技术、恶意代码特征分析技术等进行安全测试.
2.2.1应用软件静态分析技术
车载应用软件静态分析技术从源代码的角度出发,利用代码静态分析技术,收集产生可疑背景流量、窃取用户隐私数据等恶意行为的特征,并有针对性地建立检测规则.通过研究智能网联汽车操作系统(如Android Auto)平台上应用程序恶意代码的形式化描述方法,构建移动智能终端应用程序的恶意代码检测模型;在此模型基础上,结合对Andriod应用程序字节码反编译技术,研究针对高级面向对象语言的源代码自动化恶意行为检测技术.
2.2.2应用软件动态分析技术
应用软件动态分析技术通过对车载应用程序运行时行为进行监测,发现恶意程序对移动智能终端语音通道、短信通道、网络通道的恶意操作,以及访问软硬件系统进行恶意操控和破坏.在监测过程中记录待测程序的各项运行时行为.一方面,利用统计数据对程序的安全性进行评估,评估结果可为静态安全分析技术中对恶意程序的威胁定义提供依据;另一方面,监测程序运行时行为使得恶意行为的快速发现和防御成为可能,提高时效性,可进一步加强和巩固程序的安全性评估体系.在系统设计方面,研究程序运行时行为监测模型,设计有效的程序运行时行为监测机制,运用代码嵌入、模块化组织、分层功能划分等技术构建监测框架,提高对软件运行时行为监测的丰富性和准确性.
对可能产生背景流量和敏感信息泄露的网络连接、信息发送等行为进行监测,并研究建立程序运行时行为监测模型,设计有效的程序运行时行为监测机制,可有效地检测车载终端软件在运行时是否会造成用户数据泄露等问题,从而提高车载终端应用软件的安全性.
2.2.3恶意代码特征分析技术
目前,移动恶意代码的六大恶意行为是恶意扣费、系统破坏、隐私窃取、流氓软件、后门软件、访问不良信息.这些恶意行为在绝大多数情况下都没有经过用户同意或授权或违反了国家相关法律法规.据统计,80%的移动恶意代码至少存在2种或2种以上恶意行为.
恶意代码为了实现恶意功能,在静态结构上存在与恶意目的相关的特性,特别是关于文件大小、名称、扩展名、目录位置、版本信息、时间信息、二进制结构、形态、是否加壳、API 调用等多种静态特征,通过进行静态文件挖掘分析,可以达到一定程度上的判定分析[7].
恶意代码通过自启动行为,保证在系统重启时能够随系统重新运行,以达到在系统中长期生存的目的.通常来说,恶意代码所常使用的自启动方式包括以下几种:自启动目录、系统配置文件启动及登录(退出)时自动运行程序等其他启动方式[8].
恶意代码在目标系统中运行后,在目标系统的运行空间中总会存在与之对应的进程、线程信息.这些信息对于恶意代码的隐藏及长期存在造成了障碍.为了不被目标系统管理员发现,恶意代码制作者通常使用各种进程隐藏技术将恶意代码的运行状态进行隐蔽.常用的技术包括下面几种:进程列表隐藏、非进程隐藏方式(特洛伊陷阱、远程线程注入、API HOOK等).
在任何一个恶意代码检测与分析系统中,技术模块和分析模块是2个重要组成部件.其中,技术模块用于提取分析模块所需要的数据;而分析模块则对技术模块收集的数据进行分析,并基于一些事先定义的规则或机器学习的方法进行判定,从而决定一个程序是不是属于恶意代码以及属于哪一类家族的恶意代码.
通常,技术模块搜集的数据可分为4类内容:第一,恶意代码的静态结构性内容,一般这些数据通过恶意代码的静态文件内容分析获取;第二,恶意代码的恶意性体现在一系列的恶意操作行为,这些恶意行为数据组成了可用于分析研究的恶意代码行为集合;第三,恶意代码在执行其恶意行为时会和操作系统发生一系列的交互行为,必定会在操作系统状态的变化上有一些反映,因此这些数据可以从代码运行前后操作系统环境及状态的变化中提取;第四,恶意代码执行时的网络通信特征,一般这些数据通过抓取网络数据包获取.
根据技术模块所采用的不同数据收集技术,对应的检测及分类技术也可划分为两大类:静态分析和动态分析技术.静态分析又可以划分为基于特征码扫描的检测技术、启发式扫描技术.动态分析技术又可以分为基于行为监控的技术、基于函数调用的检测分类技术、基于主机异常的检测技术.
通过上述静态分析和动态分析技术相结合,可以高效地识别出车载终端恶意代码,为避免恶意代码造成危害,提供有效的帮助.
2.3 V2X网络安全测试技术
通过搭建基于真实场景的V2X网络系统半实物仿真环境,开展V2X网络安全测试,以及V2X终端应用APP安全加固,以保证V2X网络的安全可信.
2.3.1基于真实场景驱动的V2X半实物仿真技术
通过使用移动地图创建基于真实道路拓扑的现场场景,自主创建和设定包含多种仿真车载单元和路侧单元的交通状况,能够用于模拟多种V2X应用场景.
通过搭建V2X半实物仿真环境,将真实场景引入实验室,能够大幅缩减与场地测试相关联的成本和时间.
2.3.2基于网络渗透测试的V2X安全性测试技术
基于渗透测试的主动攻击测试技术,包括网络扫描、中间人攻击、重放攻击、DDoS攻击、泛洪攻击等,从攻击者的角度,对V2X系统的弱点、技术缺陷或漏洞进行主动分析,利用黑客技术进行攻击测试,验证V2X系统的安全性.
利用V2X虚假信号源定位、虚假通信客体精准识别等技术,防止发送垃圾信息、利用假冒紧急车辆信号特征获得优先通行的特权等不法行为.
2.3.3V2X终端应用APP加固技术
V2X终端应用APP往往很容易遭受攻击,或者面临被破解、反编译、二次打包等威胁.因此,通过加密算法、安全加载技术、防篡改保护、防调试保护和防逆向保护等方案对V2X终端应用进行保护,可有效防止攻击者使用或者篡改V2X的交互信息,保护智能网联汽车的安全.
3 总 结
随着5G时代的日益临近及人工智能技术的不断发展,智能网联汽车必将成为滚动的数据中心.汽车形态的不断变化将对人们出行、消费、娱乐等生活方式产生革命性的影响.我国作为汽车生产和消费大国,开展智能网联汽车软件安全性测试技术的研究,势必将提升行业整体质量水平,推动汽车行业的产业升级.