安全沙箱程序:深度防御還是分層漏洞?(1)
沙箱概述
沙箱提供獨立或者密閉的空間,能像實際的網絡——但并不與實際網絡相連接——一樣工作。在這個孤立空間中,程序應用也可以被下載、解壓和測試,然后再移植到實際的服務器上,從而(希望)能夠防止惡意軟件致使網絡發生紊亂。
沙箱最初是為開發和測試程序而設計,現在已經演變為一個安全工具,能夠將活動的程序或進程與宿主系統或本地桌面分隔開。因此,安全沙箱已成為保護系統安全的有效方法,能防止未認證或不受信的程序在網絡上肆意破壞。
普通的計算機用戶每天都可能會遇到多個沙箱。Google公司的Chrome瀏覽器使用沙箱隔離JavaScript的執行、HTML的解析以及插件的運行。這是通過讓每個標簽都獨立運行在自己的沙箱中來完成的,從而使得Web應用程序與用戶的機器隔離開。然而,在2011年二月初,Google修補了Chrome中的九個錯誤,包括一個沙箱逃逸漏洞。雖然其他漏洞的細節都公布了,但是Google卻沒有完全透露關于沙箱漏洞的全部信息。信息的不透明使人們對該款瀏覽器的安全性產生懷疑。如果這個漏洞允許程序突破沙箱進入到宿主系統,那么宿主系統就可能被安裝惡意軟件,敏感數據就存在危險。
流行的Web服務貝寶(PayPal)也利用沙箱技術為商戶提供測試環境。該沙箱能在實際接受顧客的網絡交易服務之前為用戶提供產生和管理模擬賬戶的機會。但這樣仍然存在問題——特別是跨站腳本(cross-site-scripting,XSS)漏洞。
Adobe系統公司在其最近發行的Flash版本中加入了沙箱安全功能,防止從本地文件系統加載的Flash文件向遠端發送數據。盡管惡意黑客們已經盡力打破了Adobe的沙箱,但是沙箱功能還是是一種潛在有用的威脅防御策略。
計算機和網絡取證偵查員也能從沙箱技術中獲益。通過讓觀察員檢查惡意執行程序在“自然”環境中解壓和執行的情況,沙箱能限制可能的外部因素——如其他的程序或者服務——影響證據。理論上,這聽起來很驚人,但實際上,沙箱可能會帶來更多的漏洞。
在部署沙箱之前安全管理員應問自己如下四個問題:
沙箱技術阻止哪一類威脅最有效?
對公司來說,要最佳的實現和集成沙箱技術,了解沙箱的能力和局限是必要的。不切實際的期望只會導致公司組織更加的自滿,也更加脆弱。
沙箱技術不能檢測的威脅是什么?
沙箱沙箱不能檢測加密的病毒或其他惡意代碼,迫使網絡管理員不得不增加進一步的安全保護措施,結果是由于增加層次而帶來了復雜性。
沙箱會帶來什么風險?
沙箱會給系統帶入新的安全漏洞,如潛在的堆棧溢出、訪問主機系統的本地庫以及其他因使用Java和C#編程繼承而來的固有缺陷。進一步的風險包括安全措施或數字沙箱本身。
是否有沙箱的替代品可以達到相同的結果?
沙箱技術有助于程序員測試他們所寫的代碼,但依靠沙箱測試未知代碼是有風險的。通常情況下簡單地忽略額外的軟件層會更加安全。例如,當Adobe的沙箱運行在保護模式時,一些威脅——如鍵盤監視——就可能會被避免,但其他的風險——如對受限區域的訪問,如注冊表——可能會升高。
【編輯推薦】