Loading...
  所在位置:论坛首页 -> ┈┋电脑网络技术区┋┈ -> 莱鸟的电脑问题 -> Windows Vista有趣标签SID
标题:Windows Vista有趣标签SID收藏 编辑 删除 楼主 | 上一篇 下一篇
love我
等级:社区游民
权限:版主
积分:20
金钱:3910
声望:30
经验:30
发帖数:853
注册:2007年12月15日
资料 短消息2008-6-21 11:31:41
 Label SID,将其翻译为标签SID,诸君别嫌土啊。这个东东是Windows Vista新引入的一个安全主体。我们知道在Windows Vista,进程和资源对象都划分等级的(完整性级别)。等级低的进程不够资格写入等级高的资源对象,哪怕访问控制列表(ACL)允许也不行。

  在Windows Vista中,安全机制有了很大的改进,不仅仅看ACL。这就好比男女双方求爱,除了看对方的经济收入等条件(相当于ACL),还要看是否门当户对(相当于完整性级别)。

  想必您已经知道如何查看和设置资源对象的完整性级别(可以用icacls或者accessChk命令)。

  那么进程呢?相信您已经知道,就是所谓的标签SID。

  标签SID的实质

  标签SID位于进程的访问令牌里,用来标识进程的完整性级别。进程要访问资源对象(例如某个文件夹)时,就亮出它的访问令牌。文件夹就会检查令牌里的标签SID,看看级别是否足够。如果级别比自己还低,对不起,您只能读取,不能写入。

  可以用Process Explorer查看进程的访问令牌,从而查看某个进程的标签SID。附图就是一个进程的访问令牌。其中红色部分显示其标签SID是“Mandatory Label\Medium Mandatory Level”,表明该进程的完整性级别为“中级”。蓝色部分显示该进程并不拥有管理员的运行身份(Administrators标记为Deny),同时只有五个特权。

  

  完全可以想像,如果进程的完整性级别是高级(标签SID为Mandatory Label\High Mandatory Level),该进程应该拥有管理员的运行身份(Administrators标记为Owner),同时拥有约24个特权。

2008-6-21 11:31:41 顶部
love我
等级:社区游民
权限:版主
积分:20
金钱:3910
声望:30
经验:30
发帖数:853
注册:2007年12月15日
  资料   短消息编辑 删除 引用 第2楼
和Linux的对比

  利用完整性级别这样的安全机制,Windows Vista就可以获得更高的安全。这样的机制类似于开源的MAC机制,例如Red Hat的SELinux。两者总体上各有千秋,但是窃以为比SELinux更加灵活,对用户的干扰也要小的多。在MAC下,用户有时候必须自己定义进程和资源的“类型”,否则进程工作可能会不正常。

  标签SID的其他作用

  标签SID除了可以判断进程的访问权限外。还可以用来帮助决策UAC是否弹出权限提升对话框。

  默认情况下,如果某个进程需要管理员特权,则系统会查看其父进程的标签SID,如果是“中级”,则会弹出权限提升对话框。如果是“高级”,则不会弹出对话框。

  由于绝大多数用户进程的父进程是Explorer,其标签SID为“中级”,所以会弹出权限提升对话框。

  以管理员身份打开“命令提示符”窗口,然后再在其下运行需要管理员特权的进程,这时候不会弹出权限提升对话框。因为父进程cmd.exe的标签SID是“高级”。

  有趣的特例

  我们可以做一个实验,来欺骗Windows Vista的安全机制。在Process Explorer里单击File→Run as Limited User,然后在打开的对话框里输入“CMD”并回车,如附图所示。

  

  这时候会弹出一个很“另类”的命令提示符窗口。该命令提示符进程的标签SID是“高级”,但是实际上却是标准用户权限。不信?且看其访问令牌:

  

2008-6-21 11:31:54 顶部
love我
等级:社区游民
权限:版主
积分:20
金钱:3910
声望:30
经验:30
发帖数:853
注册:2007年12月15日
  资料   短消息编辑 删除 引用 第3楼
在红色部分我们可以看到,其标签SID是“Mandatory Label\High Mandatory Level”(完整性级别为“高级”),但是却并不拥有管理员的运行身份(Administrators标记为Deny),同时只有五个特权(查看蓝色部分)。

在这个“另类”的命令提示符下运行某个需要管理员特权的任务,例如“服务”管理单元,会发生什么情况?

  系统根本不会弹出提升权限对话框,直接启动“服务”管理单元。这是因为UAC系统会根据父进程的标签SID来判定是否需要弹出权限提升对话框。

  但是打开的这个“服务”管理单元也一样“另类”,Windows显然已经认为这是一个管理员进程(因为其标签SID为高级),但是实际上只有标准用户权限,我们什么操作几乎都不能做。

  安全影响

  Windows Vista的UAC只根据父进程的标签SID来判断是否应该提升权限,看上去似乎有点弱智。但是实际上由于这种操作的可能性很低,所以影响很小。

  还有一个需要有趣的地方是,这种“另类”的进程虽然只有标准用户权限,但是完整性级别却是“高级”,所以这些进程可以通过代码注入等手段获取管理员权限,这和Windows 2000/XP的情况是一致的。

  不过攻击者想要利用这种方法绕开UAC的限制,几乎是不可能的,因为构建这样的访问令牌,本身需要管理员特权。所以用户大可不必担心。

2008-6-21 11:32:13 顶部
第1页 共1页 共2个回复     <<    >>    
 快速回复
  • 支持UBB,HTML标签

  • 高级回复

  • 操作选项:评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
      首页 | 购买指南 | 商业版本 | 虚拟主机 | 特色介绍 | 下载中心 | 支付方式
    Copyright 2004-2008 BBSGood.com Powered By: BBSGood.Speed Version 5.0
      咨询电话:0575-85513832、0575-85513825(传真)、7*24小时咨询服务:13606552007 不良信息举报中心 浙ICP备05029817号
      业务QQ:38958768、客服QQ1:415896239、客服QQ2:343896043、MSN:jccsxx@hotmail.com