应用软件安全代码审查指南(新型网络安全人才培养丛书)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 在S-SDLC中集成安全代码审查

安全代码审查存在于每个正式的软件安全开发生命周期(S-SDLC),但安全代码审查在形式上存在很大的差异。安全代码审查的目的及安全代码审查人员正在寻找的内容各不相同,如安全性、合规性、编程风格等,这使审查主题更加混乱。在整个S-SDLC(XP、Agile、RAD、BSIMM、CMMI、Microsoft ALM)中需要应用安全专家介入的地方很多。在S-SLDC中集成安全代码审查的想法可能令人望而生畏,尤其对于已经超出预算和时间限制的项目,存在额外的或复杂的资金和时间成本。然而,安全审查被证明是划算的,且可以提供比静态分析工具更高的安全级别。

在某些行业中,增强企业S-SDLC安全性的驱动力可能并非纯粹来自渴望生产更好的代码,这些行业(如政府和金融行业)中的相关条例和法律要求在编写软件时适当重视安全性,并且针对在S-SDLC中不重视安全性的企业,罚金往往远高于在开发周期中重视安全性的成本。

当将安全代码审查集成到S-SDLC中时,组织应该制定标准和政策供安全代码审查人员遵守。这将制订合理的任务重要性排序,但这并不是一项简单的项目检查任务。因此,应该制订项目计划,以便有足够的时间完成所有任务(包括任何针对安全代码审查引出的补救任务)。这些标准帮助管理层和安全专家们(如CISO及安全架构师)规范安全代码审查人员的安全代码审查行为,同时允许安全代码审查人员参考这些标准来确定是否需要仲裁。

现在,大多数组织已经修改了S-SDLC流程,将敏捷开发加入S-SDLC流程中,因此,组织需要根据各自内部开发实践来确定有效安全代码审查的时机和频率。如果项目延期和超出预算,则会增加由于修复软件而造成安全漏洞的风险,因为他们会选择更快地部署项目。产品发布后的安全代码审查可能会发现软件漏洞,但要明白此时发现漏洞是一场与黑客的比赛,并且在执行补救性措施的同时,存在漏洞的软件仍在运行。