我們經常說,「https很安全」或者「http不安全」,但其實我們的意思是「https很難被窺探,中間人攻擊很難執行」。
然而,https已經被黑客入侵,在某些情況下,http足夠安全。此外,如果我們在支援https的常見部署中發現可利用的漏洞,https可成為黑客網關,直到漏洞被修復。
http和https是在ietf rfcs 7230-7237和2828中定義的協議。https被設計為安全的http,但https安全http不安全的說法隱藏著重要的例外情況。
虛擬機器(vm)和容器沒有嚴格的定義,也沒有故意設計成對方更安全。
為什麼我認為vm比容器更安全
在戰爭和軟體中,分治法是勝利策略。當架構將單一複雜的難以解決的安全問題分解成更容易的問題時,在大多數情況下,結果會比解決所有問題的單一解決方案更加好。
容器是分治法應用於應用程式的示例。通過將每個應用程式鎖定在自身,乙個應用程式的漏洞將不會影響其他容器中的應用程式。虛擬機器也是採用分治法,但它們在隔離方面走的更遠。
在隔離應用程式中的漏洞不會直接影響其他應用程式,但隔離的應用程式可能會破壞與其他容器共享的單個作業系統,並影響所有容器。當使用共享作業系統時,應用程式、容器和作業系統部署堆疊中任何點的缺陷都會使整個堆疊的安全性失效,並危及物理機器。
虛擬化這樣的分層架構可分離每個應用程式的執行堆疊,一直到硬體,這可消除應用程式相互干擾的可能性。此外,每個應用程式堆疊之間的介面被定義和限制,以防止被濫用。這可保護應用程式免受其他應用的影響。
虛擬機器將控制使用者活動的作業系統與控制訪客作業系統及硬體之間互動的虛擬管理程式分隔。vm訪客作業系統控制使用者活動,但不會控制硬體互動。應用程式或訪客作業系統中的漏洞不可能會影響物理硬體或者其他虛擬機器。當虛擬機器訪客作業系統和支援容器的作業系統相同時(通常都是這種情況),相同的漏洞將會影響執行該作業系統的所有其他容器,但不會危及其他虛擬機器。因此,虛擬機器水平將應用程式分離,並垂直分離作業系統與硬體。
vm開銷
vm的額外安全性是需要成本的。在計算系統中,控制轉移總是很昂貴,無論是在處理器週期還是其他資源中。執行堆疊儲存和重置,外部操作可能需要暫停或者被允許完成等。
訪客作業系統和虛擬管理程式之間的轉換費用很高,並且需要經常發生。即使是特殊控制指令植入到處理器晶元中,控制轉移開銷會降低vm的整體效率。這種降低是否很顯著?這很難說。通過管理控制轉移,應用程式可調整為降低開銷,並且,大多數伺服器處理器現在被設計為簡化控制轉移。換句話說,這種降低程度取決於應用程式和伺服器,但開銷永遠不能完全消除,只會減輕。
虛擬管理程式漏洞
讓問題進一步複雜化,在vm架構中分隔層會帶來另乙個問題:虛擬管理程式漏洞。虛擬管理程式漏洞是單點故障,可能帶來潛在巨大後果,特別是在公共雲中。可想而知,單個黑客可在虛擬機器中啟動**,控制其他公共雲消費者擁有的應用程式,從而入侵整個公共雲。
任何堅固的架構都可能存在缺陷,虛擬管理程式也不例外。
雖然目前並沒有任何重大虛擬管理程式攻擊事故,但從常見漏洞和披露(cve)資料庫來看,研究人員確實發現一些虛擬管理程式缺陷。管理程式開發人員和**商已經很快修復漏洞,在2023年3月,微軟發布安全公告ms17-008,其中涉及hyper-v管理程式中7個已修復的漏洞,都被標記為嚴重。
筆者仍然認為vm比容器提供更好的安全性,但我們必須認真看待虛擬機器的安全性。
虛擬機器比容器更安全?
本文講的是虛擬機器比容器更安全?理論上,是的。實際上,也許。我們常說,https安全 或者 http不安全 但我們真正的意思是,https更難以竊聽,難以進行中間人攻擊 或者 電腦小白都能偷聽http通訊 然而,https已經被黑過了,而某些情況下,http已足夠安全。而且,一旦在支援https的常...
虛擬機器比容器更安全?
理論上,是的。實際上,也許。我們常說,https安全 或者 http不安全 但我們真正的意思是,https更難以竊聽,難以進行中間人攻擊 或者 電腦小白都能偷聽http通訊 然而,https已經被黑過了,而某些情況下,http已足夠安全。而且,一旦在支援https的常用實現中發現可利用的缺陷 想想o...
虛擬機器比容器更安全?
理論上,是的。實際上,也許。我們常說,https安全 或者 http不安全 但我們真正的意思是,https更難以竊聽,難以進行中間人攻擊 或者 電腦小白都能偷聽http通訊 然而,https已經被黑過了,而某些情況下,http已足夠安全。而且,一旦在支援https的常用實現中發現可利用的缺陷 想想o...