面向列控系统安全软件黑盒测试的危险分析方法
2019-04-16王硕郭进张亚东
王硕,郭进,张亚东
面向列控系统安全软件黑盒测试的危险分析方法
王硕,郭进,张亚东
(西南交通大学 信息科学与技术学院,四川 成都 611756)
针对高速铁路列控系统安全软件黑盒测试中对危险事件的可测性、全面性和优先性的需求,研究能够生成有效危险事件测试集的危险分析方法。根据列控系统接口交互信息的类型及特点,改进HAZOP的引导词及节点参数并进行接口危险辨识;然后利用风险矩阵评估接口危险事件的风险等级,提出面向安全软件黑盒测试的接口危险分析方法—HAZOP-I;将该方法应用到CTCS-3级列车运行控制系统运行场景中。研究结果表明:该方法能够为列控系统安全软件黑盒测试提供满足需求的危险事件测试集。
列车运行控制系统;安全软件黑盒测试;接口危险分析; HAZOP-I;危险事件测试集
列车运行控制系统(以下简称:列控系统)是保障高速铁路列车安全高效运行的安全苛求系统,其安全性由硬件和软件共同决定。随着软件的功能及作用不断增大,在导致系统危险的因素中软件因素所占的比例越来越高。根据铁路总公司的规定,我国列控系统软件安全由研发单位保证。在此基础上,又增加了由独立的第三方进行安全测试。列控系统第三方安全软件测试属于系统后期测试,通常采用基于规范的黑盒测试方法。黑盒测试把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在接口输入测试信息,检查程序是否能适当地接收输入数据而产生正确的输出信息。因此,黑盒测试的效果就取决于从程序接口输入的测试信息的质量。EN50128标准在整体软件测试中规定被测对象应在多种反映实际操作及运行环境下进行测试,包括正常运行情况和异常运行情况[1]。目前,正常运行情况的测试已经有很多成熟的方法,而异常运行情况的测试需要充分有效的危险事件测试集,通过对被测对象注入危险事件来测试对风险的防护能力。但目前危险事件测试集的生成仅依靠专家经验,还没有一种系统的方法,不能保证危险事件测试集的完备性与充分性。近年来,学者们致力于从风险的角度来构建危险事件测试集,其中研究较多的是利用故障树模型和威胁模型,并在把握测试重点、提高测试质量及效率方面取得一定成效[2−10]。REN等[2]通过构建故障树建立系统失效模型并求出最小割集;根据定性及定量分析,确定基本事件的重要度和发生概率,以此为依据使得测试更有效的集中到关键模块。Kloos 等[3]用故障树分析的结果构建测试模型,生成的测试案例根据识别风险的严重程度及造成风险的原因进行选择、排序,扩大了对安全功能测试的覆盖范围。Casado等[4]将故障树中的叶节点作为必须检测的危险情况,并根据故障树分析获得测试案例。WANG等[7−8]用UML序列图来表示威胁模型中的威胁路径来驱动安全软件测试。Marback等[9−10]用威胁树来表示威胁模型,并能从威胁树自动生成测试序列。上述研究虽然采用了不同的方式辨识危险事件,但侧重点在于利用危险事件来生成测试案例,对于如何获取全面的、适用的危险事件则缺乏相应的方法。此外将上述辨识危险事件的方式应用在列控系统黑盒测试中也存在较多的问题。例如故障树模型的应用存在3方面问题:首先,列控系统中功能逻辑十分复杂,自顶向下建立故障树十分困难,容易遗漏重要信息;其次,故障树分析一般只考虑系统和元部件的正常和故障2种状态,而列控系统中的危险事件是多态的;最重要一点是故障树分析结果应用于测试中存在可测性问题,例如进行故障树分析时会有“某功能模块故障”这样的底事件,而对于黑盒测试,并不能将此类事件注入到被测对象。威胁模型虽然不存在可测性的问题,但威胁模型是以恶意攻击者的视角来构建的,而对于列控系统第三方测试不仅需要威胁方面的危险事件,还需要包括运行环境、设备和人为操作等方面的危险事件。因此,本文在分析高速铁路列控系统安全软件黑盒测试对危险事件需求的基础上,改进HAZOP方法,从接口交互的角度进行危险辨识,并将其应用到CTCS-3级列控系统的运行场景中,证明了该方法的有效性。
1 危险事件测试集需求及HAZOP方法概述
1.1 危险事件测试集需求分析
生成危险事件测试集需要满足以下3方面的需求。
第一,危险事件必须能够转换成可测的案例,即可测性需求。可测性是指能够在被测对象上通过施加直接的激励而产生响应,以便在既有接口上对被测对象进行测试。为黑盒测试提供的危险事件必须满足可测性的需求,传统的故障树分析、故障模式影响分析以及HAZOP分析中通常会有“某个模块故障”这类的危险事件,而对于黑盒测试而言并不能将此类事件注入到被测对象。
第二,危险事件必须尽可能的完备,而且能够涵盖被测对象设备、环境和人为等各方面的因素,即全面性需求。以往对列控系统进行危险分析往往是从一系列的组件失效入手的,但实际中造成事故的原因远远不止组件失效的情况,况且当前列控系统技术规范中往往已经包含了对组件失效的防护。因而为了满足测试风险信息全面性的需求,需要能够涵盖设备、环境和人为等方面的异常情况。
第三,危险事件要具有优先级顺序,以便根据测试成本有选择的进行利用,即优先性需求。列控系统黑盒测试需要考虑时间、人力和经济等测试成本,测试人员需要权衡测试成本与测试范围的关系。因此,给测试人员提供的危险事件需要具有优先级顺序。
1.2 HAZOP方法概述
HAZOP(Hazard and Operability Analysis)是一种系统化的创造性辨识方法,通过引导词与节点参数构成的偏差来逐步引导、启发专家组成员的思维,对系统中潜在的危险以及操作性问题进行全面和系统地辨识,并分析危险源发生的原因和可能导致的后果[11]。HAZOP具有完整的实施流程,能够较全面的识别系统潜在的危险,但由于HAZOP起源于化工领域,其节点参数及引导词带有化工工艺的特点,不能很好的适用在列控领域。因而很多学者对HAZOP方法进行了改进,并取得很好的效果。例如Hwang等[12]在HAZOP基础上提出了HAZOP- R,设计了一套适用于铁路信号领域的节点参数和引导词。Pumfrey[13]在HAZOP的基础上提出了SHARD(Software Hazard Analysis and Resolution in Design)方法,该方法是一种结构化方法,用来在设计阶段从软件模块间信息流角度辨识软件系统的潜在危险。姚笑菲[14]在传统的 HAZOP 分析法中引入系统组合模型,先从多个角度对 CTCS-3 级列控系统进行刻画与描述,再利用HAZOP进行危险辨识,从而保证危险辨识结果的正确性与完整性。本文针对列控系统的特点,从接口交互的角度辨识接口危险事件,对HAZOP方法进行了改进。接口危险事件是从输入接口角度进行分析的,因而满足对被测对象施加激励的可测性需求。且接口危险事件可以全面表示设备、环境和人为等方面的异常情况。例如设备异常情况会通过交互的信息传播;环境异常和干扰也会体现在交互信息上;人为操作异常则可表述为通过人机交互接口输入的信息异常。此外,接口危险事件可以通过利用风险矩阵对其划分优先等级,使危险事件具有优先性。
2 HAZOP-I方法步骤
HAZOP-I方法流程如图1所示,总共包括10步,以下将流程的每一步进行详细论述。
步骤1:
列控系统中的被测对象通常具有复杂的逻辑和功能,为了简化被测对象的功能逻辑,将被测对象划分为若干运行场景,并对场景中的一些环境和条件作出合理的假设(例如场景的初始状态)。但各个场景中所涉及的功能逻辑需要完全覆盖被测对象标准规范所包含的内容。
步骤2:
根据选择的场景,确定有交互信息输入的接口。这些接口包括:传感器的信号输入、电磁感应的信号输入、控制命令的输入、人员操作输入及无线通信消息输入等。
为了对不同作用的信息进行分别描述,需要以交互信息表的方式对输入接口、传输环境、产生源头、内容以及作用进行描述。
图1 HAZOP-I流程图
步骤3:
根据输入接口交互信息的描述,选择一个输入接口作为HAZOP-I 的节点,例如列车输入接口、应答器接收天线接口等。
步骤4:
根据选择的接口节点,选择其中的一个交互信息作为HAZOP-I的节点参数。列控系统中的交互信息包括无线报文消息、电磁感应信号数据、采集驱动信号数据及有线接口信号数据等。
步骤5:
根据列控系统中交互信息的特点,定义HAZOP-I的引导词如表1所示。
选择的引导词与信息流结合产生的危险事件要具有实际意义,例如Long、Short与无线传输报文消息结合便没有意义,报文消息不存在持续时间的问题,它们与一些持续采集驱动的交互信息结合才具有意义。此外,Error与交互信息结合时要注意一条信息中具有哪些含义的信息。例如,测速传感器脉冲信号只具有测速信息一种含义;而一些无线报文消息中,一条消息中包含了表示多种含义的多个信息包。此时Error要分别与表示不同含义的信息包分别结合。
表1 HAZOP-I的引导词
步骤6:
从3个方面确定危险事件致因,即信息产生的源头、传播的环境及被测对象的输入接口,具体致因涵盖了设备、环境和人为等方面的因素。不考虑被测对象除接口以外其它部分的故障失效情况,因为致因分析的目的在于说明危险事件存在的合理性,而不是为了说明被测对象内部如何导致该 事件。
步骤7:
确定危险事件后果,分析危险事件可能造成的系统级危险。列控系统中的系统级危险包括列车与列车相撞、列车与障碍物相撞及列车脱轨3大类型,每个类型下又可根据具体情况细化。危险事件后果分析用于说明该危险事件是否会造成严重的后果,以此作为判断该危险事件优先等级的因素。
步骤8:
利用风险矩阵评估危险事件的风险等级。EN50126标准中给出的典型的6×4风险矩阵如表2所示[15],通过估计危险事件发生的频率及后果严重度将风险划分为一系列离散的等级,并将风险等级及危险事件记录到危险事件测试集中。
表2 风险矩阵
步骤9:
如果与当前信息结合的不是有意义的最后一个引导词,则跳转到步骤5;否则判断当前信息是否是当前接口中的最后一条信息,如果不是则跳转到步骤4;否则判断当前接口是否是当前场景中最后一个接口,如果不是跳转到步骤3;否则判断当前场景是否是被测对象的最后一个场景,如果不是则跳转到步骤1;否则对得到被测对象危险事件测试集进行优化。
步骤10:
上述方式获得的危险事件测试集十分庞大,需要做进一步优化来平衡测试成本与测试集之间的关系。根据测试成本,选择危险事件测试集中相应风险等级的事件进行测试,通常至少选择风险等级为“不容许的”和“不希望的”的事件进行测试,对于其它等级的危险事件则根据测试成本决定是否舍弃。
3 HAZOP-I应用实例
为了验证HAZOP-I方法的正确性和可用性,下面选取了CTCS-3级列控系统中一个运行场景,并以车载设备作为被测对象进行危险分析。选择场景为:车载设备运行在FS模式下,列车以一定速度靠近危险点,列车与危险点之间出现了新的危险情况。
车载设备的接口示意图如图2所示,其中场景中涉及输入的接口包括GSM-R电台接口、动车组接口、速度传感器接口和应答器天线接口。
下面对GSM-R电台接口中移动授权消息及速度传感器接口轮轴脉冲信号进行举例描述分析,得到交互信息描述如表3所示,迭代分析的危险事件测试集如表4所示。
图2 车载设备接口示意图
表3 接口信息描述
表4 危险事件测试集
结合表4中可以看出,危险事件是场景输入接口信息与特定引导词结合产生的,每条危险事件均可以注入到被测对象中,满足可测性需求。列控系统安全软件的接口和功能较多,HAZOP-I通过迭代运行场景、输入接口、输入信息及引导词保证危险事件测试集的完备。而且致因分析中涵盖了被测对象设备、环境和人为等方面的异常因素,满足全面性的需求。表4中的风险等级是根据危险事件发生频率及后果严重度划分的。由于危险事件测试集的规模庞大,因而测试人员根据测试成本重点关注风险等级为“不容许的”和“不希望的”的事件,满足测试风险信息优先性的需求。综上,通过HAZOP-I分析所得的危险事件测试集对于把握测试重点及扩大测试范围方面具有显著作用。
4 结论
1) 列控系统安全软件黑盒测试需要利用危险事件测试集来检验安全软件对风险的防护能力,而用于黑盒测试的危险事件测试集需要满足可测性、全面性和优先性的需求。
2) HAZOP-I方法通过改进HAZOP的引导词及节点参数从接口交互信息的角度进行危险辨识,并利用风险矩阵评估接口危险事件的风险等级,得到的危险事件测试集能够满足列控系统安全软件黑盒测试的需求。
3) HAZOP-I方法可以分析单个事件对系统的影响,对于事件组合的情况还有待进一步研究。
[1] European Committee for Electrotechnical Standardi- zation. EN 50128 Railway applications: Commun- ications, signaling and processing system Software for railway control and protection systems[S]. 2011.
[2] REN Y, HONG L, LI H W. Research on technique of software testing based on fault tree analysis[C]// International Conference on Computer Science and Network Technology. Harbin: IEEE, 2011: 1718−1720.
[3] Kloos J, Hussain T, Eschbach R. Risk-based testing of safety-critical embedded systems driven by fault tree analysis[C]// IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops. Berlin: IEEE Computer Society, 2011: 26−33.
[4] Casado R, Tuya J, Younas M. Testing long- lived web services transactions using a risk- based approach[C]// International Conference on Quality Software. Zhangjiajie: IEEE Reliability Society, 2010: 337−340.
[5] 张卫祥, 刘文红. 基于故障树分析与组合测试的测试用例生成方法[J]. 计算机科学, 2014, 41(b11): 375−378. ZHANG Weixiang, LIU Wenhong. Test suite generation based on interaction testing and fault tree analysis[J]. Computer Science, 2014, 41(b11): 375−378.
[6] 刘文红, 吴欣. 基于SFTA和等价类的软件测试用例设计方法研究与应用[J]. 现代电子技术, 2013(21): 128−131. LIU Wenhong, WU Xin. Research and application of software test case design method based on SFTA and equivalence class[J]. Modern Electronics Technique, 2013(21): 128−131.
[7] WANG L, WONG E, XU D. A threat model driven approach for security testing[C]// The Third International Workshop on Software Engineering for Secure Systems. Washington: IEEE Computer Society, 2007: 10−16.
[8] 杨广华, 齐璇, 施寅生. 基于威胁模型的软件安全性测试[J]. 计算机安全, 2010(2): 11−13. YANG Guanghua, QI Xuan, SHI Yinsheng. Software security testing based on threat model[J]. Computer Safety, 2010(2): 11−13.
[9] Marback A, Do H, He K, et al. A threat model-based approach to security testing[J]. Software Practice & Experience, 2013, 43(2): 241−258.
[10] Marback A, Do H, He K, et al. Security test generation using threat trees[C]// The Workshop on Automation of Software Test. Vancouver: IEEE, 2009: 62−69.
[11] 张亚东. 高速铁路列车运行控制系统安全风险辨识及分析研究[D]. 成都: 西南交通大学, 2013. ZHANG Yadong. Study on the safety risk identification and analysis of train control system of high-speed railway[D]. Chengdu: Southwest Jiaotong University, 2013.
[12] Hwang Jong-Gyu, Jo Hyun-Jeong. Hazard identification of railway signaling system using PHA and HAZOP methods[J]. International Journal of Automation & Power Engineering, 2013, 2(2): 32−39.
[13] Pumfrey D J. The principled design of computer system safety analyses[D]. England: the University of York, 2000.
[14] 姚笑菲. 基于模型的列控系统危险辨识方法研究[D]. 北京: 北京交通大学, 2015. YAO Xiaofei. Research on the method of model-based hazard identification for the train control system[D]. Beijing: Beijing Jiaotong University, 2015.
[15] European Committee for Electrotechnical Standardiza- tion. EN 50126 Railway applications:The specification and demonstration of reliability, availability, maintain- ability and safety[S]. 1999.
Hazard analysis method for security software black-box testing of train control system
WANG Shuo, GUO Jin, ZHANG Yadong
(School of Information Science and Technology, Southwest Jiaotong University, Chengdu 611756, China)
Aiming at the testability, comprehensiveness and priority of hazard events contained in security software black-box testing of high-speed train control system, a hazard analysis method that can generate effective testing set of hazard events was studied. According to the type and characteristics of interface information in train control system, the guide words and node parameters of HAZOP are improved to identify interface hazard events. The risk matrix is used to assess the risk level of interface hazard events. And then a interface hazard analysis method named HAZOP-I which is for security software black-box testing is proposed. This method is applied to the operation scenario of CTCS-3 train operation control system. As a result, this method can provide applicable hazard events testing set for the security software black-box testing of train control system.
train operation control system; security software black-box testing; interface hazard analysis; HAZOP-I; hazard events testing set
10.19713/j.cnki.43−1423/u.2019.03.005
U284
A
1672 − 7029(2019)03 − 0590 − 06
2018−04−18
国家自然科学基金青年基金资助项目(61703349);中央高校基本科研业务费专项资金资助项目(2682017CX101,2682017ZDPY10);中国铁路总公司科技研究开发计划资助项目(2017X007-D)
郭进(1960−),男,甘肃兰州人,教授,博士,从事列车运行控制、可靠性与安全性技术研究;E−mail:jguo_scce@swjtu.edu.cn
(编辑 涂鹏)