5)BSI系列
BSI认为软件安全有三根支柱:风险管理、软件安全接触点和安全知识,其强调了在软件的整个生命周期中风险管理的重要性,并要求风险管理框架贯穿整个开发过程。BSI明确了安全知识在软件安全中的重要性,但是没有强调要把安全培训作为软件安全开发的先决条件。
软件安全接触点针对软件安全开发中可能出现的问题,通过从“白帽子”和“黑i旧子” 两个角度出发,提出了七个工作接触点(实践方法),以在软件开发生命周期的每一个阶段尽可能地避免和?肖除漏洞。同时,软件安全接触点具有较好的通用性,能够和不同的软件开发模型相结合。软件安全接触点从顶层给出安全实践要求,但是对于执行安全实践的具体节描述不多。
BSIMM收集了很多软件企业在软件安全开发方面的措施和方法,并按照软件安全开发框架进行描述,找出这些软件企业的共同点和不同点,从而给其他企业提供实践参考。因此, 尽管BSIMM本身不提出任何建议,软件企业还是可以根据BSIMM的数据了解常用的软件安全开发措施,同时可以用来和自己开发方法进行比较。
在软件的生命周期中,需求分析和软件设计都是应该在软件编码之前开始的工作,而所有的软件安全开发模型,也都为安全需求分析和软件安全设计的有关活动预留了位置。需求分析和软件设计阶段一旦出现失误,在软件生命周期的后期再挽回,其代价将是非常昂贵的。因此,软件开发企业一定要重视软件安全需求分析和软件安全设计过程。这两项工作做得好,可以为开发出安全的软件奠定良好的基础。
安全需求分析应当以风险管理为基础,建立“危险…分析计划,建立软件安全需求定义,以确保软件安全需求定义的正确性,并完成相关文档的撰写。对于软件系统的每一项需求,都应该在软件安全设计阶段认真考虑。安全专家Gary McGrawjfl士认为,有50010的安全问题由设计瑕疵引起。换句话说,在软件需求和设计阶段充分做好安全工作,不仅可以极大地提高软件的安全性,而且还可以以极低的成本来获得更高的软件安全性。
软件设计阶段要明确软件安全目标以及采取的有效措施,相关的安全设计内容一般包括:系统安全框架、访问控制机制、主体权利和权限、加密方法和算法、数据完整性机制、 敏感数据处理机制、内部通信机制等。