分享

[CAPESE概念解析] 软件安全性关键概念解析(四)

 郑公书馆298 2016-06-01
软件安全性与软件可靠性

严格地讲,软件安全性应称为软件失效安全性。由于软件内部逻辑复杂,运行环境动态变化,并且不同的软件差异可能很大,因而软件失效机理可能有不同的表现形式。为了避免在使用术语时造成不必要的混乱,在具体阐述软件的失效机理之前,首先应明确几个相关术语的含义。

人为错误(human error)是指在软件生存期内出现的不期望或不可接受的人为差错,其结果会导致产生软件缺陷,人为错误是人们在软件开发活动中不可避免的一种人为过程。

软件缺陷(software defect)是存在于软件中的、不期望的或不可接受的偏差,其结果是当软件运行于某一特定条件时将出现软件故障(即,软件缺陷被激活)。软件缺陷以一种静态的形式存在于软件的内部,是软件开发过程中人为错误的结果。

软件故障(software fault)是指在软件运行过程中出现的一种不期望的或不可接受的内部状态,此时若无适当措施加以处理(例如,容错)就会产生软件失效。软件故障是一种动态行为,是软件缺陷的激活和表现。

软件失效(software failure)是指软件对要求行为的偏离,是软件运行时产生的一种不期望的或不可接受的外部行为结果。

软件事故(software mishap)指因软件失效而造成人员伤亡、职业病、设备损坏或财产损失的一个或一系列意外事件,软件事故是危害度最大的软件失效事件。

在某种意义上讲,软件缺陷和软件失效代表了软件的两个不同层次的问题。软件缺陷是软件的内部问题,是软件开发人员能够察觉到的问题;软件失效是软件的外部问题,是用户能够察觉到的问题。软件的失效机理可以形象地描述为:人为错误→软件缺陷→软件故障→软件失效。

GJB 5236-2004《军用软件质量度量》中指出,使用质量的获得依赖于取得必需的外部质量,而外部质量则依赖于取得必需的内部质量,如图1所示。该标准定义外部质量是“产品在特定条件下使用时满足明确或隐含要求的程度。”内部质量是“产品属性的总和,决定了产品在特定条件下使用时,满足明确和隐含要求的能力。”归根结底软件使用质量取决于软件的内部质量。该标准定义了软件外部质量和内部质量的质量模型,质量模型是“一组特性及特性之间的关系,它提供了规定质量需求和评价质量的基础。”如图2所示。

该标准关于软件安全性的定义是“软件产品在指定使用环境下,达到对人类、业务、软件、财产或环境造成损害的可接受的风险级别的能力。”并指出“风险常常是由功能性(包括安全保密性)、可靠性、易用性或维护性中的缺陷所致。”就是说这4个质量特性都与软件安全性有关,避免或减少这4方面有关缺陷的设计措施都有利于提高软件安全性。特别是,因为所有这些缺陷都是软件开发过程中造成且未被检测而潜伏下来的,在软件运行过程中遇到这些缺陷时就可能出现失效;而避免或减少软件中的缺陷正是软件可靠性设计的基本目的,也是提高软件安全性的基本要求。不过提高软件安全性并不需要考虑所有软件缺陷,只针对会导致系统危险风险高的缺陷,这一点与软件可靠性有别。

前面提到,对于危险风险高的系统来说,系统对所包含的软件可能有两类要求,一类是要求软件承担或协助完成一部分系统使命,另一类是要求软件协助识别和控制系统危险,保证系统安全。从系统角度看,前一类要求与系统可靠性相关,而后一类要求则与系统安全性相关。但从软件本身角度看,无论哪一类系统要求它都应尽可能在系统规定的时间和空间约束条件下执行规定功能满足系统要求,就是说要达到相应的可靠性水平,在此基础上可能还要增加一些提高软件安全性的设计措施。



未完待续


轻松一刻


今天315打假,你们居然还敢发自拍?
凭什么不能晒?我们的睫毛膏是真的,眼线是真的,眉笔是真的,气垫BB是真的,腮红是真的,遮瑕霜是真的......



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多