科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道Windows Vista IE保护模式深度剖析(图)(1)

Windows Vista IE保护模式深度剖析(图)(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

遇到这个案例也有一点运气的成分:不知为什么,在笔者的计算机上,无法在IE浏览器里正常打开“紫光拼音输入法”,非常麻烦。

作者:安全中国 2007年10月29日

关键字: Windows 系统安全 vista安全 Vista

  • 评论
  • 分享微博
  • 分享邮件

  技术难度 Level300

  内容简介 深度剖析了IE保护模式为什么能够帮助Windows Vista 达到前所未有的安全级别(甚至大大超过UAC能够达到的保护程度),同时还介绍了IE保护模式是如何利用文件虚拟重定向帮助老的IE加载项解决兼容性问题,真正完美实现既安全、又方便、且兼容的目的。最后还将介绍如何利用建立NTFS软链接的方法巧妙解决IE保护模式的Bug,让不兼容的IE插件可以顺利地在IE 7中顺利运行。

  

  如今这世上,可谓真假莫辨,真的可以变成假的,假的也可以宣称自己是真的。这不,这几天笔者就遇到了一个非常怪异的问题,差点被IE保护模式功能的虚拟重定向功能给搞糊涂了。不过总算藉此机会好好了解一下IE保护模式,对于Windows Vista的这个新增安全功能又平添了几分信心。

  原理简述

  IE保护模式(Protected Mode),以前也叫做IE低权利(Low Rights)。在拙作《您必须知道的IE 7安全特性》里,已经就IE保护模式的基本原理做了简单的论述。这里需要强调一下的是,IE保护模式可能是Windows Vista里最严厉的安全措施,比我们熟知的UAC(用户帐户控制)还要严厉。事实上,IE保护模式依赖于Windows Vista的以下三大特性:

  (1) UAC(用户帐户控制)

  相信大家已经很熟悉了,可以让管理员帐户自动获得一个标准用户的访问令牌,以提升系统安全性。

  (2) MIC(强制完整性控制)

  这是Windows Vista安全架构中新增加的一种检测机制。大家知道,Windows 2000/XP安全体系里,系统把进程的访问令牌和资源的访问控制列表进行匹配比较,以确认该进程是否具有访问该资源的权限。而在Windows Vista下,除了遵守传统的安全控制机制外,还必须检查进程和资源对象的完整性级别,完整性级别低的进程,不能写入完整性级别高的资源对象。

  有点晕,是不是?没事,下文就会对这个概念进行详细的实例阐述!

  (3) UIPI(用户界面特权隔离)

  完整性级别低的进程,不能向完整性级别高的进程发送Window消息。

  怪异的权限问题

  提示假设Windows Vista安装在D盘,当前的登录帐户为管理员,帐户名是Admin。红色的命令提示符窗口表示命令行工具只能在管理员权限下运行,蓝色的命令提示符窗口表示可以在UAC权限下运行。

  遇到这个案例也有一点运气的成分:不知为什么,在笔者的计算机上,无法在IE浏览器里正常打开“紫光拼音输入法”,非常麻烦。但是在其他朋友的机器上,并没有重复这个问题,甚至在虚拟机里也不存在这个问题!

  这个问题困扰了我很长一段时间,甚至迫使我不得不改用其他输入法工具,这使得资质鲁钝、不懂得“灵活变通”的我感到非常郁闷……在IE页面里按Ctrl+Space组合键,尝试呼出“紫光拼音”的输入状态条,结果失败,在这个过程中,如果用Filemon工具进行监测,结果会看到当IE浏览器尝试往D:\Users\Admin\AppData\Roaming\Unispim目录里写入文件(例如usrwl.dat)时,会出现Access Denied错误,如下图所示。看来这就是问题的根源了,很显然紫光拼音把它的重要配置文件都存在[用户配置文件夹]里,只有具备读写权限,紫光拼音才能正常工作。

  

  

  完整性级别的深远影响

  看起来,只不过是IE进程没有D:\Users\Admin\AppData\Roaming\Unispim目录的写入权限。这还不简单,修改一下权限不就行了?

  然而如果用AccessChk命令检查NTFS权限,发现当前帐户Admin对D:\Users\Admin\AppData\Roaming\Unispim目录拥有读写权限,如下图所示。

  

  

  这就奇怪了,明明Admin帐户有权写入该目录,为什么系统要说“不”呢?这里就要应用到前面所说的MIC机制。原来在Windows Vista底下,系统不光是查看资源对象的ACL,还要查看进程和资源对象各自的完整性级别(Integrity Level),就算进程满足资源对象的ACL要求,如果进程的完整性级别更低,那么该进程还是无法拥有资源对象的写入权限。这就好比男女双方求爱,除了看对方的经济收入等条件(相当于ACL),还要看是否门当户对(相当于完整性级别)J。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章