作为自动运行安全代码分析过程的一部分,我有一个Jenkins作业,它使用sourceanalyzer命令行工具生成.fpr结果文件。目前,我在Audit Workbench应用程序中打开此结果文件以查看结果并检查是否存在任何新引入的问题等,并以PDF / XML格式从那里生成报告。
是否有人可以通过命令行调用Audit Workbench并生成有关问题的报告,然后我们可以通过Jenkins脚本利用它,然后邮寄结果?在线查看命令行使用似乎在fpr生成阶段停止。
提前致谢!
答案 0 :(得分:10)
有一个命令行实用程序可以从FPR文件生成报告。
目前有两个报告生成器:Legacy和BIRT。 BIRT报告引擎已引入Audit Workbench,版本为4.40。
以下是使用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
目录中的预定义模板报告之一,也可以使用报告向导生成一个报告,并保存存储在Windows中C:\Users\<USER>\AppData\Local\Fortify\config\AWB-XX.XX\reports\
目录中的模板。
在Linux / Mac上查看<SCA Install Dir>/Core/config/fortify.properties
属性的配置文件com.fortify.WorkingDirectory
,这是存储报告的位置
答案 1 :(得分:1)
@SBurris,
如果你不想要显示抑制/隐藏它只是-hideSuppressed和-hideHidden?
另外,有没有办法添加自定义过滤器,以便不显示&#34; nones&#34;您可以在AWB GUI中创建STIG / SANS / OWASP吗?
基本上,我需要一个命令来合并两个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]:!/^/"
AND THEN将pdf 和 xml格式的新合并fpr的报告输出到我指定的位置/文件名。有点像:
~AWB_Installation_Dir/bin/ReportGenerator -format pdf -f [BUILDXX_MergedWith_BUILDXY].pdf -source output.fpr
-template DisaStig3.10.xml -hideSuppressed -hideHidden
显然,只要我们可以将它恢复到Bamboo,这可以是多种命令。任何帮助将不胜感激。谢谢。
答案 2 :(得分:1)
FPRUtility通过应用布尔AND运算符来解释-information -search -query ...
参数中的空格分隔条件。为了获得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"