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

2.3 什么是安全代码审查

安全代码审查旨在识别应用程序中有关其功能和设计的安全漏洞,以及产生安全漏洞的根本原因。随着应用程序变得日益复杂及新技术的出现,传统的测试方法可能无法检测应用程序中出现的所有安全漏洞。审查人员必须了解应用程序的代码、外部组件和配置,才能有更多的机会找到安全漏洞,这种深入应用程序代码的方式也有助于确定准确的漏洞消除技术,避免安全事件的发生。

安全代码审查是一种审查应用程序源代码的流程,以验证应用程序中是否部署了恰当的安全和逻辑控件,并且它们正以期望的方式运行、在正确的地方被调用。安全代码审查也是一种确保应用程序能在特定环境中具有“自主防卫”能力的辅助方式。

安全代码审查可以确保应用程序开发人员遵守了要求的安全开发技术。一般的经验法则如下:在执行了恰当的安全代码审查后,渗透测试不应该再发现有关开发代码的应用程序漏洞,至少不应发现太多漏洞。

所有的安全代码审查是人工工作和技术支持的结合。一端是使用文本编辑器的无经验人员,另一端是使用先进静态分析工具(SAST)的安全专家团队。遗憾的是,需要具有相当专业知识的安全专家才能有效使用当前的应用程序安全工具,且安全工具不了解动态数据流或业务逻辑,SAST 工具仅在快速覆盖所有代码和设置最低基线方面能发挥作用。

可以使用安全工具来执行安全代码审查,但它们通常需要人工进行确认。安全工具无法理解上下文消息,而这正是安全代码审查的重点。安全工具擅长评估数量庞大的代码,并指出代码中可能存在的问题,但需要人工验证每个结果,以确定它是否是一个真正的问题。如果它真是可被利用的,那么就需要为企业计算风险。人工审查人员还需要对自动化工具无法检查到的盲点进行审查。