您的位置:首页 > 菜鸟学院 > 深度解析Windows最新进程隔离机制AppContainer

深度解析Windows最新进程隔离机制AppContainer

来源:互联网 | 时间:2015-03-04 10:21:20 | 阅读:172 |    | 分享到:

深度解析Windows最新进程隔离机制AppContainer

图5

看看CreateAppContainerProcessW的逻辑片段,把传入的CapabilitySIDs和PackageSID加入到ProcThreadAttributes,然后通过STARTUPINFOEX结构把ProcThreadAttributes传给了CreateProcessW。

深度解析Windows最新进程隔离机制AppContainer

图6

深度解析Windows最新进程隔离机制AppContainer

图7

深度解析Windows最新进程隔离机制AppContainer

图8

搞清楚IE Tab进程的创建逻辑,我们就可以创建自己的AppContainer进程了。

直接复用IE的PackageSID和CapabilitySIDs来创建AppContainer进程。如果需要定义自己的PackageSID,可以参考MSDN上的CreateAppContainerProfile等API,这里就不讨论了。

成功的创建出了具有AppContainer隔离机制的记事本进程。32位和64位进程都可以。可以自由组合Capability,这里我选择了IE Tab6个Capability里的3个。

深度解析Windows最新进程隔离机制AppContainer

图9

深度解析Windows最新进程隔离机制AppContainer

图10

如果程序在设计时没有考虑使用AppContainer隔离机制,依赖没有授权给AppContainer的系统资源,比如系统根目录,用户根目录等,使用AppContainer隔离机制启动程序会失败。

AppContainer的访问权限控制

为描述方便,AppContainer进程的AccessToken我们简称为LowBoxToken(下同)。

下面是一个LowBoxToken的部分信息,可以看到TokenFlags的掩码位0×4000是置位的,这表示该Token是一个LowBoxToken。我们还可以看到PackageSid、Capabilities等信息(图2里标志为AppContainer和Capability的SID)。

深度解析Windows最新进程隔离机制AppContainer

图11

DACL

DACL的遍历是在SepNormalAccessCheck/SepMaximumAccessCheck里进行的。这里我们以SepNormalAccessCheck为例,来看一看如何处理AppContianer相关的ACE。    

一般来说,在遍历DACL时,如果满足以下3个条件中的任意一个,检查停止。

1.有一个access-denied ACE明确拒绝了请求访问权限中的任意一个;

2.有一个或者多个access-allowed ACEs明确给予了所有的请求访问权限;

好特网发布此文仅为传递信息,不代表好特网认同期限观点或证实其描述。

相关视频攻略

更多

扫二维码进入好特网手机版本!

扫二维码进入好特网微信公众号!

本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件[email protected]

湘ICP备2022002427号-10 湘公网安备:43070202000427号© 2013~2024 haote.com 好特网