您的位置:首頁 > 菜鳥學(xué)院 > 深度解析Windows最新進(jìn)程隔離機制AppContainer

深度解析Windows最新進(jìn)程隔離機制AppContainer

來源:互聯(lián)網(wǎng) | 時間:2015-03-04 10:21:20 | 閱讀:84 |    | 分享到:

深度解析Windows最新進(jìn)程隔離機制AppContainer

圖5

看看CreateAppContainerProcessW的邏輯片段,把傳入的CapabilitySIDs和PackageSID加入到ProcThreadAttributes,然后通過STARTUPINFOEX結(jié)構(gòu)把ProcThreadAttributes傳給了CreateProcessW。

深度解析Windows最新進(jìn)程隔離機制AppContainer

圖6

深度解析Windows最新進(jìn)程隔離機制AppContainer

圖7

深度解析Windows最新進(jìn)程隔離機制AppContainer

圖8

搞清楚IE Tab進(jìn)程的創(chuàng)建邏輯,我們就可以創(chuàng)建自己的AppContainer進(jìn)程了。

直接復(fù)用IE的PackageSID和CapabilitySIDs來創(chuàng)建AppContainer進(jìn)程。如果需要定義自己的PackageSID,可以參考MSDN上的CreateAppContainerProfile等API,這里就不討論了。

成功的創(chuàng)建出了具有AppContainer隔離機制的記事本進(jìn)程。32位和64位進(jìn)程都可以?梢宰杂山M合Capability,這里我選擇了IE Tab6個Capability里的3個。

深度解析Windows最新進(jìn)程隔離機制AppContainer

圖9

深度解析Windows最新進(jìn)程隔離機制AppContainer

圖10

如果程序在設(shè)計時沒有考慮使用AppContainer隔離機制,依賴沒有授權(quán)給AppContainer的系統(tǒng)資源,比如系統(tǒng)根目錄,用戶根目錄等,使用AppContainer隔離機制啟動程序會失敗。

AppContainer的訪問權(quán)限控制

為描述方便,AppContainer進(jìn)程的AccessToken我們簡稱為LowBoxToken(下同)。

下面是一個LowBoxToken的部分信息,可以看到TokenFlags的掩碼位0×4000是置位的,這表示該Token是一個LowBoxToken。我們還可以看到PackageSid、Capabilities等信息(圖2里標(biāo)志為AppContainer和Capability的SID)。

深度解析Windows最新進(jìn)程隔離機制AppContainer

圖11

DACL

DACL的遍歷是在SepNormalAccessCheck/SepMaximumAccessCheck里進(jìn)行的。這里我們以SepNormalAccessCheck為例,來看一看如何處理AppContianer相關(guān)的ACE。    

一般來說,在遍歷DACL時,如果滿足以下3個條件中的任意一個,檢查停止。

1.有一個access-denied ACE明確拒絕了請求訪問權(quán)限中的任意一個;

2.有一個或者多個access-allowed ACEs明確給予了所有的請求訪問權(quán)限;

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點或證實其描述。

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)