郑 丹,胡胜旺,封 亮
(中国电子科技集团公司第三十二研究所,上海 201808)
M-LVDS总线FPGA软件安全性测试
郑 丹,胡胜旺,封 亮
(中国电子科技集团公司第三十二研究所,上海201808)
随着FPGA(现场可编程门阵列)在航空航天、核能、轨道交通等领域中的广泛应用,由FPGA软件设计引起的安全问题日益突出。通过借鉴软件安全性分析方法,结合FTA、FMEA两种安全性分析技术,将这两种分析方法综合应用,对M-LVDS总线FPGA软件进行了安全性分析。采用仿真故障注入方式设计测试用例,对易引发系统高危失效的事件进行充分的安全性分析与测试,有效提高了M-LVDS总线FPGA软件的测试质量,同时为FPGA软件设计中常见的典型接口类应用安全性分析与测试提供了有益的探索和参考。
FPGA;M-LVDS;FTA;FMEA;安全性测试
FPGA(现场可编程门阵列)是一种可编程使用的信号处理器件,用户可通过改变配置信息对其功能进行定义,以满足设计需求。由于FPGA 具有可编程、高集成度、高速和高可靠性等优点,在航空航天、核能、轨道交通等高安全领域中得到越来越广泛的应用,随之而来的是FPGA应用的安全性和可靠性问题越来越突出。FPGA作为一种可编程使用的半定制芯片,与硬件联系紧密,其软件编程采用硬件软件化的设计方法,主要基于VHDL或者Verilog HDL等高级语言实现,所以FPGA应用设计从本质上是一种软件设计,但FPGA应用设计又是一种特殊的软件设计即面向硬件的软件设计,具有硬件的显著特征。
目前,FPGA应用设计的安全性分析和测试研究主要集中于硬件特性层面上,如FPGA配置、逻辑资源和参数测试等,从FPGA应用设计软件层面上的安全性分析和测试需求变得尤为迫切。常用的软件安全性分析方法有故障模式及影响分析方法、故障树分析方法等。FTA (故障树分析)技术是美国贝尔电话实验室于 1962 年开发的,它采用逻辑的方法,形象地进行危险的分析工作,特点是直观、明了,思路清晰,逻辑性强,可以做定性分析,也可以做定量分析。自 FTA 提出,几十年来一直在机械、电子等系统中广泛地使用[1-2]。软件FMEA(失效模式和影响分析)技术最早于1979 年由 Reifer 提出,用于分析软件系统中的软件失效对系统可能造成的影响。该技术是一种自下而上的分析方法,能识别软件潜在的失效模式,评估失效模式对系统的影响,并提出有效措施或修改意见[3]。
软件安全测试是指验证软件的安全等级和识别潜在安全性缺陷,以及确定软件是否能够与预期安全构想一致的过程。软件安全性测试应包含如下内容:验证每一个软件安全性需求都有相应的软件安全性测试相对应;证明每个软件安全性需求都通过一个或多个测试得到了满足;通过测试分析和软件实现对相关的风险进行评估;判断给出的软件安全性测试已足够充分[4]。软件安全测试是保证软件安全性的重要手段,本文借鉴软件安全性分析方法,结合FTA、FMEA两种安全性分析技术,将这两种分析方法综合应用于M-LVDS(多点低电压差分信号)总线FPGA软件安全性分析,采用仿真故障注入的方式设计测试用例,针对M-LVDS总线FPGA软件可能产生的故障事件和故障模式进行了充分的安全性测试,有效地提高了M-LVDS总线FPGA应用设计的安全性和可靠性。
1.1故障树分析方法(FTA)
经典的FTA是一种自顶而下的软件安全性分析方法,即从软件系统不希望发生的事件(顶事件),特别是对人员和设备的安全产生有重大影响的事件开始,向下逐步追查导致顶事件发生的原因,直至基本事件(底事件)。FTA的分析结果可以用来指导软件安全性设计,确定软件测试的重点和内容,使软件安全性得到更充分的保证。
在故障树最顶层的顶事件是系统不期望的故障事件,在故障树最底层的底事件是导致顶事件发生的根本原因。软件故障树分析的目的就是要采取措施避免底事件的发生,从而降低顶事件的发生概率。软件故障树定性分析的常用方法是识别所有最小割集,并对最小割集进行定性比较,对最小割集及底事件的重要性进行排序。
1.2故障模式及影响分析方法(FMEA)
FMEA分析方法是通过识别软件故障模式,分析造成的后果,研究分析各种故障模式产生的原因,为测试提供策略,协助制定测试目标,寻找消除和减少其有害后果的方法,以尽早发现潜在的问题,并采取相应的措施,从而提高软件的安全性。软件 FMEA 结果可以生成一个潜在测试用例列表,供以后的工作借鉴使用,FMEA 失效模式可以通过模拟生成触发失败的状态来转换为测试用例。由于每个测试用例与一个特殊的失效模式相关,测试用例具有非常良好的覆盖性。
1.3FTA与FMEA比较
FTA与FMEA两种技术在单独应用进行软件安全性分析时各有其不足:FTA是一种自顶而下依照树状结构倒推故障原因的方法,选取顶事件时,可能会遗漏潜在的顶层故障事件,有时候这种影响是关键的。另外,FTA在分析故障原因时也会有所遗漏,这会影响到底事件的重要度排序,从而影响实施改进措施时轻重缓急的判断。树形结构在描述分析结果方面不如FMEA信息详尽。FMEA是一种自底而上的单因素故障分析方法,无法完善地表达故障原因之间的各种逻辑关系。此外,其分析结果以表格方式列出,不如故障树的图形化表达方式直观。将这两种分析方法综合,形成故障模式及影响分析与故障树分析相结合的方法,在M-LVDS总线FPGA软件的安全性分析与测试中进行应用。
2.1软件需求与功能结构
M-LVDS总线FPGA软件主要分为寄存器控制模块、时序帧模块、数据帧队列模块、消息帧队列模块、发送器、链路监视器、接收器、同步器、接收FIFO模块,实现M-LVDS总线的数据发送和接收、中断处理、时序控制、寄存器控制、仲裁、故障检测、CPU复位等功能。M-LVDS软件功能结构如图1所示。
图1 M-LVDS总线FPGA软件功能结构
2.2FTA故障树建立
根据M-LVDS总线的特性,采用演绎法建立FTA故障树,选择M-LVDS接口异常为要分析的顶事件,当作故障树的根;分析顶事件发生的原因,并用逻辑门与顶事件相连,作为故障树的节;追溯导致顶事件发生的全部原因,将底事件作为故障树的叶,完成故障树建立,如图2所示。
图2 M-LVDS总线FPGA软件故障树
2.3FMEA故障模式及影响分析
以FTA方法为主,辅以FMEA方法,将M-LVDS总线FPGA软件FTA结果中的重要底事件作为FPGA软件FMEA的分析对象,分析出其所有可能的故障模式,并分析其产生的故障影响,不仅使FTA中的故障线索得到验证,同时也识别出对系统可能造成的其他影响,使这些重要的底事件得到进一步深入的分析。M-LVDS总线FPGA软件故障模式及影响分析如表1所示。
表1 M-LVDS总线异常FMEA表
根据M-LVDS总线FPGA软件安全性分析结果,针对底事件分别设置安全性测试用例,采用故障注入方式进行安全性测试。通过编写testbench,模拟各种异常电路行为,如总线干扰、内部信号翻转等,强制使FPGA进入某些特定状态,而这些状态在采用常规的标准测试技术时是无法达到的。仿真故障注入相对于物理实现和硬件实现的故障注入具有成本低、精度高并且对硬件设备无损伤等优点[5],本文采用基于ModelSim仿真环境的故障注入方式进行M-LVDS安全性测试,测试框架如图3所示。
图3 安全性测试框架
针对总线异常→总线短暂扰动→数据错误,设计安全测试用例,模拟总线在发送数据时发生跳变。测试结果:接收器数据接收完成后,判断CRC校验错误(rx_err_crc拉高)、帧错误(frame_err拉高)、接收错误(rx_error拉高),清空接收FIFO(rx_fifo_empty拉高),接收器丢帧。结果如图4所示。
针对接收异常→接收FIFO满,设计安全测试用例,模拟节点持续接收总线上发送数据,CPU未及时进行数据读取。测试结果:判断节点接收FIFO满错误(rx_lost_fifo_full拉高)、帧错误(frame_err拉高)、接收错误(rx_error拉高),接收器丢帧(rcv_dfifo_updata_wptr拉高,更新FIFO)。结果如图5所示。
通过上述安全性测试以及后续相应的修改和回归测试,对M-LVDS总线FPGA软件安全性分析结果进行充分的验证,显著提高了M-LVDS总线FPGA软件设计的安全性和可靠性。
图4 基于总线扰动故障模式的安全性测试结果
图5 基于接收异常故障模式的安全性测试结果
本文结合工程实践对FPGA软件的安全性测试方法进行了探索,具体阐述了M-LVDS总线的故障树建立、故障模式和影响分析,并根据安全性分析结果设计安全性测试用例进行验证。随着FPGA在高安全高可靠领域的广泛应用,FPGA软件的安全性分析和安全性测试亟需加强。参考软件安全性分析经验,结合M-LVDS总线特点,提出了FPGA软件安全性分析技术的应用实例,对于切实提高FPGA软件研制质量具有重要意义。
[1] 赵跃华,朱媛媛.基于故障树分析的软件安全性测试研究[J].计算机应用研究,2013,30(6):1760-1763.
[2] 姬忠孝.基于安全关键系统的软件安全性测试研究[D].南京:南京航空航天大学,2016.
[3] 王丙磊.系统级软件FMEA方法及辅助分析工具的研究[D].长沙:国防科学技术大学,2009.
[4] 姜梦霞.机载软件的安全性测试研究[D].南京:南京航空航天大学,2015.
[5] 雷炜,欧毓毅.基于故障注入的安全测试方法综述[J].现代计算机,2012(4):20-23.
Security test of M-LVDS bus FPGA software
Zheng Dan,Hu Shengwang,Feng Liang
(The 32rd Research Institute of China Electronics Technology Group Corporation,Shanghai 201808,China)
With the widespread application of FPGA in aerospace,nuclear power,rail transportation and other fields,the security problems caused by the design of FPGA software have become increasingly prominent.By referring to the methods of software security analysis in combination with two kinds of security analysis technology of FTA and FMEA,the security of M-LVDS bus FPGA software is analyzed by combining the two analysis methods.The test cases are designed by simulation failure injection to perform adequate safety analysis and testing of events that are prone to high-risk failures,which can effectively improve the quality of M-LVDS bus FPGA software.At the same time,this paper provides a useful exploration and reference for the application of security analysis and testing of typical interface classes in FPGA software design.
FPGA; M-LVDS; FTA; FMEA; security test
TP311.53
A
10.19358/j.issn.1674-7720.2017.21.002
郑丹,胡胜旺,封亮.M-LVDS总线FPGA软件安全性测试J.微型机与应用,2017,36(21):4-7.
2017-06-15)
郑丹(1985-),通信作者,女,硕士,工程师,主要研究方向:嵌入式与FPGA测试技术、FPGA设计验证体系。E-mail:315054090@qq.com。
胡胜旺(1978-),男,硕士,高级工程师,主要研究方向:嵌入式与FPGA测试技术、FPGA设计验证体系。
封亮(1977-),男,学士,高级工程师,主要研究方向:软件测试方法与技术研究、软件测试项目管理。