探索軟體組合分析 (SCA)
Secure DevOps 管線的兩個重要領域是套件管理和開放原始碼軟體 OSS 元件。
套件管理
如同小組使用版本控制作為原始程式碼的單一事實來源,Secure DevOps 依賴套件管理員作為二進位元件的唯一來源。
使用二進位套件管理,開發小組可以建立已核准元件的本機快取,以及持續整合 (CI) 管線的信任摘要。
在 Azure DevOps 中,Azure Artifacts 是元件工作流程不可或缺的一部分,可用來組織和共用套件的存取權。 Azure Artifacts 可讓您:
- 讓您的成品井然有序。 將 Apache Maven、npm 和 NuGet 套件一起儲存,輕鬆地共用程式碼。 您可以使用 Universal Packages 來儲存套件,排除在 Git 中保留二進位檔。
- 保護您的套件。 請在摘要中保護您所使用的每個公用來源套件 (包括 npmjs 和 NuGet.org 中的套件),只有您可以將其刪除,並且由企業級 Azure 服務等級協定 (SLA) 支援。
- 將無縫套件處理整合到持續整合 (CI)/持續開發 (CD) 管線中。 輕鬆存取組建和發行中的所有成品。 Azure Artifacts 與 Azure Pipelines CI/CD 工具原生整合。
如需 Azure Artifacts 的詳細資訊,請瀏覽網頁。 什麼是 Azure Artifacts?
版本和相容性
下表列出 Azure Artifacts 支援的套件類型。 也會顯示 Azure DevOps Services 中每個套件的可用性。
下表詳細說明每個套件與 Azure DevOps Server (先前稱為 Team Foundation Server (TFS)) 特定版本的相容性。
功能 | Azure DevOps Services | TFS |
---|---|---|
NuGet (英文) | Yes | TFS 2017 |
npm \(英文\) | Yes | TFS 2017 更新一和更新版本 |
Maven | Yes | TFS 2017 更新一和更新版本 |
Gradle | Yes | TFS 2018 |
環球 | 是 | No |
Python | 是 | No |
您可以從公用和私人來源的任何大小小組支援 Maven、npm 和 NuGet 套件。 Azure Artifact 隨附 Azure DevOps,但是延伸模組也可以從 Visual Studio Marketplace 取得。
注意
將特定套件版本發佈至摘要之後,該版本號碼會永久保留。
注意
您無法上傳具有相同版本號碼的較新版本修訂套件,或刪除該版本,並上傳具有相同版本號碼的新套件。 發佈版本是不可變的。
OSS 元件的角色
因為可重複使用開放原始碼軟體 (OSS) 元件的廣泛可用性,所以開發工作更具生產力。
這種重複使用的實用方法包括執行階段,可在 Windows 和 Linux 作業系統上使用,例如 Microsoft .NET Core 和 Node.js。
不過,OSS 元件重複使用隨附重複使用相依性可能會有安全性弱點的風險。 因此,許多使用者會因為所取用的 Node.js 套件版本,在應用程式中發現安全性弱點。
OSS 提供新概念,稱為軟體組合分析 (SCA) 來解決這些安全性考量,如下圖所示。
當您取用 OSS 元件時,無論是建立或取用相依性,通常都會想要遵循這些高階步驟:
- 從最新的正確版本開始,以避免舊的弱點或授權誤用。
- 驗證 OSS 元件是否為版本的正確二進位檔。 在發行管線中,驗證二進位檔以確保正確性,並保留可追蹤的用料表。
- 立即取得元件弱點的通知、加以更正,並自動重新部署元件,以解決重複使用軟體的安全性弱點或授權誤用。