CentOS 移除易受攻擊的組件
介紹
我正在嘗試通過與我們的 Kubernetes 集群相關的一系列項目來減少漏洞數量,其中一個過程是強化我們的圖像。為此,我目前正在使用 Twistlock 突出顯示所有潛在漏洞,目前我們正在嘗試刪除所有高/重要和關鍵漏洞。
根據 Twistlock 的儀表板,易受攻擊的軟體包之一與sqlite相關聯,而另一個與libxml2相關聯。如果可以的話,我還想刪除與dbus相關的漏洞,只是在這一點上我有點不確定如何解決這個問題。
過程
到目前為止,我正在嘗試使用一個相當原始的過程來處理上面提到的包,因為我使用的是 CentOS,所以我在我的 dockerfile 中執行以下命令:
## Use the base image. FROM base-img ## Utilise root for package management. USER root RUN yum update RUN yum clean all RUN yum remove sqlite RUN yum remove libxml2 ## Run as non root user. USER jboss ## Now to remove yum. RUN rpm -e $(rpm -qa '*yum*') ## etc.
但是,這會導致一些錯誤,例如,在嘗試執行我們的 docker build 命令時:
... Error: Trying to remove "systemd", which is protected Error: Trying to remove "yum", which is protected ...
結論
我相信我需要一些來自 Linux 大師的幫助?由於該項目的要求是確保將安全性保持在最大水平,因此我們真的很想消除盡可能多的潛在威脅,我已經幾乎釘牢了應用層。現在我正在深入研究作業系統層,很快我也會深入研究網路層,所以如果有人可以就我們如何消除此類威脅提供任何意見或指導,我們將不勝感激。
免責聲明
不幸的是,我離 Linux 專業人士還很遠,最多可能是中級,所以如果我遺漏了什麼,請耐心等待。我還在SO 上創建了一個問題,只是這與 JBoss 更相關,如果你們中的任何人都能夠幫助解決這個問題,那裡的幫助也將不勝感激。
您的流程存在一些問題,這使其相當困難(如果不是難以處理的話)。
- 您從一個大的基礎圖像開始:
jboss/wildfly
, 基於jboss/base-jdk:11
, 基於jboss/base
, 基於centos:7
. 清理基礎鏡像很困難;從一個沒有你需要的一切的圖像開始,然後添加到它,比從一個有太多的圖像開始,然後從中刪除要容易得多。我不知道基於 CentOS 7 的漂亮、最小的圖像;我使用UBI 基礎映像,但它們可能不適合您的上下文。- 您假設任何 CVE 都反映了您需要解決的漏洞。CVE 只是一個唯一標識符;它應該代表一個真正的漏洞,但並非總是如此,即使確實如此,該漏洞也可能與您的情況無關。例如,CVE-2017-15412涉及 XPath 擴展功能,這意味著它只是設置 XPath 擴展功能(並使使用者控制輸入可訪問它們)的程序中的*漏洞;*這就是為什麼您會看到它針對 Chromium 列出,而不僅僅是
libxml2
. 最新版本的libxml2
確實包含一個修復程序,可以防止所有依賴程序中的漏洞,但只有在您首先使用易受攻擊的程序時才需要它。評估和解決漏洞需要大量資源,這就是為什麼大多數人依賴他們的提供者來這樣做:通常,這將是由誰生成建構您的基礎鏡像的發行版,以及建構您的基礎鏡像的人(如果那是不是你),也許是託管你的基礎設施的人。儘管 CentOS 7 仍在接收安全更新,但 Twistlock 顯示在您的儀表板中的漏洞尚未得到修復,這表明它們被認為不夠重要而無法解決。當然,這並不能保證(你得到你所支付的),但如果你不打算盲目信任 CentOS,你也不應該盲目信任 Twistlock——你需要進行自己的安全評估。