跳轉到

Guidant AI v1.25.0 Release Note

項目 內容
版本 1.25.0(功能版號;主軸=檢測目標授權範圍、內部連線加密、出貨 image 零 Critical,加上資安複核修正)
發布日期 2026-10-05
上一版本 1.24.3(2026-10-04)
涵蓋區間 BE v1.24.3..本版進版 commit;FE v1.24.3..本版進版 commit;檔案 Agent v1.3.0..v1.4.0
涵蓋需求 FR-129 檢測目標授權範圍(CM-2485~2491、2496);FR-130 內部連線加密(CM-2497~2499);FR-128 出貨 image 零 Critical(CM-2479~2484、2500~2502、2505);FR-126 資安複核修正(CM-2478、2492~2495)
規模 jedi-* 套件升版 5 支(remote-agent 1.4.0 為功能版號);主線 migration 6 支(4 支結構、2 支資料);套件自帶 migration 2 支;四顆出貨 image 全部換基底;配套檔案 Agent 1.3.0 → 1.4.0
適用部署 188 出包後先跑 CM-2499 三條驗收與 Agent 真機驗證;STG/POC 待決策者放行;升級順序先雲端後 Agent

為什麼是功能版號:本版新增授權掃描網段、設備清冊匯入匯出、Agent 憑證到期提醒、內部連線加密等使用者看得到的能力;同時有多項行為變更(admin 首登強制改密碼、Agent 1.4.0 對舊雲端拒掃、/client-config 拆除)。


0. 發版前回歸 gate

pipeline #2913839025 出包後自動部署 190 e2e;site-regression core 對 190 跑(結果待回填)。

1. 概述

本版圍繞三件事:

  1. 檢測線只連「登記過」的目標。系統代替使用者去連的每一台主機、每一段網段,都必須先在設備清冊或授權掃描網段登記過;檢測 Agent 1.4.0 在連線前會再核對一次,清單外一律拒絕。
  2. 內部服務之間的連線全部加密。Redis 與內建檔案儲存只收 TLS,三個明文管理埠收回容器內,共用檢測 Agent 既有的內部 CA。
  3. 出貨 image 零 Critical。四顆出貨 image 與檔案 Agent image 換基底、升 CINC Auditor,Trivy 與 Grype 雙掃皆 0 Critical;CI 出包時自動擋白名單外的 Critical。

另含資安複核修出的五張修正卡,與資安總表的改判(已修 206/裁定不修 12 → 已修 212/裁定不修 6)。

2. 檢測目標授權範圍(FR-129)

原則:凡是系統代替使用者去連線的目標,都必須來自系統裡已經登記的資料,不再接受隨手輸入的 IP。

卡號 新功能 使用者看得到什麼
CM-2487 授權掃描網段 「系統管理」群組多一個「授權掃描網段」頁,只有租戶管理員看得到、改得動。每次變更都留稽核紀錄並寄信通知。人手新增的網段直接生效;升級時從舊任務推出來的網段先標「待確認」,管理員確認後才算數
CM-2486 設備清冊匯入/匯出 設備管理頁可用 Excel/CSV 匯入匯出,匯入分「預覽→確認」兩步。新增或編輯設備時檢查 IP 格式。刪除設備改看「刪除設備」能力點
CM-2488 掃描目標只能從設備清冊挑 任務配置的「掃描目標」與測試連線的「測試主機」改從設備清冊多選。網段型目標(nmap 網段、OpenVAS)必須整段落在已確認的授權網段內才能存檔、執行。升級時舊任務手打的 IP 自動搬進設備清冊(名稱就是 IP);不在任何網段內的,另建一筆「待確認」網段
CM-2489 Agent 連線前再核對一次 平台透過心跳把「准連清單」下發給檢測 Agent;Agent 1.4.0 每次連線前比對,清單外的目標一律拒絕。從沒收到過清單的 Agent 也拒絕
CM-2496 Agent 憑證到期提醒 Agent 管理頁多一欄「憑證到期」,剩 60 天內顯示黃色、已過期紅色;到期前 60 天寄信通知平台管理員。本版不自動換證
CM-2491 規則收口 使用者看不到變化;守衛測試擋住新功能繞過這套核對

3. 內部連線加密(FR-130)

  • Redis 與內建檔案儲存(SeaweedFS)只接受加密連線,明文連線會被拒絕。憑證由安裝程式用既有的檢測 Agent 內部 CA 簽發,不另設一套憑證機構。後端 API、即時推播、背景工作三個服務都帶這張 CA 連線並核對主機名稱。
  • SeaweedFS 三個管理埠收回容器內:filer 8888、master 9333、volume 8080 原本在 docker 內網明文且免帳密,現在只在容器內部開放,對外只剩加密的 S3 入口。
  • 檔案 Agent 自帶的那顆檔案儲存也改成加密,隨 Agent 1.4.0 出貨。
  • 儲存設定頁:指向外部 S3 且未開 TLS 時提示「連線未加密」。
  • 升級程式會自動把「指向內建儲存」的儲存設定改成加密連線;指向外部儲存的設定不動。Redis 與內建檔案儲存不可拆到其他主機。

4. 出貨 image 零 Critical(FR-128)

客戶會用自己的掃描器(多半 Trivy,也可能 Grype)掃交付的 image。本版做到任一工具掃都是 0 Critical:

卡號 做了什麼
CM-2480 be/fe/init 三顆 image 基底換新 digest+build 期系統升級;init image 刪掉用不到的 gosu
CM-2481 be image 的 CINC Auditor 升 7.2.1,殘餘三支內嵌 gem 個別補升
CM-2482、2483 證據分類 image(classifier)拿掉編譯工具與 -dev 套件、pip 解釘版;基底由 Debian 13 換 Ubuntu 22.04(Python 維持 3.11)
CM-2484 CI 出包的弱點比對由 osv-scanner 換成 Trivy+Grype 雙掃;白名單外的 Critical 不准出包;白名單每條有理由與到期日,到期自動失效
CM-2500、2501 檔案 Agent 的 CINC Auditor 同步升 7.2.1;Agent 容器版 image 換 Ubuntu 22.04 基底
CM-2502 三支補升的 gem 上 Nexus 備份
CM-2505 檔案 Agent compose 出包接進同一套弱點關卡(共用 BE 的判定程式與白名單)

換 Trivy+Grype 的原因:osv-scanner 對 Debian/Ubuntu 的判定不準,且看不到 CINC Auditor 內嵌的 443 個 Ruby gem。

5. 資安修正(FR-126 複核)

卡號 改了什麼 客戶會感覺到什麼
CM-2478 預設管理員 admin 第一次登入強制改密碼;安裝時可用 GUIDANT_ROOT_ADMIN_PASSWORD 自訂初始密碼(不落檔、不進紀錄);已安裝系統升級後一樣要求改 升級後第一次用 admin 登入會被帶去改密碼。「90 天密碼過期」與「免 MFA」兩項豁免維持
CM-2493 解鎖紀錄檔損毀(讀不到、格式不對、缺清單)時拒絕解鎖;檔案「不存在」仍可正常解鎖 遇到紀錄檔損毀,畫面會請你聯絡原廠
CM-2492 資料庫身分變數改參數綁定,不再字串拼接(jedi-common 1.3.5) 無感
CM-2494 Google Drive 變更通知入列去重:同租戶已有待處理同類工作就不重排;DB 加部分唯一索引;升級時既有重複待處理單標略過 無感,背景工作不再重複堆積
CM-2495 拆除免登入的 /api/1.0/client-config 與 /error-tunnel;前端開頁不再呼叫,Sentry 一併移除。/version 與 /csp-report 保留 外部若有程式呼叫這兩支會拿到 404

只更正資安報告說法、程式未改:#99 核實早已修好;郵件憑證驗證(M16-3)維持「開關預設不啟用、由管理員決定」,報告原寫「新建時預設驗證」已更正。

6. 升級須知(必讀)

  1. 升級順序:先雲端(平台)、後 Agent。 Agent 1.4.0 遇到舊版平台會拒絕所有掃描與測試連線,管理頁版本欄顯示紅色「需升級雲端」。
  2. 有人在用的機器先停 api 再 install.sh --upgrade。升級自動處理:套 migration、內建儲存設定改加密連線、舊任務掃描目標搬進設備清冊。
  3. 平台升級後、Agent 升級前:
  4. 到「設備管理」把自動建的設備(名稱是 IP、用途寫「FR-129 遷移自任務」)改成看得懂的名稱。
  5. 到「授權掃描網段」逐筆確認「待確認」網段。不確認,相關任務存檔與執行都會被擋。這步不能拖到 Agent 升級後:Agent 1.4.0 收到的准連清單只含「已確認」網段,沒確認就升 Agent,網段型任務會立刻全被擋。
  6. 升級後第一次用 admin 登入會被要求改密碼。
  7. STG 升級前若授權不是 189 簽發的,先從 189 重簽並匯入。

7. Breaking Changes

  1. Agent 1.4.0 對舊版平台拒絕所有掃描與測試連線(必須先升平台)。
  2. 掃描目標只能來自設備清冊或授權網段:「待確認」網段未確認前相關任務被擋;測試連線 API 改只收 device_uid,逐台型欄位改存設備 uid 不存 IP,直接呼叫 API 的外部程式要跟著改。
  3. 刪除 /api/1.0/client-config 與 /error-tunnel。
  4. admin 首次登入強制改密碼(已安裝系統升級後亦同);用 admin 預設密碼登入的自動化腳本會卡在改密碼。
  5. Redis 與內建檔案儲存只收 TLS:客戶自己的工具直連這兩個服務、或把它們拆到其他主機,都會斷線。
  6. 設備 IP 格式檢查:以前存了錯誤 IP 的設備要先改正才能再存檔。
  7. 刪除設備改看「刪除設備」能力點:角色沒有這項能力點的人會變成刪不了。

8. DB Migration

主線 scripts/sql/(6 支,出貨基線已收進 4 支結構類):

檔名 phase 用途
2026-10-05-sec219-drive-sync-jobs-pending-unique.sql active Drive 待處理單加部分唯一索引,先把既有重複單標略過
2026-10-05-sec98-root-admin-force-change-password.sql seed 已安裝系統的 admin 補「首次登入改密碼」要求(冪等)
2026-10-05-fr129-2-tenant-scan-zones.sql active 新表 compliance.tenant_scan_zones;「授權掃描網段」看/改兩項能力點(只給管理員角色)、選單與路由權限
2026-10-05-fr129-3-target-field-device-multiselect.sql active 檢測工具目標欄位改設備多選;網段型欄位加授權網段檢查
2026-10-05-fr129-3-migrate-scan-targets-to-devices.sql seed 舊任務目標 IP 搬進設備清冊;不在授權網段內的建「待確認」網段(冪等)
2026-10-05-fr129-2b-scan-zone-menu-to-system-admin.sql active 「授權掃描網段」選單移到系統管理群組(UPDATE ui_routes,已收進基線 04-seed)

套件自帶(init image migrate 模式自動套):jedi-remote-agent 007-remote-agent-cert-expiry.sql(remote_agents.cert_not_after)、jedi-detection 007-detection-target-fields.sql。

9. 相依套件版本

套件 1.24.3 本版
jedi-common 1.3.4 1.3.5
jedi-integrity 1.2.1 1.2.2
jedi-asset 1.2.1 1.2.2
jedi-detection 1.2.4 1.2.7
jedi-remote-agent 1.3.0 1.4.0

配套檔案 Agent 1.3.0 → 1.4.0(連線前比對授權目標、心跳回報憑證到期日、自帶檔案儲存改 TLS、Ubuntu 22.04 基底、CINC 7.2.1、非 root 執行)。

image 基底:be ubuntu:22.04(CINC Auditor 7.2.1)、classifier ubuntu:22.04(Debian 13 → Ubuntu 22.04)、init postgres:16-alpine、fe nginx alpine,皆釘 digest。

本版 SBOM 與弱點比對結果

數字抄自 CI package job(pipeline #2913839025)的 vuln-summary.md,是 Trivy+Grype 關卡第一次正式出包實跑。

  • Python 層(pip-audit):後端 263 個套件、證據分類沙箱 35 個套件,已知漏洞 0 條
  • OS 層(Trivy):四顆 image Critical 0/High 8/可修 7(Grype 第二意見 Critical 0;白名單豁免 0 條——本輪沒有任何 Critical 需要白名單放行,8 條白名單中 7 條對應的漏洞實際判定為 High 以下、1 條是檔案 Agent 的,理由與到期日見 scripts/build/vuln-allowlist.txt)
  • 本版修掉 6 條 Critical(對照 1.24.3 出貨 image 的 Trivy 修前基準:be 2/classifier 3/init 1/fe 0;上一版 CI 用 osv-scanner 報 Critical 12,工具不同不直接相減)

剩下的 High 全在 classifier(Trivy 8/Grype 4),其中 6 條可修的是 pip 26.2.1 自帶的 msgpack/setuptools/urllib3,等上游換 vendor 版;fe/init 的 Grype High(3/6)Trivy 不報,皆無修正版。

10. 部署順序

  1. 188 build 機:/opt/guidant-ai-be、/opt/guidant-ai-fe、/opt/guidant-ai-agent 跟 fix/security;先 df -h /(build cache 每次約 25G)與 pgrep -f 'nuitka|build_all' 確認沒人在 build。
  2. pipeline 完整出包;package 段是 Trivy+Grype 關卡第一次真跑,紅了先看 vuln-summary.md 再決定修或白名單。
  3. 出包後驗收:CM-2499 三條(乾淨機新裝明文被拒/1.24.x 真實舊庫升級排練/跨行程推播)→ Agent 1.4.0 真機驗清冊外目標被擋 → 新 init image 乾淨容器裝一次查 tenant_scan_zones、remote_agents.cert_not_after、scan-zone 選單掛 group-system-admin。
  4. STG(188):先從 189 重簽授權;先停 api 再 --upgrade;再升 Agent。
  5. POC(189):等決策者另令。

11. 已知限制與 follow-up(不擋本版)

  • Agent 憑證到期只告警不自動換證,等「要輪換內部 CA」時一起做。
  • Agent 註冊時不自動建「待確認」網段,改由頁面按鈕。
  • 檔案 Agent 自帶 syslibs(從 debian:11 收集)的 krb5 1.18.3(CVE-2024-37371,只有 Grype 判 Critical)白名單至 2026-12-31;另案把採集基底換 Ubuntu 22.04。
  • classifier 的 pip 26.2.1 自帶 msgpack/setuptools/urllib3 六條、be 的 CINC 內建 json 2.9.1 一條,白名單等上游換版。
  • 弱點關卡只擋 Critical,High 只對「可修」出警告。

12. 相關文件

  • Notion 母卡:CM-2479(FR-128)、CM-2485(FR-129)、CM-2497(FR-130)、FR-126 複核 CM-2478
  • docs/features/FR-128-2610-image-zero-critical/、docs/features/FR-126-2610-security-taxonomy-expansion/handoff/2026-10-05-unfixed-items-review-SUMMARY.md
  • 使用手冊:docs/user-manual/agent/12-target-authorization.md
  • 白名單:scripts/build/vuln-allowlist.txt