UIPI指 User Interface Privilege Isolation(用戶界面特權隔離),是Windows NT 6.0後(即Vista)引入的一種新的安全特性,主要用於攔截接受對自身進程MIC等級還低的進程發來的訊息。
基本介紹
- 中文名:用戶界面特權隔離
- 外文名:User Interface Privilege Isolation
- 簡稱:UIPI
- 等級:六個等級
基本原理,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等級上的進程無法接受一些常用的系統信息,如前面提到的檔案拖曳訊息。