欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

IE浏览器的最佳安全保护

IE浏览器是一个颇具争议的组件,不少用户一想到IE,恐怕脑子里就会浮现起曾经遭遇过的惨状:主页被恶意修改,IE动辄无缘无故关闭,注册表被改得乱七八糟,莫名其妙跳出网页……

也难怪, IE是连接Internet的门户,难免会受病毒蠕虫等的“骚扰”。想让IE练就 “金刚不坏”之体,那就得首先分析一下恶意网页为什么可以为所欲为:大多数用户都是用管理员身份登录系统,IE默认获得管理员的访问令牌,这样网页中的恶意代码就会以最高的特权对系统进行篡改。只有让IE运行在更低的特权级别,才能防止恶意网页破坏系统。

怎样才能让IE以更低的特权运行?Windows Vista可以满足要求,其UAC功能可以让所有用户进程运行在Standard User的特权级别,但是Vista还“犹抱琵琶半遮面”,其实我们的XP一样可以达到类似的目的!

提示 为了讲述的方便,这里假设以管理员帐户Admin登录系统。

一、“运行方式”给IE穿上铁布衫

右键单击IE的快捷方式,选择“运行方式”命令,在打开对话框上,确保勾选“保护我的计算机和数据不受未授权程序的活动影响”复选框,如下图所示。

 

用这种方法启动IE,对几个“臭名卓著”的恶意网站进行测试,结果非常安全。同时还能用来对付DuDu加速器、3721等流氓插件!

为什么?原来这时的IE浏览器会获得一个受限的访问令牌(Restricted Token),无法对系统目录和注册表进行写操作,网页中的恶意代码也就没办法破坏系统。

当然,还得让实验来说话:

分别在“运行方式”和正常模式下打开IE浏览器,然后用Process Explorer双击打开这两个IE进程的属性对话框,切换到“Security”标签页,即可查看这两个进程所获得的访问令牌,如下图所示。

很显然,相对于正常模式,“运行方式”打开IE进程所获得的受限令牌,其内容发生了以下两大变化:

u       用户和组的SID

1AdministratorsPower Users组帐户的SID被标记为拒绝(Deny)。

如果某个资源拒绝AdministratorsPower Users访问,则进程无法访问该资源;而且进程会忽略除Deny之外的其他访问权限。

2)除了AdminAdministratorsPower Users组帐户外,其他帐户的SID都加入受限(Restricted)列表:当进程访问资源时,必须经过两次安全检查:一次是检查令牌中启用的SID,另一次是检查受限列表里的SID,只有两次检查都通过,才能访问成功。

u       特权(Privilege

仅保留SeChangeNotificatonPrivilege(跳过遍历检查)特权。

难怪这时的IE特别安全,尽管是以管理员帐户Admin登录系统,但是IE进程不能访问用户的配置文件夹(%USERPROFILE%),连收藏夹、我的文档都不能访问!

IE也不能在分区根目录写入文件,对注册表没有写的权限。同时只有SeChangeNotificatonPrivilege(跳过遍历检查)特权,可以防止病毒滥用特权做坏事。

提示 配置文件夹ACL包括AdminAdministratorsSYSTEM,由于Administrators被标记为Deny,而Admin帐户没有对应的Restricted SID(在第二次安全检查时失败),所以无法访问。

二、“基本用户”类型帮助IE强身健体

用“运行方式”运行IE浏览器,虽然非常安全,但是有以下两个缺陷:

u       限制太严格,例如IE浏览器无法加载收藏夹。

u       每次运行IE浏览器,还需要增加额外的步骤,很不方便。

本文将介绍如何给XP系统启用一个“基本用户”(Basic User)类型,这个“基本用户”(Basic User)类似于Windows Vista的“标准用户”(Standard User),只是默认没有启用。

1.启用基本用户类型

1)打开注册表编辑器,定位到以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers

2)新建一个名为LevelsDOWRD键值,其数据数值为0x20000

2Runas命令

打开命令提示符窗口,运行以下命令:

Runas /ShowTrustLevels

即可看到系统当前的信任级别,如附图所示,其中有一个“基本用户”,对应新增加的注册表键值(Levels:0x20000)。

 

运行以下命令,即可以“基本用户”的身份启动IE浏览器:

runas /trustlevel:基本用户 "C:\Program Files\Internet Explorer\IEXPLORE.EXE"

可以新建一个快捷方式,在项目位置里输入以上的命令,这样每次双击该快捷方式,就能够以“基本用户”的身份启动IE浏览器。

3.软件限制策略

打开“本地安全策略”管理单元(如果第一次设置软件限制策略,请右键单击“软件限制策略”,选择“创建新的策略”菜单项),展开软件限制策略→安全级别,在右侧的详细窗格里可以看到“基本用户”,如附图所示,这和“Runas /ShowTrustLevels”命令看到的信任级别是一致的。

 

可以新建一个路径规则,如附图所示,指定安全级别为“基本用户”,这样每次运行IE浏览器,都可以运行在更安全的级别。

 

         每次新建的一条“基本用户”的软件限制策略,都会在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072注册表项下新增一个子项。如果是路径策略,则会新增一个Path子项;如果是散列策略,这会新增一个Hash子项。注册表项里的131072是什么?实际上就是前面增加的那个Levels:0x20000,0x20000正好就是131072。

4.查看基本用户的访问令牌

Process Explorer查看此时的IE浏览器属性,发现其访问令牌和Windows Vista的“标准用户”功能所获得访问令牌相似,如附图所示。

 

Windows Vista的标准用户、Windows XP的基本用户、和运行方式之间的区别如下:

(1)Vista的“标准用户”比XP的“基本用户”多出了几个特权(Privilege),只是默认禁用。

(2)XP的“基本用户”所获得的访问令牌相对于“运行方式”(Restricted Token)来说,限制相对少一些,只是将AdministratorsPower Users组标志为Deny,而并没有将其他帐户放入Restricted SID列表,这样IE进程可以访问配置文件夹等其他资源(包括收藏夹和我的文档),可以读写HKEY_CURRENT_USER下的绝大多数注册表键值,但是仍然不能写HKEY_LOCAL_MACHINE下的注册表键值。

三、DropMyRights命令工具

这里推荐Michael Howard所写的命令行工具DropMyRights

DropMyRights的使用语法如下:

DropMyRights {path} [N|C|U]

这里的path是指应用程序的路径,N指代基本用户(Basic User)C指代受限用户(Restricted User)U是指不信任用户。

如果要以基本用户身份运行IE浏览器,可以创建一个快捷方式,将项目位置设置为:

DropMyRights "C:\Program Files\Internet Explorer\IEXPLORE.exe" N

这样就可以在需要时双击该快捷方式,以更加的安全环境下运行IE浏览器。

四、其他重要工具

      1.钓鱼网站过滤器
      
    在IE 7正式发布之前,我们可以通过MSN搜索工具栏和Phishing Filter Addin for MSN Search Toolbar组合工具,来有效地抵御钓鱼网站的欺骗。
      MSN搜索工具栏
      http://toolbar.china.msn.com/
      钓鱼网站过滤器
      http://addins.msn.com/phishingfilter/

     2.Windows Defender  

    用以上方法可以有效地抵御恶意程序透过IE浏览器入侵,但是如果恶意程序通过其他方法入侵,例如捆绑到共享软件里,那么以上方法就没有效果了,这里我们可以借助微软免费提供的反间谍软件Windows Defender,对Windows系统进行实时安全防护。
    http://www.microsoft.com/athome/security/spyware/software/default.mspx  


五、注意

如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。

 

提示

1.本文部分内容参考自Michael Howard的文章《Browsing the Web and Reading E-mail Safely as an Administrator》(两篇),原文链接如下:

http://msdn.microsoft.com/security/securecode/columns/default.aspx?pull=/library/en-us/dncode/html/secure11152004.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure01182005.asp

2.本文提到的Process Explorer,可以到以下网站下载:

http://www.sysinternals.com/Utilities/ProcessExplorer.html

本文提到的DropMyRights,可以到以下网站下载:

http://download.microsoft.com/download/f/2/e/f2e49491-efde-4bca-9057-adc89c476ed4/DropMyRights.msi

3Windows Vista的核心安全功能UAP,目前已经正式改名为UACUser Account Control)。

已发表 2006年1月13日 9:03 作者 ahpeng

评论

2006年1月13日 12:11 by Heelen

# re: IE浏览器,我要你安全、再安全些

如果IE被安装了太多插件(包括Spyware或Malware),要想启动一个无插件状态的IE,可以直接运行“"C:\Program Files\Internet Explorer\iexplore.exe" –extoff”(只适用于Vista下)。
2006年1月14日 12:04 by ahpeng

# re: IE浏览器,我要你安全、再安全些

如果XP下的IE要实现NoAddon的功能,应该用什么办法呢?
2006年1月14日 17:50 by Heelen

# re: IE浏览器,我要你安全、再安全些

XP中的IE没有该参数,所以估计只能打开IE(此时已经加载所有插件),然后在IE的“工具”——“管理加载项”中一一禁用这些插件。
2006年1月15日 17:33 by junxiulee

# re: IE浏览器,我要你安全、再安全些

IE7有一种启动方式叫做“Start without Add-ons”
2006年1月16日 9:53 by ahpeng

# re: IE浏览器,我要你安全、再安全些

IE 7.0也有这个功能,太棒了,期待啊~~
IE的很多常见问题就是由于第三方插件的冲突和干扰所导致的。
2006年1月18日 10:30 by chta1919

# re: IE浏览器,我想你安全、再安全些

vista的安全模式里面我记得好象也有IE的安全模式,就是"Start without Add-ons"
2006年1月18日 11:06 by ahpeng

# re: IE浏览器,我想你安全、再安全些--Updated

如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。
2006年1月18日 12:03 by Heelen

# re: IE浏览器,我想你安全、再安全些--Updated

是的,在HelpOnline论坛上有很多关于IE种种故障的案例,我都是先建议禁止所有插件来看看是否为插件所导致的(事实证明很多情况下都是),如果不是再重装IE(也很方便,一个命令即可)。不过IE 7以前的版本没有一个很方便禁止所有插件的方法,而IE 7提供的这一模式基本等同与诊断模式。
2006年1月19日 8:02 by chta1919

# re: IE浏览器,我想你安全、再安全些--Updated

我也遇到过很多的这样的问题,基本上都是先卸载掉IE的插件就能解决,甚至都不需要重新安装IE.
2006年2月22日 2:16 by ahpeng

# re: IE浏览器,我想你安全、再安全些--Updated

嗯,遇到IE 6.0 SP2相关问题,可以采用以下常规排错方法:
1.在IE浏览器窗口上单击工具、Internet选项。
在打开的对话框的“常规”里单击删除文件,并勾选“删除所有脱机文件”,然后单击确定。
单击删除Cookies,然后单击确定。
单击清除历史,然后单击确定。
2.在Internet选项的“高级”标签页,确保清空“启用第三方浏览器扩展”复选框。
3.在Internet选项对话框上切换到“程序”标签页,然后单击管理加载项。
在打开的对话框上,单击“发行者”,然后禁用所有发行者不是“Microsoft Corporation”的加载项。
单击确定,保存设置。
2006年3月4日 13:23 by Sucirst

# re: IE浏览器,我想你安全、再安全些--Updated

盆盆,我不太擅长组策略的设置,我有一个疑问,就是你这种限制之后其他的IE核心的浏览器的权限是否也会降下来呢? 还有这个组策略是否仅针对由explorer进程下创建的IE进程有限制作用呢?

当其他和explorer差不多同级的进程创建了浏览器进程,后者是否会继承前者的权限呢?
2006年3月22日 10:17 by ahpeng

# re: IE浏览器,我想你安全、再安全些--Updated

To Sucirst:
1. 并不会影响其他浏览器程序,包括以IE为核心的浏览器“外挂”。
因为这些策略是基于进程的命令行而生效的。
2. 这个策略并不局限于父进程为explorer的进程。
3. 不是很明白“和explorer差不多同级的进程创建了浏览器进程”的确切含义,一般来说,子进程默认继承父进程的权限。
2006年4月27日 12:04 by Tim

# re: IE浏览器的最佳安全保护

我在您的课上的问题:
我的IE现在打开任何面页的时候,有可能就会弹出一些别的网站,我想肯定已经中了病毒代码,请问我需要怎么把这些代码查出来?
2006年4月27日 12:19 by xieyi_024

# re: IE浏览器的最佳安全保护

我把注册表 HKEK_LOCAL_MACHION\SOFTWARE\POLICIES\MICROSOFT\WINDOWS\SAFER\CODELDENTIFIERS下的DEFAULLEVE 的DWORD键值从40000改成20000 现在注册表无法写操作,估计只有读操作怎么解决??
2006年4月27日 12:26 by xieyi_024

# re: IE浏览器的最佳安全保护

关于用对IEEXPLORE的运行方式,点复选框启用IE禁止非授权的办法限制IE,您WECAST所说IE使不能访问COOKIE和临时文件夹的?可是我的可以访问这是什么原因导致的呢?
与诺顿网络特警2005有关系吗(我的机子装的杀毒软件)?
如果不是,能不能具体指下实验的方法,和问题出现的地方。
如果是又具体使哪方面的原因呢?
2006年4月27日 15:03 by ahpeng

# re: IE浏览器的最佳安全保护

To Tim朋友:
对于您的问题,我们需要了解更多的信息,你可以到以下的BBS去提问:
提问时,需要注明你的Windows版本,SP版本,你的错误现象,最好有截图。
http://bbs.mscommunity.com/forums/ShowThread.aspx?PostID=31078
2006年4月27日 15:11 by ahpeng

# re: IE浏览器的最佳安全保护

To 123朋友:
对于您的两个问题,回答如下:
1. 误把DEFAUTLEVEL键值从40000改20000,如何解决?
修改注册表时一定要注意不要出错,如果错误修改DEFAUTLEVEL,等于是把默认安全级别修改为20000,这样每个用户(和进程)都运行在“基本用户”下,无法修改注册表!
推荐你先重新开机,按F8进入安全模式试试看,我记得安全模式下应该不会加载软件限制策略。

2. 运行方式,打开IE浏览器,可以访问临时目录,这是怎么回事?
其实是不可以的,请按照以下步骤进行操作:
首先右键单击IE的快捷方式,选择“运行方式”、确保勾选“保护我的计算机和数据…”复选框。
在打开的IE窗口,单击文件、打开,在打开的对话框里单击浏览按钮,尝试定位cookies或者临时目录,应该收到拒绝的错误消息。
如果你的情况是可以的话,烦请把图片发到以下BBS:
http://bbs.mscommunity.com/forums/ShowThread.aspx?PostID=31078">http://bbs.mscommunity.com/forums/ShowThread.aspx?PostID=31078

以上问题,有任何疑问,都请您继续在以下BBS跟帖:
http://bbs.mscommunity.com/forums/ShowThread.aspx?PostID=31078">http://bbs.mscommunity.com/forums/ShowThread.aspx?PostID=31078
2006年4月27日 15:12 by ahpeng

# re: IE浏览器的最佳安全保护

非常感谢诸位朋友的热心回帖,由于帖子这种形式,不方便大家就技术问题展开排错,所以请webcast的听众朋友直接到以下BBS去提问,非常感谢大家的支持!
http://bbs.mscommunity.com/forums/ShowThread.aspx?PostID=31078
2006年7月21日 8:12 by Windows Vista专题文章

# Windows Vista的UAC功能浅析(二)

注释:我把几篇访问量相对较高的几篇文章从我的个人版面转移到这里,这是其中的一篇,同时补上已经失效的部分图片。为了不影响大家阅读,这里并未将其放到blog.itecn.net首页上,而是放到vista.itecn.net的版面上。命令行程序的权限提升...

# Windows Vista的UAC功能浅析(二)

注释:我把几篇访问量相对较高的几篇文章从我的个人版面转移到这里,这是其中的一篇,同时补上已经失效的部分图片。为了不影响大家阅读,这里并未将其放到blog.itecn.net首页上,而是放到vista.itecn.net的版面上。命令行程序的权限提升...
2006年10月23日 20:28 by lwfwind

# IE浏览器的最佳安全保护

IE浏览器是一个颇具争议的组件,不少用户一想到IE,恐怕脑子里就会浮现起曾经遭遇过的惨状:主页被恶意修改,IE动辄无缘无故关闭,注册表被改得乱七八糟,莫名其妙跳出网页……
2007年2月25日 23:58 by 盆盆的博客

# 用户帐户控制、PsExec和安全边界

文章原著 Mark Russinovich 翻译作者 盆盆 [ITECN博客站长] http://blogs.itecn.net/blogs/ahpeng 盆盆导读 本文由Mark Russinovich(微软院士)所著,由盆盆所翻译,为了加深大家对本文的印象,盆盆还加注了自己对本文的理解和注释。Mark

该帖子已禁止评论