5

作为自动化运行安全代码分析过程的一部分,我有一个 Jenkins 作业,它使用 sourceanalyzer 命令行工具生成 .fpr 结果文件。目前,我在 Audit Workbench 应用程序中打开此结果文件以查看结果并检查是否有任何新引入的问题等,并从那里生成 PDF/XML 格式的报告。

有没有人可以通过命令行调用 Audit Workbench 并生成有关问题的报告,然后我们可以通过 Jenkins 脚本利用该报告并邮寄结果?在线查看命令行使用似乎停止在 fpr 生成阶段。

提前致谢!

4

3 回答 3

12

有一个命令行实用程序可以从 FPR 文件生成报告。

目前有两种报告生成器:Legacy 和 BIRT。BIRT 报告引擎在版本 4.40 中被引入 Audit Workbench。

这是使用 BIRT 报告引擎生成 DISA STIG 报告的示例

BIRTReportGenerator -template "DISA STIG" -source HelloWorld_second.fpr 
    -output BirtReport.pdf -format PDF -showSuppressed --Version "DISA STIG 3.9" 
    -UseFortifyPriorityOrder

使用传统的要复杂一些。命令是:

ReportGenerator -format pdf -f LegacyReport.pdf -source HelloWorld_second.fpr 
    -template DisaStig3.10.xml -showSuppressed -showHidden

您可以使用<SCA Install Dir>/Core/config/reports目录中的预定义模板报告之一,也可以使用报告向导生成一份报告并保存存储C:\Users\<USER>\AppData\Local\Fortify\config\AWB-XX.XX\reports\在 Windows 目录中的模板。

在 Linux/Mac 上查看属性的配置文件<SCA Install Dir>/Core/config/fortify.propertiescom.fortify.WorkingDirectory这是存储报告的位置

于 2016-05-13T18:30:25.607 回答
1

@SBurris,

如果您不想显示 Suppressed/Hidden 是否只是 -hideSuppressed 和 -hideHidden?

此外,有没有一种方法可以添加自定义过滤器以不显示 STIG/SANS/OWASP 中的“无”之类的东西,就像您可以在 AWB GUI 中创建的那样?

基本上,我需要一个命令来合并两个 FPR,然后根据在扫描代码上发现的新内容与旧 FPR 进行比较。

合并应该是:

FPRUtility -merge -project <newest_scan.fpr> -source <previous_scan.fpr> -f <BUILDXX_MergedWith_BUILDXY.fpr>

合并后我需要的自定义过滤器是:

"[OWASP Top 10 2013]:!<none> OR [SANS Top 25 2011]:!<none> OR [STIG 3.9]:!<none> AND [Detected On]:!/^/"

  • Detected On 字段是一个自定义标签,我需要将其从前一个 FPR 文件传递​​到新合并的文件中。

然后将报告从新合并的 fpr 以 pdfxml 格式输出到我指定的位置/文件名。类似于以下内容:

~AWB_Installation_Dir/bin/ReportGenerator -format pdf -f [BUILDXX_MergedWith_BUILDXY].pdf -source output.fpr 
    -template DisaStig3.10.xml -hideSuppressed -hideHidden

显然,只要我们可以将它返回给 Bamboo,这可能是许多命令。任何帮助将不胜感激。谢谢。

于 2016-11-03T17:52:58.590 回答
1

FPRUtility-information -search -query ...通过应用布尔 AND 运算符来解释参数中的空格分隔条件。为了获得 2 个条件的并集A || B,我想我可以交叉否定补充前者的其他条件:(!C && !D其中A || B || C || D始终成立)。即,为了找到所有重要和关键的问题,我使用

FORTIFY_ROOT\jre\bin\java -d64 -Xmx4096M -jar FORTIFY_ROOT\Core\lib\exe\fpr-utility-exe.jar -project APP_VER_DATE.fpr -information -search -query "[OWASP Top 10 2017]:A [fortify priority order]:!low [fortify priority order]:!medium" -categoryIssueCounts -listIssues > issues.txt

在审计的情况下,我认为我需要旧的报告生成实用程序来包含被抑制的问题(及其评论),

sed -e 's/\(IssueListing limit=\)"[^"]\+"/\1"-1"/' -i "FORTIFY_ROOT/Core/config/reports/DeveloperWorkbook.xml"
cmd /c call ReportGenerator -template DeveloperWorkbookAll.xml -format pdf -source APP_VER_DATE.fpr -showSuppressed -f "APP_VER_DATE_with_suppressed.pdf"
于 2017-10-26T20:21:00.030 回答