本卡為 FR-128 母案。讓四顆出貨 docker image 用 Trivy 掃出 Critical=0、發行版已有修正的漏洞全清,並把 CI 掃描換成 Trivy+Grype 雙掃守住每一版。分五棒實作。子卡清單在末段。
我們交給客戶的安裝包裡有四顆 docker image(後端、前端、資料庫初始化、證據分類沙箱)。客戶會自己拿掃描工具檢查這四顆,要求最嚴重等級(Critical)的漏洞一條都不能有。這個案子做兩件事:一是把現在掃得到的 6 條 Critical 和 128 條「已經有修正版可升」的漏洞全部清掉;二是把 CI(自動 build 流程)裡的掃描工具換成客戶會用的那一套,以後每出一版都自動檢查,有 Critical 就不准出包。
/opt/guidant-ai-be/.build/trivy-2026-10-05/;整理頁在 BE repo docs/security-reports/2026-10-04/README.md(未 commit,數字是 osv 版,.5 卡會更新)。image 套件 根因 子卡
be concurrent-ruby、net-imap CINC Auditor 7.1.7 內嵌舊 Ruby gem .2
classifier libxml2-dev、linux-libc-dev build-essential 與 -dev 開發套件留在 runtime image .3
classifier libxml2 2.9.14 Debian 13 標 no-fix;Ubuntu 22.04 不受影響 .4
init Go stdlib 1.24.6 postgres:16-alpine digest 釘死,內含舊 Go 工具 .1
來源 條數 子卡
CINC Auditor 內嵌 Ruby gem 24 .2
四顆 image 的 OS 套件(libssl3/libc6/python3 等) 37 .1
init 的 Go stdlib(postgres image 內) 46 .1
classifier pip/setuptools/wheel/jaraco 9 .3
執行順序:.1 → .3 → .2 → .5 → .4。序列組:.3 與 .4 動同一支 classifier Dockerfile,不可平行;.1 也動該檔第 7 行 FROM,要先於 .3。.2 與 .3 檔案不重疊,.1 完成後可平行。
trivy image --scanners vuln <image>:Critical=0。