UIPI

UIPI,是Windows NT 6.0後引入的一種新的安全特性,是整個UAC機制的有機組成部分,用於攔截接受對自身進程MIC等級還低的進程發來的訊息。

簡介

UIPI指 User Interface Privilege Isolation(用戶界面特權隔離),是Windows NT 6.0後(即Vista)引入的一種新的安全特性,是整個UAC機制的有機組成部分,主要用於攔截接受對自身進程MIC等級還低的進程發來的訊息。更加詳細的信息可以參見百度文庫:

基本原理

根據Windows開發規範,用戶自定義訊息都是大於WM_USER的。UIPI的默認規則是:一個進程如果向高於自己MIC等級的進程傳送高於WM_USER的訊息都會失敗,而系統自定義訊息則會進行選擇性的過濾,某些容易引起危險的信息也會被過濾,比如WM_DROPFILES。

MIC分類

上面提到UIPI是基於進程的MIC等級的,而在Windows NT6.0以後的系統裡面,MIC一共可以分為六個等級:

SECURITY_MANDATORY_UNTRUSTED_RID 不信任的MIC等級
SECURITY_MANDATORY_LOW_RID 低MIC等級,如IE
SECURITY_MANDATORY_MEDIUM_RID 中MIC等級,如Explorer
SECURITY_MANDATORY_HIGH_RID 高MIC等級,以管理員身份運行的都是這個等級
SECURITY_MANDATORY_SYSTEM_RID 系統MIC等級,服務應用程式
SECURITY_MANDATORY_PROTECTED_PROCESS_RID 受保護進程的MIC等級
這裡可以看到IE是低MIC等級的,主要是為了在一定程度上解決IE的安全性問題----即使很多病毒通過IE下來,但是由於本身是通過IE系統,相應的MIC等級過低,可以防止他對其他進程造成不良影響。

兼容性問題

UIPI的引進可以比較有效的解決一些和視窗訊息相關的安全性問題,比如視窗粉碎攻擊,惡意視窗信息等,但也帶來了一定的兼容性問題:
1.以往通過視窗訊息進行進程通信的程式很容易碰到這樣那樣的問題。
2.運行在高MIC等級上的進程無法接受一些常用的系統信息,如前面提到的檔案拖曳訊息。

相關搜尋

熱門詞條

聯絡我們