用戶界面特權隔離

用戶界面特權隔離(User Interface Privilege Isolation,簡稱UIPI),是從Windows NT 6.0開始引入的技術。通過結合強制完整性控制,用戶界面特權隔離阻止較低等完整性級別(Integrity level)的進程向較高等完整性級別進程的視窗傳送訊息,但也有一些訊息不被阻止。

基本介紹

  • 中文名:用戶界面特權隔離
  • 外文名:User Interface Privilege Isolation
簡介,特點,強制完整性控制,

簡介

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

特點

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

強制完整性控制

強制完整性控制(英語:Mandatory Integrity Control)是一個在微軟Windows作業系統中從Windows Vista開始引入,並沿用到後續版本系統的核心安全功能。強制完整性控制通過完整性級別標籤來為運行於同一登錄會話的進程提供隔離。此機制的目的是在一個潛在不可信的上下文(與同一賬戶下運行的其他較為可信的上下文相比)中選擇性地限制特定進程和軟體組件的訪問許可權。
強制完整性控制在對象的安全描述符中使用了一個新的訪問控制項(ACE)類型來代表對象的完整性級別。在Windows中,訪問控制列表(ACL)被限制為授予訪問許可權(讀取、寫入、執行許可權)和特權給用戶和組。在安全引用監視器執行授權授予對象的訪問許可權前,會將訪問令牌中的完整性級別與安全描述符中的完整性級別比較。Windows 根據主體的完整性級別是高於還是低於所請求的對象,以及訪問控制項中的完整性策略標誌來決定是否授予訪問許可權。安全子系統以強制標籤的形式實現完整性級別,以便和訪問控制列表提供的自由訪問控制區別開來。
Windows Vista定義了四個完整性級別:(SID: S-1-16-4096)、(SID: S-1-16-8192)、(SID: S-1-16-12288)、系統(SID: S-1-16-16384)。默認情況下,普通用戶啟動的進程將獲得中完整性級別,而提升的進程則獲得高完整性級別。通過引入完整性級別,強制完整性控制可以分類隔離程式,使得沙箱化潛在危險程式(如進行網路通信的程式)成為可能。低完整性進程所擁有的訪問許可權少於那些擁有更高完整性級別的進程。
帶有訪問控制列表的對象(如命名對象,包括檔案註冊表項,甚至進程執行緒)有一個訪問控制項,定義著最低需要哪個完整性級別才能訪問此對象。Windows確保只有當進程的完整性級別等於或高於所請求的對象的完整性級別時,它才能寫入或刪除此對象。此外,擁有更高完整性級別的進程對象甚至不允許讀取訪問。
於是,一個進程就不能與另一個更高完整性級別的進程互動了。所以,進程不能通過CreateRemoteThread()API執行DLL注入到更高完整性級別的進程之類的功能,也不能使用WriteProcessMemory()函式傳送數據到另一個進程。

相關詞條

熱門詞條

聯絡我們