將軟體組合分析檢查整合到管線中
安全性掃描過去被視為,在每次發行後,由成員幾乎不與其他群組往來之專屬安全性小組完成的活動。
此做法形成一種危險的模式,即當安全性專家發現大量問題的同時,開發人員卻承受著莫大的軟體產品發行壓力。
這種壓力通常導致軟體部署具有很多必須在產品發行之後解決的安全性弱點,而將掃描整合到開發路徑上的多點小組工作流程。 Secure DevOps 有助於讓包括安全性在內的所有品質保證活動得以持續和自動化。
提取要求代碼掃描分析整合。
DevOps 小組可以使用提取要求 (PR) 提交應用程式 (主要) 程式碼基底的建議變更。 為避免引入新的問題,開發人員必須先驗證程式碼變更的效果,再建立 PR。 DevOps 流程中,PR 一般是針對每項小變更。 變更會持續合併到主要程式碼基底中,讓主要程式碼基底保持在最新狀態。 理想情況下,開發人員應該先檢查有無安全性問題,再建立 PR。
在 PR 期間協助整合掃描的 Azure Marketplace 延伸模組包括:
- Mend。 協助驗證其二進位指紋的相依性。
- Checkmarx。 提供變更的累加掃描。
- Veracode。 實作開發人員概念沙箱。
- Synopsis 的 Black Duck。 開放原始碼的稽核工具,可協助識別、修正及管理合規性。
這些延伸模組可讓開發人員先實驗變更,再將變更作為 PR 提交。
建置與發行定義程式碼掃描、分析和整合
開發人員需要最佳化 CI 以加快速度,以便立即獲得建置問題的意見反應。 盡快執行程式碼掃描,可整合 CI 組建定義,防止建置中斷。 其可讓開發人員立即修正可能的問題,將組建狀態還原至就緒/綠色狀態。
同時還必須徹底完成 CD。 在 Azure DevOps 中,CD 一般是透過發行定義 (在環境間提高組建輸出) 或其他組建定義管理。
您可以排程組建定義 (每日),或使用每個認可觸發。 不論哪一種情況,組建定義都可以執行較長的靜態分析掃描 (如下圖所示)。
您可以掃描完整的程式碼專案,並在不封鎖 CI 流程的情況下離線檢閱任何錯誤或警告。