安全性

Container技術也叫作業系統級虛擬化,對於運行在其中的進程來說,就像運行在一台單獨的機器上一樣,它只能看到自己容器的進程、只能看到自己的目錄結構,只能看到自己的網絡棧,甚至資源也是有限制的,占用的內存超過了就會被移除(Kill)。除了虛擬化,允許同時運行多個應用而不相互干擾,建立起資源及流程標準化、易用性,以及表現極好的效能,容器技術還帶來了巨大的安全性。基於Docker本身來講安全行可以保障的,無論是容器的隔離還是資源限制容器都有著很出色的表現

3.1 安全議題

  • 共享作業系統核心,一旦單臺機器收到外部攻擊,傷害範圍也會波及至作業系統核心上運作的Container(其實沒有Container的傳統系統這問題早存在且更嚴重)

  • Docker Image內部的程序、lib和配置可能存在缺陷。去年有報導稱超過30%的官方鏡像存在嚴重的安全缺陷,因為其中包含了一些存在缺陷的軟體和library,比如openssl的心臟流血(Heartbleed bug)。

  • 資料通訊安全,包含客戶端至Docker引擎,以及Docker引擎至儲存庫間傳輸映像檔的安全考量

  • 網路安全,許多企業在使用Docker前,就已經對於內部資料中心網路架構有所規畫,如果選擇導入Docker,其架構勢必得要進行調整,「這時網路安全就變成重要議題。」

  • 更多的安全隱患發生在使用者上,因為沒有正確的使用容器或者配置出錯導致了容器的危險運行

3.2 強化措施

善用Linux Kernel中內建的安全機制

  • Capabilities則用於拆分root權限 ,以避免Container內root acount對HOST主機擁有過高的Root權限

  • 安全運算模式(Secure Computing Mode,Seccomp), 因此就必須利用Seccomp機制,透過Profile設定,禁止不需要的系統呼叫權限。

Container 專用型作業系統

  • 輕量、啟動快速與適合大量布署的Container專用Hosting OS,同時因刪除非需要的程式庫與服務,從而大大減少了佔用空間與OS安全漏洞,並最大限度地減少了更新,修補和維護容器主機操作系統的麻煩。

  • 六大Container OS: Google CoreOS、CloudStack RancherOS、Red Hat Project Atomic、VMware Photon、Snappy Ubuntu Core與Windows Nano Server

Docker Image管制

  • Image完整性檢驗,Docker主要提供了兩方面的功能:Registry V2引入的內容可尋址映像存儲和映像簽章。

  • 不使用來源不明的公共映像檔與良好映像檔儲存庫管理

安全生態

目前有很多的公司都在做Docker安全相關的業務,在DockerCon2016上,我們可以看到Twistlock、Aqua。甚至Docker本身也在做一些安全的產品,例如Docker Cloud的鏡像安全掃描工具。業界也有一些開源的開源的產品,Coreos最近開源了鏡像掃描工具Clair。Twistlock和Aqua的產品功能很像,都提供了鏡像掃描、運行時容器掃描、訪問控制等功能。

多租戶設計

  • 每個Docker Container其實是運行在Host OS上的一個process,有別於VM是運行在Host OS上的一個Guest HOST,效能較優但隔離性較差。如比起傳統的Process運行方式,Docker反而有更高的隔離安全性。

  • 因為Docker與Host OS共用同一Kernel,在多租戶環境中或不同資訊系統的容器配置在同一Host OS中易造成安全疑慮。雖然Docker可在實體機運行並有較好的效能,但通常考慮較好的隔離性”實體機 + VM + Docker”是目前比較常見佈建方式。

3.3 References

10 tips for securing microservice architecture

results matching ""

    No results matching ""