使用者介面特權隔離

使用者介面特權隔離(User Interface Privilege Isolation,簡稱UIPI),是從Windows NT 6.0開始引入的技術。其目的在於防止粉碎視窗攻擊英語Shatter attack。通過結合強制完整性控制,使用者介面特權隔離阻止較低等完整性級別(Integrity level)的處理程序向較高等完整性級別處理程序的視窗傳送訊息,但也有一些訊息不被阻止。[1] Windows訊息是一種行程間通訊機制,可被低等完整性級別的惡意軟體利用,在較高等完整性級別的處理程序上下文裡執行任意程式碼,可能允許特權提升。

使用者介面特權隔離和強制完整性控制都不是安全邊界,它並不能完全抵擋粉碎視窗攻擊。使用者介面輔助功能程式可以通過在它們的應用程式清單(manifest)檔案中將「uiAccess」設為TRUE來繞過使用者介面特權隔離。這些程式必須位於Program Files或Windows資料夾中,且必須擁有有效的數位簽章。此外,一些訊息仍然被允許,例如WM_KEYDOWN,以便低完整性級別的程式傳送輸入到提升後的命令提示字元。最後,函式ChangeWindowMessageFilter允許中完整性級別的處理程序改變高完整性級別的處理程序能從低完整性級別的處理程序接收什麼訊息。

注釋和參考