基于故障树的道闸管理系统软件安全性分析
2018-03-27黄一帆李海峰
黄一帆,李海峰
(1.南京市第一中学,南京 210000; 2.北京航空航天大学,北京 100191)
0 概述
在停车场、小区、写字楼等场所,都设有道闸管理系统.通过软硬件设备,综合运用红外线检测、地感检测、车牌拍照识别、智能卡识别、压力波检测等技术,实现道闸上升/下降控制、计时收费等功能.其中,最核心的组成部分就是道闸管理系统软件,是系统的控制中枢,决定道闸上升/下降控制功能逻辑、计时收费功能逻辑的正确执行.因此,道闸管理系统软件的安全性能否得到有效保障,对于车辆财产甚至人身安全具有非常直接的影响[1-2].
经过多年的发展,国内外道闸管理系统都已经融入智能化功能,包括车牌智能识别、车辆进入智能感知与引导、自动计费定位等[3].现有关于道闸管理系统的技术研究,也多借助先进的智能化技术方法,进行系统的设计与实现.例如IC卡技术、RFID射频识别技术,多项传感器融合技术等[4],但关于道闸管理系统安全性分析改进的研究则相对较少.
车辆或行人穿越道闸时,道闸意外下降、道闸无法上升,阻碍车辆进入等系统事故常有发生.但很少有人会去思考,为什么道闸管理系统软件会引发这些安全事故.事实上,因为没有对道闸管理系统软件进行深入安全性分析,对于各类异常的任务场景或外部激励的考虑不足,导致软件失效,进而引发系统事故,造成不必要的财产损失甚至人身伤害.因此,本文将依据道闸管理系统软件的工作原理,基于故障树技术,针对“车辆或行人穿越道闸时,道闸意外下降”这一典型事故进行分析,识别导致事故发生的各类原因,为预防或避免类似危险事件发生提供参考依据.
1 道闸管理系统工作原理与典型事故
1.1 道闸管理系统工作原理
图1是一种采用“车牌拍照识别”与“地感检测”技术的典型道闸管理系统[5].
依据图1,安装于控制机的“道闸管理系统软件”从摄像机、地感设备、自动道闸等设备中接收车牌图像、地感信号、道闸角度等输入信号,经过自动道闸控制或人工道闸控制等功能逻辑处理后,向自动道闸输出道闸上升电流与道闸下降电流.因此,道闸管理系统软件工作原理也是一种输入(Input)—处理(Process)—输出(Output)的典型黑盒控制过程[4].基于这一系统工作原理,针对道闸管理系统软件两项典型功能逻辑介绍如下.
1.1.1 自动道闸控制功能
输入数据:“车牌图像”“地感信号”“道闸角度”.
处理流程如图图2所示.
图2 “自动道闸控制功能”处理流程
由图2,道闸管理系统软件接收到摄像机拍摄的车牌图像后,进行车牌模式识别.若为有效的车牌图像,输出道闸上升电流,驱动道闸上升,直至道闸角度取值为90°,即完全打开,停止输出道闸上升电流;若为无效的车牌图像,则不做任何处理.
待道闸角度取值为90°后,道闸管理系统软件周期性(20 ms)判断地感信号取值是否有效.若取值为有效,表明车辆正在穿越道闸,则道闸管理系统软件不做任何处理,保持道闸打开;若取值为无效,则道闸管理系统软件输出道闸下降电流,驱动道闸下降,直至道闸角度取值为0°,即关闭完全,停止输出道闸下降电流.
输出数据:道闸上升电流、道闸下降电流.
1.1.2 人工道闸控制功能
输入数据:道闸上升指令、道闸下降指令.
处理流程如图3所示.
由图3,若软件接收到的道闸上升指令取值为有效,则输出道闸上升电流;否则,停止输出.若软件接收到道闸下降指令取值为有效,则输出道闸下降电流;否则,停止输出.
输出数据:道闸上升电流、道闸下降电流.
1.2 道闸管理系统典型事故
图3 “人工道闸控制功能”处理流程
道闸管理系统是人们日常生活中经常遇到的公共设施,由于系统软件设计存在缺陷或者考虑不足,会出现各类事故场景,对社会财产或人身安全造成严重影响.本小节对道闸管理系统可能的典型事故进行分类总结,为基于故障树的安全性分析工作提供输入.
道闸管理系统典型事故,可从控制车辆进入、以及计费管理2大方面进行分类.
1.2.1 控制车辆进入方面典型事故
①不应下降时下降,应下降时未下降
•车辆穿越道闸时,道闸下降
•车辆驶离道闸后,道闸未下降
•行人穿越道闸时,道闸下降
•道闸始终保持下降状态
•……
②应上升时未上升、不应上升时上升
•识别出有效车牌,道闸未上升
•车牌识别未通过,道闸上升
•道闸两侧同时有车辆驶入,道闸上升
•道闸始终保持为上升状态
•没有车辆驶入,道闸却上升
•……
控制车辆进入方面的典型事故对人身安全、车辆或者道闸设备有直接影响,因此是本文重点分析对象.
1.2.2 计费管理方面典型事故
①未进行有效计费
•识别有效车牌后,未进行计费
•车辆停留过夜后,计费重新开始
•……
②超时计费
•车辆已经离开,却未停止计费
•将小车识别为大车,进行额外计费
•……
计费管理属于财产损失的范畴,对安全性的影响相对较弱,故不是本文重点分析的对象.
2 基于故障树的道闸管理系统安全性分析
2.1 道闸管理系统软件故障树分析模型建立
故障树分析技术(Fault Tree Analysis,FTA)以一个不希望的系统故障事件(或灾难性的系统危险),即顶事件作为分析的目标,通过自上而下的严格按层次的故障因果逻辑分析,逐层识别导致故障事件的直接原因,最终找出导致顶事件发生的所有原因及其组合[6-8].在本章节中将借助故障树分析技术,针对车辆或行人穿越道闸时,道闸意外下降这一典型系统事故展开分析,即将该事故作为顶事件,结合道闸管理系统软件工作原理,自顶向下建立故障树分析模型,逐层识别导致这一事故产生的各种可能原因,进而针对原因分析结果,对道闸管理系统软件功能进行设计改进,预防或控制此事故的发生.
结合道闸管理系统软件工作原理可知,触发道闸管理系统软件输出道闸下降电流的主要事件有2个,即地感信号取值变为无效,以及道闸下降指令取值变为有效.基于这两个事件,所建立的软件故障树分析模型如图4所示.
2.2 基于故障树模型的软件安全性分析
2.2.1 分析过程
基于故障树模型的软件安全性分析过程是自上而下的,主要内容如下:首先定义要分析的顶事件(即道闸管理系统典型事故)作为故障树的“根”;然后分析导致顶事件发生的直接原因(即中间事件),并用适当的逻辑门与顶事件相连,作为故障树的“节”;重复上述步骤,一直追溯到导致顶事件发生的全部最小独立原因(即底事件)为止,这些底事件构成故障树的“叶”.
图4 道闸管理系统软件故障树分析模型
2.2.2 故障树最小割集计算
1)基于下行法的最小割集计算
下行法的基本原理是:从顶事件开始,逐级向下寻查.遇到“与门”就将其输入事件排在同一行(只增加割集的阶数,不增加割集的个数);遇到“或门”就将其输入事件各自排成一行(只增加割集的个数,不增加割集的阶数).重复上述步骤,直到全部换成底事件为止,这样得到的割集借助布尔代数中的运算律,去重合并,剩下的即为故障树的全部最小割集.
2)基于上行法的最小割集计算
上行法的基本原理是:从故障树底事件开始,自下而上逐层进行事件集合运行.将“或门”输出事件用输入事件的并(布尔和)代替,将“与门”输出事件用输入事件的交(布尔积)代替.在逐层带入过程中,按照布尔代数吸收律和等幂律来化简,最后将顶事件表示成底事件积之和的最简式.其中每一积项对应于故障树的一个最小割集.
2.2.3 顶事件发生概率计算
在全部最小割集的基础上,将故障树顶事件表示为最小割集中底事件积之和的最简布尔表达式,即可对顶事件发生概率进行定量评估计算.
用最小割集表示故障树顶事件.在求得全部最小割集C1,C2,Cr的基础上,可将故障树的顶事件表示为式(1):
(1)
式中,Xi为属于第Cj个(j=1,…,r)最小割集的第i个底事件.则故障树顶事件T的发生概率是各个最小割集中底事件X发生概率的函数,如式(2):
P(T)=Q(q1,q2,…,qn)
(2)
2.2.4 分析结果
依据图4所示的故障树分析模型,识别出如表1所示的原因事件.
表1 基于故障树的原因事件分析
上表所示的4个原因事件由“或门”相连接,即每个原因事件都可以独立地导致顶事件发生,因此是都可以独立作为故障树的最小割集事件,即导致顶事件事故发生的最直接原因[9-10].
钠表测量所需的pH值,pH计测量样水所需的温度值,都可以作为状态值,用来辅助判断当前的样水是否符合测量要求。
这4个事件中,前3个原因事件与道闸管理系统软件直接相关,即由于软件功能逻辑出现故障而导致的;最后一个原因事件则与软件无关,是由硬件设备故障导致的.因此,本文将重点针对前3个原因事件展开分析,将其映射为生活中常见的事故场景,分别描述事故场景、事故原因、软件故障、事故影响、软件设计改进等分析内容,在增强人们对道闸管理系统软件安全性分析直观认识的同时,为避免或控制此类事故发生提供参考建议.
2.3 事故场景分析及软件改进
2.3.1 典型事故场景一
前车正在穿过道闸,后车紧随进入,地感设备受到干扰,传输信号产生跳变,系统意外驱动道闸下降,碰到行驶车辆.
事故原因(原因事件X1):前车正在穿过道闸,输入数据地感信号取值为有效.此时后车紧随进入,由于两车距离过近,车辆震动频率重叠,地感设备受到干扰,使得地感信号取值发生跳变,即由有效变为无效.
软件故障:由于地感信号取值跳变为无效,自动道闸控制功能将自动输出道闸下降电流,意外驱动道闸下降.
事故影响:系统驱动道闸下降,砸到正在行驶的汽车顶部,造成财产损失.
分析说明:这种场景在生活中很常见.很多车辆为节省时间,等不及道闸完全放下,就紧随前车一起穿越道闸.一旦地感设备设计不够精密,易受到外界信号干扰,那么就可能会导致地感信号跳变,使得道闸意外下降,造成财产损失.
基于安全性分析的软件设计改进.
针对事故原因事件X1,在自动道闸控制功能逻辑中,增加对输入数据地感信号的滤波处理.即当地感信号取值由有效变为无效时,软件需对地感信号取值进行判断,连续5个周期地感信号取值均为无效时,软件才输出道闸下降电流.改进后的处理逻辑如图5.
图5 基于事故原因X1的软件设计改进
本论文之所以推荐5个周期的检测时间,是因为:若检测时间设置过长(例如大于10个周期),则将降低软件执行效率,即软件需要连续采集10个周期以上的数据,才能执行1次处理逻辑.这对于有一定实时性和灵敏度要求的道闸系统来说,不容易接受;若检测时间设置过短(例如2、3个周期),软件会频繁连续地进行滤波处理,增加软件运行负担.因此,综合考虑运行负担与执行效率,并参考其他类似工业设备的设计方法,本论文推荐检测时间设置为5个周期,也可依据具体系统进行设定.
此外,还可考虑借助车牌图像数据,辅助道闸管理系统识别两个车辆紧跟进入这种异常情况.即若系统接收两个车牌图像的时间间隔较短(例如小于1 s),则软件判断此时可能出现两辆车紧随进入或者两辆车同时进入等状况,此时将持续保持道闸上升电流的输出.
2.3.2 典型事故场景二
车辆穿过道闸后,道闸开始下降.此时,有行人或非机动车辆跟随进入.而道闸继续下降,行人或非机动车辆被道闸碰到.
事故原因(原因事件X2):车辆穿过道闸后,道闸准备开始下降.此时,有行人或非机动车辆(电动车、摩托车等)跟随进入.由于行人或非机动车辆的震动频率与汽车不一样,地感设备无法对其进行有效检测和感知,输入地感信号取值将保持为无效.
软件故障:行人或非机动车辆穿越导致道闸过程中,地感信号取值保持为无效,自动道闸控制功能将输出道闸下降电流,驱动道闸快速下降.
事故影响:系统驱动道闸快速下降,砸到正在进入的行人或非机动车辆,导致车辆损坏或人员伤亡.
分析说明:这种场景在生活中也很常见,很多电动车或行人不清楚道闸管理系统的工作原理,以为道闸会感知自己而不会下降,心存侥幸紧随车辆进入小区,意外引发严重的安全性事故.
基于安全性分析的软件设计改进:针对事故原因事件X2,在自动道闸控制功能逻辑中,增加道闸下降电流延时处理.即当地感信号变为无效后,软件开始计时,计时5 s后,输出道闸下降电流.改进处理逻辑如图6.
图6 基于事故原因X2的软件设计改进
需要说明的是,本论文之所以推荐5 s的延时时间是因为:若延时时间设置过短,则地感信号变为无效后,道闸立刻就会变为下降状态.正在穿越的人群或非机动车辆来不及响应;若延时时间设置过长,则道闸又将长时间保持停滞状态,影响后面车辆的正常进入.因此,综合考虑反应时间与正常运行,并参考其他类似工业设备的设计方法,本论文推荐5 s的延时时间,也可依据具体系统进行设定.
此外,还可考虑借助红外装置,辅助道闸管理系统识别行人或非机动车辆.即红外装置接收正在进入道闸的物体所辐射的红外线信号,并反馈至道闸管理系统软件.软件对反馈的红外线信号进行判断,若识别为机动车辆、行人、或非机动车辆等物体,则需要继续保持道闸上升电流的输出.
图7 基于事故原因X3的软件设计改进
2.3.3 典型事故场景三
车辆正在穿过道闸,道闸保持上升状态.此时,管理员误操作,通过“人工道闸控制”功能驱动道闸下降,砸到行驶中的车辆.
事故原因(原因事件X3):车辆正在穿过道闸,输入数据地感信号取值为有效.此时,管理员误操作,按压道闸下降按钮,输入数据道闸下降指令取值变为有效.
软件故障:输入数据地感信号取值为有效,自动道闸控制功能将不输出道闸下降电流.但此时,输入数据道闸下降指令取值变为有效,人工道闸控制功能将输出道闸下降电流,驱动道闸快速下降.
事故影响:系统驱动道闸下降,砸到正在行驶的汽车顶部,造成财产损失.
分析说明:这个问题是由于管理员误输入道闸下降指令,使得自动道闸控制功能与人工道闸控制功能并发,产生冲突导致的事故.现实中,管理员由于视线受阻,很可能会在车辆未穿越道闸的情况下,执行误操作输入,干扰自动控制功能实现,错误驱动道闸下降.
基于安全性分析的软件设计改进.
针对事故原因事件X3,在人工道闸控制功能逻辑中,增加地感信号的判断.当输入数据道闸下降指令取值变为有效后,软件判断输入数据地感信号取值.若“地感信号”取值为“有效”,则输出“告警提示”,待管理员确认后,才输出“道闸下降电流”.改进后处理逻辑如图7所示.
2.4 软件改进前后对比
综上分析,针对各种事故原因进行软件设计改进后,可有效地避免相应事故的发生.对比说明如下.
2.4.1 事故原因事件X1
增加输入数据地感信号的滤波设计之后,可有效判别由于两车距离过近,车辆震动频率重叠所导致的地感信号取值跳变现象.从而避免前车正在穿过道闸,后车紧随进入,系统意外驱动道闸下降,碰到行驶车辆事故的发生.
2.4.2 事故原因事件X2
增加道闸下降电流延时设计之后,可提升道闸下降时对突发事件的处理能力.即当车辆穿过道闸后,此时若有行人或非机动车辆跟随进入,则给予行人或非机动车充足的穿越时间,避免误伤.
2.4.3 事故原因事件X3
增加地感信号的判断设计之后,可防止由于管理员误操作而引发的意外道闸下降事件.即若管理员误输入道闸下降指令后,可根据地感信号是否有效,对管理员进行提示,待其确认后才运行下降.
2.5 设计改进方案的优化原则
基于多个失效原因分别进行软件设计改进时,可能会对同一个输入输出接口数据进行修改,或者同一个时序约束进行修改,导致取值或时序冲突.针对此问题,本论文提出如下流程优化原则,确保改进之间相互兼容并满足已有需求.
2.5.1 优先级原则
根据失效原因导致的事故严重程度,对各类设计改进方案进行优先级划分.即多个设计改进方案出现冲突时,以导致事故最为严重的设计方案为准,进行改进方案合并或优化.
2.5.2 统一化原则
如果多个失效原因的事故严重程度相同,此时可从设计成本、可行性等角度进行综合考虑,针对多个改进方案进行统一化处理,确保多个改进方案采用相同的处理策略.
3 结束语
本文针对道闸管理系统软件,借助故障树分析技术,识别导致车辆或行人穿越道闸时,道闸意外下降这一安全性问题的3类典型原因事件,这些原因事件均可映射为各类常见的生活场景.这说明,导致道闸智能管理系统软件安全性问题的原因是与道闸的使用方式密切相关的.事实上,借助故障树技术,结合更多的生活使用场景,还可以识别其他各类原因事件:例如,道闸还未上升到90°(即未全部打开),汽车就开始驶入;系统识别出有效车牌信息后,车辆却没有及时驶入;两辆车同时从道闸两侧驶入;系统同时识别出2个有效的车牌信息等等.这些原因事件可能会导致道闸控制异常或者计时收费错误等危险事故的产生,造成不必要的财产损失甚至人身伤亡.
综上,安全性问题并不只存在于航空航天等高科技领域,在日常生活中也是随处可见,例如商场电梯、地铁出入闸机、地铁车门等生活设施.借助故障树技术,可以针对这些生活设施中的控制软件进行安全性分析,有效识别身边的各种安全隐患,从而有效规避或预防财产损失、环境污染、人身伤亡等危险事故的发生.
[1] GJB/Z 102A军用软件安全性设计指南[S].北京: 总装备部军标出版发行部,2012.
[2] Huang Z Q,Xu B F,Kan S L,et al.Survey on embedded software analysis standards,methods and tools for airborne system[J].Journal of Software,2014,25(2): 200-218.
[3] Oentaryo.Self-trained automated parking system [C].Control Automation,Robotics and Vision Conference,2004.ICARCV 2004,2: 1005-1010.
[4] 李扬威,焦鹏鹏.城市智能停车管理系统研究[J].交通信息与安全,2014,32(4): 160-164.
[5] https: //www.zhihu.com/question/33818269/answer/108820828.
[6] Liu J,Dehlinger J,Lutz R.Safety analysis of software product lines using state-based modeling [J].Journal of System and Software.2007,80(11): 1879-1892.
[7] GJB/Z 768A故障树分析指南[S].北京: 总装备部军标出版发行部,2012.
[8] 周薇,刘庆生.嵌入式火控系统软件故障树分析研究[J].现代电子技术,2015,38(8): 105-108.
[9] Ma L,Huang ZQ,Xu BF,Chen Z.A fault tree analysis method supporting model checking.[J].Computer & Digital Engineering,2013,41(2): 257-260.
[10] 章雪梅,李文静.软件系统的故障树分析(FTA)[J].无线电通信技术,2003,29(1): 39-42.