Fortify SCA 是目前市场上流行的一款静态代码扫描分析工具,能够精准地发现代码中的潜在漏洞和缺陷,拥有高占比的市场份额和较好的用户口碑。Fortify SCA 的工作原理是在编译代码后再利用其强大的内置规则库来深入探测和识别潜在的安全漏洞。所以,可以认为 Fortify 规则库是 Fortify SCA 工具的核心。
通常,Fortify SCA 使用其默认安全编码规则包检查源代码的安全性,这些规则深入分析了受支持语言的核心 API 包以及扩展功能。对于发现的问题,Fortify SCA 还会提供详尽的描述以及推荐的解决方案,使用户能够快速理解和应对。
在实际项目检测中,用户还可以根据特定需求自定义规则,进一步增强 Fortify SCA 的漏洞识别能力,满足准确分析特定应用程序、提高静态代码检查的完整性和准确性等个性化的需求。
编写有效的自定义规则需要专业的开发人员进行操作。不仅需要深入了解已知的安全漏洞类别,还要熟悉与这些漏洞相关的函数类型。此外,识别并熟悉与安全相关的函数特性也至关重要,正确理解函数的行为和漏洞类别之间的关系,才能够编写出既准确又高效的自定义规则。
规则元素介绍
RulePack
在 Fortify 规则库中,

Rules
在 Fortify 规则库中,

Rule

自定义规则
编写自定义规则,我们可以使用 Fortify 内置的规则编辑器(也可以使用其他 XML 编辑器),如下图所示,在 Fortify SCA 安装的 bin 目录下打开自定义规则编辑器:

启动后,新建一个规则包并选择规则向导:

自定义规则向导中的规则选项非常繁多,但总体可以分为:数据污染源 tainted 规则,数据控制流规则,数据传递规则,以及漏洞缺陷爆发的 sink 规则这几类,在理解这些向导模板的基础上就能够更加高效地建立自定义规则。
通过自定义规则,企业能够针对性地满足其个性化的安全标准或安全法规。例如,可以创建规则以识别与特定安全标准不符的代码模式,并及时发现并解决这些问题。此外,自定义规则还能有效整合企业内部的安全最佳实践,例如对敏感数据处理、身份验证机制等方面的要求。通过自定义规则,可以确保代码符合内部安全最佳实践,从而降低潜在的安全风险。
以 Fortify 安装目录下自带的 php 示例代码为例,由于缺乏加密机和密码托管平台,数据库密码只能明文写在代码或配置文件中,为了避免 Fortify 重复报出这一安全隐患,我们可以通过自定义规则进行覆盖。

除此之外,还可以通过自定义规则,使漏洞详情和修复建议以更符合我们工作需求和习惯的方式呈现,从而提升团队的工作效率和响应速度。

以上就是小叶为大家带来的有关 Fortify SCA 自定义规则的简要介绍。
更多的技术探讨欢迎致电咨询小叶,我们为您提供最完整的软件测试产品和技术支持。


文字及图片侵删