APP下载

试论面向安全性分析的嵌入式软件测试方法

2019-10-21吴育宏

科学与财富 2019年7期
关键词:安全性分析嵌入式软件测试方法

摘 要:安全性测试能够发现嵌入式软件中包含的漏洞及运行安全风险,受到了更多的关注。基于此,本文分析了嵌入式软件安全性分析的重要性,着重阐述了软件的交叉式测试、结构化测试、安全性测试的环境制定、软件功能性安全測试以及漏洞性安全测试这些软件安全性测试环节。

关键词:嵌入式软件;安全性分析;测试方法

引言:嵌入式软件主要包含嵌入式的微小处理器及外部设备等,对其进行安全性测试是计算机软件安全性分析的重要环节,需要相关人员重点关注。在嵌入式软件的安全性测试中,不仅要完成软件功能性安全需求的验证,还要对嵌入式软件中的漏洞展开挖掘与安全管理,确保嵌入式软件安全测试的全面性。安全性测试能够发现嵌入式软件中包含的漏洞及运行安全风险,对避免安全性问题的发生有重要意义,从而受到了更多的关注。

一、嵌入式软件安全性分析的重要性

当软件的运行不具备引发系统事故的能力时,就能够判定该软件具有安全性。具体来说,作为系统的重要组成部分,具有安全性的软件不会对人们的财产安全以及环境产生威胁。就现阶段嵌入式软件的应用与发展情况来看,其已经被广泛应用于多个领域,包括航空航天领域、汽车服务行业等等,为人们的生产与生活提供了更为便利的手段,但是,由于其自身具有一定的复杂性,发生问题的概率相对较高,会对人们的财产甚至是生命安全都造成一定的威胁。例如,在2010年,日本丰田公司由于软件问题而发出了相关产品的召回决策,导致该公司损失了约20亿美元,不仅使公司产生了较大的经济损失,还降低了公司的社会效益。由此能够看出,对嵌入式软件进行安全性分析有着极为重要的意义,需要重点关注。

二、嵌入式软件的安全性测试

(一)测试前的准备工作

在对嵌入式软件展开安全性测试时,需要测试前期进行一系列的准备工作。在进行安全性分析时,相关人员需要注意的是,由于C/C++类型的机器代码普遍由处理器直接执行,所以当使用托管代码完成程序的编写时,需要将关注的重点放在被复用的本机代码方面。这主要是由于本机代码通常是在虚拟机之外完成的,有着最高的风险。

同时,要对测试中需要使用的平台系统进行确定。例如,当对iReader嵌入式软件进行分析时,由于其属于多种文件格式的阅读器,所以可以应用AnddroidShell对需要的文件完成导入,并使用FileFuzz实现安全性测试。

(二)软件的交叉式测试

在对嵌入式软件展开交叉式测试时,首先需要相关人员在宿主机的环境下完成测试比例的编写,并将生成的测试脚本转换为测试命令[1]。在这样的条件下,测试脚本能够被下载到测试目标机中,并保持运行状况良好。

第二,利用测试代理,能够确保测试代码在测试机中顺利执行。一般来说,由于目标机的资源较少,所以测试工具大多运行于被测试机器中。而在测试执行后采集到的数据也不会在目标机中完成分析。此时,为了确保测试结果能够得到有效分析,必须要在目标机端口测试代理商完成相关测试数据的传递,将其传输至宿主机中完成数据分析。当测试代理接收到测试命令后,就会依照指令要求完成嵌入式软件的多项测试,软件生成的测试数据经由测试代理发送到宿主机中,为后续分析提供完整、准确的数据支持。

(三)结构化测试

为了确保嵌入式软件测试的有效性,笔者使用了结构化测试方法。一般来说,嵌入式软件结构化测试可以分成两个部分:第一,应用基础设施、生命周期、基本技术或组织等元素构成嵌入式软件测试的任意项目基础。第二,利用特殊的方式,完成特定嵌入式软件或系统的特殊测试。通过上述两个部分的结合,生成了更适合特定嵌入式软件的测试方法,实现了基础项目以及特殊功能的共同测试,确保的测试结果的全面性。

(四)安全性测试的环境制定

嵌入式软件常用的安全性测试方式主要有两种,包括软件单元测试和软件集成测试,完成了软件开发生命周期测试[2]。在软件的单元测试中,主要利用了嵌入式软件的基本单位检测,确保了输入的有效性。并结合软件的内部逻辑实现了纵深防御,最大程度的避免了不良操作以及恶意行为对测试造成影响。在软件集成测试中,主要使用了缺陷认证的方式完成。具体来说,就是将测试放置于实际目标机的环境中展开,保障了漏洞入侵点优化的效果。

(五)软件功能性安全测试

在软件安全需求分析的基础上,能够实现软件的功能性安全测试。在软件的设计阶段,为了更好的保障软件自身的安全,一般会结合实际的安全需求,完成系统安全防护方法的增加与设计,包括数据加密、传输加密、权限管理、数据备份与恢复等。还要对测试用例展开设计,结合嵌入式软件其他功能测试相似的方法实现验证。其中,黑盒测试法是最为常用的一种验证方式。

(六)软件的漏洞性安全测试

在嵌入式软件的漏洞性安全测试中,需要相关人员站在攻击者的角度完成软件安全测试,尽可能更多的找出软件的漏洞。嵌入式软件的漏洞性安全测试流程如下:选择安全标准与安全规则;分析环境平台的安全性;分析程序实现语言的安全性,要对被测试软件进行威胁建模,同时利用FileFuzz技术挖掘未知漏洞;搭建测试平台,利用静态分析技术完成已知漏洞的挖掘,同时利用FileFuzz技术再次挖掘未知漏洞;验证嵌入式软件漏洞分级及可行性验证。

总结:综上所述,对嵌入式软件展开安全性测试有着极为重要的意义,需要相关人员重点关注。通过测试前的准备、软件的交叉式测试、结构化测试、安全性测试的环境制定、软件功能性安全测试以及漏洞性安全测试,验证了嵌入式软件的安全性,同时也提升了软件的运行安全。

参考文献:

[1]郭福洲.面向安全性分析的嵌入式软件测试方法研究[J].电子世界,2019(01):48+50.

[2]齐迪.面向安全性分析的嵌入式软件测试方法研究[J].信息与电脑(理论版),2018(07):92-93.

作者简介:

吴育宏(1985-)男,汉,广东省广州市人,现供职于珠海格力电器股份有限公司,初级工程师,本科学历,研究方向:集成电路,嵌入式开发.

猜你喜欢

安全性分析嵌入式软件测试方法
基于泊松对相关的伪随机数发生器的统计测试方法
基于云计算的软件自动化测试方法
DLD-100C型雷达测试方法和应用
实时嵌入式软件的测试技术
全景相机遥控器嵌入式软件V1.0 相关操作分析
高龄非瓣膜病性房颤患者长期运用华法林抗凝治疗的疗效与安全性分析
系统安全性分析技术在空空导弹中的应用
对改良的三种最小抑菌浓度测试方法的探讨
民用飞机安全性分析研究
基于Eclipse的航天嵌入式软件集成开发环境设计与实现