簡介
現代應用程式嚴重依賴開源元件和第三方函式庫。 雖然這些依賴項加速了開發並提供經過驗證的功能,但它們也帶來了安全漏洞和許可證合規性風險。 軟體組合分析 (SCA) 提供自動化工具和流程,用於識別、追蹤和管理軟體供應鏈中的安全與合規性風險。
如果沒有系統的依賴性分析,組織在發生違規之前仍然不會意識到其應用程式中的漏洞。 安全研究人員每年都會在開源元件中發現數千個新漏洞,使用受影響版本的應用程式在依賴項更新之前仍然容易受到攻擊。 手動追蹤數百個應用程式的依賴關係是不切實際的,需要自動化的 SCA 解決方案。
本模組提供有關在開發工作流程中實施軟體組合分析的全面指導。 您將瞭解 SCA 基本概念、使用 GitHub Dependabot 實作自動化弱點偵測、將 SCA 工具整合至 Azure Pipelines、自動化容器掃描,以及解譯安全性警示,以有效地排定補救的優先順序。
您將學到什麼
本模組涵蓋實施軟體組合分析的基本知識:
了解軟體組成分析: 您將探索 SCA 是什麼、為什麼它對現代開發至關重要、SCA 工具可偵測什麼以及自動依賴項掃描的好處。 瞭解 SCA 基本概念可協助您瞭解手動相依性管理無法擴展的原因,以及自動化工具如何提供安全性與合規性風險的持續可見性。
檢查和驗證程式碼庫: 您將瞭解如何清查應用程式中的所有相依性、驗證授權合規性以避免法律問題、透過 CVE 資料庫偵測已知的安全漏洞,以及評估相依性品質,包括維護狀態和社群健康情況。
實作 GitHub Dependabot: 您將瞭解 GitHub Dependabot 如何自動掃描相依性中的弱點、建立具有安全性更新的提取要求、產生顯示可轉移相依性的相依性圖表,以及與 GitHub 安全性索引標籤整合以進行集中式弱點管理。
將 SCA 整合到管道中: 您將探索如何在建置和部署期間在 Azure Pipelines 中實作自動化掃描、設定 SCA 工具,包括 Mend (WhiteSource)、Snyk 和 OWASP 相依性檢查、建立在偵測到嚴重弱點時組建失敗的品質閘道,以及產生軟體物料清單 (SBOM) 以實現合規性和透明度。
檢查 SCA 工具: 您將比較不同的 SCA 解決方案,了解它們的優勢、限制和理想用例。 涵蓋的工具包括商業產品,如 Mend 和 Snyk,提供全面的掃描和支援,開放原始碼選項,如 OWASP Dependency-Check,用於經濟高效的掃描,以及平台整合解決方案,例如 Azure Artifacts 上游來源和 GitHub Dependabot。
自動化容器掃描: 您將瞭解如何掃描容器基底映像是否有弱點、分析容器內的應用程式相依性、將容器掃描整合到 CI/CD 管線中,以及設定 Azure Container Registry 和 Docker Hub 等容器登錄,以自動封鎖易受攻擊的映像。
解讀掃描器警報: 您將瞭解如何使用 CVSS 分數評估漏洞嚴重性、考慮應用程式中是否可存取漏洞來確定可利用性、根據業務影響和風險確定修復的優先順序,以及管理如果過濾不當可能會使團隊不堪重負的誤報。
學習目標
完成本單元後,您將能夠:
- 了解軟體組合分析 (SCA) 並認識到為什麼自動依賴項掃描對於管理由開源元件建構的現代應用程式中的安全性和合規性風險至關重要。
- 透過清查所有相依性 (包括可轉移相依性)、驗證授權合規性、透過 CVE 資料庫偵測已知漏洞以及評估相依性品質來檢查和驗證程式碼庫。
- 實作 GitHub Dependabot 以自動偵測易受攻擊的相依性、接收具有安全性更新的提取要求、視覺化相依性圖表,以及將弱點警示與 GitHub 安全性索引標籤整合。
- 藉由在組建期間實作自動掃描、設定嚴重弱點組建失敗的品質閘道、產生合規性報告,以及建立軟體物料清單 (SBOM),將 SCA 檢查整合到 Azure Pipelines 中。
- 檢查和設定 SCA 工具 ,包括商業解決方案,例如 Mend (WhiteSource) 和 Snyk)、開放原始碼工具,例如 OWASP 相依性檢查,以及平臺整合解決方案,例如 Azure Artifacts 上游來源。
- 自動化容器映像掃描 以偵測基礎映像和應用程式相依性中的漏洞,將掃描整合到 CI/CD 工作流程中,並設定註冊表以防止部署易受攻擊的容器。
- 透過使用 CVSS 分數評估嚴重性、確定可利用性和可到達性、根據業務影響確定補救優先順序以及有效管理誤報,來解釋來自掃描工具的警報。
先決條件
在開始本單元之前,您應該具備:
- 軟體依賴關係的理解:應用程式如何使用套件管理員 (例如 npm、pip、NuGet 或 Maven) 的程式庫、架構和套件的基本知識。
- 熟悉 DevOps 概念: 了解持續整合、持續交付、建置管道和軟體開發生命週期。
- 版本控制經驗: 具備 Git、合併請求和程式碼審查工作流程的基本經驗,這些流程通常涉及相依性管理。
- 開源意識: 一般了解開源元件可能包含安全漏洞並具有授權要求(先前模組的知識是有益的)。
- Azure DevOps 或 GitHub 體驗: 熟悉 Azure Pipelines 或 GitHub Actions,以便在 CI/CD 工作流程中實作自動化掃描。
在提供軟體的組織中工作的經驗是有益的,但不是必需的。 本模組以開源軟體概念為基礎,為軟體組合分析提供實用的實作指導。