一、 Fortify SCA概述
1、Source Code Analysis 阶段概述
Audit Workbench 会启动 Fortify SCA“Scanning(扫描)”向导来扫描和分析源代码。该向导整合了以下几个分析阶段:
转换:使用源代码创建中间文件,源代码与一个 Build ID相关联,Build ID通常就是项目名称。
扫描与分析:扫描中间文件,分析代码,并将结果写入一个Fortify Project Results(FPR)文件。
校验:确保所有源文件均包含在扫描过程中,使用的是正确的规则包,且没有报告重大错误。
2、安全编码规则包概述
安全编码规则包是 Fortify Software 安全研究小组多年软件安全经验的体现,并且经过其不断努力改进而成。这些规则是通过对编码理论和常用编码实践的研究,而取得的软件安全知识的巨大积累,并且在 Fortify Software 安全研究小组的努力下不断扩展和改进。每个安全编码规则包均包含大量的规则,每个规则定义了一个被 source code analysis 检测出的特定异常行为。
一旦检测出安全问题,安全编码规则包会提供有关问题的信息,让开发人员能够计划并实施修复工作,源代码扫描工具fortify价格,这样比研究问题的安全细节更为有效。这些信息包括关于问题类别的具体信息、该问题会如何者利用,以及开发人员如何确保代码不受此漏洞的威胁。
安全编码规则包支持多种编程语言,也支持各种经过扩展的第三方库和配置文件。
有关当前安全编码规则包的信息,请参见《安全编码规则包参考》。
Fortify 审计
Fortify扫描后生成的fpr文件,就是我们审计的目标。Fortify会将源码信息和识别到的风险记录下来。
使用Fortify Audit Workbench打开文件后;左上角的小窗口会列出所有识别出来的潜在风险,源代码扫描工具fortify,双击即可查看对应位置代码。这里是一个在日志中打印IMEI的风险项,左下角可以看到整个数据链路,了解数据的传递路径。视图中上位置是代码窗口,可以看到已经将危险代码标识出来。如果代码窗口中的中文显示乱码,往往是因为Fortify默认的解析字节码是GBK,可以在选中代码文件后,点击Edit->Set Encoding...选项,设置正确的编码方式即可。中下位置则是对于规则的介绍,西南fortify,协助安全工程师确定问题,识别风险。右侧的则是所有依赖的代码的路径。
在我们审计过程中,源代码审计工具fortify价格表,如果发现问题是误报,可以右键风险项,选择Hide in AWB,即可隐藏误报问题。
然后是生成报告,我们可以选择生成两种报告:
BIRT是统计报告,可以按照不同标准显示各种类型风险的统计信息。也可以选择一些我们认定是误报的项,是否显示。
Legacy表示信息的留存,该报告会将各风险项的信息依次打印出来,可以提供给业务确认风险。
Fortify system命令执行检测
除了使用 DataflowSourceRule 、DataflowSinkRule 等规则来定义污点跟踪相关的属性外,Fortify还支持使用 CharacterizationRule 来定义污点跟踪相关的特性。
Fortify在编译/分析代码过程中会把代码中的元素(代码块、类、表达式、语句等)通过树状结构体组装起来形成一颗 structural tree,然后扫描的时候使用 Structural Analyzer 来解析 StructuralRule ,蕞后输出匹配的代码。
下面以一个简单的示例看看 structural tree 的结构,示例代码如下
西南fortify-苏州华克斯公司由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司在行业软件这一领域倾注了诸多的热忱和热情,华克斯一直以客户为中心、为客户创造价值的理念、以品质、服务来赢得市场,衷心希望能与社会各界合作,共创成功,共创辉煌。相关业务欢迎垂询,联系人:华克斯。