擁有0Day漏洞利用代碼的攻擊者成為了當今企業級網絡安全最大的威脅。為了盡量不給零Day漏洞攻擊者們以可乘之機,許多廠商開始研究操作系統中0Day漏洞的防護機制。
目前的操作系統設計時考慮到了分級保護機制。例如Windows操作系統的內核是零級(Ring 0),最外面的用戶級是三級(Ring 3)。這種分級機制減少了操作系統出錯的可能性,提高了操作系統的穩定性,也在一定程度上保證了操作系統的安全性。
應用程序運行在最不受信任的級別(Ring 3,又被成為用戶態),而操作系統的系統程序執行在受信任程度最高的零級(Ring 0,又被成為內核態)。操作系統可以在不同的級別進行資源分配,不同級別之間的訪問受到控制。舉個例子來說,Windows用戶要訪問系統的資源,只能通過Windows提供的API來進行。有了這種機制,任何一個用戶要訪問系統的資源,都要得到操作系統的允許。
微軟和其它的許多安全廠商都投入了大量的時間和精力,用來研發增強的安全措施,以提高操作系統的安全性。他們大都把注意力放在了核心態(Ring 0)上,即監控用戶態的應用程序對系統資源的請求。例如,阻止對內存中關鍵結構的寫操作;分析應用程序的行為來確保一個字處理程序不會突然向外發送敏感數據等。
與此同時,許多基于主機的安全產品能夠保護用戶的應用程序免受安全漏洞帶來的攻擊。例如,標記堆內存和棧內存為不可執行的,或者內存分配的返回地址隨機化等,都可以增加漏洞利用的難度,甚至使得緩沖區溢出漏洞的利用變成不可能。
另一種基于主機的安全保護措施,通常被稱為行為分析,即截獲和分析應用程序發起的各種系統調用請求。作為這種方案的改進,另一種方法是把應用程序加載到虛擬機中,這樣可以在應用程序執行前,檢測和分析每一條指令而不是系統調用,這種策略檢測得更加徹底。
盡管基于主機的保護機制在企業級網絡中難于配置和使用,但是目前這種方案是應付零Day漏洞攻擊的最好的方法。使用了這種保護機制的企業級網絡仍然面臨的安全風險,因為這些安全產品對零Day漏洞的防御只停留在用戶態而不是內核態。技術出色的黑客仍然可以通過利用操作系統內核的漏洞入侵企業級網絡。
任何一種聲稱能夠防護應用程序免受零Day漏洞攻擊的安全產品,都必須把他們的防護措施深入到操作系統的內核級別。
目前市場上的安全產品都無法保證操作系統不受安全漏洞的攻擊。近來隨著虛擬機技術的成熟和硬件技術的發展,可以考慮把下一代安全技術做在虛擬機里,再通過創建一個受信的虛擬機監控程序,可以提高安全監測的可見性。 在虛擬機中開發安全防護模塊,可以保證一個或者多個服務器共同工作時,都免受安全漏洞的攻擊。使用虛擬機后,安全軟件工作在操作系統的下層,可以徹底的檢測出操作系統的安全漏洞。
像這樣的一種解決方案,可以提供比目前的安全產品更高的保護效果。運行著服務器的操作系統中也不必再安裝安全軟件,只要讓該操作系統在裝有安全防護模塊的虛擬機下運行即可。這種方法不僅能夠防護企業級服務器,普通用戶同樣可以使用它。