Fortify自定义规则编写教程(一):Fortify规则文件简介

举报
开发者学堂小助 发表于 2017/12/20 09:36:50 2017/12/20
【摘要】 Fortify是一款业界公认的静态代码检查工具,就连CWE中诸多条目都来自于Fortify的源码安全知识库。Fortify规则库是Fortify工具的核心,工具是由规则来驱动的。没有规则,Fortify不能对源代码进行分析扫描。

2017-12-20_093506.png

Fortify是一款业界公认的静态代码检查工具,就连CWE中诸多条目都来自于Fortify的源码安全知识库。

Fortify源码安全知识库链接:http://hpenterprisesecurity.com/vulncat/zh_CN/vulncat/index.html

Fortify规则库是Fortify工具的核心,工具是由规则来驱动的。没有规则,Fortify不能对源代码进行分析扫描。

安装好Fortify以后需要将规则文件解压至 Fortify安装目录/Core/config/rules目录下:

2017-12-20_092733.png

官方的.bin文件当然是加密的,无法查看。

要编写自定义规则,我们可以使用Fortify内置的规则编辑器(熟练的员工可以使用其他xml编辑器)。必须在图形界面下才能运行规则编辑器:位于 Fortify安装目录/bin下,名为CustomRuleEditor.cmd:

2017-12-20_092753.png

启动后,新建一个规则包:

2017-12-20_092912.png

我们随意选择一个规则类型,然后配置(参考下图一步步配置):

2017-12-20_092931.png

2017-12-20_093029.png 

2017-12-20_093043.png

2017-12-20_093054.png

2017-12-20_093111.png

2017-12-20_093200.png

选择XML View视图,可以看到生成的规则:

2017-12-20_093349.png

一个规则包可以包含多个,因此后续生成的规则,我们保存的时候,可以保存到同一个xml文件里,Fortify会自动将其放到/Rulepack/Rules下面。

关于规则包文件,大家需要熟悉几个概念:

1./RulePack/RulePackID:这个是规则包唯一ID,不能与其他规则包ID重复,否则判为无效。当然,使用工具生成的ID肯定是唯一的。

2./RulePack/SKU:这个猜测是规则包系列名称,官方包里也只是RUL加一串数字

3./RulePack/Name:规则包名称,例如官方规则中:Fortify安全编码规则,核心,SQL

4./RulePack/Version:规则包版本,例如官方规则中:2014.1.1.0002

5./RulePack/Description:规则包描述,例如官方规则中的描述:提供关于SQL核心API相关的安全问题描述

注:,这个是xml的基础知识,不了解的自行google。

6./RulePack/Rules:规则组,里面可容纳多个规则

7./RulePack/Rules/RuleDefinitions:规则定义

关于具体的规则类型介绍,以及规则设计定制,后续教程将会介绍。


作者:陈辉军


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。