微軟Internet Explorer安全性項目經理Forbes Higman在博文中,介紹當下的威脅環境,回顧IE9中現有的保護技術,並解釋為何IE10中新的內存保護技術將提供更強的安全性。
作為Win8的默認浏覽器,IE10浏覽器將在內存保護方面引入了顯著改進,防止漏洞被輕易攻破,幫助確保用戶在危機四伏的Web環境中安然無恙。同時,IE10在這些改進將增加漏洞攻擊的難度和開發成本,讓黑客的伎倆難以得逞。
社交工程類惡意軟件已經成為黑客們將惡意代碼植入受害者計算機的主要方式,這在很大程度上是由於過去幾年中大量浏覽器漏洞陸續得到修復,大大提高了發動漏洞攻擊的難度。但是,隨著越來越多的用戶升級到IE9並受益於SmartScreen篩選器提供的保護,黑客們對直接攻擊浏覽器及其插件再次萌生了興趣。
攻擊Web 浏覽器
黑客之所以攻擊內存相關的漏洞,其目的在於將浏覽器的代碼執行路徑偏轉到黑客選擇的代碼。為了實現這個目的,攻擊者需要滿足以下兩個條件。條件之一是他們必須在受害者的計算機上植入自己希望運行的代碼。用於獲取此類代碼的技術可以分為兩類。攻擊者可以借助堆噴射等技術將自己的惡意代碼植入內存。攻擊者也可以選擇借助名為返回導向編程的技術,執行已經在內存中呈現的代碼。
攻擊者還需要攻破一個可更改原始代碼執行流的漏洞,例如,緩存區溢出漏洞。然後,他們可以將代碼路徑更改為“跳到”其希望執行的代碼地址。
在典型的緩存區溢出攻擊中,攻擊者會將一個精心設計的數據集植入線程的堆棧中,造成為其分配的緩存區溢出,並覆蓋其他數據結構。攻擊者嘗試覆蓋的結構包括異常處理程序記錄或函數的返回地址,以便將代碼流更改為他們在內存中選擇的位置。
圖中顯示出,當寫入本地緩存區的數據量超出了其分配量時,堆棧的重要部分可能會被覆蓋並導致崩潰。通過提交精心設計的數據,攻擊者可以覆蓋返回地址,將代碼執行流更改為任意內存位置。
其他攻擊類型包括釋放後使用漏洞,在這種攻擊類型中,攻擊者會誘導應用程序訪問一個內存已釋放並用於其他用途的對象。
保護浏覽器
內存保護技術為阻止攻擊者實現其目標提供了第一道防線。這些技術旨在提高漏洞攻擊的難度,降低其成功率,並在某些情況下完全禁絕其可能性。內存保護技術的目標是在攻擊者成功攻破漏洞並運行其代碼前,安全地終止遭到攻擊的浏覽器進程。在許多情況下,保護技術可以為供應商爭取一定的時間,幫助他們在黑客攻破漏洞並造成損害前,成功開發並散布相應的修復程序。