|
IE浏览器,我想你安全、再安全些--Updated' P' \% ~* c! J
IE浏览器是一个颇具争议的组件,不少用户一想到IE,恐怕脑子里就会浮现起曾经遭遇过的惨状:主页被恶意修改,IE动辄无缘无故关闭,注册表被改得乱七八糟,莫名其妙跳出网页……
% i0 U& Q5 O. F7 d- P也难怪, IE是连接Internet的门户,难免会受病毒蠕虫等的“骚扰”。想让IE练就 “金刚不坏”之体,那就得首先分析一下恶意网页为什么可以为所欲为:大多数用户都是用管理员身份登录系统,IE默认获得管理员的访问令牌,这样网页中的恶意代码就会以最高的特权对系统进行篡改。只有让IE运行在更低的特权级别,才能防止恶意网页破坏系统。. o9 b' k) d1 _" ? J( }7 T: ~
怎样才能让IE以更低的特权运行?Windows Vista可以满足要求,其UAC功能可以让所有用户进程运行在Standard User的特权级别,但是Vista还“犹抱琵琶半遮面”,其实我们的XP一样可以达到类似的目的!
% {3 G% g) o0 Q; P3 Q* Z提示 为了讲述的方便,这里假设以管理员帐户Admin登录系统。/ d4 W' ^) @2 r4 s; y# V( V
一、“运行方式”给IE穿上铁布衫 n2 w; ]2 z- v" Q9 y# H$ k8 }
右键单击IE的快捷方式,选择“运行方式”命令,在打开对话框上,确保勾选“保护我的计算机和数据不受未授权程序的活动影响”复选框,如下图所示。) P0 ?' f* O) l/ b5 V6 [0 B5 @7 i1 F
) K" A9 R- E8 e. R
$ P# T6 v7 v3 w$ \$ t5 \( k( u+ n$ `) D" |' g+ r; S% T+ }
用这种方法启动IE,对几个“臭名卓著”的恶意网站进行测试,结果非常安全。同时还能用来对付DuDu加速器、3721等流氓插件!5 H _$ ~9 n- Z* f
为什么?原来这时的IE浏览器会获得一个受限的访问令牌(Restricted Token),无法对系统目录和注册表进行写操作,网页中的恶意代码也就没办法破坏系统。
- @2 J/ p2 A2 L% p+ ^: E当然,还得让实验来说话:8 c7 Z5 G+ c$ c @
分别在“运行方式”和正常模式下打开IE浏览器,然后用Process Explorer双击打开这两个IE进程的属性对话框,切换到“Security”标签页,即可查看这两个进程所获得的访问令牌,如下图所示。
0 B) N% o# w1 _8 S y6 a' o; v1 z! I
, E4 ~2 Q: `5 x C2 { c: t9 k$ {很显然,相对于正常模式,“运行方式”打开IE进程所获得的受限令牌,其内容发生了以下两大变化:0 s9 U2 a1 k) ]. i& p& e7 I6 d
u 用户和组的SID
4 t& d$ q4 D; N7 X Y2 H(1)Administrators或Power Users组帐户的SID被标记为拒绝(Deny)。
" ~3 J- D# Z! F- T, Q如果某个资源拒绝Administrators或Power Users访问,则进程无法访问该资源;而且进程会忽略除Deny之外的其他访问权限。
% P9 `0 u1 h9 Z P7 Y* V' O1 O& C(2)除了Admin、Administrators和Power Users组帐户外,其他帐户的SID都加入受限(Restricted)列表:当进程访问资源时,必须经过两次安全检查:一次是检查令牌中启用的SID,另一次是检查受限列表里的SID,只有两次检查都通过,才能访问成功。
! v/ o$ d; O& V% hu 特权(Privilege)+ Z* a* s2 ^8 O! c( n2 ?
仅保留SeChangeNotificatonPrivilege(跳过遍历检查)特权。" t1 T/ l) `- g" o7 g0 o, { Y
难怪这时的IE特别安全,尽管是以管理员帐户Admin登录系统,但是IE进程不能访问用户的配置文件夹(%USERPROFILE%),连收藏夹、我的文档都不能访问!
: ? I0 P( {5 a+ _IE也不能在分区根目录写入文件,对注册表没有写的权限。同时只有SeChangeNotificatonPrivilege(跳过遍历检查)特权,可以防止病毒滥用特权做坏事。 q1 q. L1 G, `9 r, y
提示 配置文件夹ACL包括Admin和Administrators和SYSTEM,由于Administrators被标记为Deny,而Admin帐户没有对应的Restricted SID(在第二次安全检查时失败),所以无法访问。) B& i9 _# j; P Y6 S
二、“基本用户”类型帮助IE强身健体
" a, r/ ]3 R( w9 E/ P' A- [+ Q用“运行方式”运行IE浏览器,虽然非常安全,但是有以下两个缺陷:5 Z8 c4 A+ ^# J5 Y, b
u 限制太严格,例如IE浏览器无法加载收藏夹。+ v( W- Z( v. L0 J* U
u 每次运行IE浏览器,还需要增加额外的步骤,很不方便。
5 O# k5 i$ {4 j3 p, S# T本文将介绍如何给XP系统启用一个“基本用户”(Basic User)类型,这个“基本用户”(Basic User)类似于Windows Vista的“标准用户”(Standard User),只是默认没有启用。
) _* _) }! p# L0 x; m1 }; ~1.启用基本用户类型; N1 D& G1 j& [0 W# j
(1)打开注册表编辑器,定位到以下注册表项:& a( I4 o1 x( ]& j- j
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers9 [. H1 k5 ^/ m1 `: y
(2)新建一个名为Levels的DOWRD键值,其数据数值为0x20000。
1 P, m" P8 A# [1 ]# i0 h2.Runas命令, B$ f+ X, x. v+ X" p0 f
打开命令提示符窗口,运行以下命令:; l' k1 h3 v# |7 J
Runas /ShowTrustLevels/ k4 `. D7 M, g* g' d1 i C- |
即可看到系统当前的信任级别,如附图所示,其中有一个“基本用户”,对应新增加的注册表键值(Levels:0x20000)。
- N/ _ D% ^0 O0 @) a) j3 G+ N) m" T3 Q! p& d
* a1 z& N! Q0 f/ w4 k& M9 l* n: c
运行以下命令,即可以“基本用户”的身份启动IE浏览器:
5 R* }7 x: Y. X/ M. n( Zrunas /trustlevel:基本用户 "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
) @) K5 `& u* ^ Q" O. y: z( f可以新建一个快捷方式,在项目位置里输入以上的命令,这样每次双击该快捷方式,就能够以“基本用户”的身份启动IE浏览器。
, S0 }1 U1 M7 A$ s# Y3 k8 K3.软件限制策略( ~: [$ [7 `% t( w8 W* [* Q9 O
打开“本地安全策略”管理单元(如果第一次设置软件限制策略,请右键单击“软件限制策略”,选择“创建新的策略”菜单项),展开软件限制策略→安全级别,在右侧的详细窗格里可以看到“基本用户”,如附图所示,这和“Runas /ShowTrustLevels”命令看到的信任级别是一致的。, E, d- a/ }0 p; ?0 C% r
3 G3 |, O6 z+ @2 H5 T$ F7 m/ h3 V# F3 W
+ L2 e( p! z$ O
可以新建一个路径规则,如附图所示,指定安全级别为“基本用户”,这样每次运行IE浏览器,都可以运行在更安全的级别。
% b, F: T# D. |3 J, {+ c2 Q% b+ M2 d: I
- z* |* J/ S$ M( ~
, @1 X7 g% e+ m6 W0 m 每次新建的一条“基本用户”的软件限制策略,都会在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072注册表项下新增一个子项。如果是路径策略,则会新增一个Path子项;如果是散列策略,这会新增一个Hash子项。注册表项里的131072是什么?实际上就是前面增加的那个Levels:0x20000,0x20000正好就是131072。
, `4 ?+ j1 g8 m! Y$ s+ }4.查看基本用户的访问令牌" M7 F5 f- d1 o* _
用Process Explorer查看此时的IE浏览器属性,发现其访问令牌和Windows Vista的“标准用户”功能所获得访问令牌相似,如附图所示。5 k! z* z6 ^3 {) a
6 v# P2 U9 {# n3 q3 [/ ^
$ [7 P& ^ L) ^% ~% ~
1 A# l1 W& O0 Q% F8 p+ IWindows Vista的标准用户、Windows XP的基本用户、和运行方式之间的区别如下:3 \5 t2 A! Q; Z/ m4 P/ j
(1)Vista的“标准用户”比XP的“基本用户”多出了几个特权(Privilege),只是默认禁用。' K2 ?2 s; I5 d' f( L3 @
(2)XP的“基本用户”所获得的访问令牌相对于“运行方式”(Restricted Token)来说,限制相对少一些,只是将Administrators和Power Users组标志为Deny,而并没有将其他帐户放入Restricted SID列表,这样IE进程可以访问配置文件夹等其他资源(包括收藏夹和我的文档),可以读写HKEY_CURRENT_USER下的绝大多数注册表键值,但是仍然不能写HKEY_LOCAL_MACHINE下的注册表键值。
' o5 p+ ~ b o+ a0 t三、命令工具; [& ~' c9 F: ?- V( n
这里推荐Michael Howard所写的命令行工具DropMyRights。& b J/ Y, M. B4 w6 G. W
DropMyRights的使用语法如下:0 h+ V; I/ e1 |+ y% ?
DropMyRights {path} [N|C|U]' z4 k/ [6 ^& O* K
这里的path是指应用程序的路径,N指代基本用户(Basic User),C指代受限用户(Restricted User),U是指不信任用户。
/ T. l# ~' G t# [0 C, s4 [如果要以基本用户身份运行IE浏览器,可以创建一个快捷方式,将项目位置设置为:
6 H( F( S5 N) R/ F \5 ^DropMyRights "C:\Program Files\Internet Explorer\IEXPLORE.exe" N9 A% S ]4 P& G- b
这样就可以在需要时双击该快捷方式,以更加的安全环境下运行IE浏览器。
* [& U7 U) W2 e" p四、注意' t# l3 e4 H; d0 a3 w# U
8 D$ K$ L& D, ?# ?+ b- y; b
% n/ H% u8 V0 I# X' v如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。7 ?. h" E5 e8 e0 x; E- `
. O9 f+ T5 G% d9 U' [4 D提示
$ x; ]7 C! j% l {8 E1.本文部分内容参考自Michael Howard的文章《Browsing the Web and Reading E-mail Safely as an Administrator》(两篇),原文链接如下:
* G) T# C) D- nhttp://msdn.microsoft.com/security/securecode/columns/default.aspx?pull=/library/en-us/dncode/html/secure11152004.asp
) g) s a( y4 ?8 D chttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure01182005.asp
, `! D; }6 w+ r* N( Y2.本文提到的Process Explorer,可以到以下网站下载:0 w& B. E' _) F. j5 X
http://www.sysinternals.com/Utilities/ProcessExplorer.html! \/ J0 L& ^9 b
本文提到的DropMyRights,可以到以下网站下载:
/ c: v, [1 P* p0 ]http://download.microsoft.com/download/f/2/e/f2e49491-efde-4bca-9057-adc89c476ed4/DropMyRights.msi
' `" g- V# h# [% z) g3.Windows Vista的核心安全功能UAP,目前已经正式改名为UAC(User Account Control)。
3 t7 B. b, A9 P ^8 i8 t( ?
4 d1 [. c. G! H- [ i
- @0 S8 }1 H$ o7 C, {+ b" b2 M
7 B% k& H3 F2 V3 Z" Z
, B% A$ ]! O! o+ z0 Q4 H' o
/ P0 P$ c" {0 f6 r* _9 ^
- \, \; W8 ^, E0 g$ L; YComments
9 m' T/ t. _* u1 c- J# re: IE浏览器,我要你安全、再安全些 ' U. I3 m/ k& x# v+ w% a/ c
5 W0 Q; R9 P! s3 F
如果IE被安装了太多插件(包括Spyware或Malware),要想启动一个无插件状态的IE,可以直接运行“"C:\Program Files\Internet Explorer\iexplore.exe" –extoff”(只适用于Vista下)。 0 k( W8 s# m- x, H) |' p$ \5 d f; |
# re: IE浏览器,我要你安全、再安全些
6 `. O! Z6 u) M. S0 |, `/ i3 |. u1 J3 T) R V( G
如果XP下的IE要实现NoAddon的功能,应该用什么办法呢? . s; L8 M( I) O A* V+ U% a* Y& g
# re: IE浏览器,我要你安全、再安全些
' p3 w/ @4 P$ I9 Z" A+ K1 G
6 v; Y4 c& @5 b1 p! uXP中的IE没有该参数,所以估计只能打开IE(此时已经加载所有插件),然后在IE的“工具”——“管理加载项”中一一禁用这些插件。 . h- M$ p$ Z. l2 z2 l! ~
# re: IE浏览器,我要你安全、再安全些
/ n# p5 t: h2 z' I
& j3 i4 h/ O7 W# Z0 tIE7有一种启动方式叫做“Start without Add-ons” / b9 W" ^* M- L& _; }3 {5 R" @
# re: IE浏览器,我要你安全、再安全些 4 M$ Z# Y0 I5 L6 N
! f3 A1 ]! N- [# q9 Y( e ?, l4 qIE 7.0也有这个功能,太棒了,期待啊~~ 5 Q6 c4 E% c. P! S8 c$ D
IE的很多常见问题就是由于第三方插件的冲突和干扰所导致的。 # }6 S) m3 J4 g. K# E+ f, O5 C9 t
# re: IE浏览器,我想你安全、再安全些
$ |& b r8 r( e6 m6 b. Q8 ?- s7 j7 c2 q# a- P
vista的安全模式里面我记得好象也有IE的安全模式,就是"Start without Add-ons" * @1 p% t; W. ~0 b) I
# re: IE浏览器,我想你安全、再安全些--Updated
4 p, M+ _' p# _2 N. i
1 x, j# I/ C3 O' Z如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。 7 z2 _1 ]# w: M/ `/ s; I5 ]6 M
# re: IE浏览器,我想你安全、再安全些--Updated
% ] m+ s d6 o6 K0 K2 J: M2 `" `" U1 X1 ~8 s
是的,在HelpOnline论坛上有很多关于IE种种故障的案例,我都是先建议禁止所有插件来看看是否为插件所导致的(事实证明很多情况下都是),如果不是再重装IE(也很方便,一个命令即可)。不过IE 7以前的版本没有一个很方便禁止所有插件的方法,而IE 7提供的这一模式基本等同与诊断模式。 1 J+ k2 D5 [6 j! V' }
# re: IE浏览器,我想你安全、再安全些--Updated # [* j [/ z" t+ O7 a# J6 M: D
3 E; Z ~. u" N7 v5 k+ W我也遇到过很多的这样的问题,基本上都是先卸载掉IE的插件就能解决,甚至都不需要重新安装IE.
' G' f$ g9 A* u6 `# re: IE浏览器,我想你安全、再安全些--Updated
# I, Z: |1 k# ?+ w$ ~/ a6 J/ S" e+ o
嗯,遇到IE 6.0 SP2相关问题,可以采用以下常规排错方法: , e% [/ T' K, m1 s/ i1 n! r
1.在IE浏览器窗口上单击工具、Internet选项。 2 x9 P- z8 x6 _6 H4 ^5 `
在打开的对话框的“常规”里单击删除文件,并勾选“删除所有脱机文件”,然后单击确定。
# y |% q/ ~7 j0 _9 r, W! ]$ A单击删除Cookies,然后单击确定。 # I' c5 o+ q: u1 v( I1 H: u5 @3 m: \
单击清除历史,然后单击确定。 # d% S+ S+ z/ l: a1 N O
2.在Internet选项的“高级”标签页,确保清空“启用第三方浏览器扩展”复选框。
2 z" d" [4 H" y3 |3.在Internet选项对话框上切换到“程序”标签页,然后单击管理加载项。 0 ]- w# ?; u& c- l ]9 w% J! g9 b
在打开的对话框上,单击“发行者”,然后禁用所有发行者不是“Microsoft Corporation”的加载项。
- Z% j+ K0 [: z: t0 C$ @& [单击确定,保存设置。 " X: r3 a7 h: Q
# re: IE浏览器,我想你安全、再安全些--Updated
, Y& }3 W9 \3 D3 t5 Y) {
0 P7 m8 d4 E5 ~1 s盆盆,我不太擅长组策略的设置,我有一个疑问,就是你这种限制之后其他的IE核心的浏览器的权限是否也会降下来呢? 还有这个组策略是否仅针对由explorer进程下创建的IE进程有限制作用呢?
, _* _, U* h3 u) G% d2 A* o当其他和explorer差不多同级的进程创建了浏览器进程,后者是否会继承前者的权限呢? |
|