在大多數客戶的資安政策中,Docker image 上版得做資安風險檢測,確定沒有中高級以上的風險才能上版,然而原廠給的 image、Spark on K8s operator、Docker Hub 下載的預設 image 多半會有因軟體版本較舊而出現的漏洞,因此我們若希望順利上架 image,得好好地來處理這些潛在的風險。
image 上架又被掃出弱點了嗎? 怎麼處理這些弱點呢?
大多數的弱點,是由於 base image 或者上面的軟體版本較舊的緣故,因此我們如何來修復這個舊版本的議題?
最關鍵的解決方法,是選擇一個滾動式更新 (rolling update) 的 Linux 版本,例如 Debian testing。
然後,我們從最基礎的方式,一層一層將 image 搭建起來,例如:在裡頭建置 Python,或者安裝需要的 JDK 版本
但在一切動作開始之前,第二個關鍵是什麼呢?先有一個可以做弱掃的工具,若一時之間找不到,我建議用 Aqua 的 Trivy,這個工具非常好用!
這為何是第二關鍵,因為如果客戶端是 Trivy,我們至少有個可以對齊的標的,若客戶是使用 BlackDuck 這類商用工具,至少我們能夠有一個可用的選擇。
接著,第三個關鍵,我知道這 2025 年,幾乎絕大多數的工程師都會包 Docker image 了,所以我不談 image 怎麼包。第三個關鍵是,要為自己的 image 建置過程設立 check point,每個 check point 都一定要包完後,做一次弱掃。
第三個關鍵是讓建置 image 的人,可以確實地知道自己的建置過程中,是哪個環節會出現弱點。
即使有些弱點根本無法修,像 Spark 即使到了 3.5.x,還是存在著古老的 Java 套件弱點一般,這些無法修的弱點,就需要進一步揭露,透過其他機制來補足。