如何区分 Fortify SCA 扫描

Posted

技术标签:

【中文标题】如何区分 Fortify SCA 扫描【英文标题】:How to diff Fortify SCA scans 【发布时间】:2015-03-06 19:57:12 【问题描述】:

我们有 Fortify SCA,并且正在设置定期自动扫描我们的源代码。我们的目的是在出现安全问题时发出警报。有没有办法,也许使用 FPRUtility (或其他方法)来完成这个?最终,我更喜欢可以从命令行轻松运行的东西,但如果这也可以使用 GUI 完成,那么我也会很感激知道如何做到这一点。

【问题讨论】:

【参考方案1】:

(1) 将 Fortify 报告生成为 XML FORMAT 的命令: FORTIFY_INSTALL_DIR\bin\ReportGenerator.bat -format xml -f target_file_name.xml -source your_fpr_file_name.fpr -templateDetailed-DefaultReportDefinition.xml

(2)您也可以使用AWB通过Report(顶部菜单栏)->保存报告->选择格式->保存来生成.pdf/.rtf/.xml报告

(3) 刚刚在此处添加了创建 excel 表的程序:Export HP Fortify SCA 4.10 results in EXCEL format

(4)如果有DB(oracle)访问权限,可以用脚本查询

【讨论】:

这是正确的,只是您忘记要求用户自定义用于隐藏除新问题之外的所有问题的报告模板。 在 db 脚本 "WHERE I2.SCANSTATUS='NEW' AND I2.ISSUESTATE='Open Issue' ....." 表示仅获取新发现的问题。如果您想查看所有活跃的问题,请将 ="NEW" 替换为 "REMOVED"(针对 ftech "NEW"、"UPDATED"、"REINTRODUCED" 问题)【参考方案2】:

    使用 Audit Workbench 运行报告。选择“开发人员工作簿”并禁用除一个部分之外的所有部分。 (你可以选择任何你想要的部分)。

    在报告部分的附加属性中,将问题的过滤器设置为[issue age]:new。这意味着该报告将仅显示您的 FPR 中先前扫描中不存在且在最新扫描中引入的问题。保存模板。

    在您的扫描配置中,确保每个项目每次都扫描到相同的 FPR,以便报告运行器可以计算“新”问题。

    扫描完成后,使用@user1836982 的回答运行报告。选择 XML 模板并以编程方式对其进行处理。

【讨论】:

【参考方案3】:

如果您使用 Fortify SCA,您还应该有权访问 Fortify 软件安全中心 (SSC)。 SSC 可用于跨项目构建跟踪趋势数据。 SSC 内置了根据 SSC 中用户定义的事件发送警报的功能;我从来没有和那些人一起工作过,所以除了文档所说的之外,我无法提供任何想法。

Fortify SCA 生成的报告(.fpr 文件)是存储所有相关数据的 zip 文件 XML 文档;我怀疑这些文件中的一些数据与 SCA 和 SSC 实例中都存在的 SCA 规则集有关。我怀疑如果没有规则集,您将能够确定已经引入了新问题,但没有任何关于它们是什么、优先级等的良好数据。

【讨论】:

很遗憾我们没有 SSC。我的解决方案可能是运行合并,然后编写一个程序来解析 XML。

以上是关于如何区分 Fortify SCA 扫描的主要内容,如果未能解决你的问题,请参考以下文章

谁有fortify sca能扫描的安全漏洞种类明细

Fortify SCA 使用 Maven 插件排除多个目录/文件

Fortify SCA 和 Fortify SSC 之间的区别

Fortify

Fortify SCA 在可执行文件或 .o 文件上构建

如何基于Fortify扫描结果使TFS构建失败