本卡屬 FR-195(Agent 資安修正),第 4 批 G2。首腦實質驗收 F9(CM-3832)F 項時發現的副作用,從那張卡拆出來補。依賴:CM-3832 已合進工作坊 branch(0670dae)。

這張卡做什麼(白話)

Agent 會自動下載新的漏洞庫資料。下載前要先確認「新的比本機現有的新」,免得被人把漏洞庫退回舊版。本機現有資料的日期是從資料目錄裡的清單檔(manifest.json)讀的。

F9(CM-3832)修了一個洞:以前清單檔讀不到時,程式當成「本機沒有資料」直接放行,等於跳過新舊比較。修法是改成「清單讀不到就停止同步」。洞是補上了,但帶來一個副作用:清單檔只要壞掉或遺失一次,這台 Agent 的漏洞庫就永遠不再更新。每一輪都卡在同一個檢查,主控台的「立即檢查更新」按鈕也救不回來,客戶的弱點比對會一直用舊資料,畫面上只有一句錯誤訊息。

這張卡讓兩邊都顧到:清單檔讀不到時,改從現行資料所在的目錄名稱讀日期。每份漏洞庫資料都放在以日期命名的目錄裡(例如 20261105),這個目錄是 Agent 在驗過原廠簽章之後自己建的,比目錄裡那個可能被改掉的清單檔更可信。這樣新舊比較照樣有效,清單壞了也不會卡死。

問題在哪(首腦在工作坊 branch 6cf52eb 開檔核過)

改哪些檔

guidant_agent/sync/app/vulndb_sync.py
test/test_vulndb_sync.py

怎麼做