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. 概述¶
本版圍繞三件事:
- 檢測線只連「登記過」的目標。系統代替使用者去連的每一台主機、每一段網段,都必須先在設備清冊或授權掃描網段登記過;檢測 Agent 1.4.0 在連線前會再核對一次,清單外一律拒絕。
- 內部服務之間的連線全部加密。Redis 與內建檔案儲存只收 TLS,三個明文管理埠收回容器內,共用檢測 Agent 既有的內部 CA。
- 出貨 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. 升級須知(必讀)¶
- 升級順序:先雲端(平台)、後 Agent。 Agent 1.4.0 遇到舊版平台會拒絕所有掃描與測試連線,管理頁版本欄顯示紅色「需升級雲端」。
- 有人在用的機器先停 api 再
install.sh --upgrade。升級自動處理:套 migration、內建儲存設定改加密連線、舊任務掃描目標搬進設備清冊。 - 平台升級後、Agent 升級前:
- 到「設備管理」把自動建的設備(名稱是 IP、用途寫「FR-129 遷移自任務」)改成看得懂的名稱。
- 到「授權掃描網段」逐筆確認「待確認」網段。不確認,相關任務存檔與執行都會被擋。這步不能拖到 Agent 升級後:Agent 1.4.0 收到的准連清單只含「已確認」網段,沒確認就升 Agent,網段型任務會立刻全被擋。
- 升級後第一次用 admin 登入會被要求改密碼。
- STG 升級前若授權不是 189 簽發的,先從 189 重簽並匯入。
7. Breaking Changes¶
- Agent 1.4.0 對舊版平台拒絕所有掃描與測試連線(必須先升平台)。
- 掃描目標只能來自設備清冊或授權網段:「待確認」網段未確認前相關任務被擋;測試連線 API 改只收
device_uid,逐台型欄位改存設備 uid 不存 IP,直接呼叫 API 的外部程式要跟著改。 - 刪除
/api/1.0/client-config與/error-tunnel。 - admin 首次登入強制改密碼(已安裝系統升級後亦同);用 admin 預設密碼登入的自動化腳本會卡在改密碼。
- Redis 與內建檔案儲存只收 TLS:客戶自己的工具直連這兩個服務、或把它們拆到其他主機,都會斷線。
- 設備 IP 格式檢查:以前存了錯誤 IP 的設備要先改正才能再存檔。
- 刪除設備改看「刪除設備」能力點:角色沒有這項能力點的人會變成刪不了。
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. 部署順序¶
- 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。 - pipeline 完整出包;package 段是 Trivy+Grype 關卡第一次真跑,紅了先看
vuln-summary.md再決定修或白名單。 - 出包後驗收:CM-2499 三條(乾淨機新裝明文被拒/1.24.x 真實舊庫升級排練/跨行程推播)→ Agent 1.4.0 真機驗清冊外目標被擋 → 新 init image 乾淨容器裝一次查
tenant_scan_zones、remote_agents.cert_not_after、scan-zone 選單掛group-system-admin。 - STG(188):先從 189 重簽授權;先停 api 再
--upgrade;再升 Agent。 - 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