資安公司Snyk發表2019年開源安全報告,其中他們掃描了Docker Hub中10個最受歡迎的Docker映像檔,發現每一個都包含了存在不少漏洞的系統函式庫,Snyk指出,在官方Node.js映像檔,就提供580個易受攻擊的系統函式庫,最少的Ubuntu也被檢測出含有30個已知漏洞。

Snyk使用自家容器漏洞管理解決方案,掃描10個最受歡迎的Docker映像檔,尋找其中的已知漏洞。而結果發現,作業系統的漏洞函式庫數量第一名是官方的Node.js映像檔達580個;第二名是Postgres,有89個;接下來則是Nginx有85個;Httpd有69個;MongoDB以及MySQL都有61個;Couchbase、Memcached和Redis有47個;Ubuntu也被檢測出含有30個漏洞。

以漏洞最多的Node.js 10映像檔來說,目前Node.js Runtime長期維護版本是Node.js 10,但其中帶有10為標籤的node映像檔node:10,實際上是node:10.14.2-jessie,而jessie標籤指的是不再受到維護的Debian過時版本。當開發者在Dockerfile中選用node:10這個版本,則會將582個易受攻擊的系統函式庫一起帶進系統中。

Snyk表示,含有不同標籤的映像檔,包含的漏洞也不同,Node.js 10映象檔還有node:10-slim以及node:10-alpine。node:10-slim是一個容量較小的映像檔,捨去了不必要的相依檔案,安全性雖然比起node:10.14.2-jessie好一點,但仍然存在71個易受攻擊的系統函式庫。node:10-alpine映像檔則是更好的選擇,提供非常小的基礎映像檔以及一小組系統函式庫,Snyk目前沒有在這個版本測得存在已知的漏洞,建議開發者可以使用這個Node.js版本。

Snyk提到,Alpine Linux處理漏洞的方式與其他主要發行版不同,其他版本喜歡向後移植(Backporting)補丁集,但是Alpine採用快速發布周期的作法,每個映像檔版本都會升級系統函式庫。使用像是node:10映像檔,標籤無法完全表達實際內容,因此會在Node.js 10的小版本以及補丁釋出時,不斷的被注意到,進而可能再次被下載使用。

另外,系統函式庫中已知的漏洞在2018年大幅的增加,而這影響了部分熱門的Linux發行版,諸如Debian、RedHat Enterprise Linux和Ubuntu皆受到衝擊。 在2018年Snyk在這些發行版中的系統函式庫,追蹤到1,597個有CVE編號的漏洞,而這是2017年數量的4倍,從趨勢圖看來,嚴重程度會逐年增加。

Snyk提到,根據分析用戶執行掃描的結果,44%存在漏洞的Docker映像檔有更新更安全的基礎映像檔可用,開發人員只需要升級映像檔,就能修補漏洞,而有22%存在已知漏洞的Docker映像檔,只需要簡單地重新建置,就能減少漏洞數量。


Advertisement

更多 iThome相關內容