一. Fortify SCA 自定义规则介绍
Fortify是一款强大的静态代码扫描分析工具,其发现代码漏洞缺陷的能力十分强悍,主要是将代码经过编译,依托于其强大的内置规则库来发现漏洞的。其次fortify SCA 团队在开发此商业工具时,也提供了自定义规则的接口,只要经过正版授权后,便可以在此基础上自定义规则,来增强Fortify SCA的漏洞识别能力,同时经过自定义规则,也可以降低误报,使得静态分析的准确度和高效性。
默认情况下, Fortify SCA 使用安装的安全编码规则包用来检查源代码,并定义一系列可能出现的问题,如可被攻击者利用的安全漏洞和不良的编码缺陷。
安全编码规则包中的规则分析了受支持语言的核心和扩展的 API 包中的函数,并将分析结果记录在Fortify SCA 中。每一个问题的解释包含了对问题的描述和建议的解决方案,以便更好地解决程序中的漏洞和缺陷。
您可以通过创建自定义规则包来准确地分析特定的应用程序 (其中包含有关源代码元素附加信息的规则),验证专门的安全规则,以及细化 Fortify SCA 所报告的问题。
二. 编写自定义规则原理
要编写有效的自定义规则,就必须熟悉已知的安全漏洞类别和通常与它们相关的函数类型。深入理解各类经常出现在特定类型漏洞的函数,有利于在编写自定义规则过程中能够准确地找到与安全相关的函数。相对来说寻找与安全相关的函数往往是比较困难的,因为任何一门语言,都有其庞大的开源框架和lib库。所以自定义规则,就需要即精通安全漏洞原理,又要熟练掌握一门或几门开发语言。一般自定义规则用的比较多的语言有 java、C/C++、PHP等。
其次必须识别与安全相关的函数,并熟悉这些函