Fortify编写自定义规则原理
要编写有效的自定义规则,就必须熟悉一直的安全漏洞类别和通常与他们相关的函数类型。深入理解各类经常出现在特定类型漏洞的函数,有利于在编写自定义规则过程中能够准确地找到与安全相关的函数。任何一门语言,都有其庞大的开源框架和lib库。所以自定义规则,既要精通安全漏洞原理,又要熟练掌握一门或几门开发语言,一般自定义规则用的比较多的语言有java、C/C++、PHP等。其次必须识别与安全相关的函数,并熟悉这些函数的特性以此来确定能够体现各个函数具体行为和与之相关的漏洞类别的正确规则形式。一旦确定好了这种联系,使用自定义规则编辑器来创建规则就相对简单了。
Fortify代码扫描使用教程
1、进入Fortify安装目录,再进入bin目录,双击d启动程序
2、打开扫描窗口,点击Scan Java Project
3、选择要扫描的项目目录,点击确定按钮
4、弹出java代码版本选择窗口,选择版本后,点击OK
5、弹出审计向导窗口,点击Scan按钮开始扫描
6、扫描开始,等待扫描结束,等待时间根据项目大小而定,可能时间会很长
7、扫描结束后,显示扫描结果。
Fortify 审计
Fortify扫描后生成的fpr文件,就是我们审计的目标。Fortify会将源码信息和识别到的风险记录下来。
使用Fortify Audit Workbench打开文件后;左上角的小窗口会列出所有识别出来的潜在风险,双击即可查看对应位置代码。这里是一个在日志中打印IMEI的风险项,左下角可以看到整个数据链路,了解数据的传递路径。视图中上位置是代码窗口,可以看到已经将危险代码标识出来。如果代码窗口中的中文显示乱码,往往是因为Fortify默认的解析字节码是GBK,可以在选中代码文件后,点击Edit->Set Encoding...选项,设置正确的编码方式即可。中下位置则是对于规则的介绍,协助安全工程师确定问题,识别风险。右侧的则是所有依赖的代码的路径。
在我们审计过程中,如果发现问题是误报,可以右键风险项,选择Hide in AWB,即可隐藏误报问题。
然后是生成报告,我们可以选择生成两种报告:
BIRT是统计报告,可以按照不同标准显示各种类型风险的统计信息。也可以选择一些我们认定是误报的项,是否显示。
Legacy表示信息的留存,该报告会将各风险项的信息依次打印出来,可以提供给业务确认风险。