Windows 系统安全机制深度解析
1. 安全概念类比
在理解安全机制时,我们可以借助一个现实生活中的类比。访问令牌就像是旅行者(主体)在不同边境用于证明自己身份的护照。而安全描述符则类似于访问国家移民官员所依据的移民法,它根据旅行者的原籍国来描述其权利和要求。护照中的所有信息,如原籍国或不同领事馆的印章,都可以映射到令牌的组成员身份和特权。执行访问检查的代码就如同移民官员,他们信任护照的颁发者(在这种情况下是操作系统),并确保(在现实生活中更难做到)护照没有被伪造。根据移民法(安全描述符),旅行者被允许或拒绝访问该国(访问对象)。
在现实生活中,没有一个国家没有移民政策,软件也是如此,每个对象都由一个安全描述符保护。在现实中,身份证件管理、移民法规和旅行签证管理都在严格控制的小范围内进行。为了在 Windows 操作系统中实现同样的信任级别,访问令牌管理仅由可信计算基(TCB)组件完成。在 TCB 中运行的每个组件都受到操作系统的信任,并且隐含地受到安全系统每个用户的信任。
2. 安全信息来源
为了在安全的广阔领域中安全导航,工程师需要了解从哪里查找安全信息以及找到信息时能期望得到什么。
2.1 访问令牌
- 存储位置与查找方法:Windows 操作系统为系统中的每个进程强制使用一个主访问令牌。这个令牌标识了创建托管该进程的登录会话的主体,并默认用于所有对象访问。主访问令牌的地址可以在对应于每个进程的 nt!EPROCESS 结构中找到。可以使用!token 扩展命令从用户模式和内核模式调试器中显示进程访问令牌。
- 用户