iT邦幫忙

2026 iThome 鐵人賽

DAY 27
1

假設一個場景。你的 SBOM 跟公開弱點資料庫對完之後,跳出三千條。

團隊這個星期能認真處理的,大概三十條。

https://ithelp.ithome.com.tw/upload/images/20260927/20169113htma7WPd7j.png
這中間差了一百倍,而那一百倍不會靠加班補起來。唯一補得起來的做法,是在三千條進來跟三十條被處理之間放一台夠好的分流器。

幕五從這裡開始。前面四幕在蓋東西,這一幕要問的是蓋好之後每天真正在消耗你的是什麼。

先分清楚兩個方向

弱點資訊有兩個進來的方向,很多團隊只認得其中一個。

https://ithelp.ithome.com.tw/upload/images/20260927/20169113RiyMsarP8V.jpg

主動那一邊幕四已經講完:SBOM 產線、依賴掃描、靜態分析、門檻設計。節奏由你控制,掃描器可以慢慢調。

被動那一邊是另一回事。一封信、一則情資、一通客戶電話,裡面只有一個編號,而第 14 條的時鐘是從你「知悉」那一刻開始跑。

**多數團隊只做了主動那一邊。**理由不難理解:主動那邊有工具、有教學、有現成的 CI 整合,被動那邊沒有人賣給你。

零件商發布召回的時候,車廠要回頭查的是哪幾個車型、哪幾個生產批次裝了那顆零件。查得快的車廠靠的不是勤勞,靠的是一份對得起來的用料清單。

主動那一邊:門檻跟排序是兩件事

Day 23 講過三層判準:有沒有已遭在野利用、被利用的機率、有沒有修補版本。那一天的用途是擋建置。

同一組判準拿來做今天這件事,用途完全不同:排順序。

門檻是二元的,排序是連續的。擋建置需要一條線,線的兩邊是通過與不通過;排順序需要的是一個序列,第一名跟第三十名都會被處理,只是先後不同。

把門檻直接當排序器用,症狀很典型:所有「擋下來」的都被當成同等緊急,實際順序就變成誰先喊誰先做。

排序還要多一層,而且這一層只有你自己做得出來:可達性。

前三層都是外部情資,全世界拿到的數字一樣。可達性是你的事實:那段有問題的程式碼,在你的產品裡到底跑不跑得到。

大樓的防火門規範不合格是一回事,那道門後面是不是封死的管道間又是另一回事。兩者都要記錄,但只有其中一種會讓你今晚睡不著。

被動那一邊:反查的五個步驟

這是我判斷該建、但還沒導入驗證的東西。架構本身很小:

輸入:一個 CVE 編號。來源是供應商通知、CERT 公告、客戶來信、情資廠商。
取資料:呼叫公開 API 取回結構化資料。NVD、CVE Program、CISA KEV,以及各作業系統發行版的安全公告。
正規化:把回傳結果套進一份預先定義好的固定欄位模板。
輸出:受影響的套件或元件、受影響的版本區間、有沒有修補版本。
再跳一次:拿著「套件加版本區間」去比對自家產品的元件建檔,得出哪幾條產品線中獎。

三個判斷值得單獨講。

**第一,不要把整個弱點資料庫鏡像一份到自家。**這條路很多人走過,維護成本遠高於預期:同步排程、格式變更、資料一致性都要有人顧。用 API 隨查隨取,要維護的只有一個呼叫。

**第二,做這個工具的人不需要資安背景。**它本質上是呼叫 API、解析 JSON、套模板、顯示在網頁上,可以交給一般工程師,而且應該交出去。中樞那幾個人的時間要留給判斷。

第三,CVE 的資料結構是標準化的,所以欄位模板在不同公司之間可以直接沿用,這是少數不必自己發明的東西。

還有第三個輸入來源,硬體廠特別吃得到:**元件供應商的主動通知。**網卡、模組、晶片的供應商會告訴你某版韌體有哪幾條 CVE,這條路徑最短,直接升級就好。前提是元件建檔對得起來,也就是 Day 21 那張表跟 Day 25 那些回覆有沒有真的建起來。

判完之後要留下 VEX

反查出來的結論,遲早有人會要求你用機器可讀的方式交出去。VEX 四種狀態:

https://ithelp.ithome.com.tw/upload/images/20260927/20169113Di9zreBdAT.jpg

under_investigation 是唯一誠實的中間狀態,而且它跟 Day 18 那個獨立時鐘配得剛好:案件還在查、時限照跑,你可以先發一個調查中的狀態出去,不必等到全部查清楚才開口。

not_affected 的理由代碼是整套機制的重點:元件根本不存在、脆弱的程式碼不在執行路徑上、脆弱的程式碼無法被攻擊者控制、已有內建緩解措施。

這四個理由跟上一段的可達性是同一件事,只是換成對外的語言。**把可達性分析做起來,等於同時拿到排序依據跟 VEX 的理由。**這是三千壓到三十最有效的一層,也是成本最高的一層。

格式上,CSAF 在 CRA 語境下最受重視,OpenVEX 簡單且可加密驗證,CycloneDX 可以嵌在 BOM 裡。實務困難其實在格式之外:發現與散布還沒有統一機制,VEX 跟 SBOM 的生命週期也對不上。

交付物:VEX 判定紀錄

每一條進到判定的 CVE 填一列。這張表填滿之後,產出機器可讀的 VEX 只是格式轉換。

https://ithelp.ithome.com.tw/upload/images/20260927/20169113to6DRhSXn0.jpg

三個提醒。

第一,知悉時間要獨立於判定時間記錄。兩個欄位混在一起,是 Day 18 那條時鐘最常見的壞法。

第二,理由代碼不要自己發明。用 VEX 既有的那幾類,因為交出去之後,別人的工具只認得標準那幾種。

第三,重新檢視日空白的 under_investigation,三個月後就會變成謊言。沒有人會回頭看沒有到期日的欄位。

明天 Day 28:如果只有一個人、三個月,我會照什麼順序做

受限前提下的強制排序。開場先寫我不做的七件事,再寫做什麼,而順序本身就是論點。

順便問一句。如果現在有人丟一個 CVE 編號給你:

你多久能回答「我們哪幾條產品線中獎」?

(a)當天,有工具查 (b)幾天,要人工翻 (c)要問各產品線,時間看他們 (d)沒辦法系統性回答

留個字母就好。(c)是最多人的現況,也是第 14 條那個時鐘最容易爆掉的地方。

這系列每天更新,覺得有用的話幫忙訂閱一下,謝謝。

參考:Regulation (EU) 2024/2847 第 14 條、Annex I Part II(1)(4)。CISA KEV、FIRST EPSS、NVD、CVE Program 為公開資料來源。VEX 四種狀態與 not_affected 理由代碼為 VEX 規範公開定義;CSAF、OpenVEX、CycloneDX 為公開格式。反查五步驟、三個工程判斷與判定紀錄欄位為個人整理,判斷該這樣做但尚未經導入驗證。


上一篇
Day 26|技術文件要留十年,而掃描報告卻存在某個人的筆電裡
下一篇
Day 28|如果只有一個人、三個月,我會照什麼順序做
系列文
時鐘從「知悉」開始:從零打造 PSIRT,三十天走完歐盟 CRA 的通報與 SBOM 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言