VM真的比Container更安全嗎?
理論上來說,是的。但在工作實踐中,那可就不一定了。
寫在前面的話
我們經常會說,「HTTPS是安全的」或者「HTTP是不安全的」。但其實我們想表達的是,「HTTPS的內容更加難被窺探到」,「這將會讓中間人攻擊(MitM)變得更加困難」,或「連我外婆都可以輕易嗅探到HTTP數據」。
儘管如此,HTTPS仍然有被黑的可能,而且在某些情況下,HTTP已經足夠安全了。除此之外,如果我在一個支持HTTPS的常用實現(例如OpenSSL和Heartbleed)中發現了一個可以利用的漏洞,那麼在漏洞被修復之前,HTTPS將會成為我入侵目標系統的墊腳石。
HTTPS其實是HTTP的安全升級版(參考IETFRFC:7230、7237和2828),但我們也不能百分之百地認定HTTPS就是安全的,而HTTP就絕對不安全。
在安全方面,虛擬機(VM)和容器(Container)的定義就沒有那麼嚴格了,從設計的角度來看,在這兩者之間沒有誰比誰更全的說法。因此,這也讓它們的安全問題更加撲朔迷離了。
為什麼我會認為VM比Container更加安全呢?
無論在戰爭中還是在軟體開發中,「分而治之」的概念都是我們的制勝法寶。我們可以將一個非常複雜的架構拆分成多個單一架構,將複雜且難以解決的安全問題拆分成了一個又一個簡單的問題,而在絕大多數情況下,分步解決小問題往往要比通過一個解決方案來解決所有問題要安全得多。
Container就是很好的例子,通過將每一個應用都鎖定在它們自己的區域內,每一個應用中的漏洞與缺陷都不會影響到其他容器中的應用。而VM同樣是如此,但虛擬機在隔離方面做得更好。
如果容器中的應用存在漏洞,它是不會直接影響到其他應用的,這是Container的設計思想。但是,這個應用卻有可能破壞整個操作系統,進而影響到這個操作系統中的其他容器。在一個共享操作系統之中,任何一個應用、容器、以及操作系統實現棧中的漏洞都將會影響整個棧的安全性,並有可能導致物理主機被入侵。
虛擬化技術採用的是分層體系結構,它可以對每一個應用的執行棧到底層的硬體進行結構劃分,以此來消除共享系統中應用程序相互干擾的可能性。除此之外,每一個應用程序棧和硬體之間的介面也有嚴格的限制以防止被惡意軟體所利用,而這種技術也給應用程序提供了更強大的安全保護。
VM管理程序(Hypervisor)不僅可以控制GuestOS和硬體之間的交互,而且還可以對操作系統進行劃分並控制用戶的活動。虛擬機Guest OS控制的是用戶活動,而非硬體之間的交互行為。應用程序或Guest OS中的漏洞不太可能會對物理硬體或其他的VM產生影響,當虛擬機Guest OS以及託管容器的操作系統是相同的時候,同樣的漏洞將會影響系統中所有的容器,但並不會危及到系統中其他的虛擬機。因此VM會水平分割應用程序,並垂直分割操作系統以及物理硬體。
虛擬機開銷
VM給我們帶來的額外的安全性需要犧牲一定的代價。而在計算機系統中,控制轉移所帶來的開銷是非常大的。在執行棧的存儲和重置過程中,外部操作很有可能需要被掛起(暫停)。
Guest OS和管理程序之間的轉換需要消耗大量的資源,而這個過程是經常會發生的。雖然處理器晶元中本身就帶有特殊的控制命令,但控制轉移所帶來的開銷仍然會降低虛擬機的整體運行效率。效率下降得非常明顯嗎?這就很難回答了。我們可以通過管理「控制轉移」來降低應用程序的開銷,大多數伺服器級處理器現在都可以簡化控制轉移的整個過程。換言之,效率下降的程度取決於應用程序以及伺服器的配置,但這種額外的開銷是永遠不可能完全消除的,我們只能盡量減少。
虛擬機管理程序(Hypervisor)中的漏洞
我們要面對的問題還沒那麼簡單,因為虛擬機所採用的分層體系結構還會引發另一個麻煩,那就是虛擬機管理程序(Hypervisor)中的漏洞。尤其是在公共雲端上,像這樣的單點故障將有可能引起一系列潛在的嚴重問題。比如說,一個黑客可以在一台虛擬機中運行惡意代碼,然後控制其他公共雲端所託管的應用程序,這樣一來,攻擊者只需要一個漏洞就可以黑掉一個公共雲端中的一系列應用程序了。
縱使是一個堅如磐石的系統都仍然會存在漏洞,更何況虛擬機了。但是廠商往往都會吹噓他們的管理程序永遠不會出現安全問題,他們會說:管理程序這麼簡單,而且開發起來也非常容易,我們還會對程序代碼進行嚴格的安全審查,所以他們絕對不會出現安全問題。但OpenSSL的代碼肯定比Hypervisor 要少得多吧?那Heartbleed又是哪兒來的呢?而且我們要知道,虛擬機管理程序中的漏洞與WannaCry一樣,影響絕對是毀滅性的。
雖然管理程序中的漏洞在目前為止還沒有引發什麼嚴重的安全事件發生,但我們可以從常用CVE資料庫中看到,很多研究人員早就發現了大量可以利用的Hypervisor漏洞了,不過Hypervisor的開發人員和廠商都能夠及時修復其中的漏洞,這一點是我們應該感到欣慰的。
總結
雖然虛擬機也有這樣那樣的問題,但我依然堅信虛擬機的安全性比容器要高得多。儘管如此,我們還是要帶著批判的眼光來看到虛擬機系統的安全性問題。
* 參考來源:NetworkWorld, FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM
※Mac OS下的wifi自動破解工具xwifi
※FlaskJinja2 開發中遇到的的服務端注入問題研究 II
※淺析車聯網安全技術要點
TAG:FreeBuf |
※VMware推出VMware Kubernetes Engine:市場威脅下的防衛舉措?
※新Celine背後,看LVMH怎樣「買下」Saint Laurent
※VMware Horizon View Real-Time Audio-Video 相關配置
※真正的全真虛擬機——VmWare Workstation
※Install VMware Tools in CentOS 7 command line mode
※基於Vmware workstation CentOS7.4的安裝
※深入 JVM 分析 spring-boot 應用 hibernate-validatorNoClassDefFoundError
※VMware workstation的性能優化
※VMware 擬收購 Pivotal Software
※Try-catch-finally在JVM底層都幹了些啥?
※VMware為何要收購Kubernetes初創公司Heptio?
※使用Vmware WorkStation模擬Juniper防火牆
※Infortrend更新VMware認證,管理性與安全性雙劍出鞘
※保護模特身心健康,LVMH 再度聯手 Kering 推出數字平台 WeCareForModels.com
※知名設計師 Haider Ackermann 突然離開LVMH旗下的 Berluti,原Dior男裝創意總監或將繼任
※VMware收購Dell EMC Service Assurance Suite團隊以增強網路服務能力
※VMware收購CloudCoreo以提高雲應用安全性
※虛擬機破解VMware Workstation
※LVMH和蕾哈娜正式合作,Fenty會成為下一個「Fenty Beauty」嗎?
※VMware公司正在著手測試全新Workstation