文档介绍:XXX系统
安全风险评估报告
目录I
第一章 概述2
第二章软件安全评估具体需求3
软件结构设计安全性分析3软件、结束:管理者应根据合同或任务书中的准则,确定各项软件安全性分析 任务是否完成,并核查软件安全性分析中产生的产品和记录是否完整。
根据安全评估指导原则,为尽量发现系统的安全漏洞,提高系统的安全标准, 在具体的软件安全评估过程中,应该包含但不限于以下七项任务:
软件需求分析
需要对分配给软件的系统级安全性需求进行分析,规定软件的安全性需求, 保证规定必要的软件安全功能和软件安全完整性。
评测人员需要根据软件安全性分析准备的结果和系统的初步结构设计文档, 包括系统分配的软件需求、接口需求,完成对系统安全性需求的映射,以安全 相关性分析和对软件需求的安全性评价。通过需求安全性分析,才能够对软件在 系统中的安全性需求作出一个综合性的评价,更好地提交对后续的软件设计和测 试的建议。
软件结构设计安全性分析
需要评价软件结构设计的安全性,以保证软件安全功能的完整性。从安全角 度讲,软件结构设计是制定软件基本安全性策略的阶段,因为这一阶段负责定义 主要软件部件,以及它们如何交互,如何获得所要求的属性,特别是安全完整 性,是软件安全性需求在结构定义中实现的阶段。
对结构设计进行安全性分析需要将全部软件安全性需求综合到软件的体系 结构设计中,确定结构中与安全性相关的部分,并评价结构设计的安全性。
结构设计是开发人员对系统期望功能和功能实现方式的表示方法,但是沟通 的一致性,和设计的合理性,通常会影响到安全完整。所以有必要对软件设计 进行安全性评估,一方面确认软件安全需求是否在设计中得到体现,另一方面确 认设计是否合理、是否存在漏洞。
软件编程安全性分析
选择合适的编程语言。所有编程语言无论在其定义还是在其实现中都有其不 安全性。这通常会造成编码人员对语言的误用,而对这些误解,一些相对开放的 语言又缺乏相应的解释。例如:
1、未初始化的变量。除非进行特别的检查,否则单元测试不会发现他们。 而这将导致,一个程序在不同的环境下虽然运行成功,但运行结果却不是期望值。
2、当要求重新分配存储器的调用时应予以检查,以确保不仅释放指针而且 释放该结构所用的存储器。
3、运算符优先级的规则,一些语言的要求并不是那么严格,容易是程序员 发生误解。
如果某种语言有精确的定义(也有完备的功能性),从逻辑上说是清晰的, 有易管理的规模和复杂度,那么就认为这个语言适用于安全相关性软件。使用编 程语言时,也应该针对该语言的特点,努力满足安全性要求。如果一种编程经验 或编程风格因为能够提高软件安全性而被公认为专用性编码标准,可以选择这样 一种编码标准来约束对不安全语言的使用。
因此进行软件安全评估过程中,需要根据编程语言的特性,对相应易产生漏 洞的不安全因素进行重点分析,可以在提高工作效率的基础上,有针对性的增强 软件的安全性。同时,根据不同编程语言的特性,对编码标准进行分析,也会一 定程度上减少对不安全语法的使用,从而减少漏洞的产生。
软件详细设计安全性分析
对软件详细设计的安全性分析,主要是评估设计