基于系统理论过程分析的软件安全性需求分析与验证方法.docx

上传人:b****7 文档编号:15813984 上传时间:2023-07-08 格式:DOCX 页数:13 大小:1.35MB
下载 相关 举报
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第1页
第1页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第2页
第2页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第3页
第3页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第4页
第4页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第5页
第5页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第6页
第6页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第7页
第7页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第8页
第8页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第9页
第9页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第10页
第10页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第11页
第11页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第12页
第12页 / 共13页
基于系统理论过程分析的软件安全性需求分析与验证方法.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于系统理论过程分析的软件安全性需求分析与验证方法.docx

《基于系统理论过程分析的软件安全性需求分析与验证方法.docx》由会员分享,可在线阅读,更多相关《基于系统理论过程分析的软件安全性需求分析与验证方法.docx(13页珍藏版)》请在冰点文库上搜索。

基于系统理论过程分析的软件安全性需求分析与验证方法.docx

基于系统理论过程分析的软件安全性需求分析与验证方法

基于系统理论过程分析的软件安全性需求分析与验证方法

0引言

随着计算机软件技术的发展,现代复杂系统逐渐由机械、电子密集型向软件密集型转变,与之相关的软件安全性问题也日益凸显。

大量涉及软件的系统事故表明,从系统层面探究安全关键系统的安全性问题机理,结合系统功能自动生成软件安全性需求,并设计合理的软件安全性验证方法已成为迫切需要解决的问题。

目前,安全性分析普遍采用的故障树分析(FaultTreeAnalysis,FTA)、故障模式影响及危害性分析(FailureModeandEffectsAnalysis,FMEA)等传统分析方法都是基于事件链的事故致因模型。

这些方法依然从硬件失效的角度看待软件问题,将软件安全性问题局限于软件自身的不可靠因素,忽略了软件需求缺陷、系统交互等潜在的深层次原因,难以适用于软件密集型系统的安全性分析。

为了克服传统事件链致因模型及安全性分析方法的局限性,Leveson在系统论和控制论基础上,提出新的安全性分析方法——系统理论过程分析(SystemTheoreticProcessAnalysis,STPA)。

国内外针对该方法做了大量研究:

文献[7]提出不安全控制行为的生成算法,实现了STPA过程的部分自动化;文献[8]将STPA方法与模型检测技术相结合,并成功运用于汽车巡航控制系统的软件安全性分析中。

国内学者也在此方向开展探索,文献[5]将STPA致因分析与形式化方法结合,借助安全关键的应用开发环境(SafetyCriticalApplicationDevelopment,SCADE)工具对起落架控制系统软件进行形式化验证,降低了分析过程中人为因素的影响;文献[9]运用STPA方法对平交道口控制系统进行安全需求分析,借助XSTAMPP软件,得到安全需求的形式化表达;文献[10]运用STPA方法对大飞机的除冰系统进行分析,得到软件安全性设计需求,但是结果为自然语言。

现有研究表明,使用STPA方法进行软件安全性分析时仍然面临着以下挑战:

1)分析得到的安全性需求为自然语言,影响分析结果的完整性和客观性;2)分析过程依赖人工或其他工具,分析效率低;3)缺乏较为完整的需求分析与验证方法。

本文在STPA技术基础上,提出一种集图形建模、形式建模和形式验证于一体的软件安全性分析方法,进一步提高分析过程的自动化程度。

通过STPA分析得到软件安全性需求,并自动生成安全需求的形式化表达式;根据系统控制行为逻辑,构建软件安全控制行为的状态图模型,并将其自动转化为形式化模型;借助模型检验工具完成软件安全性验证,结合某武器发射控制系统实例验证方法的可行性。

1软件安全性需求分析与验证方法框架

为了保证软件密集型系统的安全性,必须从系统层面查找软件安全性薄弱环节和问题机理,挖掘深层次的软件安全性问题。

在传统STPA分析方法的基础上,本文提出了一种软件安全性需求分析与验证方法,以某武器发射控制系统软件为研究对象进行安全性验证。

方法总体框架如图1所示,主要实施步骤如下:

1)软件安全性需求分析。

根据整个系统功能组成,进行系统级事故与危险分析,并构建系统的分层控制结构模型,通过过程模型分析,确定潜在的软件不安全控制行为,进一步提炼出软件安全性需求。

2)软件安全性需求的形式化规约。

利用算法将分析得到的软件安全性需求自动转化为用线性时序逻辑语言描述的形式化表达式。

3)软件安全控制行为建模。

针对软件实现的系统控制功能,对软件的安全性控制过程进行抽象,构建软件安全控制行为逻辑的状态图模型,并将其自动转化为形式化语言。

4)软件安全性验证。

借助模型检查工具,采用形式化方法,完成对软件安全性属性的验证。

图1基于STPA的软件安全性需求分析与验证方法框架

Fig.1FrameworkofsoftwaresafetyrequirementanalysisandverificationmethodbasedonSTPA

2软件安全性分析建模

通过过程分析,得到软件安全性需求,并明确软件安全性控制行为逻辑,这是进行安全性验证的基础。

形式化方法具有语义严谨、数学基础完备的特点[11],为提高分析结果的可靠性,本文采用形式化语言对分析过程进行定义。

2.1软件安全性需求分析建模

在系统理论中,系统被视为层次化的控制结构,每层系统通过对下层系统施加约束实现控制[6]。

安全控制结构描述了系统各组件之间的交互关系,定义如下:

定义1 安全控制结构。

将安全控制结构表示为五元组(CO,CA,AT,SE,CP)。

其中:

CO={CO1,CO2,…,COi},代表一个或多个控制受控过程的软件控制器,某一控制器COi可以表示为二元组COi=(CA,PM),CA是控制行为的集合,PM是过程模型;AT是执行控制行为的执行器,SE是传感器,负责传递受控过程状态的反馈信息;CP是由控制器控制的一组受控过程。

过程模型是安全控制结构中受控过程假定状态的模型,用于描述变量及变量之间的关系,以及受控过程状态更改的逻辑。

通过过程模型分析,可以识别出不安全控制行为,进而得到安全需求。

为实现分析过程的自动化,规范分析过程,本文对过程模型分析做如下定义。

定义2 过程模型。

过程模型PM是用于描述受控过程CP假定状态的模型,主要包含过程模型变量(ProcessModelVariable,PMV)及变量间的关系,当前状态以及状态转移的逻辑。

在控制结构图中,过程模型通常作为控制器内部状态的一部分。

过程模型变量是一组影响控制行为CA安全性的关键变量P及其状态S,其中P=∪(P1=v1,P2=v2,…,Pn=vn),P1和Pn是控制器COi的过程模型变量及其值v1和vn。

2)状态转移条件由不安全控制行为的相应安全约束决定。

其中:

×是笛卡儿乘积运算符,i是过程模型变量,n是过程模型变量的总数,状态组合表是过程模型变量值之间的笛卡儿积。

在实际分析中,将通过算法自动生成过程模型变量的组合集,并对生成的结果成对覆盖,以最小化组合集的数量。

定义4不安全控制行为。

通过上述步骤分析每一个不安全行为的组合,剔除无危险的组合,进一步识别出不安全控制行为(UnsafeControlAction,UCA),用四元组(CA,CS,TSC,CT)表示,CA是不安全控制行为,CS=∪(P1=v1,P2=v2,…,Pn=vn)是CA的相关过程模型变量的一组关键组合,TSC 是控制行为CA是否不安全的状态组合信息,CT是提供控制行为CA的状态组合类型:

任何时间、过早或过晚。

其中,“过早”或“过晚”的具体时间需要在自动生成的基础上根据系统具体情况人工修改。

例如,在文中某武器发射控制系统分析案例里,“过晚”是指解脱制动的动作时间必须控制在1.5s内,否则发射能量已经注入,可能出现武器卡管的严重安全性事故,因此,系统判定为“过晚”。

2.2软件安全性控制行为建模

安全性控制行为模型(SafeControlBehaviorModel,SCBM)主要包括对软件安全性有影响的控制行为、相应的安全需求及影响系统状态迁移的过程模型变量。

模型结构可以用三元组(PMV,TS,CA)表示。

PMV是一组安全关键过程模型变量;CA是安全控制行为的集合;TS是从安全需求中提取的状态转移条件集合,每个状态转移TSi都用语法TS=EV[SR]/TC表示。

EV是导致状态转移TSi的输入事件,SR是由不安全控制行为得到的相应安全性约束条件,它是一个限制TSi状态转移的布尔条件,TC是当布尔表达式有效时将执行的操作。

SimulinkStateflow是基于有限状态机理论的图形化建模工具,具有直观性强、支持仿真等优点,已经在工业界得到广泛应用[12]。

本文针对某武器发射系统功能特点,提出了系统控制行为逻辑模型的概念,并通过Stateflow实现了模型的构建。

在模型中,通过entry、during和exit等不同类型的操作,可以更改软件控制器的状态,以及相应状态下的过程模型变量值。

通过过程模型变量值对当前的状态转移条件进行检验,并确定系统的后续迁移状态。

状态转移条件由分析得到的安全性需求确定。

图2说明了如何将控制器的内部过程模型变量及其控制行为映射到安全控制行为模型中,具体规则如下所示:

1)软件安全性控制行为模型应包括软件控制器所有状态下的过程模型变量:

PMV⊂SC ∈SCBM,SC代表控制器状态的集合。

实验测试仪器:

芬兰造16导Mega6000型便携式肌电图测试仪。

表面电极片:

一次性Ag-Cl电极片。

测试肌肉:

左右侧下肢腓肠肌、胫骨前肌、股直肌、股内侧肌、股外侧肌、臀大肌、阔筋膜张肌、股二头肌。

测试指标:

IEMG。

采用频率:

1000Hz。

同步动作捕捉设备:

SONY-HDR-1E摄像机。

分析软件:

与Mega6000配套的MegaWin2.4。

表面电极粘贴部位:

沿肌纤维走向粘贴至骨骼肌收缩时的最粗隆处,参考电极粘贴至测试电极连线的中垂线处,与测试电极成正三角形,电极片中心间距为20mm左右。

3)软件控制器的所有过程模型变量都必须在模型中进行声明。

4)在模型中定义名为controlAction的枚举类型变量,该变量包含软件控制器的所有控制行为。

软件控制器进入当前状态时产生的控制行为由controlAction变量提供。

图2过程模型变量及控制行为到安全性控制行为模型的映射规则

Fig.2Mappingrulesofprocessmodelvariablesandcontrolbehaviorsintosafetycontrolbehaviormodel

3软件安全性需求验证

3.1安全性需求的形式化表达

传统STPA分析结果为自然语言,在解读中可能存在歧义,同时,为了使用模型检查工具进行形式化验证,需要将分析得到的安全性需求用形式化语言表示。

线性时序逻辑(LinearTemporalLogic,LTL)是为实现计算机程序形式化验证而提出的一种规范表示法[13],已被广泛用于表达安全属性。

若安全需求SRi对于所有路径的执行结果都为True,那么它可以用以下LTL公式表示:

(2)表示当系统安全需求为:

当CS=∪(P1=v1,P2=v2,…,Pn=vn)时,该系统必须(或不得)提供控制行为CAi。

基于以上定义,通过将过程模型分析得到的不安全状态组合的布尔表达式转换为LTL表达式,可以将STPA分析得到的软件安全需求自动转换为形式化规范语言,实现转换的算法见文献[14]。

在该方法的基础上,本文进一步提出软件安全控制行为模型的概念。

针对状态图模型难以直接被模型检测工具验证的问题,提出一种将软件安全控制行为模型自动转换为形式化模型的方法,借助成熟的模型检测工具对软件安全需求进行形式化验证,进一步降低人工分析的影响。

3.2安全控制行为模型的形式化描述

欲利用模型检查工具对经过形式化处理的安全需求和系统安全控制行为模型进行验证,需要将状态图模型转换为符号模型验证工具(SymbolicModelVerifier,SMV)语言描述的形式化模型。

可扩展标记语言(ExtensibleMarkupLanguage,XML)具有规范统一、互操作性强、可扩展等优点,为了方便实现转换,首先将STPA数据模型和Stateflow数据模型分别导出为XML格式。

通过解析状态图模型的XML,生成安全控制行为模型的树形状态图(TransitionTreeDiagram,TTD),图中的每个节点代表一种状态。

在2.2节分析的基础上,本文提出了将描述系统控制行为逻辑的状态图模型自动转换为形式化模型的方法,基本步骤如下,部分算法如算法1所示。

步骤1将树形状态图的根节点作为输入,创建SMV模型的主模块。

步骤2将根节点局部变量的数据类型映射到SMV数据类型中,并为每个子节点声明一个子模块。

步骤3用当前状态节点的所有变量来创建子模块的参数列表。

步骤4对当前节点的状态转移进行解析,并创建当前状态节点与其他状态的转移关系的真值表。

步骤5把所有模块生成的SMV规范作为字符串保存到堆栈对象中,并把STPA数据中的LTL表达式添加到主模块末。

算法1生成SMV模型。

输入安全控制行为模型的树型结构图Ttd,STPA数据模型DataModel,树型结构图节点a。

输出:

SMV模型SMVi。

4安全性需求分析与验证方法的应用

4.1系统级分析

某武器发射控制系统是包括航行器、发射装置、发控设备、软件和人员等组成的能完成规定发射任务的综合体,是一个集中指挥、综合控制的复杂系统[14]。

执行发射任务之前,航行器被固定在发射管中,“制止”状态传感器接通。

下达发射指令后,系统检查准备完毕,开始传递发射信号,当设备1绿色状态指示灯亮起,信号传向设备2且该设备绿色指示灯亮起后,发射模块接收信号并操纵驱动装置解脱对航行器的制动,使其在发射能量作用下出管。

某武器发射控制系统的系统级事故主要包括:

对人员造成严重伤害或死亡(A-1)、装备损坏(A-2)、无法完成发射任务(A-3),系统级危险及其关联的系统级事故,如表1所示。

表1某发射控制系统的系统级危险

Tab.1System-levelaccidentsofalaunchcontrolsystem

根据系统工作流程及相关组件,建立如图3的系统安全控制结构模型,通过识别系统控制和交互进一步分析潜在的不安全控制行为。

4.2软件安全性需求分析

在发射过程中,人员操作和发射控制系统软件高度交互,控制行为频繁。

本文以系统对航行器“解脱制动”这一典型控制行为例,开展软件安全性需求分析。

图3某武器发射控制系统安全控制结构

Fig.3Safetycontrolstructureofaweaponlaunchcontrolsystem

STPA方法将不安全控制行为分为4类:

1)未提供控制导致危险;2)提供控制导致危险;3)过早/过晚提供控制或者控制顺序错误导致危险;4)控制行为持续时间过长或者过早停止导致危险。

针对“解脱航行器制动”这一控制行为中的四类不安全控制行为逐一进行分析评估,如表2所示。

表2解脱航行器制动的不安全控制行为

Tab.2Unsafecontrolbehaviorsofreleasingtheaircraftbrake

在已有研究[14]基础上,结合某武器发射控制系统实际,进一步完善设备指示灯状态变量,并添加传感器接收航行器状态信号情况的过程模型变量,建立如图4所示的带有过程模型的控制结构。

图4带有过程模型的控制结构

Fig.4Controlstructurewithprocessmodel

解脱制动控制行为拥有4个过程模型变量:

1)设备1指示灯,拥有4个状态,分别为黄灯、绿灯、红灯和熄灭状态;

2)设备2指示灯,拥有4个状态,分别为黄灯、绿灯、红灯和熄灭状态;

3)制动装置,拥有3个状态,分别为完全提起、完全落下和中间状态(卡滞)。

4)传感器接收航行器状态信号情况,拥有两种状态,分别是正常和故障。

每个过程模型的状态都会对安全性造成影响,对于每一个控制行为,需要分析其在4个过程模型不同状态组合下是否危险。

过程模型变量的状态组合总数理论上为4×4×3×2=96个,通过算法对生成的结果成对覆盖(Pairwise),以最小化组合数量;同时剔除无危险的组合,最终得到30种危险组合,由此得到30条用自然语言描述的安全需求。

因篇幅限制,生成的部分状态组合表如表3所示。

表3解脱航行器制动控制行为的部分状态组合示例

Tab.3Someexamplesofstatecombinationsofreleasingtheaircraftbrake

4.3软件安全性验证

通过分析得到了某武器发射控制系统的安全需求,但是其结果为自然语言。

为了避免在解读中存在歧义,影响分析效果,并且为了在下一步工作中使用模型检查器进行形式化验证,用上文中提出的算法将其转换为LTL表达式,部分安全需求及相应的LTL表达式如表4所示。

表4安全需求及相应的LTL表达式示例

Tab.4ExamplesofsafetyrequirementsandthecorrespondingLTLexpressions

其中,SR1.27表达式意为在一号设备指示灯为绿色、二号设备指示灯为红色,制动装置呈制止状态且状态传感器工作正常的情况下,不允许提供解脱制动动作,这与系统安全要求一致。

借助SimulinkStateflow工具来描述安全控制结构图中过程模型变量之间的关系以及软件控制行为对安全性的影响,如图5所示。

图5软件安全控制行为的Stateflow模型

Fig.5Stateflowmodelofsoftwaresafetycontrolbehaviors

将系统安全控制行为模型转换为SMV语言,并运行模型检查工具NuSMV对生成的SMV文件进行验证。

NuSMV是基于二进制决策图的符号模型验证工具,支持LTL模型检查,目前已广泛应用于有穷状态迁移系统分析。

NuSMV版本为2.6.0,验证过程耗时0.6s。

经验证,所有的LTL公式都得到满足,没有产生反例,这是因为构建的安全控制行为模型是根据分析得出的软件安全性需求构建的,部分验证结果如图6所示。

图6NuSMV验证结果

Fig.6NuSMVverificationresults

5结语

本文研究STPA方法在软件安全性分析中的应用,并结合某武器发射控制系统进行验证。

结果表明:

1)通过对软件安全性需求分析过程进行形式化定义,并将安全性需求自动转化为形式化规范表达式,可以弥补传统STPA方法分析结果为自然语言的缺陷,得到较为完备的软件安全性需求。

2)使用状态图模型对系统安全控制行为进行描述,并将其自动转化为形式化模型,能够实现STPA方法的形式化扩展。

3)运用模型检测工具对安全控制行为模型进行验证,可以进一步实现分析过程的自动化,提高方法的分析效率。

在未来工作中,将尝试开展针对安全性的软件测试方案的研究,进一步提高安全性需求分析与验证的针对性和可靠性。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2