技術交流

Fortify 源碼檢測嚴格把關應用程式安全性(下)

Norman Norman

承接 Fortify 源碼檢測嚴格把關應用程式安全性(上),這期就讓我們來看看如何透過 Windows 批次指令方式與 Jenkins 整合吧!

整合方式二:執行 Windows 批次指令

1. 事前準備:

Fortify SCA 19.1.2
Jenkins 2.190.1
MSBuild(from Visaul Studio 2017)
Source Code:riches.net(from Fortify SCA samples)

1.1 設定環境變數
管理 Jenkins>設定系統→全域屬性→勾選「環境變數」→Key-Value 對應清單→按下「新增」

設定以下二個環境變數:

名稱:FORTIFY_HOME
值:C:\Program Files\Fortify\Fortify_SCA_and_Apps_19.1.0
名稱:PATH
值:C:\Program Files\Fortify\Fortify_SCA_and_Apps_19.1.2\bin;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64

新增完畢,按下「儲存」

2. 整合作業流程:

2.1 新增作業→輸入項目名稱「riches.net without Fortify Jenkins Plugin」,選擇「建置 Free-Style 軟體專案」,按下「OK」

2.2 在「建置」頁籤,按下「新增建置步驟」,選擇「執行 Windows 批次指令」

2.3 輸入指令:

sourceanalyzer -b riches.net_bat -clean
sourceanalyzer -b riches.net_bat msbuild /t:rebuild "C:\Temp\riches.net\RichesDotnet.sln"
sourceanalyzer -b riches.net_bat -scan -f "C:\Temp\riches.net_bat.fpr"

2.4 重複 Step 2.2,並輸入指令:

BIRTReportGenerator -template "Developer Workbook" -source "C:\Temp\riches.net_bat.fpr" -format PDF -output "riches.net_bat_DW.pdf"

2.5 重複 Step 2.2,並輸入指令:

BIRTReportGenerator -template "OWASP Top 10" -source "C:\Temp\riches.net_bat.fpr" -format PDF -showSuppressed --Version "OWASP Top 10 2017" --UseFortifyPriorityOrder -output "riches.net_bat_OWASP2017.pdf"
fortify

2.6 新增建置後動作:「可編式電子郵件通知」,指定「專案收件人清單」及「附件」後按下「儲存」

fortify fortify

2.7 「馬上建置」,Jenkins 將在建置後將源碼掃描報告(PDF)透過電子郵件方式寄送出來。

fortify
fortify fortify
BIRT Report – OWASP Top 10 2017
fortify fortify
BIRT Report – Developer Workbook

使用 Fortify Jenkins Plugin 透過簡單的設定,可以快速地將源碼掃描整合進Jenkins 的每次建置之中;而使用 Windows 批次指令方式,對 Fortify SCA 的掃描指令(sourceanalyzer.exe)下達不同的參數,可更彈性地針對不同特性之專案原始碼進行掃描設定。Fortify SCA 與 Jenkins 整合,能在每次的建置中自動執行源碼掃描,將協助程式開發人員找出問題,確保程式開發品質。