啟用安全漏洞掃描

本指南說明如何啟用 Secure Source Manager 的安全漏洞掃描功能,提升資安態勢。

安全漏洞掃描功能會自動偵測原始碼依附元件中的已知安全漏洞,並掃描提取要求的每項新修訂版本。安全漏洞會顯示在提取要求檢視畫面和存放區層級的「Security」(安全性) 分頁中。

啟用安全漏洞掃描

請確認存放區已啟用下列角色和設定。

必要的角色

如要取得啟用安全漏洞掃描所需的權限,請要求管理員授予您 Secure Source Manager 存放區的 Secure Source Manager 存放區管理員 (roles/securesourcemanager.repoAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備 securesourcemanager.repositories.update 權限,可啟用安全漏洞掃描功能。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

如要瞭解如何授予 Secure Source Manager 角色,請參閱「使用 IAM 控管存取權」和「授予使用者執行個體存取權」。

更新存放區設定

您可以透過 Secure Source Manager 介面,啟用存放區的安全漏洞掃描功能:

  1. 前往要啟用安全漏洞掃描功能的存放區。
  2. 按一下「設定」圖示。
  3. 找到「安全漏洞掃描」切換鈕。
  4. 將切換鈕設為「開啟」。
  5. 按一下 [Update Settings] 按鈕。

使用安全漏洞掃描功能

啟用安全漏洞掃描功能後,系統會自動執行下列掃描:

  • 排定掃描:所有分支版本的頭部修訂版本,每天一次。
  • 提取要求掃描:
    • 建立提取要求時,新提取要求的頭部修訂版本。
    • 推送時,將新的修訂版本推送至提取要求。

系統只會偵測程式碼依附元件中的安全漏洞。安全漏洞掃描會偵測公開資料庫中列出的安全漏洞,包括但不限於國家安全漏洞資料庫和 GitHub Advisory Database。偵測到的安全漏洞會包含外部連結,可連往安全漏洞的公開資料庫資料,以及 CVE ID (如有)。

「安全性」分頁

啟用安全漏洞掃描功能後,存放區的導覽列會顯示「Security」(安全性) 分頁,您可以使用該分頁搜尋掃描到的安全漏洞,保留期限最長為 3 年。

「安全性」分頁會顯示排定掃描和提取要求掃描的結果。

根據預設,「安全性」分頁的「Found In」篩選器會設為最近瀏覽的分支版本 (或存放區的預設分支版本)。如要查看其他安全漏洞,請調整或清除「Found In」(發現位置) 篩選器。

「安全性」分頁會顯示各項安全漏洞的下列資料:

  • 嚴重性:安全漏洞的嚴重性,由公開安全漏洞資料庫來源評定。
  • ID:公開的 CVE ID (如有),否則為其他 ID,例如 GHSA ID。此外,如果有的話,也會提供該安全漏洞的公開資料庫項目外部連結。
  • Found In:掃描的 Git 修訂版本 SHA,以及所有 Git 分支版本、Git 標記或提取要求的清單,其中這是最新修訂版本。
  • 檔案:含有安全漏洞依附元件的存放區來源檔案,以及行號 (如有)。
  • 套件:含有安全漏洞的依附套件名稱和版本。如果已知,則也會列出解決安全漏洞的套件版本。
  • 說明:安全漏洞的說明 (如有)。
  • 偵測日期:偵測到安全漏洞的掃描日期。

「安全性」分頁提供下列篩選器:

  • 嚴重性:僅顯示具有指定嚴重性的安全漏洞 (CRITICAL、HIGH、MEDIUM 或 LOW)。
  • Found In:僅顯示在指定 Git 分支、標記或修訂版本 SHA 中偵測到的安全漏洞。
  • 檔案:僅顯示在指定來源路徑中偵測到的安全漏洞。接受子字串,例如 project/ 可用於篩選 project/ 目錄中的安全漏洞依附元件。
  • 安全漏洞:依據公開資料 (例如 ID、說明或受影響的套件名稱) 搜尋安全漏洞。接受子字串。
  • 「Date From」(起始日期) 和「To」(結束日期):只顯示在指定日期之後或之前偵測到的安全漏洞。格式:YYYY-MM-DD。

提取要求

提取要求掃描完成後,偵測到的安全漏洞會顯示在提取要求的「Conversation」(對話) 分頁中。掃描作業會檢查所有存放區檔案。提取要求中未修改的檔案可能含有安全漏洞。

提取要求會顯示偵測到的主要安全漏洞摘要。 如要查看提取要求的完整安全漏洞清單和詳細資料,請按一下「Full Results」(完整結果) 連結,在存放區的「Security」(安全性) 分頁中查看。

安全漏洞不會阻礙提取要求合併。

支援的檔案類型

系統會掃描下列語言的套件檔案,找出依附元件安全漏洞:

支援
Go
Java
JavaScript
Node.js
PHP
Python
小茹
Rust
TypeScript
.NET

後續步驟