本指南說明如何啟用 Secure Source Manager 的安全漏洞掃描功能,提升資安態勢。
安全漏洞掃描功能會自動偵測原始碼依附元件中的已知安全漏洞,並掃描提取要求的每項新修訂版本。安全漏洞會顯示在提取要求檢視畫面和存放區層級的「Security」(安全性) 分頁中。
啟用安全漏洞掃描
請確認存放區已啟用下列角色和設定。
必要的角色
如要取得啟用安全漏洞掃描所需的權限,請要求管理員授予您 Secure Source Manager 存放區的 Secure Source Manager 存放區管理員 (roles/securesourcemanager.repoAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備 securesourcemanager.repositories.update 權限,可啟用安全漏洞掃描功能。
如要瞭解如何授予 Secure Source Manager 角色,請參閱「使用 IAM 控管存取權」和「授予使用者執行個體存取權」。
更新存放區設定
您可以透過 Secure Source Manager 介面,啟用存放區的安全漏洞掃描功能:
- 前往要啟用安全漏洞掃描功能的存放區。
- 按一下「設定」圖示。
- 找到「安全漏洞掃描」切換鈕。
- 將切換鈕設為「開啟」。
- 按一下 [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 |