遼寧對外經貿學院信息管理系 張盛男
Chrome瀏覽器安全與防范技術的研究
遼寧對外經貿學院信息管理系 張盛男
在這幾十年里,使用者的信息安全問題已經是網絡發展的重中之中。以我們經常使用的Chrome瀏覽器為例,如果存在安全漏洞,我們的隱私信息就會被盜取,所以瀏覽器的安全防范就十分重要。Chrome瀏覽器的安全防范技術的重點是沙箱技術,本文就以chrome瀏覽器的安全問題和防范技術中的沙箱技術作為研究對象展開,分析存在的安全問題及防范辦法,如何做才真正的安全。
chrome瀏覽器;安全問題;沙箱技術
Chrome瀏覽器是谷歌公司開發的一個網頁瀏覽器。此瀏覽器是在其他開源軟件的基礎上編寫而成,包括WebKit,瀏覽器的目標是提高穩定性、速度和安全性,和展現既簡單又有效率的使用者界面。軟件名來源于名字為Chrome的網絡瀏覽器GUI圖形使用者界面。軟件的測試版本在2008年的時候發布,它是擁有50種語言的版本,有多個系統版本可以下載。Chrome瀏覽器的安全防范和隱私保護技術也進一步提高,還完善了反釣魚技術過濾網,增加防御點擊劫持攻擊和跨站腳本過濾器,經過長期的磨練瀏覽器已經茁壯成長,更好的防范網絡安全各種漏洞。
Chrome瀏覽器是由谷歌開發的一款設計簡潔并且高效的網頁瀏覽工具。它的明顯特點是簡潔快速。瀏覽器支持多標簽瀏覽,每個標簽頁面都在獨立的沙箱內運行,提升安全性的同時,一個標簽頁面的崩潰也不會關閉其他的標簽頁面。除此,瀏覽器又更強悍的Java腳本V8引擎為基礎,這是其他網頁瀏覽器不能實現的。
Chrome瀏覽器的基礎是開源引擎WebKit和Blink,還包括谷歌Gears。它擁有網頁瀏覽器擴展框架,能夠制作與AdobeAIR類似的混合應用。包含V8Java腳本虛擬機,這個多線程的虛擬機可以加速Java腳本的執行。它有隱私瀏覽模式,能讓使用者不需要在本地機器上登錄便可瀏覽,這個功能和IE8瀏覽器中的功能相似。在瀏覽器的內部內置了防止網絡釣魚的惡意軟件的功能。谷歌瀏覽器之后在內容安全策略標頭上有進一步提升,開發人能夠創建頁面和資源的白名單,由此提高瀏覽器的安全特性。
漏洞一般都是編寫人員在編寫過程中考慮不全面或者疏忽形成的,另一個情況可能是黑客入侵了用戶正在使用的某一項功能,這個功能就成為了安全漏洞。常見的漏洞是我們在瀏覽網頁時會在我們不知道的情況下運行惡意代碼,甚至會有強制下載惡意代碼安裝在我們的上,等待時機運行。還有的安全問題是因為計算機的軟硬件不兼容性和自己原有的代碼出現問題,這些原本存在的問題就是潛在的安全隱患,舉例:用戶瀏覽網站的時候,不能正常的關閉,或者瀏覽器不知原因的出現問題更者中止不在運行正在觀看的網頁。
2.1 內存破壞產生的攻擊
一般瀏覽器都存在內存漏洞,Chrome瀏覽器的內存被攻擊也是不能避免的。瀏覽器的內存泄露、越界使用、使用無效指針和錯誤釋放是內存被攻擊的來源,它會利用html或腳本進行攻擊創建對象或腳本刪除或釋放腳本或重新分配對象,會通過使用垃圾回收箱或標記重新加載的過程進行攻擊,會攻擊已經釋放的html和腳本的內存對象。
防范辦法在開發時已經引入了內存保護的技術。有SAFESEH標記、DEP/NX、地址空間布局隨機化。SAFESEH標記是把應用程序注冊時出現異常的處理程序保存在內存的查找表中,當發現異常,程序的堆棧里的異常地址處理,然后通過查找表驗證,如果兩者不匹配就會終止這個進程。DEP/NX是依賴CPU密鑰的安全操作系統的緩解技術。
2.2 瀏覽器本身的缺陷
Chrome瀏覽器是客戶端程序和其他軟件一樣,它也有自己原本就存在的缺陷,使它本身成為安全漏洞。瀏覽器的指紋也是很重要的安全問題,瀏覽器指紋是在使用者瀏覽網站時提供給網站的相關特征的信息,比如:cookie、引用地址、瀏覽器版本和類型、網絡地址、瀏覽器上安裝的各個插件類型、版本和各個控件和屏幕使用方案等。很多我們覺得不重要的信息同樣會泄露用戶的信息,牽連用戶重要的隱私信息。在瀏覽器使用中,給它配置精準的信息可以為它提供唯一識別用戶的身份,對瀏覽器的指紋識別就會更好地保護。
2.3 對chrome瀏覽器歷史記錄攻擊
Chrome瀏覽器歷史記錄含有:網址歷史、頁面緩存和下載歷史及各種記錄信息。cookie是一些網站為了識別用戶身份,進行session的跟蹤而保存在瀏覽器本地終端上的數據,易于保持登陸者信息到登陸者下次與服務器的會話,易于用戶登錄。在功能方面能夠在保證使用者所需的同時,同樣在某種水平上給使用者的隱私信息安全帶來威脅。我們著重分析cookie導致的隱私信息被盜取的問題。
Cookie是種能使網站服務器把較少數據保存在客戶端的硬盤或內存上,并且在客戶端上讀出數據的技術。當使用者在使用瀏覽器來訪問服務器的時候,服務器會存儲在本地硬盤上很小的一個cookie的文本文件,對于登陸者賬戶和密碼和觀看過的頁面包括停留的時間等相關信息進行記錄,以便于下次登陸者訪問此瀏覽器時,更快速提供便捷。他雖然為用戶存儲信息得到了便利集個性化服務,但是同時也會泄露用戶的隱私。
3.1 SLL協議加密
對所有用戶的搜索關鍵詞進行加密處理,在經過加密之后,第三方即使攔截到用戶搜索詞也無法破解,可以提升瀏覽器的安全性。
3.2 沙箱
Chrome瀏覽器中的每一個標簽頁都是一個沙箱,以防止惡意軟件破壞用戶系統或利用標簽頁影響其他標簽頁。遵守最小權限原則,每個動作的權限都會被限制,僅能運算而無法寫入文件和從敏感區域讀取文件,如我的文檔和桌面。沙盒小組是一種表示他們使用了現有的運行程序限制,并讓這些限制變成一座監獄,例如在其中一個標簽頁運作的惡意軟件,將無法竊取信用卡號碼和干擾鼠標運作,或告訴系統在啟動時運行某個程序,并且惡意軟件會在標簽頁關閉的同時立即中止。
4.1 設計原則
不要重新發明輪子:用更好的安全模型擴展操作系統內核很有誘惑力。讓操作系統在所控制的對象上應用它的安全策略。另一方面創建有自定義安全模型的應用程序層級對象是可以的。
最小權限原則:這既應該用于沙箱代碼也應該用于控制沙箱的代碼。總之即使用于不能提升權限到超級用戶,同時沙箱也需要能工作。
假定沙盒代碼是惡意代碼:出于威脅建模的目的,我們認為沙箱中的代碼一旦執行路徑越過了一些main()主函數的早期調用,那它是有害的,實踐中在第一外部輸入被接收時或者在進入主循環前,這就可能發生。
敏感:非惡意代碼不會嘗試訪問它不能獲得的資源。在這種情況下,沙箱產生的性能影響應該接近零。一旦敏感資源需要以一種控制行為訪問時,一點性能損失是必要的。這是在操作系統安全合適事情情況下的常見例子。
仿真不是安全:仿真和虛擬機方案本身不能提供安全。沙箱不會出于安全目的依賴于代碼仿真或者代碼轉換或者代碼修復。
4.2 沙箱windows架構設計
沙箱在進程級粒度進行運作。凡是沙箱化的任何東西都需要放到獨立進程里運行。最小化沙箱配置有兩個過程:一個是被成為broker的權限控制器,一個是被稱為target的一個或多個沙箱化進程。在整個文檔和代碼中這兩個詞有著上述兩種精確的內涵。沙箱是一個必須被鏈接到broker和target兩個進程可執行程序的靜態庫。
4.3 broker進程設計
在瀏覽器中broker總是瀏覽進程。廣泛概念里是一個權限控制器,沙箱進程活動的管理員。它的進程的責任是:指定每個目標進程中的策略;生成目標進程;維護沙箱策略引擎服務;維護沙箱攔截管理器;維護沙箱服務與進程的通信;代表目標進程執行策略允許的操作。Broker進程應該始終比所有它生成的目標進程還要活的久。沙箱IPC是一種低級別的機制,這些調用會被策略評估。策略允許的調用會由broker進程執行,結果會通過同樣的IPC返回給目標進程。攔截管理器是為應該通過IPC轉發給進程的系統API調用提供補丁。
4.4 沙箱限制設計
在它的核心,沙箱依賴于4個Windows系統提供的機制:限定的令牌;工作對象;桌面對象;集成層。這些機制在保護操作系統,操作系統的限制,用戶提供的數據上相當的高效,前提是所有可以安全化的資源都有一個比空值更好的安全描述符,所以沒有關鍵資源會有錯誤的安全配置;計算機并未被惡意軟件所損害;第三方軟件不能弱化系統安全。
4.5 內外兩層沙箱設計
瀏覽器進程是由內層沙箱構建。為了進一步防御攻擊,還構建了一個外層沙箱用于進程邊界的隔離。
內層沙箱用于在一個本地進程中創建一個安全的子域。在這個子域中我們可以將一個可信的運行時服務Runtime子系統和不可信模塊放置在同一個進程中。通過一個安全的跳躍計分板機制來允許可信代碼和不可信代碼之間的控制轉移。內層沙箱不僅將系統與本地模塊進行分離,而且還使得本地模塊與操作系統進行了分離。外層沙箱是第二道防御機制。它會對運行NaCl模塊的進程的所有系統調用,通過與一個允許的系統調用白名單進行比對來拒絕或通過此調用。目前白名單上允許的系統調用有46個。
4.6 沙箱策略設計
應用與進程的真實限制通過策略設置。這些策略只是一種broker進程調用的編程接口,它們定義了限制與權限。四個函數控制這種限制,對應四種Windows系統機制:TargetPolicy:SetTokenLevel(); TargetPolicy:SetJobLevel();TargetPolicy:SetIntegrityLevel();這三個調用接收從非常嚴格到非常寬松的整數等級參數,例如令牌有七個等級和作業有五個等級。沙箱策略接口允許broker進程指定例外的情況。但一個例外是在target進程中發出特定API調用,將其代理給broker進程的方式。進程可以檢查參數,使用不同的參數重新發出調用,或者干脆拒絕調用。為了指定例外情況,需要有一個獨立的調用: AddRule。現在支持以下幾種針對不同的Windows子系統的規則:文件;命名管道;進程創建;登記和同步對象。每種子系統的具體形式各不相同,但通常規則會基于字符串模式得到觸發。這個規則指定了當一個target進程想要打開文件時,可以授予的權限,以及匹配字符串格式的文件的只讀權限。
伴隨互聯網網絡在我們的生活中不可缺失,對瀏覽器進行攻擊的事件也隨時發生。沙箱技術對Chrome瀏覽器的影響越來越大。甚至現在的瀏覽器都紛紛效仿,使用沙箱技術作為瀏覽器的主體,實現用戶快速瀏覽網站并且保證用戶信息安全,還應用在電腦系統保護上。
[1]蔡智聰。對Chrome的源碼簡易剖析[J]。電腦編程技巧與維護,2011(04):20.
[2]王鶴鳴。電腦信息安全保護傘-沙箱[J]。信息安全與通信保密,2012(01):37.
[3]梁玉。跨平臺瀏覽器木馬機理與防御技術研究[J]。北京郵電大學,2015(01):30.
[4]劉亞剛,陳波,朱漢。瀏覽器隱私保護技術研究[J]。電腦編程技巧與維護,2014(17):80.