探索軟體組合分析 (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 取得。

Screenshot of Azure DevOps with Artifacts highlighted in the menu pane.

注意

將特定套件版本發佈至摘要之後,該版本號碼會永久保留。

注意

您無法上傳具有相同版本號碼的較新版本修訂套件,或刪除該版本,並上傳具有相同版本號碼的新套件。 發佈版本是不可變的。

OSS 元件的角色

因為可重複使用開放原始碼軟體 (OSS) 元件的廣泛可用性,所以開發工作更具生產力。

這種重複使用的實用方法包括執行階段,可在 Windows 和 Linux 作業系統上使用,例如 Microsoft .NET Core 和 Node.js。

不過,OSS 元件重複使用隨附重複使用相依性可能會有安全性弱點的風險。 因此,許多使用者會因為所取用的 Node.js 套件版本,在應用程式中發現安全性弱點。

OSS 提供新概念,稱為軟體組合分析 (SCA) 來解決這些安全性考量,如下圖所示。

Screenshot of an image of the workflow for safely creating open-source dependencies.

當您取用 OSS 元件時,無論是建立或取用相依性,通常都會想要遵循這些高階步驟:

  1. 從最新的正確版本開始,以避免舊的弱點或授權誤用。
  2. 驗證 OSS 元件是否為版本的正確二進位檔。 在發行管線中,驗證二進位檔以確保正確性,並保留可追蹤的用料表。
  3. 立即取得元件弱點的通知、加以更正,並自動重新部署元件,以解決重複使用軟體的安全性弱點或授權誤用。