Fortify自定义规则笔记(一)

一. Fortify SCA 自定义规则介绍

Fortify是一款强大的静态代码扫描分析工具,其发现代码漏洞缺陷的能力十分强悍,主要是将代码经过编译,依托于其强大的内置规则库来发现漏洞的。其次fortify SCA 团队在开发此商业工具时,也提供了自定义规则的接口,只要经过正版授权后,便可以在此基础上自定义规则,来增强Fortify SCA的漏洞识别能力,同时经过自定义规则,也可以降低误报,使得静态分析的准确度和高效性。

默认情况下, Fortify SCA 使用安装的安全编码规则包用来检查源代码,并定义一系列可能出现的问题,如可被攻击者利用的安全漏洞和不良的编码缺陷。
安全编码规则包中的规则分析了受支持语言的核心和扩展的 API 包中的函数,并将分析结果记录在Fortify SCA 中。每一个问题的解释包含了对问题的描述和建议的解决方案,以便更好地解决程序中的漏洞和缺陷。
您可以通过创建自定义规则包来准确地分析特定的应用程序 (其中包含有关源代码元素附加信息的规则),验证专门的安全规则,以及细化 Fortify SCA 所报告的问题。

二. 编写自定义规则原理

要编写有效的自定义规则,就必须熟悉已知的安全漏洞类别和通常与它们相关的函数类型。深入理解各类经常出现在特定类型漏洞的函数,有利于在编写自定义规则过程中能够准确地找到与安全相关的函数。相对来说寻找与安全相关的函数往往是比较困难的,因为任何一门语言,都有其庞大的开源框架和lib库。所以自定义规则,就需要即精通安全漏洞原理,又要熟练掌握一门或几门开发语言。一般自定义规则用的比较多的语言有  java、C/C++、PHP等。

其次必须识别与安全相关的函数,并熟悉这些函数的特性(通过检查源代码,或借助 API 文档)以此来确定能够体现各个函数具体行为和与之相关的漏洞类别的正确规则形式。一旦确定好了这种联系,使用自定义规则编辑器来创建规则就相对简单了。

三. 自定义规则

1). 在fortify SCA安装的bin目录下找到打开自定义规则编辑器,CustomRulesEditor.cmd,如下图所示:

2). 打开编辑器后,选择File ——>Generate Rule,弹出规则向导框。

3). 自定义规则模板可以按照漏洞类型(Category)和规则类型(Rule Type)进行分类,不管是何种方式分类,这些模板大体上分为,数据污染源tainted规则,数据控制流规则,数据传递规则,以及漏洞缺陷爆发的sink规则。只要理解了这些规则模板,和开发语言的函数特征,建立规则就简单了。

3) .选择规则包语言,点击next,然后填写报名,类名,函数名

4). 点击next,设置sink点

5). 点击保存即可

四. 运行自定义规则

需要将编写好的自定义规则包放在Fortify SCA指定的文件夹下方可生效。默认一般是在${FortifyInstall}/Core/config/customrules/目录下

你可以在${FortifyInstall}/Core/config/fortify-sca.properties进行配置自定义路径

希望做源代码审计或安全测试的同学,多多关注,多多交流 ( ^∀^)( ^∀^)

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Fortify是一款常用的静态代码分析工具,用于帮助开发人员发现潜在的安全漏洞和软件缺陷。常见的规则库包括Fortify安装包中提供的规则,以及从第三方资源库中获取的规则。 要更换Fortify规则库,可以按照以下步骤进行操作: 1. 确保已经安装了Fortify静态代码分析工具,并且可以正常运行。 2. 打开Fortify工具界面,选择“规则”或“扫描配置”等类似选项,进入规则库管理页面。 3. 在规则库管理页面,可以看到当前所使用的规则库以及相关信息。 4. 点击“更换规则库”或类似选项,会出现一个弹出窗口,列出了可用的规则库选项。 5. 从弹出窗口中选择要更换的规则库,可以有两种选择:Fortify提供的规则库或从第三方资源库中获取。 6. 如果是选择Fortify提供的规则库,可以在弹出窗口中选择相应版本,并点击“确认”按钮进行更换。 7. 如果是选择从第三方资源库中获取规则库,可以点击“添加”或“导入”按钮,然后选择规则库文件所在的目录,并确认选择。系统会自动加载规则库。 8. 完成规则库更换后,可以关闭弹出窗口,并重新加载规则库。 9. 若规则库更换后,发现有新的规则需要加入或旧规则需要修改,可以重复上述步骤进行更新或修改。 总结来说,更换Fortify规则库的过程就是打开Fortify工具,进入规则库管理页面,选择要更换的规则库,确认更换后重新加载规则库。不同的规则库选项可以根据实际需求进行选择,可以是Fortify提供的规则库,也可以是从第三方资源库中获取的规则库。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值