IE瀏覽器的XXE零時差注入漏洞,會讓駭客竊取檔案和系統資訊

https://blog.trendmicro.com/trendlabs-security-intelligence/files/2019/03/Vulnerability-200x200.jpg

資安研究員John Page最近披露了一個微軟IE瀏覽器的XXE(XML外部實體)零時差注入漏洞。根據報導,駭客可以利用此漏洞來竊取機密資訊或從受害者電腦取得檔案。Page使用Windows 7/10及Windows Server 2012 R2更新版的最新版IE (11)瀏覽器來測試此漏洞。我們檢視了它的攻擊鏈來了解安全漏洞的運作原理以及該如何解決。

XXE注入攻擊會利用帶有不正常設定XML外部實體參照(CWE-611)的XML解析器來存取未經授權內容。XXE注入還會利用配置不當的文件類型定義(CWE-827) – 被用來定義標記語言(如XML)的文件類型。例如駭客可以用惡意XML檔加上外部實體參照來利用“file://”協定存取本地端檔案,或用“https://”來存取網頁伺服器上的檔案。

繼續閱讀

Windows 10 推出 Microsoft Edge 來強化瀏覽器安全性

Internet Explorer 或許是今日漏洞攻擊最熱門的目標之一,光是 2014 年,Internet Explorer 就被發現及修補了 243 個漏洞。

上網 通用 bookmark

在 Microsoft 每次的定期安全更新 (Patch Tuesday) 當中都會包含一則內含數個 IE 漏洞的安全公告,這就是 Microsoft 所稱的「Internet Explorer 積存安全性更新」,因為 Internet Explorer 的零時差漏洞真是多得不勝枚舉,例如:

正因如此,Internet Explorer 的風評一向不是太好,其安全性不佳的名聲也成了它發展的障礙。所以 Microsoft 決定在 Windows 10 上推出一個「嶄新的」瀏覽器,叫「Microsoft Edge」,而安全性強化當然是其中一個重點。

Microsoft Edge 中的安全性強化

其實,Edge 並非完全砍掉重練,其 HTML 繪製引擎仍算是 Trident 引擎 (也就是 Internet Explorer 所用引擎) 的一個分支版本,現已改名為 Microsoft Edge HTML。不過,其底層移除了大量 IE 專屬的技術和相關程式碼,這些技術在 Edge 當中已不存在。此外,也導入了多項新的瀏覽器功能。

MemGC

MemGC 記憶體管理功能採用「先標記再找機會清除」的記憶體回收機制,如此可減少所謂「使用已釋放記憶體」的漏洞,也就是 UAF (Use-After-Free) 漏洞。Edge 採用 MemGC 來管理其「文件物件模型」(DOM),並支援物件的記憶體管理。

過去兩年,UAF 漏洞一直是  Internet Explorer 的一大罩門。Microsoft 每次的定期安全更新都包含多項有關 UAF 漏洞的修補。為了解決這樣的情況,Microsoft 於 2014 年夏季在 IE 當中加入了兩項防護機制:其一是 Isolated Heap (隔離式 Heap 記憶體),負責管理大多數的 DOM 物件和其相關物件。其二是所謂的 MemoryProtection (記憶體保護)。

Isolated Heap 讓駭客無法輕易地使用已釋放的物件。MemoryProtection 則可避免駭客利用堆疊 (stack) 中已釋放物件的指標來攻擊 UAF 漏洞。在其他情況下,MemoryProtection 可讓 UAF 漏洞的攻擊難度更高。

 

1MemoryProtection 流程示意圖。

這兩項防護機制大大提升了 UAF 漏洞攻擊的難度,但還是有許多方法可以避開這些機制,尤其當已釋放物件的指標並不在堆疊中時。

 

2UAF 漏洞攻擊步驟。

一般來說 UAF 漏洞的攻擊步驟如下:

  1. 配置物件 A 的 Heap 記憶體區塊。
  2. 釋放物件 A。
  3. 駭客在 Heap 區塊當中填入精心設計的資料。
  4. 物件 B 參照到物件 A。這樣一來,駭客就能透過物件 A 來存取其填入記憶體中的資料。

MemGC 的設計正是要避免這類攻擊,當一個 Heap 區塊被釋放時,MemGC 首先會偵測是否有任何指向該區塊的物件參照。若有,該區塊就不會被釋放。如此一來,UAF 漏洞攻擊就無法得逞。

 

 

3MemGC 如何防止 UAF 漏洞攻擊。

Abandonment (棄置) 類別

記憶體內容損毀是一種常見而且需要特別注意的漏洞類型。Microsoft Edge HTML 繪製引擎 (edgehtml.dll) 導入了一個新的類別叫做「Abandonment」(棄置)。

Abandonment 會偵測記憶體內容損毀的情況,並且在偵測到這類情況時發出一個「FAIL_FAST_EXCEPTION」例外錯誤。如此可避免錯誤進一步擴大,防範任何可能的漏洞攻擊。

4Abandonment 類別。

Abandonment 類別可偵測並處理的異常狀況包括:

  • Double Free (重複釋放)
  • Out Of Memory (記憶體耗盡)
  • Overflow (溢位)
  • Invalid Pointer (無效指標)
  • Invalid Arguments (無效參數)
  • Unreachable Code (無法觸及的程式碼)
  • Not Yet Implemented Function (尚未實作的函式)
  • Excepted return value (除外的回傳值)

預設採用「加強的受保護模式」沙盒環境以及 64 位元模式

Windows 在 Vista 時首次導入強制的一致性控管。Vista 的 Internet Explorer 7 率先在瀏覽器中導入一個稱為「受保護模式」(Protected Mode,簡稱 PM) 的沙盒環境。不過,受保護模式提供的防護有限。

Windows 8 再導入所謂的 App 容器,且 Windows 8 的 IE 10 在這項技術上提供了一種叫做「加強的受保護模式」(Enhanced Protected Mode,簡稱 EPM) 的沙盒環境。

但這有個問題:IE 外掛程式必須重新改寫才能支援 EPM,因為原本的外掛程式並不支援 App 容器。為了維持相容性,EPM 沙盒環境在預設情況下是關閉的。基於類似理由,在 64 位元系統下,IE 的繪圖處理程序是在 32 位元模式下執行,即使瀏覽器是在 64 位元模式下執行。

由於 Edge 是新的瀏覽器,因此不像 IE 那樣有著向下相容的沈重包袱,其 EPM 沙盒環境預設就是開啟狀態。此外,其繪圖處理程序也是以 64 位元模式執行 (只要系統可以支援)。

拋開老舊功能

正如前面所言,Edge 消除了一些 Microsoft 認為今日瀏覽器再也不需要支援的功能。其中之一就是支援舊的 IE 擴充架構,例如:瀏覽器協助程式物件 (Browser Helper Object,簡稱 BHO) 以及工具列,這是過去 IE 經常遭到攻擊的其中兩個途徑。這兩項功能在 Edge 當中皆已去除,Microsoft 已經表明 Edge 將採用類似 Google Chrome 和 Mozilla Firefox 的擴充架構,不過此架構今年稍晚才會推出。

除此之外,未來也不再支援某些程序碼語言 (scripting language)。從 IE 3 時代 (將近 20 年前) 開始導入的 ActiveX,一直是 IE 瀏覽器用來執行原生程式碼的方式之一。傳統上,Internet Explorer 的外掛程式 (如 Flash 和 Java) 都需要對應的 ActiveX 來支援。

VBScript 是另一個程序碼語言,但其他瀏覽器從未支援該語言。IE的VBScript支援一直是漏洞的來源,如:CVE-2014-6332。此外還有 VML (Vector Markup Language) 向量標記語言,這是一種用來顯示向量圖形的標記語言 (不過,現在 HTML5 也能達到同樣功能),在支援該語言的程式碼當中也存在著漏洞,如 CVE-2013-2551。

在 Microsoft 眼中,以上這些都已經是過時的技術,因此 Edge 未來將不再支援這些語言,這樣就能大幅減少 Edge 遭到攻擊的機會。但少了 ActiveX 之後的最大影響就是暫時完全失去 Java 的支援,當然也消除了潛在的威脅。

另一個 Edge 將不再支援的舊技術是 X-UA 相容檔案標頭。這是一種用來讓網站以向下相容於舊版瀏覽器的方式繪製網頁的模式,但卻也成了各種漏洞的來源,例如:

拋開上述所有功能的目標只有一個,那就是藉由去除今日使用環境不再需要的功能 (以及對應的程式碼) 來縮小潛在的攻擊面。

總而言之,與 Internet Explorer 相比,Microsoft 確實在 Edge 底層下了很大的功夫。這一點有助於提升未來 Windows 預設瀏覽器的安全性,畢竟它將來會有很多使用者。只不過,Edge 所做的某些變更,必定也將引來一些新的潛在攻擊,這一點我們將在後續的文章當中繼續討論。

原文出處: Windows 10 Sharpens Browser Security With Microsoft Edge  作者:Henry Li (威脅分析師)
想了解更多關於網路安全的秘訣和建議,只要到趨勢科技粉絲網頁 或下面的按鈕按讚

《提醒》將滑鼠游標移動到右上方的「已說讚」欄位,勾選「搶先看」選項。建議也可同時選擇接收通知新增到興趣主題清單,最新貼文就會優先顯示在動態消息頂端,讓你不會錯過任何更新。

 

推薦】防毒軟體大評比: 惡意程式防禦力 PC- cillin雲端版榮獲第一名!

【推薦】PC-cillin 雲端版 榮獲世界著名防毒評鑑機構高度評比

 

540x90

 

 

 

<更新版>第一個 Windows XP 系統終止支援後出現的重大IE漏洞

 此篇文章的原始版本裡提到Windows XP不會有針對此弱點的修補程式。不過微軟已經發佈了針對此弱點的安全更新(MS14-021),其中也包含了Windows XP。本文也隨之更動相應段落。

 

 漏洞 弱點攻擊

在上週末,微軟發布了安全通報2963983,內容描述一個Internet Explorer的新零時差漏洞。(它被分配CVE編號為CVE-2014-1776)。

 

這個遠端執行程式碼漏洞讓攻擊者可以在受害者系統內執行程式碼,如果該使用者連上了攻擊者所控制的網站。雖然已知的攻擊針對了三個版本的IE(IE9到IE11),但是它相關的漏洞存在於今日還在使用中的所有IE瀏覽器版本(從IE6一直到IE11)。

這樣一個嚴重的漏洞並不完全只有壞消息。首先,該漏洞只會用系統登入使用者的相同權限來執行程式碼。因此,如果使用者帳號沒有系統管理者權限,惡意程式碼就不會以系統管理者權限執行,這部分地降低了風險。(當然,這僅僅是當使用者帳號沒有被設定為系統管理者時才成立。)

其次,一些解決方法已經被提供在微軟的通報內;其中以啟用增強地受保護模式(一個只存在於IE10和IE11的功能)最容易做到。漏洞攻擊碼需要使用Adobe Flash才能執行,因此停用或移除IE瀏覽器的Flash Player也會降低此漏洞的威脅。

更新於2014年4月28日,美西時間中午12:30

Windows XP

這是第一個會影響Windows XP而不會被修補的漏洞。停止了對軟體和作業系統的支援,讓使用者和和組織更容易受到威脅。不過,也有一些解決方案可以幫助解決或減輕此一困境。虛擬修補可以補足傳統的修補程式管理策略,因為它可以在實際修補程式可用前,先「虛擬修補」受影響的系統。另一個好處是,它可以「虛擬修補」支援終止的應用程式。例如,趨勢科技Deep Security就一直在支援Windows 2000上的漏洞問題,甚至在此作業系統支援終止之後。 繼續閱讀