理解 IE 瀏覽器的保護模式
0x01
便利之於安全,二者不可得兼,舍便利而取安全也。
保護模式最早起源於 Windows Vista 上的 IE7 瀏覽器版本中(可以在 Vista 更新的作業系統和 IE7 更新的瀏覽器上執行),它通過嚴格限制的許可權執行 IE 程序來保護使用者免受攻擊,明顯降低了對使用者機器上的資料進行寫入、改寫或安裝惡意程式碼等攻擊的可能性。在保護模式下,限制執行在 IE 程序下的程式碼不不能修改系統部分檔案,從而保護電腦保安,這樣即使一個惡意網頁利用了 IE 外掛中的一個程式碼注入漏洞,注入的程式碼也不能對系統造成破壞。
一般的,在 IE 瀏覽器開啟後依次點選:工具 -> Internet 選項 -> 安全,就可以選擇啟動或者禁用保護模式。保護模式分為禁用、中級、中高階(預設)和高階四個等級。
有人說了,為了安全那就把 IE 保護模式設定為最高等級吧。這樣做雖然安全了,但是付出的代價就是要你的上網體驗將會大打折扣,因為一些本來要載入的資源都被攔截下來了。所以我們通常不會將保護模式設為最高等級。
要理解 IE 瀏覽器的保護模式,可以類比使用者賬戶控制(User Account Control)進行理解。使用者賬戶控制的原理是通知使用者是否對應用程式使用硬碟驅動器和系統檔案授權,以達到幫助阻止惡意程式(有時也稱為“惡意軟體”)損壞系統的效果。UAC 和 IE 保護模式,都在 Windwos Vista 發行版中由微軟公司推出應用。如果你還不明白,再試著類比 Linux 系統的 sudo 命令,如果你是一個低權使用者這個命令同樣可以讓你暫時以高許可權使用者的身份執行某個程式。
UAC 和 IE 瀏覽器的保護模式一樣,都是可以手動關閉的。這裡我們再介紹另一種啟動/關閉保護模式的方法:通過修改登錄檔實現。
當你使用上面方法成功修改了保護模式的狀態,事實上是修改了下面的登錄檔項的子項值。
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\
開啟上面的登錄檔項後,導航到名為 Zones
的子項。圖下圖所示,它一共有 5 個子項,用數字 0~4 表示,分別對應本地計算機、區域網、受信任的站點、網際網路和受限制的站點區域。
如果你想要禁用某個範圍內(0~4)的安全模式,只要在該項下建立一個名為 2500 的 REG_DWORD,並賦值 —— 0 表示啟用,3 表示禁用。比如下面這張圖,我在名為 2 的子項下建立了一個名為 2500 的 REG_DWORD並將其賦值為 3,這表明對整個 Internet 區域禁用保護模式。
0x02
保護模式相對於傳統模式,建立於新的(指 2010 年)完整性機制之上,以限制對安全物件(如,具有更高完整性級別的程序、檔案和登錄檔項)的寫入許可權。當以保護模式執行時,Internet Exporter 是一個低完整性程序;因此它無法獲得對使用者配置檔案或系統位置中檔案和登錄檔項的寫入許可權。低完整性程序只能寫入已經分配的低完整性強制性標籤的資料夾、檔案和登錄檔。因此,以保護模式執行的 Internet Exporter 和擴充套件程式只能寫入低完整性位置,例如,新的低完整性 Internet 臨時檔案資料夾、歷史記錄資料夾、cookie 資料夾、歷史記錄資料夾、收藏資料夾和 Windows 臨時檔案資料夾。此外,Windows Vista 投入市場時,保護模式程序以低完整性級別執行,這樣可以防止其將特定的視窗訊息傳送到完整性更高的程序。通過阻止對使用者系統敏感區域進行未經授權的訪問,保護模式可限制由受損 IE 程序造成的損失程度。例如,攻擊者無法消無聲息地將擊鍵記錄安裝到使用者的“啟動”資料夾。同樣,受損的程序也無法通過視窗訊息操作桌面上的應用程式。
保護模式的關鍵是低完整性程序,而低完整性程序的關鍵在於強制完整性控制(英語:Mandatory Integrity Control)。在微軟 Windows 作業系統中從 Windows Vista 開始引入,並沿用到後續版本的核心安全功能。強制完整性控制通過對完整性級別標籤來為運行於同意登陸會話的程序提供隔離。此機制的目的是在一個潛在的不可信的上下文(與同一賬戶執行的其他較為可信的上下文相比)中選擇性地限制特定程序和軟體元件的訪問許可權。
0x03
另一方面,這些防禦措施也限制了對更高完整性位置的合法更改。對此,保護模式提供了可降低對現有擴充套件程式影響的相容體系結構。IE保護模式相容性體系結構“相容層”處理許多現有擴充套件程式的需求。(如圖所示)
相容層擷取對中等完整性資源(如使用者配置資料夾中的“文件”資料夾和 HKEY_CURRENT_USER 登錄檔配置單元)的寫入嘗試。相容層使用 Windows 相容性修補程式將這些操作自動重新定向到下列完整性位置。
Documents and Settings\%userprofile%\LocalSettings\TemporaryInternet Files\Virtualized
HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\InternetRegistry
兩個具有更高許可權的代理程式程序允許 Internet Explorer 和擴充套件程式執行經使用者許可的提權操作。例如,使用者許可權代理程式(IEUser.exe)程序提供以一組允許使用者將文件儲存到低完整性區域之外的區域之功能。另外,管理員許可權代理程式(IEInstal.exe)程序允許 Internet Explorer 安裝 ActiveX 控制元件。
0x04
在 Windows 8中,微軟又引進了新技術。預設的在 Windows 8.1 的 IEv11 中採納了該技術。它在原有個保護模式上更進一步,開啟後只有和那些和增強保護模式相容的瀏覽器外掛、擴充套件可以被載入。現在較為流行的 Windos 10 系統,也預設採用該技術對瀏覽器進行保護措施。
參考
http://www.iefans.net/yanjiu-raoguo-ie-baohumoshi
https://en.wikipedia.org/wiki/Mandatory_Integrity_Control
https://jingyan.baidu.com/article/5225f26b2ce876e6fb090868.html
https://support.microsoft.com/en-us/help/2864914/enhanced-protected-mode-add-on-compatibility