|
IE浏览器,我想你安全、再安全些--Updated! b! M4 h7 P. K* m8 f# [5 s
IE浏览器是一个颇具争议的组件,不少用户一想到IE,恐怕脑子里就会浮现起曾经遭遇过的惨状:主页被恶意修改,IE动辄无缘无故关闭,注册表被改得乱七八糟,莫名其妙跳出网页……
, I, h# r0 ]. X; k也难怪, IE是连接Internet的门户,难免会受病毒蠕虫等的“骚扰”。想让IE练就 “金刚不坏”之体,那就得首先分析一下恶意网页为什么可以为所欲为:大多数用户都是用管理员身份登录系统,IE默认获得管理员的访问令牌,这样网页中的恶意代码就会以最高的特权对系统进行篡改。只有让IE运行在更低的特权级别,才能防止恶意网页破坏系统。$ s: Y" S8 H( a. j5 T6 E
怎样才能让IE以更低的特权运行?Windows Vista可以满足要求,其UAC功能可以让所有用户进程运行在Standard User的特权级别,但是Vista还“犹抱琵琶半遮面”,其实我们的XP一样可以达到类似的目的!' A" i% e0 S1 v2 q4 K7 i, }' r
提示 为了讲述的方便,这里假设以管理员帐户Admin登录系统。2 K2 ]( }! j7 e( i% V; k
一、“运行方式”给IE穿上铁布衫. U9 W5 x$ M$ q: r+ m1 n/ S
右键单击IE的快捷方式,选择“运行方式”命令,在打开对话框上,确保勾选“保护我的计算机和数据不受未授权程序的活动影响”复选框,如下图所示。9 |2 U: @% R& j/ i+ H7 |$ w
# m" J2 n4 A+ M ~
5 F+ D$ w1 t5 g6 d
4 p6 Q' ~1 e6 ]7 q4 R$ J用这种方法启动IE,对几个“臭名卓著”的恶意网站进行测试,结果非常安全。同时还能用来对付DuDu加速器、3721等流氓插件!
. S& ~# H. [/ r4 |为什么?原来这时的IE浏览器会获得一个受限的访问令牌(Restricted Token),无法对系统目录和注册表进行写操作,网页中的恶意代码也就没办法破坏系统。
0 [( c$ T' W; L3 v1 U& W当然,还得让实验来说话:
( v7 y2 J" V s2 U! W% Q分别在“运行方式”和正常模式下打开IE浏览器,然后用Process Explorer双击打开这两个IE进程的属性对话框,切换到“Security”标签页,即可查看这两个进程所获得的访问令牌,如下图所示。
8 o7 W( ~5 e; c1 W+ |
7 S$ Y0 h+ L' i" d( ]9 k2 @9 m* O9 C, Q4 i
很显然,相对于正常模式,“运行方式”打开IE进程所获得的受限令牌,其内容发生了以下两大变化:
& `4 F# Q7 F9 w/ G. B5 ou 用户和组的SID
: G" Y- u- [3 W/ Y* b' ?(1)Administrators或Power Users组帐户的SID被标记为拒绝(Deny)。
. D$ ~0 F: ^% ~0 i9 m* K如果某个资源拒绝Administrators或Power Users访问,则进程无法访问该资源;而且进程会忽略除Deny之外的其他访问权限。- P# `* Z) D$ q2 g
(2)除了Admin、Administrators和Power Users组帐户外,其他帐户的SID都加入受限(Restricted)列表:当进程访问资源时,必须经过两次安全检查:一次是检查令牌中启用的SID,另一次是检查受限列表里的SID,只有两次检查都通过,才能访问成功。) A- ]) [7 p# t$ s) y
u 特权(Privilege): |' j) L7 `$ v+ Z* k1 p
仅保留SeChangeNotificatonPrivilege(跳过遍历检查)特权。
. r# U5 E/ u% B* m难怪这时的IE特别安全,尽管是以管理员帐户Admin登录系统,但是IE进程不能访问用户的配置文件夹(%USERPROFILE%),连收藏夹、我的文档都不能访问!
( J( c% n+ d6 z& q6 SIE也不能在分区根目录写入文件,对注册表没有写的权限。同时只有SeChangeNotificatonPrivilege(跳过遍历检查)特权,可以防止病毒滥用特权做坏事。8 F. j0 d! h3 O4 R4 Q
提示 配置文件夹ACL包括Admin和Administrators和SYSTEM,由于Administrators被标记为Deny,而Admin帐户没有对应的Restricted SID(在第二次安全检查时失败),所以无法访问。: _: o% L( F8 j) D; j) K
二、“基本用户”类型帮助IE强身健体
" m/ ]7 r3 @7 J% E" v9 i, v4 `% p+ H用“运行方式”运行IE浏览器,虽然非常安全,但是有以下两个缺陷:
R9 P9 Y% h# G( `2 p/ Iu 限制太严格,例如IE浏览器无法加载收藏夹。
$ T5 n1 z9 B+ [' u S2 U: Au 每次运行IE浏览器,还需要增加额外的步骤,很不方便。0 P4 T' n! w# B& R& O8 d, l& _) l
本文将介绍如何给XP系统启用一个“基本用户”(Basic User)类型,这个“基本用户”(Basic User)类似于Windows Vista的“标准用户”(Standard User),只是默认没有启用。9 p A+ h4 r' A: ? ^: F( ]9 p
1.启用基本用户类型
) i! g, T* u, O) f( p& k/ h(1)打开注册表编辑器,定位到以下注册表项:
4 I, t( v# r" y9 t ~; zHKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers- C6 n1 F# M6 C) j2 X/ K
(2)新建一个名为Levels的DOWRD键值,其数据数值为0x20000。
9 U) k* ~, Z/ d7 U6 ^2.Runas命令
3 p* s3 m# {" N; Y' S7 W打开命令提示符窗口,运行以下命令:, t, x+ m: u* q0 |, F3 o! f. B
Runas /ShowTrustLevels5 J8 T6 r; C# ?. q9 f
即可看到系统当前的信任级别,如附图所示,其中有一个“基本用户”,对应新增加的注册表键值(Levels:0x20000)。
9 T, r, m5 l5 E$ [
% D6 d- F* R1 D& S
: z4 ^9 N, Z9 v, z3 x7 _
8 G6 S% F2 E8 A6 L5 h7 t1 H. C运行以下命令,即可以“基本用户”的身份启动IE浏览器:
, `" E- Q. Q; d$ irunas /trustlevel:基本用户 "C:\Program Files\Internet Explorer\IEXPLORE.EXE"; S/ ~, x8 G! V6 o; f3 ?: ~: m2 d
可以新建一个快捷方式,在项目位置里输入以上的命令,这样每次双击该快捷方式,就能够以“基本用户”的身份启动IE浏览器。. i' X* j1 H- k$ Y* y8 M: q' Q
3.软件限制策略: l1 v. j* o& N- c2 y: e8 J
打开“本地安全策略”管理单元(如果第一次设置软件限制策略,请右键单击“软件限制策略”,选择“创建新的策略”菜单项),展开软件限制策略→安全级别,在右侧的详细窗格里可以看到“基本用户”,如附图所示,这和“Runas /ShowTrustLevels”命令看到的信任级别是一致的。# Z9 V: e6 h4 P5 R
7 M0 F$ z6 D/ D2 Z
0 W. j6 d* J/ q# M
; o3 {9 M2 `; G+ _' `. N5 p& h, y& D可以新建一个路径规则,如附图所示,指定安全级别为“基本用户”,这样每次运行IE浏览器,都可以运行在更安全的级别。
) n% v- Z" y1 p7 S2 ~! y; a5 I% n/ a. Z2 S3 {! J; B* _1 w
7 M, i- P) S7 Y) @4 B! M7 `. V) P, s
9 z) q0 v5 S* a6 m4 r1 x% {% j 每次新建的一条“基本用户”的软件限制策略,都会在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072注册表项下新增一个子项。如果是路径策略,则会新增一个Path子项;如果是散列策略,这会新增一个Hash子项。注册表项里的131072是什么?实际上就是前面增加的那个Levels:0x20000,0x20000正好就是131072。7 P* i5 E2 R" p" q- \6 }
4.查看基本用户的访问令牌' H8 }8 Z( p' F. q$ }) C, N
用Process Explorer查看此时的IE浏览器属性,发现其访问令牌和Windows Vista的“标准用户”功能所获得访问令牌相似,如附图所示。
- m! g; B- o% ?: p% X( I4 B9 k0 ]; i
G+ K7 h* E, F: O, h) ~) A
x! o" o0 V4 {1 D" L3 p- U- K
Windows Vista的标准用户、Windows XP的基本用户、和运行方式之间的区别如下:
2 z- F2 P4 }" ]6 H8 j(1)Vista的“标准用户”比XP的“基本用户”多出了几个特权(Privilege),只是默认禁用。
+ T+ D* T+ `) M% S- [6 P/ T2 A(2)XP的“基本用户”所获得的访问令牌相对于“运行方式”(Restricted Token)来说,限制相对少一些,只是将Administrators和Power Users组标志为Deny,而并没有将其他帐户放入Restricted SID列表,这样IE进程可以访问配置文件夹等其他资源(包括收藏夹和我的文档),可以读写HKEY_CURRENT_USER下的绝大多数注册表键值,但是仍然不能写HKEY_LOCAL_MACHINE下的注册表键值。+ s& U2 k! B% ~7 j# } m, L+ P. N
三、命令工具7 r1 s( Q4 I- P, r
这里推荐Michael Howard所写的命令行工具DropMyRights。
0 ?3 ?$ g7 [ U, q; ^, iDropMyRights的使用语法如下:0 U2 M9 s( @* Y+ H: L
DropMyRights {path} [N|C|U]: ]* `% M# w# L3 W9 v C& }
这里的path是指应用程序的路径,N指代基本用户(Basic User),C指代受限用户(Restricted User),U是指不信任用户。' j* g" i5 O0 q7 X; K
如果要以基本用户身份运行IE浏览器,可以创建一个快捷方式,将项目位置设置为:
7 N: @9 D( y+ m+ J3 Q0 {7 {% O9 fDropMyRights "C:\Program Files\Internet Explorer\IEXPLORE.exe" N5 W7 E3 M# }& A; R3 W
这样就可以在需要时双击该快捷方式,以更加的安全环境下运行IE浏览器。* K8 f" \/ M; l
四、注意% h1 X) ~- D% M+ `" Y# U2 q
, M3 q3 R# d: L0 P+ E% y& M
3 \( N: Q& l4 a2 r如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。
+ r$ [6 s! H. Y" _( f |* i: }$ v" h7 u
提示
- x6 G/ |6 g3 ?7 q% ?' h1.本文部分内容参考自Michael Howard的文章《Browsing the Web and Reading E-mail Safely as an Administrator》(两篇),原文链接如下:+ ^( H! t. L; y
http://msdn.microsoft.com/security/securecode/columns/default.aspx?pull=/library/en-us/dncode/html/secure11152004.asp
% ]* Z5 _, H* K# B! p8 Vhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure01182005.asp
1 f: @+ L3 W! E4 N2.本文提到的Process Explorer,可以到以下网站下载:
) S1 n1 ?% d! ]4 u- M0 Z' N; M) qhttp://www.sysinternals.com/Utilities/ProcessExplorer.html
R; L8 D1 ?$ R本文提到的DropMyRights,可以到以下网站下载:( m/ C q Y j% `' U2 P
http://download.microsoft.com/download/f/2/e/f2e49491-efde-4bca-9057-adc89c476ed4/DropMyRights.msi0 r8 K1 B, Z# ^- J+ s% Q- j
3.Windows Vista的核心安全功能UAP,目前已经正式改名为UAC(User Account Control)。 j5 W8 }) T! ]
* [' \6 D; E. o
, k; M1 S0 D1 n& w! ~
7 O8 d5 P! a4 p3 ?8 m2 s" {6 b* W) s/ d j0 G
4 H8 d5 W0 n6 ]9 J6 O; b
% `. p$ Q" s, ]
Comments( k7 r5 _8 I2 X. P% | }/ }
# re: IE浏览器,我要你安全、再安全些
8 b% ? \; P8 k. v- _
9 }/ Q5 D. i9 Z: w+ E0 k如果IE被安装了太多插件(包括Spyware或Malware),要想启动一个无插件状态的IE,可以直接运行“"C:\Program Files\Internet Explorer\iexplore.exe" –extoff”(只适用于Vista下)。 . }: q' t; l) P$ \9 N! E- z. F
# re: IE浏览器,我要你安全、再安全些
4 V' S- Q% r8 S( f4 _' n+ x- P Z% a; t; p: w
如果XP下的IE要实现NoAddon的功能,应该用什么办法呢? 9 ^# t' U+ c- M* |! \" l$ K
# re: IE浏览器,我要你安全、再安全些
. e$ D- C3 Z" j8 H0 K0 d' M1 R( o2 O
XP中的IE没有该参数,所以估计只能打开IE(此时已经加载所有插件),然后在IE的“工具”——“管理加载项”中一一禁用这些插件。 & i( L# p! W; [+ C
# re: IE浏览器,我要你安全、再安全些
" b+ f( l6 w/ a- d' |7 x! a, H" V8 ?, b. O
IE7有一种启动方式叫做“Start without Add-ons”
/ u. Y' I0 S$ v; j/ ~ }/ |9 `# re: IE浏览器,我要你安全、再安全些 1 E- A. X& B" P& g8 C, W
( x' c& S; G0 d( r4 h
IE 7.0也有这个功能,太棒了,期待啊~~ 6 ] a0 N7 ^; w% @( ?" l3 D3 A
IE的很多常见问题就是由于第三方插件的冲突和干扰所导致的。
) C: {7 l2 P. S, R# re: IE浏览器,我想你安全、再安全些 5 ?! L s6 _( q( v
1 a% U' T! _; D( V
vista的安全模式里面我记得好象也有IE的安全模式,就是"Start without Add-ons"
/ A1 G0 r( C' K3 Q" `! `% s* v0 r6 s# re: IE浏览器,我想你安全、再安全些--Updated
: A1 y; E- b0 r. p2 U8 @" T9 H9 R0 J) i
如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。 7 G) p/ Y. F/ H$ @+ j
# re: IE浏览器,我想你安全、再安全些--Updated
9 H, T9 v- q9 H; j/ b+ K5 H' s% F- l6 Z. _6 X) A& N! k0 g: b" s
是的,在HelpOnline论坛上有很多关于IE种种故障的案例,我都是先建议禁止所有插件来看看是否为插件所导致的(事实证明很多情况下都是),如果不是再重装IE(也很方便,一个命令即可)。不过IE 7以前的版本没有一个很方便禁止所有插件的方法,而IE 7提供的这一模式基本等同与诊断模式。 5 Z: o" k/ N* _& j
# re: IE浏览器,我想你安全、再安全些--Updated , c" z, l, V3 ~+ @, B& m+ {
0 H. o& x5 s0 s4 ^6 `
我也遇到过很多的这样的问题,基本上都是先卸载掉IE的插件就能解决,甚至都不需要重新安装IE.
* I2 X2 L4 Z- F' Y6 G: L/ N3 u# re: IE浏览器,我想你安全、再安全些--Updated
( o! M8 d9 }/ h, ~+ v4 n$ D1 r! X* l h6 m o
嗯,遇到IE 6.0 SP2相关问题,可以采用以下常规排错方法: 8 G' B" {: I* e# B2 M' w+ G) ~+ q! e
1.在IE浏览器窗口上单击工具、Internet选项。 ; M/ q( b' A. P; n
在打开的对话框的“常规”里单击删除文件,并勾选“删除所有脱机文件”,然后单击确定。 6 i% R+ B( v+ E+ a; p5 F/ k# {2 ^ N
单击删除Cookies,然后单击确定。
- m) o" ?7 V' ?7 L9 @) S单击清除历史,然后单击确定。 : p# _6 v' T8 W: F
2.在Internet选项的“高级”标签页,确保清空“启用第三方浏览器扩展”复选框。
) `" ^* I$ u- ~/ ^6 }3.在Internet选项对话框上切换到“程序”标签页,然后单击管理加载项。 $ e, Z% l9 [0 P
在打开的对话框上,单击“发行者”,然后禁用所有发行者不是“Microsoft Corporation”的加载项。 : C8 t3 G7 |) P) w, P
单击确定,保存设置。 0 v; A, s1 g8 t4 F) y& @
# re: IE浏览器,我想你安全、再安全些--Updated " A0 Z+ J; r3 q; C6 [7 [
8 z+ ]( P1 D0 p盆盆,我不太擅长组策略的设置,我有一个疑问,就是你这种限制之后其他的IE核心的浏览器的权限是否也会降下来呢? 还有这个组策略是否仅针对由explorer进程下创建的IE进程有限制作用呢? $ ^1 d l5 |8 n
当其他和explorer差不多同级的进程创建了浏览器进程,后者是否会继承前者的权限呢? |
|