10.4.1 目的
分析源代码,识别没有恰当实现的安全特征,验证软件实现覆盖软件安全性设计的全部特征与方法。
10.4.2 工作项目要点
10.4.2.1 全部软件安全性设计特征与方法均应在软件代码中实现。
10.4.2.2 在源代码注释中应清晰表示安全性关键代码与数据。
10.4.2.3 软件代码应符合软件编码标准。
10.4.2.4 代码安全性分析至少包括下述内容:
a) 验证安全性关键软件代码和数据满足 10.4.2.1~10.4.2.3 的全部要求;
b) 验证在软件代码中正确实现了设计的安全特征与方法;
c) 验证软件代码实现没有弱化任何安全控制或安全处理,没有制造任何新的危险,并且在全部运行模式下,软件可将系统维持在一个安全的状态;
d) 代码分析应考虑时序约束、硬件失效、故障迁移、通讯、中断、并发、事件序列,容错、不利的外部环境、非法输入、信息流等因素;
e) 代码和数据验证活动应确保软件部件或单元层次上所有的软件安全性需求得到充分的证实(在可验证的范围内);
f) 验证全部安全性关键代码单元对安全性关键性设计元素的可追踪性。
10.4.2.5 软件代码安全性分析应作为《软件测试报告》(见 GJB 438B-2009 规定)的独立章节,通过专家评审,纳入配置管理。
10.4.3 注意事项
主要包括:
a) 应明确采用的分析技术;
b) 在软件单元被集成为计算机软件配置项以前,必须完成全部安全性关键代码单元与数据的验证;
c) 应包括所有新识别的危险,以及未正确实现的安全特征;
d) 必要时进行第三方独立分析。