Fortify编写自定义规则原理
要编写有效的自定义规则,就必须熟悉一直的安全漏洞类别和通常与他们相关的函数类型。深入理解各类经常出现在特定类型漏洞的函数,有利于在编写自定义规则过程中能够准确地找到与安全相关的函数。任何一门语言,都有其庞大的开源框架和lib库。所以自定义规则,既要精通安全漏洞原理,又要熟练掌握一门或几门开发语言,一般自定义规则用的比较多的语言有java、C/C++、PHP等。其次必须识别与安全相关的函数,并熟悉这些函数的特性以此来确定能够体现各个函数具体行为和与之相关的漏洞类别的正确规则形式。一旦确定好了这种联系,使用自定义规则编辑器来创建规则就相对简单了。
Fortify SCA快速入门
规则库导入:
所有的扫描都是基于规则库进行的,因此,建立扫描任务的前提条件就是你需要把检查规则拷贝到HP_FortifyHP_Fortify_SCA_and_Apps_3.80Coreconfigrules文件夹下,拷贝后便为扫描建立了默认的规则库。另外,你也可以自定义规则,这些内容将会在以后逐一介绍。
建立和执行扫描任务:
我们分别通过Java、.Net C#和C/C++三类不同编程语言项目来介绍如何快速建立和执行扫描任务:
Java项目:
Fortify SCA对于Java项目的支持是做得蕞好的,建立扫描入口的路径选择非常多,常用的方法是直接执行HP_FortifyHP_Fortify_SCA_and_Apps_3.80bind,启动审计工作台就可以直接对Java项目进行静态扫描;另外也可以使用Fortify SCA插件,集成嵌入Eclipse来完成开发过程中的实时扫描;当然,你也可以使用原生的命令行工具完成全部工作,我们这里介绍一个通用的方法,即利用ScanWizard工具导入你的源码项目,通过一系列设置后,会生成一个批处理脚本文件,通过批处理代替手工输入执行命令进行测试。
使用HP_FortifyHP_Fortify_SCA_and_Apps_3.80bind启动ScanWizard工具:
C/C++源码扫描系列- Fortify 篇
环境搭建
本文的分析方式是在 Linux 上对源码进行编译、扫描,然后在 Windows 平台对扫描结果进行分析,所以涉及 Windows 和 Linux 两个平台的环境搭建。
Windows搭建
首先双击 Fortify_SCA_and_Apps_20.1.1_windows_x64.exe 安装
安装完成后,把 fortify-common-20.1.1.0007.jar 拷贝 Corelib 进行,然后需要把 rules 目录的规则文件拷贝到安装目录下的 Coreconfigrules 的路径下,该路径下保存的是Fortify的默认规则库。
Externalmetadata 下的文件也拷贝到 CoreconfigExternalmetadata 目录即可
执行 d 即可进入分析源码扫描结果的IDE.