Fortify自定义规则笔记(二)

摘要:

对于自定义规则,我们需要掌握每条规则的所代表的可以检查的漏洞类型,这样,才能编写有效的自定义规则,伴随着自定义规则库的增多,Fortify SCA发现漏洞能力越来越强,误报率会越来越低,一定程度上可以智能化扫描系统。

如下是fortify自定义规则向导中的规则选项:

1) Access Control: Database  Validation Rule
定义验证对数据库中所存储的信息的访问权限的函数 (授权函数)。这个规则可以发现与未经授权的访问相关的漏洞Alias Rule
在安全编码规则包或自定义规则的范围内定义核心和扩展API 所发现的能够模拟其他函数行为的函数。
2) Allocation Rule
定义内存分配的函数。这个规则有助于跟踪缓冲区大小并检测 buffer overflow 漏洞
3) Buffer Overflow Detection Rules for 'scanf' Family of Functions
定义像 scanf() 家族函数一样运行的函数。这些规则有助于跟踪缓冲区大小并检测 buffer overflow 漏洞
4) Buffer Overflow Detection Rules for 'sprintf' Family of Functions
定义像 sprintf() 家族函数一样运行的函数。这个函数可以在格式化字符串中并置多个起始缓冲区,并将格式化字符串的多个内存单位复制到目标缓冲区。这个规则有助于跟踪缓冲区大小并检测 buffer overflow 漏洞

5) Buffer Overflow Detection Rules for 'strcat' Family of Functions
定义像 strcat() 家族函数一样运行的函数。它在目标缓冲区的末端并置了多个起始缓冲区的内存单位。这些规则有助于跟踪缓冲区大小并检测 buffer overflow 漏洞
6) Buffer Overflow Detection Rules for 'strcpy' Family of Functions
定义像 strcpy() 家族函数一样运行的函数。它可以将多个内存单位从起始缓冲区复制到目标缓冲区。这些规则有助于
跟踪缓冲区大小并检测 buffer overflow 漏洞
7) Cross-Site Scripting Sink Rule
定义在输入参数没有进行适当验证的情况下有可能在浏览器中执行恶意代码的函数
8) Cross-Site Scripting Source Rule
定义充当输入源的函数,如果这样的函数没有经过适当的验证,会导致浏览器执行恶意代码。
9) Cross-Site Scripting Validation Rule
定义发送到网页前需要进行适当的数据验证的函数
10) Generic Pass-Through Rule
定义一个其输入参数会和输出参数交互数据的函数。
11) Generic Semantic Rule
定义可能出现的 dangerous function
12) Generic Sink Rule
定义在输入参数没有进行适当验证的情况下有可能带来多种安全漏洞风险的函数
13) Generic Source Rule
定义充当输入源的函数,如果这样的函数没有经过适当的验证,会导致多种安全漏洞。
14) Generic Validation Rule
定义能够针对多种安全漏洞而进行适当验证的函数
15) HTTP Response Splitting Sink Rule
定义在输入参数没有进行适当验证的情况下有可能破坏 HTTP 响应头文件的函数
16) HTTP Response Splitting Validation Rule
定义加入 HTTP 响应头文件之前已进行适当的数据验证的函数
17) Integer Overflow Sink Rule
定义易于发生 integer overflow 漏洞的函数,这种漏洞会在输入参数验证不当的情况下导致逻辑错误和 buffer overflow。
18) Log Forging Sink Rule
定义在输入参数没有进行适当验证的情况下有可能向日志文件写入恶意或伪造条目的函数
19) Pass-Through Rule that Indicates that Outgoing Value does not End with a Newline Character
定义未在输出参数中附加换行符的参数
20) Pass-Through Rule that Indicates that Outgoing Value does not End with a Null Character
定义没有适当地以 "\0" 结束输出缓冲区的函数
21) Pass-Through Rule that Indicates that Outgoing Value Ends with a Newline Character
定义在输出参数中附加换行符的参数
22) Pass-Through Rule that Indicates that Outgoing Value Ends with a Null Character
定义适当地以 "\0" 结束输出缓冲区的函数

23) Pass-Through Rule that Indicates  that Outgoing Value is  Deobfuscated
定义充当去模糊化例程的函数
24) Pass-Through Rule that Indicates  that Outgoing Value is not  Numeric
定义处理输入参数的函数,以使其输出参数不为数字。
25) Pass-Through Rule that Indicates that Outgoing Value is Numeric
定义处理输入参数的函数,以使其输出参数为数字。
26) Pass-Through Rule that Indicates  that Outgoing Value is Poorly  Encrypted
定义对输入参数所执行的加密方式较差的函数,如基于 64位的编码。
27) Pass-Through Rule that Indicates  that Outgoing Value Represents  the Length of the String
定义输出参数可以表示字符串长度的函数
28) Password Management Sink Rule
定义采用永远不会被破译或去模糊化的明文密码作为参数的函数
29) Password Management: Weak Cryptography Sink Rule
定义采用加密方式较差的密码作为参数的函数
30) PCI Violation Sink Rule
定义有可能将信用卡数据显示给攻击者的函数
31) PCI Violation Source Rule
定义将信用卡数据引入应用程序的函数
32) PCI Violation Validation Rule
定义信用卡数据显示给攻击者前可以对这些数据进行适当验证的函数
33) Privacy Violation Sink Rule
定义在输入参数处理不当的情况下由于向攻击者显示私人信 息而导致可能危及用户隐私的函数
34) Privacy Violation Source Rule
定义作为私人数据源的函数,如果处理不当,会危害用户隐私。
35) Privacy Violation Validation Rule
定义能适当处理私人数据且不会危及用户隐私的函数。
36) SQL Injection Sink Rule
定义在输入参数没有进行适当验证的情况下有可能执行恶意SQL 或对数据库所存储的数据提供未经授权的访问权限的函数
37) SQL Injection Source Rule
定义充当输入源的函数,如果这样的函数没有经过适当的验证,会导致 SQL 被注入到数据库查询中。
38) SQL Injection Validation Rule
定义在利用数据进行 SQL 查询之前能够对这些数据进行适当验证的函数
39) String Length Rule
定义能够计算字符串长度的函数。这个规则有助于跟踪字符串的长度,以便检测 buffer overflow 漏洞。
40) String Termination Error Sink Rule
定义在输入参数没有适当地以 "\0" 结尾的情况下可能会容易导致 buffer overflow 漏洞
41) String Termination Error Source Rule
定义由于输入数据源没有适当地以 "\0" 结尾而容易导致buffer overflow 漏洞。

42) String Termination Error Validation Rule
定义适当地以 "\0" 结束缓冲区的函数。
43) System Information Leak Sink Rule
定义在输入参数处理不当的情况下可能向攻击者显示有用的系统信息的函数
44) System Information Leak Source Rule
定义作为系统信息数据源的函数,如果处理不当,会向攻击者泄漏有用的数据。
45) System Information Leak Validation Rule
定义能够适当处理系统数据的函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值