Fortify自定义规则笔记(一)

一. Fortify SCA 自定义规则介绍

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

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

二. 编写自定义规则原理

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

其次必须识别与安全相关的函数,并熟悉这些函

### 如何在Fortify中创建或应用自定义规则 #### 创建自定义规则 为了在Fortify中创建自定义规则,首先需要将编写好的规则包放置于特定路径下以便其生效。通常情况下,默认位置位于 `${FortifyInstall}/Core/config/customrules/` 文件夹内[^1]。 接着,在构建规则之前,必须清楚地理解并识别那些可能引发安全隐患的函数及其特性。这步骤可以通过审查源代码或者查阅API文档完成。只有当明确了这些函数的行为模式以及它们可能导致的安全漏洞类别之后,才能进步设计出精确反映上述特性的规则形式[^2]。 旦完成了前期分析工作,则可以利用Fortify提供的自定义规则编辑器来进行实际操作。此阶段涉及的具体步骤虽然未被详尽描述,但由于已经建立了清晰的功能映射关系,因此整体流程会显得较为直观简易。 #### 应用已有的自定义规则 对于希望直接运用现有的定制化方案而非重新开发新规则的情况而言,可通过多种方式实现这目标: - **导入官方提供或其他来源的规则集**:无论是通过客户门户获取还是其他合法渠道获得的规则集合都可以轻松加载到不同版本的工作环境中去。例如,在 `Fortify Audit Workbench`, `Fortify Eclipse Complete Plugin` 或者 `Fortify Extension for Visual Studio` 这些平台里均具备相应的功能支持此类动作执行[^4]。 - **针对具体项目实施扫描作业**:如果目的是要对某个具体的 Java 工程进行安全性评估的话,那么只需要启动 Fortify 软件本身,并按照提示指引选取对应的 Java 类型工程对象再附加必要的配置参数即可开始全面细致化的静态代码检测活动[^5]。 ```java // 示例代码片段展示如何调用可能存在风险的方法 public void unsafeMethod(String input){ Runtime.getRuntime().exec(input); // 此处存在命令注入的风险 } ``` 以上示例展示了潜在不安全方法的应用场景之——未经验证即执行外部输入字符串作为操作系统指令的部分,这是典型的命令注入隐患表现形式。通过对这类典型例子的学习研究可以帮助我们更好地制定针对性强的有效防御措施及相关联检视准则。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值