软件安全性分析技术及应用资料下载.pdf

上传人:b****2 文档编号:16089594 上传时间:2022-11-19 格式:PDF 页数:4 大小:134.46KB
下载 相关 举报
软件安全性分析技术及应用资料下载.pdf_第1页
第1页 / 共4页
软件安全性分析技术及应用资料下载.pdf_第2页
第2页 / 共4页
软件安全性分析技术及应用资料下载.pdf_第3页
第3页 / 共4页
软件安全性分析技术及应用资料下载.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件安全性分析技术及应用资料下载.pdf

《软件安全性分析技术及应用资料下载.pdf》由会员分享,可在线阅读,更多相关《软件安全性分析技术及应用资料下载.pdf(4页珍藏版)》请在冰豆网上搜索。

软件安全性分析技术及应用资料下载.pdf

通过对软件及其运行环境的分析,发现软件中与系统危险条件相关的设计缺陷及危险产生条件,并分析危险的发生概率,确认软件的危险风险指数。

本文叙述了软件安全性分析的内涵和特点,并以载人运载火箭故障检测处理软件安全性分析为切入点,阐述了软件安全性分析实施的技术要点和注意事项。

全文分四部分:

软件安全性分析的内涵、故检软件安全性分析思路、主要步骤和结论。

二、软件安全性分析的内涵%0软件安全性与软件可靠性的区别第一,二者目的不同。

软件可靠性指软件在规定的条件下、规定的时间内完成规定功能的能力。

若软件不能完成规定的功能,则称之为软件失效。

软件可靠性考虑的是避免软件失效,而软件安全性考虑的是避免或减少与软件相关的危险条件的发生。

第二,二者涉及的范畴有交叉,但不完全相同。

软件产生失效的前提是软件存在设计缺陷,但只有外部输入导致软件执行到有缺陷的路径时才会产生失效。

因此,软件可靠性关注与软件失效相关的设计缺陷,以及导致失效发生的外部条件。

由于只有部分软件失效可能导致系统进入危险的状态,故软件安全性只关注摘要软件安全性分析是保证软件质量和安全性的重要手段。

本文叙述了软件安全性分析的内涵和特点,并以载人运载火箭故障检测处理软件安全性分析为切入点,阐述了软件安全性分析的技术要点和注意事项。

关键词安全性软件安全性安全性分析实践经验国防科技工业质量与可靠性研究中心研究员周新蕾$&

期)质量与可靠性可能导致危险条件发生的失效,以及与该类失效相关的设计缺陷和外部输入条件。

第三,硬件的失效、操作人员的错误等也可能影响软件的正常运行,从而导致系统进入危险的状态,因此软件安全性设计时必须对这种危险情况进行分析,并在设计时加以考虑。

而软件可靠性仅针对系统要求和约束进行设计,考虑常规的容错需求,并不需要进行专门的危险分析。

第四,在复杂的系统运行条件下,有时软件、硬件均未失效,但软硬件的交互作用在某种特殊条件下仍会导致系统进入危险的状态,这种情况是软件安全性设计考虑的重点之一,但软件可靠性并不考虑这类情况。

软件安全性分析的目的与对象软件安全性分析的目的是通过对安全性关键软件的运行环境、设计结构和测试结果等进行全方位的分析,获得与软件相关的系统危险模式,以及危险的严重等级与发生概率,最终确认系统的危险风险指数,给出安全性评价。

因此,软件安全性分析不能只从软件本身出发,必须从系统角度进行分析,考虑软件使用过程中软件、硬件和操作人员的相互作用,分析软件可能的工作时序、适用条件、逻辑缺陷及其可能造成的不利影响。

分析的对象:

软件的需求和设计文档、软件测试结果、以及与软件相关的接口、人员操作、硬件状态、硬件故障、系统时序等。

$软件安全性分析的特点第一,软件安全性分析是系统安全性分析的一部分,必须在系统安全性分析的基础上进行。

第二,软件与硬件的故障模式不同,因此分析的重点也不同。

硬件为物理产品,使用时有磨损。

因此硬件安全性分析的重点为硬件故障以及共因失效所引起的系统危险状态。

软件属于逻辑产品,无磨损。

很多情况下并不是软件失效,而是在软件正常工作时,在某种特殊条件下软硬件相互作用导致的不安全情况。

分析重点为软件设计缺陷,以及软件使用过程中软件、硬件和操作人员的相互作用。

第三,与软件测试的侧重点不同。

软件测试只能对一般的输入组合所涉及的执行路径进行验证,而难以测试那些与某些特殊的输入组合和时序相关的软件故障。

这种与软件的设计细节和软硬件交互时序等密切相关的软件故障必须采用软件安全性分析的方法。

所以实际工程中,对那些可靠性要求较高难以进行可靠性验证的软件也进行安全性分析。

第四,由于软件的逻辑、数据、时序等设计缺陷,与软件相关的硬件故障和状态等都有可能引起软件失效,导致系统进入危险状态。

因此分析时必须对软件进行全方位的分析,从系统顶层至软件的源代码,从外部的运行环境到软件内部的设计细节,包括软件的静态、动态、逻辑和物理模型。

第五,软件安全性分析必须从系统角度分析软件可能的运行时序、运行状态、适用条件、逻辑缺陷及其可能造成的不利影响,这就不可避免地会涉及到各种不同领域的专业知识与经验积累。

因此,分析时以人为主进行分析,任何软件分析工具只能起辅助作用。

这就对软件安全性分析人员提出了较高的要求。

分析时要求有专门知识的软件安全性分析人员、熟悉系统结构的系统总体设计人员、软件设计人员、相关领域专家参加,共同工作。

第六,由于软件的特点和运行背景的多样化,软件安全性分析没有固定的分析模式和分析程序,必须具体问题具体分析。

必须综合考虑软件的运行环境和总体要求,以及各种软件安全性分析技术的使用条件、适用范围和工作量,进行权衡分析,确定详细的软件安全性分析方案,方案包括分析的内容、方法、步骤和必要的测试验证环境和辅助工具等。

三、载人运载火箭故检软件分析思路%故障检测处理软件的任务载人运载火箭的故障检测处理软件属于安全性关键软件,该软件的主要任务是:

从待发段开始直到上升段火箭、飞船分离结束前,检测火箭的重要参数,判断火箭故障,出现故障实践经验$(!

期)质量与可靠性时向有关系统发出逃逸指令和中止飞行指令。

该软件运行的正确与否对火箭运行安全性有着致命的影响:

若火箭正常飞行时软件误逃逸,将导致飞行任务失败;

若故障状态下软件漏逃逸,导致逃逸失败则会危及宇航员的生命安全。

必须最大限度地保证软件在实际工作条件下运行的正确性和安全性。

故障检测处理软件的分析思路软件安全性分析必须从软件运行的环境条件及异常影响,软件本身的功能、性能需求与设计实现的临界条件等多方面进行分析。

分析的关键是从系统角度进行的与软件相关的危险分析,以及从软件设计角度进行的软件对系统的影响分析。

若在总体规定的范围内,软件对系统的可能影响不会导致系统进入不安全的状态,就可以认为软件是安全的。

因此,故障检测处理软件安全性分析采用以下思路:

分析系统中存在的与软件相关的危险模式,据此确定安全性关键的软件功能和特性;

然后分析可能影响安全性关键软件功能和特性的所有因素和所有环节,由此确定软件中可能存在的影响系统安全性的危险因素;

此外,还需对软件实现的细节进行分析,识别软件中存在的影响系统安全性的设计缺陷。

最后,归纳全部分析结果,得到软件的危险风险指数。

考虑到故障检测处理软件本身的规模和特点,我们对故障检测处理软件进行两个层次的安全性分析:

一是在功能层次上从系统角度对软件进行安全性需求分析,该部分的工作内容包括系统级、分系统级与软件相关的安全性分析工作和软件安全性需求分析。

着重分析与软件相关的危险模式、发生概率,确定系统对软件的安全性验证要求,软件承受异常条件的强壮性,及软件功能设计的正确性、完备性等,判断软件是否能够满足系统总体的安全性要求。

二是在代码层次上从设计角度对软件实现细节进行安全性分析,重点分析软件对安全性需求实现的正确性、软件使用的临界条件、软件设计缺陷对系统安全性的不利影响等。

四、主要分析步骤首先,由总体人员进行系统安全性分析,获得与软件相关的系统危险模式。

其次,在系统安全性分析的基础上进行软件安全需求分析,确定软件的安全性需求和安全性关键软件特性,标识出软件顶层设计结构中存在的不安全模式,进行软件危险排序。

第三,进行软件代码和测试覆盖分析,分析软件源代码设计的正确性、合理性和适用条件,软件测试覆盖与总体要求的符合性,以及软件可能存在的不安全模式及其发生概率。

第四,归纳全部结果,确定软件危险风险指数。

下面将对软件安全性需求分析和软件代码安全性分析进行较详细的说明。

%软件安全性需求分析按以下步骤进行:

%)在系统和分系统层次上分析与软件相关的人员操作、系统、硬件、工作时序等,确定与软件相关的故障模式和危险发生概率,以及输入、输出信号的关键性等级等;

)在系统和分系统级分析的基础上,针对与软件相关的危险和有关模式,在软件功能层次上进行的更深一步的细化分析,分析软件可能的运行模式及其发生概率,确定与安全性相关的运行模式、控制运行模式转换的关键控制信号和功能分析的重点;

$)通过分析各种运行状态下软件执行的功能、数据流和控制流,从逻辑上确定与系统安全直接相关的关键功能和间接相关的重要功能,并针对这些功能可能的失效模式进行分析,提出纠正措施或估计出发生概率;

()主要根据软件功能的执行方式和触发条件,分析软件功能的执行时序及可能存在的失效模式,提出纠正措施或估计出发生概率;

#)确定软件的安全性需求和安全性关键软件特性,标识出软件顶层设计结构中存在的不安全模式,进行软件危险排序。

软件代码及测试覆盖分析包括下述分析内容:

%)代码数据分析:

变量定义分析、变量初实践经验$)!

期)质量与可靠性值分析、变量计数清零分析、变量限幅分析、变量使用分析等。

)代码接口分析:

软件输入地址和判断逻辑分析、软件输出地址和输出时序分析、硬件初始化分析、中断嵌套分析、软件内部接口分析、以及软件堆栈操作和数据公共区使用分析等。

$)使用资源分析:

对软件内存使用分配进行分析。

确保无资源使用冲突。

)代码逻辑分析:

模块算法分析,软件功能触发数据条件与时序分析,计算累计误差分析,浮点计算上溢、下溢可能性分析等。

#)运行状态分析:

对软件顶层的运行状态进一步细化,绘制下层的运行状态转换图,并对中间状态和状态初值的影响进行分析。

()临界条件分析:

输入有效边界和误差分析,中断对巡检采样周期的影响分析,最大堆栈深度和计算有效位数分析,输入抗干扰分析等。

&

)测试覆盖分析:

软件功能测试覆盖(包括输入组合和输入数据域覆盖)、性能测试覆盖和结构测试覆盖分析等。

五、结论软件安全性分析时应注意以下问题:

%)每一个软件的功能、规模、实现逻辑、运行环境等均具有其特殊性,每一种分析技术也有其适用条件和局限性。

只有针对软件的特点和设计要求,综合考虑分析要素及工程限制,选择有效的技术手段,制定合理的分析方案,才可能获得满意的效果。

)软件安全性分析要求不同领域的专家合作,从系统的角度考察软件、系统和操作人员之间的相互作用,因此人员配备时不仅要配备具备相关背景知识的软件安全性分析员,还必须配备对系统熟悉、且具有专门领域知识的系统总体设计人员。

$)软件安全性分析是从系统顶级开始,自顶向下逐层逐级分析到软件功能层次,获得软件的安全性需求,再从软件的设计角度分析,自顶向下逐层分析软件设计缺陷对系统的不利影响。

所以系统级、需求级和代码级分析是不能缺少的,如果软件规模较大,软件结构设计分析也是不可缺少的,甚至对系统、需求和设计的分析也可能转变为多层次的安全性分析。

)分析内容的确定取决于软件本身的功能和系统设计要求,分析员根据分析内容选择合适的分析技术,包括软件需求分析技术、软件可靠性分析技术和专门的安全性分析技术,对于比较复杂的系统甚至需要建立专门的仿真环境和分析工具进行计算机辅助分析。

总之,软件安全性问题是一个非常复杂的系统问题,这类问题没有简单的解决方法。

软件安全性分析时,必须将软件放入到整个运行系统中进行分析,考虑软件、操作人员和系统之间的相互影响,这就需要总体设计人员、软件设计人员和软件安全性分析

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

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1