2016-05-13 196 views
2

作爲運行安全代碼分析過程自動化的一部分,我有一個Jenkins作業,它使用sourceanalyzer命令行工具生成.fpr結果文件。目前,我在Audit Workbench應用程序中打開此結果文件以查看結果並檢查是否存在任何新引入的問題等,並以PDF/XML格式從那裏生成報告。通過命令行解釋Fortify結果文件(.fpr)

是否有人可以通過命令行調用Audit Workbench並生成關於問題的報告,然後我們可以通過Jenkins腳本利用該報告併發送結果?在線查看命令行的使用似乎停止在第五代生成階段。

在此先感謝!

回答

6

有一個命令行實用程序可以從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的看爲com.fortify.WorkingDirectory屬性配置文件<SCA Install Dir>/Core/config/fortify.properties,這是那裏的報告將被存儲

+0

謝謝@SBuris,非常感謝! –

1

@SBurris,

如果想顯示禁止/隱藏它只是 - 隱藏抑制和隱藏?

另外,是否有一種方法可以添加自定義過濾器,以便像在AWB GUI中創建的那樣不顯示像STIG/SANS/OWASP那樣的「nones」?

基本上,我需要一個命令來合併兩個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]:!/^/"

  • 當檢測到現場的是,我需要一個自定義標籤從以前的FPR文件進入新合併的文件。

並輸出從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,這可以是衆多的命令。任何幫助將不勝感激。謝謝。

+0

在我的回答中,我發現FPRUtility會在搜索過濾器中誤解複合表達式。 –

0

當查詢有多個條件時,FPRUtility似乎曲解了「-information -search -query ...」參數。 (可能該實用程序增加了額外的條件,例如那些排除抑制性問題的條件)。我可以通過分析關鍵和高級問題的分數來解決這個問題。

cmd /c call FPRUtility -project APP_VER_DATE.fpr -information -search -query "[fortify priority order]:critical" -categoryIssueCounts -listIssues > fortify-critical.txt 
cmd /c call FPRUtility -project APP_VER_DATE.fpr -information -search -query "[fortify priority order]:high" -categoryIssueCounts -listIssues > fortify-high.txt 

在審計的情況下,我想我需要的較舊的報表生成工具來抑制包括問題(以及他們的意見),

cmd /c call ReportGenerator -format pdf -f APP_VER_DATE.pdf -source APP_VER_DATE.fpr -showSuppressed 
+0

回覆:發佈搜索配置文件,例如「OWASP Top 10 2013」​​,我發現FPRUtility.bat會破壞尖括號和/或在搜索參數「[OWASP Top 10 2013] :! 」參數中使用的感嘆號。直接將這些參數傳遞給java:'java -jar c:\ fortify \ Core \ lib \ exe \ fpr-utility-exe.jar -project PROJ.fpr -information -search -query「[OWASP Top 10 2013]:! 「-categoryIssueCounts -listIssues'。 –