第三方元件風險使用指南¶
適用對象:輔導客戶的顧問、稽核員,以及負責維護系統的系統管理者。 本文用途:說明「第三方元件風險」能查出什麼、怎麼新增一筆掃描、結果頁上每個數字是什麼意思與資料從哪裡來、怎麼更新系統用來比對的弱點資料。 不在本文範圍:程式碼本身的安全檢測(請用檢測工具裡的 SonarQube,見《檢測工具使用指南》)、系統安裝(請見《落地部署版 — 安裝與維運手冊》)。
一、這個功能在查什麼¶
現在的軟體幾乎都不是從零寫起,而是組合了大量第三方元件——別人寫好、公開釋出的套件(例如網頁框架、日期處理、加密函式庫)。一套中型系統動輒用到幾百個這類元件,其中任何一個被公開揭露有弱點,整套系統就跟著受影響。
「第三方元件風險」做的事是:
- 讀取一套系統的原始碼(或客戶直接提供的元件清單),列出它用了哪些第三方元件、各是哪個版本;
- 把這份清單拿去和公開的弱點資料比對,找出哪些元件有已知弱點;
- 把結果整理成一頁看得懂的總覽、一份逐筆明細,以及可以交付的報表。
它只看第三方元件,不檢查貴單位自己寫的程式碼。 自己寫的程式有沒有安全問題,是另一件事,請用檢測工具裡的 SonarQube。
為什麼需要它:專案的弱點本該由客戶的工程師盤點,但實務上常被一句「那個不嚴重」帶過,沒有技術背景的人無從判斷。這個功能讓顧問自己就能看到「用了什麼、哪裡有已知弱點、修正版出了沒」,而且每個數字都附得出工具的原始輸出,可以拿去和對方對話。
SBOM 是什麼? SBOM(Software Bill of Materials,軟體物料清單)就是一份「這套軟體用了哪些元件、各是什麼版本」的清單,像食品包裝上的成分表。業界通用的格式有兩種:CycloneDX 與 SPDX。本功能可以從原始碼產出 SBOM,也可以直接收客戶給的 SBOM。
系統怎麼保護上傳的原始碼¶
上傳的原始碼只在系統內部一個不連網際網路的隔離環境裡分析,分析時用的弱點資料也是事先放在本機的。原始碼不會被送到任何外部服務。
兩個入口,同一套分析¶
| 入口 | 從哪裡進 | 適合什麼時候用 |
|---|---|---|
| 獨立功能 | 側選單「第三方元件風險」 | 輔導、健檢:針對一套系統建檔,日後重掃、比較前後差異 |
| 檢測工具 | 專案規劃時,任務選用「第三方元件弱點掃描」工具 | 稽核任務:掃描結果要成為某個控制項的稽核證據 |
兩個入口的分析方式、結果頁、報表完全相同。差別只在「結果掛在哪」:獨立功能掛在「受評系統」底下,可以做歷次比較;檢測工具掛在任務底下,報表自動存進任務的證據。
二、新增一筆掃描¶
畫面:側選單 → 合規與稽核 →「第三方元件風險」 需要的權限:新增與執行掃描(稽核主管、稽核員預設都有)
2.1 事前準備:跟客戶要什麼¶
掃描的準確度取決於拿到的檔案。請向客戶的開發單位索取以下其中一種:
| 選項 | 要什麼 | 說明 |
|---|---|---|
| 原始碼封存檔(建議) | 把整個專案壓成一個檔(.zip、.tar、.tar.gz、.tgz),上限 100MB | 一定要包含鎖定檔(見下方說明)。不需要包含編譯產物、node_modules 這類下載下來的資料夾 |
| SBOM 文件 | 客戶自己產好的 CycloneDX 或 SPDX 檔(.json、.xml、.spdx),上限 50MB | 客戶不願提供原始碼時用。系統直接拿來比對,不再自己產 |
鎖定檔是什麼、為什麼一定要有? 專案宣告相依元件時,通常只寫「要 3.x 版以上」這種範圍;鎖定檔才記錄「實際裝的是 3.2.7」。沒有鎖定檔時,系統只能估算版本,也看不到元件再依賴的其他元件,查出來的弱點會偏少。常見的鎖定檔:
語言/工具 鎖定檔 JavaScript(npm) package-lock.jsonPython(Poetry) poetry.lockRuby Gemfile.lockRust Cargo.lockPHP composer.lockJava(Gradle) gradle.lockfile.NET packages.lock.jsonDart/Flutter pubspec.lock客戶給不出鎖定檔時,結果頁「分析涵蓋度」會明白標示哪個部分缺鎖定檔、弱點可能漏列,報表也會寫進去。
2.2 新增受評系統並掃描¶
每一套被掃的軟體,在系統裡稱為一個「受評系統」。第一次掃某套系統時:
- 按右上角「新增受評系統」,跳出三個步驟的視窗。
- 第 1 步 基本資料
- 系統名稱(必填):例如「委託單位 A 會員系統」。這個名稱會出現在報表抬頭,也會成為下載檔名的開頭。
- 委託單位/系統說明(選填):委託單位名稱、系統用途、版本等。
- 技術聯絡窗口(選填):僅供紀錄,系統不會主動聯繫。
- 第 2 步 掃描來源:選「上傳原始碼封存檔」或「上傳 SBOM 文件」,把檔案拖進框內或點選上傳。
- 🔴 同一套受評系統之後都只能用同一種來源。 兩種來源辨識元件的範圍不同,混用會讓前後兩次無法比較。要改用另一種,請另建一套受評系統。
- 第 3 步 掃描設定:一般直接用「標準掃描」即可——三套比對工具(Trivy、Grype、OSV-Scanner)全部執行,並產出 CycloneDX 1.6 與 SPDX 2.3 兩種格式的 SBOM。
- 要調整時展開「進階設定」:可以取消某套工具(越少越快、但可能漏)、或改 SBOM 格式版本(委託單位指定某個版本時才需要)。
- 按「開始掃描」。檔案上傳完成後視窗關閉,清單上該列會顯示進度。
成功長什麼樣:清單該列的「關鍵指標」欄依序跑過「檔案接收 → SBOM 產製 → 弱點比對 → 報告彙整」,完成後換成「KEV 收錄 N」「嚴重度 High 以上 N」兩個數字。中小型專案通常幾分鐘內完成;超過 20 分鐘會自動中止並標示失敗。
為什麼用三套工具? 每套工具的弱點資料來源不同,對同一個元件的判斷不一定一致。三套交叉比對,漏掉的機會較小;各家的判斷並列呈現、不取平均,由您自行對照。
2.3 重新掃描¶
客戶修補後再掃一次:
- 在清單該列按 ↻(重新掃描)。
- 視窗只剩「掃描來源」「掃描設定」兩步,上傳新的檔案,按「開始掃描」。
掃描完成後,清單的「前次比較」欄會顯示「已修補 N/新增 N」。完成兩次以上,該列會多一顆 🕘(歷次比較),見第四章。
2.4 掃描失敗時¶
清單該列會顯示「掃描未完成,請確認檔案內容後按『重新掃描』」。常見原因:
| 畫面訊息 | 原因 | 怎麼辦 |
|---|---|---|
| 檔案格式不支援 | 副檔名不在允許清單 | 原始碼請壓成 .zip/.tar/.tar.gz/.tgz |
| 檔案超過上限 | 原始碼封存檔超過 100MB、或 SBOM 超過 50MB | 拿掉編譯產物、node_modules、圖片影片等與元件無關的檔案後重壓 |
| 封存檔未通過安全檢查 | 壓縮檔內含異常結構(例如解壓後異常巨大、含捷徑連到外部) | 請客戶重新打包 |
| 不是可辨識的 SBOM | 上傳的檔案不是 CycloneDX 或 SPDX 格式 | 請客戶確認匯出格式 |
| 掃描未完成(逾時) | 專案過大 | 拆成數個子專案分別掃描 |
失敗的紀錄可以清掉:清單該列會出現「清理失敗紀錄(N)」按鈕,勾選要刪的那幾筆即可。成功的掃描不能刪,它們是歷次比較的依據。
三、結果頁怎麼看¶
畫面:清單該列按 📊(檢視結果);或任務抽屜的「看完整結果」
結果頁上方是系統名稱、掃描時間、來源、檔名,右側是「弱點資料日期」與「匯出報表」。下方分三頁:風險總覽、弱點明細、元件清單。
3.1 先看弱點資料日期¶
右上角的「弱點資料日期 YYYY-MM-DD」是這次掃描用的弱點資料是哪一天的。
| 顏色 | 意思 |
|---|---|
| 灰 | 距掃描時 30 天以內 |
| 黃 | 超過 30 天 |
| 紅 | 超過 90 天 |
每天都有新的弱點被公布。資料太舊,最近才公布的弱點就比不到——看起來比較乾淨,不代表真的比較乾淨。顏色變黃或變紅時,請系統管理者更新弱點資料(見第六章)後重新掃描。
3.2 風險總覽:每個數字的意思與來源¶
| 區塊 | 看什麼 | 資料從哪來 |
|---|---|---|
| 嚴重度分布 | 每套工具各自把弱點分成 Critical(最嚴重)、High、Medium、Low、Negligible、未分級,各自計數 | 各工具依 CVSS(國際通用的弱點嚴重度評分,0~10 分)分級:Critical 9.0–10.0、High 7.0–8.9、Medium 4.0–6.9、Low 0.1–3.9 |
| 已知遭利用弱點(CISA KEV) | 列出這次發現的弱點中,已被美國網路安全暨基礎設施安全局(CISA)確認實際被攻擊者利用過的那幾個,與收錄日期 | CISA KEV 目錄(已知遭利用弱點清單) |
| 高利用機率弱點(EPSS ≥ 10%) | 列出預估未來 30 天內被利用機率達 10% 以上的弱點與機率 | FIRST 組織的 EPSS(弱點被利用機率預測) |
| 修補可行性 | 「已有修正版」幾筆、「尚無修正版」幾筆、最早的修正版是哪天發布的 | 各工具列出的修正版本 |
| 分析涵蓋度 | 哪些部分缺鎖定檔(版本為估算、弱點可能漏列);SBOM 是否具備 NTIA 定義的七項最低要素 | 系統檢查上傳內容;NTIA 是美國商務部對 SBOM 最低內容的規範 |
| 前次比較 | 和同一套系統上一次完成的掃描比:已修補、新增、仍存在各幾筆 | 系統比對兩次結果 |
| 元件授權分布 | 元件總數;授權條款屬 Copyleft 類(GPL 等,要求衍生作品也開放原始碼)、寬鬆類(MIT、Apache 等)、未標示的各幾個 | 元件自己宣告的授權。只分類、不作法律判斷 |
讀這頁的順序建議:先看「分析涵蓋度」有沒有紅色警示——有的話,後面所有數字都可能偏少。再看 KEV 與 EPSS,這兩區列的是最可能真的被拿來攻擊的弱點。最後看嚴重度分布了解整體規模。
🔴 「無法判定」不等於「0」。 弱點資料若沒有包含 KEV 或 EPSS 清單,對應區塊會顯示「未載入」並說明原因,不會顯示 0——0 會讓人誤以為很乾淨。看到「未載入」請更新弱點資料後重掃。
三套工具的數字為什麼不一樣? 每套工具的弱點資料來源與分級方式略有不同,同一個弱點可能一家判 High、另一家判 Medium。系統把各家的判斷並列、分別計數,不取平均也不替您選一家。嚴重度分布下方會提示「有 N 筆工具間分級不一致」,到弱點明細可以逐筆對照。
3.3 AI 摘要分析¶
風險總覽下方的「AI 摘要分析」:按下後系統把上方的統計整理成幾段文字,方便放進簡報或會議紀錄。
- 按了才會執行,會扣用 AI 額度;再按「重新分析」會覆蓋前一次。
- 內容只整理畫面上已有的事實,數字以上方統計為準。
- 報表不包含這段文字。
- 系統未設定 AI 功能時,這張卡片不會出現。
3.4 弱點明細¶
每個弱點一列。
| 欄位 | 意思 |
|---|---|
| 套件/版本 | 哪個元件、哪個版本有這個弱點 |
| 弱點編號 | 通用編號(多為 CVE-年份-流水號),點了開美國國家弱點資料庫(NVD)的說明頁 |
| 每套工具一欄 | 該工具判的等級與 CVSS 分數;若該工具用的編號和左邊不同(例如它寫 GHSA 開頭的編號),下方會多一行小字顯示它自己的編號,可點開該工具的來源頁。該工具沒報這個弱點時顯示「未報」 |
| 不一致標示 | 各工具判的等級不同,或分數差 0.1 以上時出現。滑過去會說明是等級還是分數不同 |
| KEV/EPSS | 是否列入 CISA KEV、被利用機率 |
| 修正版 | 升級到哪個版本可以修掉 |
上方的篩選與排序:
- 嚴重度:點彩色標籤只看該等級(以各工具中較高的那一家為準),可多選。
- 檢視方式:「依套件分組」把同一個元件的弱點收在一起(預設);「依弱點逐列」一筆一列。
- 排序:預設先排 KEV、再排 EPSS、再排 CVSS——最可能被攻擊的在最上面。
- 只看 KEV、只看有修正版:快速找出最該先處理、也處理得了的。
- 顯示工具:勾選要看哪幾套工具的欄位。只是暫時收起欄位,不影響筆數與總覽。這次沒執行的工具會灰掉不能勾。
點一列可展開:弱點描述、各工具的來源頁連結、其他編號。
3.5 元件清單¶
列出這次產出的 SBOM 裡所有元件,欄位照 SBOM 原檔:名稱、版本、生態系、授權、PURL(元件的通用識別碼,點一下可複製)等。
- 上方可切換 SBOM 格式(CycloneDX/SPDX)、搜尋名稱。
- 「弱點數」欄可點,點了直接跳到弱點明細並只顯示該元件的弱點。
原始檔案與來源(元件清單下方):可下載各格式的 SBOM、各工具的原始報告,以及複製每個檔案的 SHA-256 指紋。客戶質疑結果時,這些原始檔就是佐證。
四、歷次比較與回訪報告¶
畫面:清單該列按 🕘(歷次比較)(同一套系統完成兩次以上掃描才會出現)
回訪客戶時,這頁回答「上次那些處理了沒」:
- 上方兩個下拉選「前次」與「本次」,預設是最近兩次。
- 畫面顯示三個數字:已修補(前次有、本次沒有)、新增(前次沒有、本次有)、仍存在(兩次都有)。
- 下方四個頁籤列出明細;「仍存在」裡版本有變動的排在最前面——代表客戶升了版,但沒升到修正版。「元件版本異動」頁籤列出哪些元件升版、降版、新增、移除。
比對規則:以「元件名稱+弱點編號」配對,不比版本。元件升了版但仍受同一個弱點影響,會算「仍存在」,不會被算成「修掉一個、又多一個」。
兩次的工具設定最好一致。 前次只跑兩套工具、本次跑三套,本次可能多出只有第三套工具找到的弱點,會落在「新增」。
按右上角「匯出回訪報告」:報表內容同一般報表,多一節「與上次掃描比較」。
五、匯出報表¶
畫面:結果頁右上角「匯出報表」 需要的權限:匯出(稽核主管、稽核員預設都有)
- 選檔案格式:PDF、HTML、Word。
- 委託單位名稱(選填):顯示在報表抬頭;預設帶系統名稱。
- 按下載。
報表只有一種:完整版,包含統計、KEV 與 EPSS 清單、有修正版的弱點、授權統計、全部弱點列表、元件清單、工具版本與原始報告指紋、資料來源說明。內容只陳述工具與公開來源的事實,不替使用者下結論——判斷請顧問依事實自行做出後再交付客戶。
下載檔名:系統名稱_種類_日期時間,例如:
| 檔案 | 檔名範例 |
|---|---|
| 報表 | 會員系統_弱點掃描報告_20261011-1341.pdf |
| SBOM | 會員系統_SBOM-CycloneDX-1.6_20261011-1341.json |
| 工具原始報告 | 會員系統_Trivy原始結果_20261011-1341.json |
六、用在稽核任務上(檢測工具入口)¶
掃描結果要成為某個控制項的稽核證據時,改從任務發起。
6.1 設定任務¶
畫面:專案規劃 → 任務配置 執行者:專案管理者
- 任務類型選「檢測工具執行」,檢測工具選「第三方元件弱點掃描」。
- 這個工具不需要指派 Agent、也不需要填目標主機——畫面上提示「選用此工具不需指派 Agent,待掃描的原始碼封存檔或 SBOM 於任務執行時上傳」。
- 選掃描模式:上傳原始碼封存檔,或上傳 SBOM 文件。
- 進階參數可調 SBOM 格式與比對工具(預設三套全跑)。
- 儲存任務。
6.2 執行與取得證據¶
畫面:我的任務 → 點開任務抽屜 執行者:任務被指派人或專案管理者
- 在抽屜的上傳區選檔(第一次執行一定要上傳;之後可沿用上次那份或換新檔)。
- 按執行。抽屜的執行紀錄會顯示進度。
- 完成後,以下檔案自動存進該任務的證據:完整報表 PDF、各格式 SBOM、各工具原始報告。檔名以任務名稱開頭。
- 執行紀錄列上的「看完整結果」開啟結果頁,看法同第三章。
重新執行沿用任務設定。 抽屜會提示「將沿用此任務設定的掃描工具與參數;要變更請至專案規劃修改任務設定。」例如任務建立時只勾了兩套工具,重新執行也只跑那兩套——這是為了讓同一任務的歷次結果可以比較。要改工具,請回專案規劃改任務設定。
從任務發起的掃描,也會列在「第三方元件風險」清單的「任務發起的掃描」頁籤(顯示所屬專案與任務)。這些掃描跟著任務走,不能從清單刪除;任務刪除後也不再列出。
6.3 定期自動掃描與新弱點通知¶
同一套系統要定期重掃時,可以在任務上設週期(設定步驟見《專案生命週期、功能清單與使用情境說明書》Phase 1「設定任務週期」):
- 打開「自動執行」,時間到系統直接開始掃描,沿用上次上傳的那一份檔案,結果與報告一樣存進同一筆任務的證據。執行紀錄上這一筆標「自動執行」。
- 第一次一定要手動上傳並執行,之後的自動執行才有檔案可以沿用。
- 加上「額外通知」對象後,每次掃完系統會和同一筆任務上一次的掃描比對,新出現 CRITICAL 或 HIGH 弱點時寄信給這些人;上次就有的弱點不會每輪重寄。寄過哪些信,到專案總覽的「通知紀錄」查。
七、更新弱點資料¶
畫面:系統設定 →「弱點資料庫」 執行者:系統管理者
系統比對弱點用的資料放在本機(因為分析環境不連網)。每天都有新弱點公布,建議至少每月更新一次;頁面上的資料日期超過 30 天會變黃、超過 90 天變紅提醒。
7.1 看目前是哪一天的資料¶
頁面上方顯示「目前弱點資料日期」與距今天數,下方表格列出五個來源各自的日期與筆數:
| 來源 | 用途 |
|---|---|
| Trivy 弱點資料庫 | Trivy 比對用 |
| Grype 弱點資料庫 | Grype 比對用 |
| OSV 弱點資料庫 | OSV-Scanner 比對用 |
| EPSS 被利用機率 | 結果頁的 EPSS 區塊 |
| CISA KEV 已遭利用清單 | 結果頁的 KEV 區塊 |
頁面下方「更新紀錄」列出每次更新的時間、操作者、來源(安裝/升級、設定頁上傳、連網自動更新)、資料日期(前 → 後)、結果。
7.2 方法一:上傳更新包(封閉網路適用)¶
- 向原廠取得更新包,檔名像
guidant-vulndb-20261101.tar.zst(約 480MB)。 - 用 https 網址開啟系統(瀏覽器只在安全連線下才能計算檔案指紋;用 http 開啟時畫面會提示)。
- 按右上角「上傳更新包」,選擇檔案。
- 畫面依序顯示「計算更新包指紋中…」→ 上傳進度條 →「驗證簽章並套用中,約需一兩分鐘…」。
- 完成後顯示「弱點資料已更新為 YYYY-MM-DD」,資料日期與來源表跟著更新。
常見訊息:
| 訊息 | 意思 | 怎麼辦 |
|---|---|---|
| 第 N 段上傳失敗(已重試) | 網路中斷 | 檢查網路後重新上傳 |
| 更新包驗證失敗 | 檔案不完整或不是原廠簽章的更新包 | 重新向原廠取得 |
| 更新包日期沒有比現行資料新 | 系統不接受把資料換成較舊的一份 | 確認拿到的是最新的更新包 |
| 已有另一個更新在進行 | 有人同時在更新 | 稍後再試 |
7.3 方法二:連網自動更新¶
系統能連外網時,可以讓它自己去原廠的更新站取:
- 按「檢查更新」:有較新的就下載並套用,已是最新會顯示「目前已是最新資料」。
- 「每日自動檢查更新」開關:開啟後系統每天自動檢查一次。
這兩個功能需要安裝時設定好更新站位址。未設定時按鈕是灰的,並提示「未設定弱點資料更新站,無法連網更新;請改用『上傳更新包』」——封閉網路環境就是這個狀態,屬正常。更新站的設定方式見《落地部署版 — 安裝與維運手冊》第十章。
7.4 更新完要不要重掃?¶
已經做完的掃描不會自動更新結果——每筆結果記的是當時用的資料日期。要用新資料看同一套系統,請重新掃描。
八、權限一覽¶
| 動作 | 稽核主管 | 稽核員 | 一般成員/唯讀 | 系統管理者 |
|---|---|---|---|---|
| 看清單、結果、歷次比較、下載原始檔 | ✅ | ✅ | ✅ | 依角色 |
| 新增受評系統、掃描、重新掃描 | ✅ | ✅ | — | 依角色 |
| 匯出報表 | ✅ | ✅ | — | 依角色 |
| 刪除受評系統、清理失敗紀錄 | ✅ | — | — | 依角色 |
| 更新弱點資料 | — | — | — | ✅ |
各角色實際擁有哪些權限,以「存取管理」設定為準(見《存取管理使用指南》)。授權到期進入唯讀時,所有新增、掃描、刪除按鈕會停用。
九、常見問題¶
| 問題 | 說明 |
|---|---|
| 掃描一直停在「排隊中」 | 系統的背景處理服務沒有在運作。請聯繫系統管理者確認服務狀態(sudo guidantai status) |
| 查到的弱點很少 | 先看「分析涵蓋度」是否缺鎖定檔;再看弱點資料日期是否太舊 |
| 三套工具的等級不一樣,該信哪一家? | 系統不替您選。請展開該列,比對各工具的來源頁說明 |
| 可以刪掉某一次成功的掃描嗎? | 不行。成功的掃描是歷次比較的依據;只能刪失敗的。要整個不要,就刪除該受評系統(連同全部掃描) |
| 有掃描在進行時能刪受評系統嗎? | 不行,刪除按鈕會停用,等掃描結束再刪 |
| 任務發起的掃描怎麼重掃? | 回到該任務的抽屜按重新執行;清單上的「任務發起的掃描」頁籤只能看結果 |
| PDF 報表中文字不見了 | 主機缺中文字型,請系統管理者依安裝手冊補裝 |
附錄:名詞對照¶
| 名詞 | 白話說明 |
|---|---|
| 第三方元件 | 別人寫好、公開釋出、被拿來組進系統的套件 |
| SCA(軟體組成分析) | 盤點一套軟體用了哪些第三方元件並比對已知弱點的做法,本功能即是 |
| SBOM(軟體物料清單) | 列出軟體所用元件與版本的清單;格式有 CycloneDX、SPDX |
| 鎖定檔 | 記錄元件實際安裝版本的檔案 |
| CVE | 通用弱點編號,格式 CVE-年份-流水號 |
| GHSA | GitHub 發布的弱點編號,常與 CVE 對應同一個弱點 |
| CVSS | 國際通用的弱點嚴重度評分,0~10 分 |
| CISA KEV | 美國 CISA 公布的「已確認被實際利用」弱點清單 |
| EPSS | FIRST 組織預測弱點「未來 30 天內被利用機率」的指標 |
| NVD | 美國國家弱點資料庫,收錄 CVE 的詳細說明 |
| PURL | 元件的通用識別碼,例如 pkg:npm/lodash@4.17.21 |
| NTIA 最低要素 | 美國商務部規範 SBOM 至少應具備的七項內容 |
| Trivy、Grype、OSV-Scanner | 三套業界常用的開源弱點比對工具 |