代码审计流程 安全代码审计的第一步就是对每一个源代码文件的所有者的分配权限、相关所有文件等建立一个数据库。在这一阶段,不能遗漏任何待评审的代码。许多源代码库并不会存储源代码文件"Owner"。在这种情况下,通常可以使用最近一次更新过该文件的用户面进行更新。在数据库中创建一个包含文件名、文件属主、优先级、评审者、评审结果及评论的表格。
下一步就是明确评审优先级。多数标记应由威胁模型驱动。威胁模型所识别出的最高风险组件就是待评审的高优先级代码段,可以执行一些简单的规则来明确优先级。代码审计应当也能够覆盖用于为其他使用人员讲解的示例代码。相对于需要交付的代码来说,对示例代码的优先级进行定级虽然有些困难,但一个好的方法就是考虑用户将会以什么方式使用该示例代码。如果是模板代码在用于生产环境时需要进行轻微的修改,而且如果符合前文件所述的清单中优先级为l 的标准,那么该示例代码毫无疑问优先级
为1 。
需要注意的是,属主并不参与审计代码,但其可以指定某人对代码进行审计。其中一种最佳方案是只有两个属主交换他们的源代码文件并互相交叉审计。有时候可能仍需要平衡代码审计人员之间的工作量,如果一个审计者完成了已分配代码审计,则应当帮助其他人员进行审计工作。
紧接着,必须建立一个囊括产品中所有可执行文件(.exe 文件、动态链接库、COM组件、汇编程序、脚本文件等)的清单,并在此基础之上为每一个组件分配一个测试属主。再次创建包含可执行文件名称、测试属主、优先级、验证和评论的数据表。该任务的目的是使得测试人员对产品中高风险的可执行文件进行验证,一次成功的验证意味着测试团队必须在意见上达成一致。
在之后的分析过程中,基本的分析流程如图7-43 所示。
