Docker 面临的安全隐患,我们该如何应对
【編者按】對比虛擬機,Docker 在體量等方面擁有顯著的優勢。然而,當 DevOps 享受 Docker 帶來擴展性、資源利用率和彈性提升的同時,其所面臨的安全隱患同樣值得重視,近日 Chris Taschner 在 SEI 上撰文進行了總結。本文系 OneAPM 工程師編譯整理。
基于容器的虛擬化平臺提供了一種方式在隔離的實例中運行多個應用程序。容器技術可以為 DevOps 提供顯著的優勢,包括提高系統的擴展性、資源利用率和彈性。然而除下容器與主系統完全解耦,這種使用就會存在潛在的安全隱患。因此,這篇博文主要描述了為什么系統管理員應該密切關在容器中運行應用所采納的權限等級,以及用戶訪問主機系統的權限。
容器已經成為 DevOps 中的新熱點技術。特別是 Docker 公司,已經成為了提供容器技術服務的領頭公司。使用 Docker 平臺,應用程序極其依賴可以被打包進一個單元,也就是所謂的鏡像。隨后,Docker 就可以運行這個鏡像的實例,每個鏡像的實例都是在駐留在容器中。
Docker 正成為 DevOps 的代名詞。如果你還不熟悉容器的優勢的話,概括地說,它們包括了可使用的鏡像和易于使用的公共庫、鏡像版本,以及 Docker 的思想。(欲了解更多信息,請參見 devops.com 上的 Three Reasons We Use Docker)。
在談到大小時,容器具有很多優勢。不像虛擬機,一個容器不需要運行整個操作系統,或者對系統的硬件進行拷貝。容器僅僅只需要足夠的操作系統和硬件信息資源來運行它負責托管的應用。所以,容器所消耗的資源比虛擬機小很多,因此同一主機上可以跑的容器肯定比虛擬機多。
而在最小化需要運行的容器上,開發者需要做好足夠的權衡。其中一個就是減少容器與系統之間的分離度。與此相反,虛擬機與主機的分離性比容器的更高。Docker 用戶需要 root 用戶權限去運行容器,如果 Docker 用戶不知道容器中運行的是什么,這可能會引發問題。通常,那些 repository 都是未經過審核的,這意味著任何人都可以創建和上傳鏡像。顯然,對從互聯網上下載下來的容器給以太多的信任會引發安全問題。
共享命名空間的問題通常是 Docker 的最大問題。命名空間是系統內核所創建的組,它通常會為不同源和區域指定不同的訪問級別。而究于擴展性,在 Docker 中并沒有為容器提供不同的命名空間——倘若有數百個容器在運行,那么每個容器都需要有獨立的命名空間。而且,如果一個容器想要共享存儲,那么所有共享這個存儲的命名空間必須使用顯式訪問。
在回應有關 Docker 的安全問題時,這里詳細討論了如何緩解 Docker 的安全問題。緩解方法的建議包括了限制直接訪問主機和在容器中運行應用的權限。
除了 Doker 容器的安全指導,還有其它在確保容器安全方面的建議。共享命名空間的一個潛在解決方案是使用 Seccomp,它是一個進程處理工具。Daniel Walsh 在 opensource.com 上詳細地介紹了這項工作。
管理員必須清楚容器中運行的究竟是什么。從互聯網上下載來的鏡像應該仔細審核,然后才在敏感的環境中運行。一般規則,不像字面意義,容器不應是包含在容器內運行的應用程序。
本文系 OneAPM 工程師編譯整理。想技術文章,請訪問 OneAPM 官方博客。
轉載于:https://www.cnblogs.com/oneapm/p/4755705.html
總結
以上是生活随笔為你收集整理的Docker 面临的安全隐患,我们该如何应对的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu18.04换源更新国内源
- 下一篇: Ubuntu 14.04下360/小米/