第1章 如何使用《应用软件安全代码审查指南》

虽然本书不同章节由不同的人编制(和译制),但实际上它是一本教科书。本书的内容和结构都是精心设计的;并且,所有的章节也都是精心编制并整合到一个统一的框架下的,以保持统一的文章结构和风格。

本书满足以下3个方面的需求。

第一,出于什么样的IT管理原因,需要进行安全代码审查,并且为什么将安全代码审查作为当前组织机构执行安全软件开发的最佳实践。组织机构的管理高层应仔细阅读本书的第1、2章。如果组织机构需要将安全代码审查作为软件安全开发生命周期的一部分,那么管理者需要回答和落实以下问题。

执行安全代码审查的时间和需要执行安全代码审查的代码类型。组织机构只审查支付系统或面向客户的代码吗?风险评估是否将作为 S-SDLC(Secure Software Development Life Cycle)的一部分?未被审查的代码是否允许投入生产环境?在什么情况下被允许投入生产环境?在没有审查代码的情况下,是否允许在生产环境中修复已损坏的代码?如果允许的话,这段代码在正常程序中存在的时限是多长?

组织机构的项目组是否为安全代码审查分配了足够的时间?

管理层是否有能力跟踪每个项目和程序员的安全代码审查结果?

管理层需要决定在项目生命周期中应该执行安全代码审查的时间点,以及现有项目可接受的变更范围。如果超出了这个范围,就需要对已经完成审查的代码进行重新审查。

第二,软件团队负责人应向每位团队成员及时提供安全代码审查反馈意见和有用的工具,以帮助组织机构创建安全的企业软件。

作为安全代码审查人员,在使用本书时,应该首先决定期望完成的安全代码审查类型。让我们先了解一下安全代码审查的类型,以帮助判断本书能为你提供的帮助。

API或设计类安全代码审查。通过本书,可以知道为什么不安全的架构设计会导致安全漏洞;也可以知道,在第三方API代码中,哪些安全控件可以防止安全漏洞。

可维护代码的审查。这类安全代码审查偏向于组织内部的最佳编码实践。本书包括代码度量值,它可以帮助安全代码审查人员更好地理解复杂代码,以及如何从中寻找安全漏洞。

集成安全代码审查。这类安全代码审查偏向于组织内部的编码策略。代码是否被完全集成到项目代码中,并得到了IT管理者的审查和批准?目前,大量安全漏洞都是由于在执行开源代码和相关机制(如GIT中),引入了不安全的依赖关系。

测试安全代码审查。在敏捷开发和测试所驱动的设计中,程序员通过创建单元测试来证明代码在按照他们的期望运行。这样的代码不能作为测试软件的用例。安全代码审查人员可能会通过单元测试用例确保所有方法都有适当的例外情况,即代码能以一种安全的方式发生错误。如果可能的话,代码中的每个安全控件都应当具有恰当的单元测试用例。

第三,安全代码审查人员希望通过最新版本的指南来指导如何将安全代码审查融合到组织机构的软件安全开发生命周期中。在安全代码审查过程中,本书可作为安全代码审查的参考指南。

本书为安全代码审查人员提供了所需的全部资源信息。第一次阅读时,它应当被当作一本故事书;在以后的阅读过程中,它可作为一本参考书。