你把一個服務包成 Docker 映像檔,準備交給同事測試或部署。安全掃描器跑完後,畫面上突然出現幾十個甚至上百個警示:套件版本太舊、基礎映像有漏洞、Dockerfile(描述這個映像怎麼建起來的設定檔)寫法不安全、某些設定可能讓容器權限太大。

如果你不是每天處理資安的人,很容易卡在兩個極端:不是把警示全部忽略,就是請 AI 幫你「全部修好」。前者可能留下真正危險的洞;後者也不安全,因為 AI 可能改掉版本、安裝方式或執行權限,讓服務看起來變安全,實際上卻壞在另一個地方。

OWASP Incubator Project DockSec 最近受到多家資安與開源媒體介紹。它把 Trivy、Hadolint、Docker Scout 這類既有 Docker 掃描工具整合起來,再用大型語言模型,也就是能讀懂文字並產生解釋的 AI,整理警示、說明風險,並提出 Dockerfile 的修補建議。它也提供只掃描、不呼叫 AI 的離線模式(scan-only);需要 AI 解釋時,才連到 OpenAI、Anthropic、Google Gemini 或本機 Ollama 等模型。

這類工具的價值,不是讓 AI 直接替你按下修補鍵。真正值得學的是:掃描結果變多以後,團隊需要一個「先分層、再修補、最後有人確認」的流程。

一個團隊面對大量 Docker 安全警示,先分類、測試,再由負責人決定哪些修補可以放行。

問題不是警示太少,而是警示太多以後沒人知道先看哪一個

Docker 是一種把程式、執行環境和相依套件打包在一起的方式。很多網站、API、內部工具和 AI 小服務,都會用 Docker 讓部署比較穩定。問題是,這個包裡可能同時包含作業系統套件、語言套件、設定檔和啟動指令;任何一層過舊或權限太大,都可能變成風險。

傳統掃描工具很會找問題,卻不一定很會幫忙判斷優先順序。對一般開發者來說,一份掃描報告常常像這樣:

  • 有些警示是真的急,需要今天修。
  • 有些警示存在於套件裡,但你的服務根本沒有用到那段功能。
  • 有些修補看起來只是升級版本,實際上可能改到相容性。
  • 有些 Dockerfile 建議很合理,但會讓原本的部署流程失效。

DockSec 這類工具想補上的,就是「從一堆警示到可理解修補」中間的空白。Open Source For You 引述專案作者的說法:以前開發者可能收到 200 多個 CVE,也就是已公開編號的安全漏洞,卻很難知道「到底要修哪幾行」。

但這也帶來新的風險:當 AI 把修補說得很順,團隊更容易以為它已經完成判斷。事實上,AI 可以幫忙整理線索,不能替你決定這個服務能不能改版本、能不能換基礎映像、能不能刪掉某個套件。

先用三層表分清楚:可照表修、要測試、要人決定

看到 AI 整理好的掃描報告時,不要先問「它是不是很聰明」。先問:這個修補如果做錯,會影響誰?

修補層級常見例子下一步
可照表修Dockerfile 格式、明顯不必要的暫存檔、文件化的低風險設定照建議修改,仍要留下差異紀錄
測試後再修升級套件版本、調整基礎映像、改變建置步驟在隔離的測試環境跑測試;失敗時要能回滾/復原
必須有人決定改權限模型、移除核心套件、調整網路或憑證設定、影響客戶資料處理請負責這件事的人確認風險、時程與上線窗口

這張表的重點,是把「AI 建議」改成「可追蹤的修補決策」。AI 可以說明某個漏洞為什麼值得注意,也可以指向 Dockerfile 的可能修改位置;但只要修補會影響部署、權限、資料處理或客戶可用性,就不能只讓 AI 建議一路通到正式環境。

特別是權限相關修補,要格外小心。降低權限通常是好事,但如果你的服務原本靠某個檔案、連線或系統能力運作,直接改掉可能讓它在測試時正常、在正式環境才壞。安全不是把所有權限都砍掉,而是知道每個權限為什麼存在,哪些可以移除,哪些要改成更窄的替代做法。

AI 修補建議要先過四個檢查點

如果團隊想把 AI 輔助掃描放進日常流程,可以把每個修補建議都放進四個檢查點。

檢查點要問的問題為什麼重要
影響範圍這個漏洞真的影響目前映像檔、目前執行方式和目前開放的入口嗎?避免把時間花在不會被觸發的警示上
修改內容AI 建議改的是版本、設定、權限,還是整個建置流程?不同修改需要不同測試強度
測試證據修改後有沒有跑單元測試、整合測試、啟動測試或部署測試?避免「掃描分數變高,但服務壞掉」
復原方式如果修補造成問題,能不能快速回到前一版?安全修補也要有回滾/復原計畫

「回滾/復原」就是把變更退回前一個穩定狀態。這不是悲觀,而是安全工作的一部分。越是涉及基礎映像、系統套件和部署權限的修改,越需要在修改前先知道怎麼退回。

也不要把 0 到 100 的安全分數當成唯一目標。分數可以幫你追蹤改善,但分數不是產品是否安全的完整答案。真正要看的,是高風險警示是否被處理、修補是否有測試、例外是否有人批准,以及下次掃描時是否能看懂為什麼某個警示被保留。

什麼情境不適合讓 AI 自動修補

有些修補很適合讓 AI 協助整理。例如,把報告翻成白話、把重複警示合併、列出可能的 Dockerfile 修改方式。這些工作能節省閱讀時間。

但下面幾種情境,不適合讓 AI 直接自動修補後上線:

  • 服務處理客戶資料、付款、登入、內部憑證或公司機密。
  • 修補會改到基礎映像、資料庫驅動、加密套件或網路設定。
  • 目前沒有自動測試,也沒有明確的部署回滾/復原方式。
  • 團隊沒有人能說明這個容器需要哪些權限。
  • 掃描工具和 AI 模型需要把報告資料送到外部服務,但你還沒確認裡面是否含有敏感資訊。

DockSec 的文件提到,它可以只做離線掃描,也能在需要時使用不同 AI 模型。這提醒我們:導入任何 AI 輔助資安工具前,都要先看資料會不會離開本機、送出去的是完整映像內容還是掃描摘要、誰能看到報告、報告會保存在哪裡。

如果你還說不清楚這些問題,就先不要把它放進正式建置流程。可以先在隔離的測試環境跑一次,拿一個非敏感專案練習分類與修補流程。

最小可用流程:讓 AI 幫忙解釋,但讓人決定放行

一個小團隊不需要一開始就建立複雜的資安平台。比較實際的做法,是先把掃描結果放進一張簡單表格。這張表不是第三套新標準,而是把前面的三層分類與四個檢查點,濃縮成一份可以貼進 PR、工單或修補紀錄的工作表:

欄位要填什麼
警示摘要AI 或掃描工具整理出的問題
影響判斷這個問題是否影響目前服務;如果不影響,為什麼
修補類型可照表修、測試後再修、必須有人決定
測試證據修改後跑過哪些測試、結果如何
放行人真正確認這次修補可以合併或部署的人

這個流程看起來比「一鍵修好」慢,但它能避免最危險的誤會:以為 AI 解釋了漏洞,就等於 AI 承擔了修補後果。

用日常來理解

一則四格漫畫:團隊收到大量安全警示後,先分類,再讓 AI 協助整理線索,最後由人決定哪些修補可以放行。

  1. 團隊收到一整箱安全警示,一開始每張看起來都很急。
  2. 大家先把警示分成可照表修、要測試、必須有人決定三種籃子。
  3. AI 幫忙整理線索與檢查表,但人仍要確認測試證據和復原方式。
  4. 最後只有低風險修補先放行,高風險項目留給負責人判斷。

DockSec 這類工具把安全掃描變得比較容易讀,這是好事。只是,越容易讀的報告,越需要清楚的人工關卡。下一次 Docker 掃描器丟出一堆漏洞時,不要急著叫 AI 全部改完。先分清楚:哪些只是整理工作,哪些是工程修改,哪些會影響真正的產品責任。

AI 整理卡

依這篇情境,請 AI 幫你整理

複製到你自己的 AI 聊天工具,讓它把這篇微課轉成你的個人版檢查清單。BMC 不會看到你貼給 AI 的內容。

Share

分享這篇微課

如果這篇剛好解開一個工作卡點,可以分享給也在判斷 AI 怎麼用的人。

參考來源