1881.软件本身是安全的,不会给社会和人类带来任何不利影响,只有当软件与硬件综合并用于执行指挥、控制或监控功能时,才有可能产生危险。故在进行软件安全性分析时,应从系统的观点出发,不应将软件孤立化。软件危险通常主要是由下列事件造成的:
1)无意或越权事件,如发生不希望的事件。
2)顺序错误事件,如某已知的和计划的事件在不该发生时发生。
3)未发生事件,应该发生的事件没有发生。
4)其他,通常是指语法错误。
1882.过去开发的或用户指定的软件(如操作系统、显示管理系统、数据库系统等)有时也可全部或部分满足系统要求,在使用这类软件之前应得到有关部门的批准。
1883.下述民用现成软件(COTS)不能用于安全关键的领域:不能进行充分测试的软件;故障造成的风险很高的软件;在计划的使用中不安全的软件;在故障时会产生不利后果的软件;不能确定其风险水平或故障后果的软件。
1884.安全关键功能必须至少受控于两个独立的功能。
1885.安全关键的模块必须同其他模块隔离;安全关键的模块必须放在一起,以便对其进行保护。
1886.安全关键功能必须具有强数据类型;不得使用一位的逻辑“0”或“1”来表示“安全”或“危险”状态;其判定条件不得依赖于全“0”或全“1”的输入。
1887.安全关键的计时功能必须由计算机控制,使操作人员不能随意修改。(www.daowen.com)
1888.在启动安全关键功能之前,必须对可测试的安全关键的单元进行实时检测。当检测到不安全的情况时,软件必须采取措施对其进行处理;如软件无法处理这种情况,则应保证将控制转换到硬件的安全子系统。
1889.安全性“禁止”、“陷阱”、“互锁”必须通过测试或模拟进行验证,程序中的所有代码至少应执行一次且每个判别语句应至少对其所有可能的输出进行一次测试(尽管不能对各种组合进行)。
1890.软件安全性分析应严格遵循下述步骤:
1)列出可能受控制器错误输出影响的所有系统单元。对每个单元,应列出软件问题可能对安全性带来的不利影响。
2)选择造成上述不利影响的单元的错误输入信号。它可能是控制器的某个输出信号。
3)分析软件程序,以确定是否存在会产生错误输出的途径,是否存在阻碍产生所要求的安全关键输出的途径。
4)确定程序中是否包含有可消除或减少出现错误输出的方法。
5)分析控制器的输入,以确定什么样的输入会引起不希望的输出。
6)确定是否有控制器之外的原因造成系统故障,如由于操作人员错误地修改程序或提供错误的输入数据而影响程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。