7.2.2 软件安全设计
在软件设计阶段,需要根据安全需求方案确定的安全目标,对初步风险评估确定的控制措施的具体技术实现而进行安全设计,包括概要设计和详细设计两个阶段。
1.安全设计的工作内容
概要设计阶段确定应用系统的安全整体架构,安全概要设计阶段,包括但不限于:安全体系结构设计、各功能块间的处理流程、与其它功能的关系、安全协议设计、安全接口设计等;详细设计阶段作为安全功能的程序设计阶段,应当直接指导安全功能的编码工作。包括但不限于:模块设计、内部处理流程、数据结构、输入/输出项、算法、逻辑流程图等。
2.安全设计的主要活动
1)详细风险评估:从确定需要保护的信息资产出发,分析系统面临的安全威胁、系统自身存在的脆弱点,威胁利用弱点的影响,从而确定系统风险。
2)控制措施选择:根据安全目标及详细风险评估的结果,从应用设计的角度选择必要的安全控制措施,并从成本、安全性、用户体验等方面综合选择最佳的控制措施。
3)安全技术实现:完成安全控制措施技术实现的设计工作,技术实现分为三步:结构设计、模块设计及详细设计。
4)设计审查:检查安全设计是否符合安全需求。 3.安全设计原则
软件的安全设计应该尽量遵循一些安全设计原则,这些原则是软件开发和软件测试中有关安全经验的高度总结,用于指导安全开发人员(特别是软件架构师和设计师)开发更为安全的软件。