|
IE浏览器,我想你安全、再安全些--Updated
, h6 |0 w4 K. kIE浏览器是一个颇具争议的组件,不少用户一想到IE,恐怕脑子里就会浮现起曾经遭遇过的惨状:主页被恶意修改,IE动辄无缘无故关闭,注册表被改得乱七八糟,莫名其妙跳出网页……
8 F$ j$ T3 x' D: f" \也难怪, IE是连接Internet的门户,难免会受病毒蠕虫等的“骚扰”。想让IE练就 “金刚不坏”之体,那就得首先分析一下恶意网页为什么可以为所欲为:大多数用户都是用管理员身份登录系统,IE默认获得管理员的访问令牌,这样网页中的恶意代码就会以最高的特权对系统进行篡改。只有让IE运行在更低的特权级别,才能防止恶意网页破坏系统。
! X! H3 [( W3 Q. H( n4 S' c1 }! W怎样才能让IE以更低的特权运行?Windows Vista可以满足要求,其UAC功能可以让所有用户进程运行在Standard User的特权级别,但是Vista还“犹抱琵琶半遮面”,其实我们的XP一样可以达到类似的目的!
2 l7 I) ]$ a& Y5 w- j* D) S' f提示 为了讲述的方便,这里假设以管理员帐户Admin登录系统。" @4 A& Q% \2 ^! J% ~
一、“运行方式”给IE穿上铁布衫
2 y3 d8 w$ F* h* k" q. m7 P% ~右键单击IE的快捷方式,选择“运行方式”命令,在打开对话框上,确保勾选“保护我的计算机和数据不受未授权程序的活动影响”复选框,如下图所示。% X! |) S) z2 G& ?
3 ^3 w$ p K2 z6 `/ a; f6 e
! `% C& Q, G9 ~6 W+ j
& y4 k2 i: _, ~% t2 x5 ?. N
用这种方法启动IE,对几个“臭名卓著”的恶意网站进行测试,结果非常安全。同时还能用来对付DuDu加速器、3721等流氓插件!
/ T. ^' Y2 g/ S; e4 h$ h为什么?原来这时的IE浏览器会获得一个受限的访问令牌(Restricted Token),无法对系统目录和注册表进行写操作,网页中的恶意代码也就没办法破坏系统。
, k, I/ m1 i2 C2 X; M, [; ^当然,还得让实验来说话:
: A" R1 o2 T: W! x8 L分别在“运行方式”和正常模式下打开IE浏览器,然后用Process Explorer双击打开这两个IE进程的属性对话框,切换到“Security”标签页,即可查看这两个进程所获得的访问令牌,如下图所示。 v5 M" X" J* p. P' [* `/ _/ t+ s
3 T9 D% T+ l2 B* W* G
6 q' a/ J4 P0 y, t. y6 Y% b很显然,相对于正常模式,“运行方式”打开IE进程所获得的受限令牌,其内容发生了以下两大变化:
6 ]* `% b1 x! mu 用户和组的SID
( b4 }5 n5 s4 X$ X(1)Administrators或Power Users组帐户的SID被标记为拒绝(Deny)。9 z M) P7 i' |& ?( P; }; S
如果某个资源拒绝Administrators或Power Users访问,则进程无法访问该资源;而且进程会忽略除Deny之外的其他访问权限。
" o7 c, r5 x( C3 g(2)除了Admin、Administrators和Power Users组帐户外,其他帐户的SID都加入受限(Restricted)列表:当进程访问资源时,必须经过两次安全检查:一次是检查令牌中启用的SID,另一次是检查受限列表里的SID,只有两次检查都通过,才能访问成功。. S6 S( N: T8 i, o. i$ C2 Z
u 特权(Privilege)
: E. @1 B# s( @, }" K& R; S仅保留SeChangeNotificatonPrivilege(跳过遍历检查)特权。
( _: R* o# r J! P7 s' S# @难怪这时的IE特别安全,尽管是以管理员帐户Admin登录系统,但是IE进程不能访问用户的配置文件夹(%USERPROFILE%),连收藏夹、我的文档都不能访问!
% P- c7 t7 @# w; NIE也不能在分区根目录写入文件,对注册表没有写的权限。同时只有SeChangeNotificatonPrivilege(跳过遍历检查)特权,可以防止病毒滥用特权做坏事。1 h6 b7 o) x* C' a
提示 配置文件夹ACL包括Admin和Administrators和SYSTEM,由于Administrators被标记为Deny,而Admin帐户没有对应的Restricted SID(在第二次安全检查时失败),所以无法访问。- `% g( U' F' c& E8 N# [+ a
二、“基本用户”类型帮助IE强身健体
; m) v$ [; K5 z3 Z0 ]# n& E用“运行方式”运行IE浏览器,虽然非常安全,但是有以下两个缺陷:2 m( X4 `) d1 o* j5 M: h
u 限制太严格,例如IE浏览器无法加载收藏夹。2 ~! v" x+ J3 O" s+ D
u 每次运行IE浏览器,还需要增加额外的步骤,很不方便。
; h! F: o; A2 q- a本文将介绍如何给XP系统启用一个“基本用户”(Basic User)类型,这个“基本用户”(Basic User)类似于Windows Vista的“标准用户”(Standard User),只是默认没有启用。- S4 u- V5 _3 \" Q3 S- E, G
1.启用基本用户类型* o' g4 } ?4 x$ @' L9 P' y0 b
(1)打开注册表编辑器,定位到以下注册表项:! f( b' r1 N* A7 a
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers$ T: U3 M. p; I/ t/ _, L3 B6 Z
(2)新建一个名为Levels的DOWRD键值,其数据数值为0x20000。
4 g+ F- E0 ], i' ?1 h+ |' P$ z2.Runas命令
$ p7 @0 ~0 |/ j1 G2 F打开命令提示符窗口,运行以下命令:& s. s( b6 n' w8 o* Z K/ i
Runas /ShowTrustLevels+ }. Z. Q1 z9 m: k0 i, r( @
即可看到系统当前的信任级别,如附图所示,其中有一个“基本用户”,对应新增加的注册表键值(Levels:0x20000)。
! t4 J% N$ ^! s3 c2 [" F. _/ ^ m: v3 `" i
/ E; b& `; n+ G6 A
1 V/ {, k" \0 W. W) L- p运行以下命令,即可以“基本用户”的身份启动IE浏览器:
7 h1 v. y! j. s! ^2 crunas /trustlevel:基本用户 "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
$ {" m4 y" A' X: \, c p k可以新建一个快捷方式,在项目位置里输入以上的命令,这样每次双击该快捷方式,就能够以“基本用户”的身份启动IE浏览器。
! I `- P4 _, F5 n+ b T3.软件限制策略
7 B ^# x9 k$ }( C/ X4 \- z打开“本地安全策略”管理单元(如果第一次设置软件限制策略,请右键单击“软件限制策略”,选择“创建新的策略”菜单项),展开软件限制策略→安全级别,在右侧的详细窗格里可以看到“基本用户”,如附图所示,这和“Runas /ShowTrustLevels”命令看到的信任级别是一致的。
( T$ w6 ~, U6 D3 ?7 c& Z7 s0 C/ A) y- R8 ~
8 J( m- R( ^& \ l+ `
) f# G; X" U d# X) l% c( j/ k9 B
可以新建一个路径规则,如附图所示,指定安全级别为“基本用户”,这样每次运行IE浏览器,都可以运行在更安全的级别。, p- }/ A1 u8 x, X
; L. G% i" ?6 _) k: q& C" ^! ?, V9 N# m1 Z
6 }. s1 G# }2 }/ i
每次新建的一条“基本用户”的软件限制策略,都会在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072注册表项下新增一个子项。如果是路径策略,则会新增一个Path子项;如果是散列策略,这会新增一个Hash子项。注册表项里的131072是什么?实际上就是前面增加的那个Levels:0x20000,0x20000正好就是131072。% u Z5 c( Y8 \* f6 b
4.查看基本用户的访问令牌$ o3 P* ]. _1 _; V3 v- C
用Process Explorer查看此时的IE浏览器属性,发现其访问令牌和Windows Vista的“标准用户”功能所获得访问令牌相似,如附图所示。$ ]+ B* K. {9 g! P' t% \% v" Q
& F2 h2 S# `4 T3 @. ~: `6 m
3 |/ b- {% @3 |' b% j
. {9 p1 J0 [* yWindows Vista的标准用户、Windows XP的基本用户、和运行方式之间的区别如下:' j5 Y9 u! ?; O8 _
(1)Vista的“标准用户”比XP的“基本用户”多出了几个特权(Privilege),只是默认禁用。1 {1 E0 ?7 j/ v9 Q/ m
(2)XP的“基本用户”所获得的访问令牌相对于“运行方式”(Restricted Token)来说,限制相对少一些,只是将Administrators和Power Users组标志为Deny,而并没有将其他帐户放入Restricted SID列表,这样IE进程可以访问配置文件夹等其他资源(包括收藏夹和我的文档),可以读写HKEY_CURRENT_USER下的绝大多数注册表键值,但是仍然不能写HKEY_LOCAL_MACHINE下的注册表键值。
* R: T0 n" K- N三、命令工具+ `) z5 m$ |1 I' _4 L: L+ p
这里推荐Michael Howard所写的命令行工具DropMyRights。
7 X; R; ?- }8 i, D G; lDropMyRights的使用语法如下:
6 C8 L! W" L3 dDropMyRights {path} [N|C|U]
, ^3 {0 c4 j$ X) f' o这里的path是指应用程序的路径,N指代基本用户(Basic User),C指代受限用户(Restricted User),U是指不信任用户。1 K1 d9 j G! v0 I1 n
如果要以基本用户身份运行IE浏览器,可以创建一个快捷方式,将项目位置设置为:7 y# x( ], s$ \5 B% A, y" P
DropMyRights "C:\Program Files\Internet Explorer\IEXPLORE.exe" N
9 O& c9 [) ~% g, A* Z5 U4 ~" F: i7 m这样就可以在需要时双击该快捷方式,以更加的安全环境下运行IE浏览器。, J; j& k6 E) O6 [, u
四、注意* I0 C0 n& \$ P- i: R. q. t& u
' C0 A2 N" H9 e) [0 G6 i3 k
0 r, s' c2 Y$ X6 d, Y: U) f2 O如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。
, h5 O0 b/ N: U+ j/ a
2 j8 j) M2 E" R3 t/ Y提示+ o' ~. F) e+ G9 R
1.本文部分内容参考自Michael Howard的文章《Browsing the Web and Reading E-mail Safely as an Administrator》(两篇),原文链接如下:
* J4 e/ w2 L J- U Q8 Chttp://msdn.microsoft.com/security/securecode/columns/default.aspx?pull=/library/en-us/dncode/html/secure11152004.asp
3 K% U1 E- }3 n1 Q0 K( F, Hhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure01182005.asp; b1 q0 Z7 }8 i+ _1 M6 E6 k
2.本文提到的Process Explorer,可以到以下网站下载:
9 t" u# ]3 n3 } v6 D; p' Mhttp://www.sysinternals.com/Utilities/ProcessExplorer.html' R; r% H8 [2 X8 C0 P4 H8 d" g6 J6 Y
本文提到的DropMyRights,可以到以下网站下载:
. a: }8 r' \# i7 Ahttp://download.microsoft.com/download/f/2/e/f2e49491-efde-4bca-9057-adc89c476ed4/DropMyRights.msi3 P, V. J1 u0 a( m3 J! H
3.Windows Vista的核心安全功能UAP,目前已经正式改名为UAC(User Account Control)。- S4 v8 i+ Z. y& {% d2 C
( Q2 { Y4 {6 r, A* l
' N% u6 C" O$ d' [2 q
5 }9 n6 u( d6 F4 e6 l
8 E4 ~6 F3 X( H$ {( ^
# N# c3 ^$ y$ a3 g
8 \/ r" V7 a) e! Z* ^4 X/ LComments+ {0 Q. E7 Y$ x' c# f& r3 g
# re: IE浏览器,我要你安全、再安全些 " h! o5 s* w- b |" W" h0 y
X( q: R% u& o6 w& \) m
如果IE被安装了太多插件(包括Spyware或Malware),要想启动一个无插件状态的IE,可以直接运行“"C:\Program Files\Internet Explorer\iexplore.exe" –extoff”(只适用于Vista下)。 6 M( A& L! h; s/ ]* K: L7 ^
# re: IE浏览器,我要你安全、再安全些 * P8 g+ F3 q# x# W" e i$ H+ o
* e. y. P, g4 q) u& \. ?6 P4 J
如果XP下的IE要实现NoAddon的功能,应该用什么办法呢?
' X# X: ~7 u$ E, O2 g' d# re: IE浏览器,我要你安全、再安全些 % u6 y# f8 x1 L3 k% e
4 f* t" C1 G6 Z( H
XP中的IE没有该参数,所以估计只能打开IE(此时已经加载所有插件),然后在IE的“工具”——“管理加载项”中一一禁用这些插件。
3 P' q* D) F5 a1 p# re: IE浏览器,我要你安全、再安全些
3 \! Q6 \- t# [2 ?: U( y
& @! ^: d- d& X6 y ]0 t u# AIE7有一种启动方式叫做“Start without Add-ons”
9 W7 L+ ^3 Z& o! X: _ _/ G4 F3 a# re: IE浏览器,我要你安全、再安全些 5 f' V/ j! v& k8 {8 I8 s3 `, R
/ ~% m, W5 q) [( |0 a# H, O* z
IE 7.0也有这个功能,太棒了,期待啊~~
: w1 I" k: f7 S- M1 |* lIE的很多常见问题就是由于第三方插件的冲突和干扰所导致的。
% x* ~9 X4 k6 X7 C$ n# re: IE浏览器,我想你安全、再安全些 7 X5 ?2 H& T$ H5 n2 A
% B2 w4 w8 @0 y& ^
vista的安全模式里面我记得好象也有IE的安全模式,就是"Start without Add-ons" ) p- k$ G" E; G. u+ M$ ]" E2 N5 T
# re: IE浏览器,我想你安全、再安全些--Updated ) A9 J4 _( n# x8 j+ K
/ _- m& A$ E% J" f; d! O3 `
如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。 9 `* p; I! A7 N* h
# re: IE浏览器,我想你安全、再安全些--Updated
5 A/ {& l# G6 ]) M& X5 o
7 J- r% P2 [ N/ J3 b是的,在HelpOnline论坛上有很多关于IE种种故障的案例,我都是先建议禁止所有插件来看看是否为插件所导致的(事实证明很多情况下都是),如果不是再重装IE(也很方便,一个命令即可)。不过IE 7以前的版本没有一个很方便禁止所有插件的方法,而IE 7提供的这一模式基本等同与诊断模式。
9 T4 a! h# \6 K+ R; K. A. [# re: IE浏览器,我想你安全、再安全些--Updated
, {# n5 v: J: E3 }6 }1 A4 r: o4 x, w4 P7 ]$ p* T
我也遇到过很多的这样的问题,基本上都是先卸载掉IE的插件就能解决,甚至都不需要重新安装IE. * j( `. C: k7 S" e
# re: IE浏览器,我想你安全、再安全些--Updated ; H# ]$ n* C1 I( Q9 ^
: l( y# R3 y" u. a7 K/ k; a* O嗯,遇到IE 6.0 SP2相关问题,可以采用以下常规排错方法: 9 B9 @- N9 k8 g% `4 ]$ x& O
1.在IE浏览器窗口上单击工具、Internet选项。 $ G. m: u0 p( ^" x# r) z
在打开的对话框的“常规”里单击删除文件,并勾选“删除所有脱机文件”,然后单击确定。 % H9 z7 ~% f( S# Y/ {/ c
单击删除Cookies,然后单击确定。 + Q6 L0 i' |/ |% r7 r
单击清除历史,然后单击确定。
% m* h* P* e# t# q8 Q& v6 I" {2.在Internet选项的“高级”标签页,确保清空“启用第三方浏览器扩展”复选框。 0 C( j. V `3 P. W" m9 j
3.在Internet选项对话框上切换到“程序”标签页,然后单击管理加载项。
: L! A3 t3 q2 c6 O& H在打开的对话框上,单击“发行者”,然后禁用所有发行者不是“Microsoft Corporation”的加载项。 7 k' s b* c k6 @
单击确定,保存设置。
* [' ~2 E* }( @5 k1 N: D F" f# re: IE浏览器,我想你安全、再安全些--Updated 8 v& G; S, J% ]% x8 a0 f
+ q# X$ h7 }: m# N5 m盆盆,我不太擅长组策略的设置,我有一个疑问,就是你这种限制之后其他的IE核心的浏览器的权限是否也会降下来呢? 还有这个组策略是否仅针对由explorer进程下创建的IE进程有限制作用呢? + u/ t7 ]& p w- N6 L
当其他和explorer差不多同级的进程创建了浏览器进程,后者是否会继承前者的权限呢? |
|