Federacy的一名研究人員發布了一項報告,該報告分析了公開倉庫中Docker鏡像的漏洞。24%的鏡像發現了明顯的漏洞,其中基于Ubuntu的鏡像漏洞最多,而基于Debian的鏡像漏洞最少。
這項研究掃描了133個公開Docker倉庫中的91個,其中每個倉庫都有一個添加‘latest’標記的鏡像,底層的鏡像是一個主Linux分發版本并且帶有可運行的包管理器。這里,使用了一個修改過的vuls開源漏洞掃描器來掃描鏡像。vuls是用Go語言編寫的,支持Linux和FreeBSD。數據是通過Federacy內部構建的工具進行分析的。鑒于vuls還不支持Alpine和靜態二進制文件,它們就從本次分析中排除了出去。計分是按照CVSS v2標準計算得出的。
在掃描到的所有鏡像中,其中的24%存在較為明顯的漏洞,在這些漏洞中,11%的風險等級為高,13%的風險為中等,剩余的被視為潛在漏洞。掃描的Linux分發版本包括Ubuntu、Debian和RHEL。基于Ubuntu的鏡像在嚴重漏洞總數上的占比最高(27%),而Debian則是漏洞最少的分發版本(8%)。但是,基礎的Ubuntu鏡像并未包含任何已知的漏洞,這也就是說,所報告的這些漏洞是因為鏡像創建者安裝了其他的包和/或配置發生了變更引發的。另外,在官方倉庫中,Debian是占據主導地位的基礎分發鏡像(79%),Ubuntu占據了16%,而RHEL與這兩者相比,其樣本要小得多(4%)。
圖片來源 : https://www.federacy.com/docker_image_vulnerabilities
在較新的Debian和Ubuntu釋放版本中,所發現的問題都更少一些。其中的一個原因可能是在較新的分發版本中,安裝的包更少,因此所造成的攻擊面(attack surface)就會更小。在此之前,有一份類似的報告指出了Docker Hub鏡像上30%的高優先級漏洞。
整體而言,最常見的漏洞是SSL Death Alert,對于Ubuntu也是如此,這種漏洞可能會導致基于GnuTLS、OpenSSL和NSS編譯的軟件產生DoS攻擊,這樣的軟件就包括nginx。而對于Debian,最常見的是一個很嚴重的漏洞,但是它不太可能影響到大多數人,因為它涉及到緩存計時攻擊(timing attacks)和對系統的本地訪問。
對于Docker鏡像掃描來說,vuls并不是唯一可用的掃描器。vuls在運行時會查詢包管理器,從而得到安裝的包、版本和變更日志。然后,它會將變更日志CVE與國際漏洞數據庫(National Vulnerability Database,NVD)進行比對。另外的一個掃描器是Clair,它被Quay.io鏡像庫和Kubernetes社區所采用,用于它們所維護的所有鏡像的掃描。除此之外,還有商業供應商比如Twistlock,它與各種云平臺實現了集成。
盡管這個報告討論了鏡像所存在的風險,但是并沒有提及如何解決它們的細節。其中的一些建議就是在鏡像的構建過程中安裝包更新、在包運行的時候自動更新以及在鏡像的構建過程中添加漏洞分析過程。還有一個建議就是使用Alpine Linux或類似的分發版本,或者是構建靜態二進制的鏡像。
查看英文原文:Public Docker Image Vulnerability Research Findings Released