|
IE浏览器,我想你安全、再安全些--Updated* S$ g6 U$ b& |
IE浏览器是一个颇具争议的组件,不少用户一想到IE,恐怕脑子里就会浮现起曾经遭遇过的惨状:主页被恶意修改,IE动辄无缘无故关闭,注册表被改得乱七八糟,莫名其妙跳出网页……+ a& c" T: \6 Z% V) B
也难怪, IE是连接Internet的门户,难免会受病毒蠕虫等的“骚扰”。想让IE练就 “金刚不坏”之体,那就得首先分析一下恶意网页为什么可以为所欲为:大多数用户都是用管理员身份登录系统,IE默认获得管理员的访问令牌,这样网页中的恶意代码就会以最高的特权对系统进行篡改。只有让IE运行在更低的特权级别,才能防止恶意网页破坏系统。
& ]; a% j. A: n: i怎样才能让IE以更低的特权运行?Windows Vista可以满足要求,其UAC功能可以让所有用户进程运行在Standard User的特权级别,但是Vista还“犹抱琵琶半遮面”,其实我们的XP一样可以达到类似的目的!
0 w R9 N+ x# f5 d6 t+ Y提示 为了讲述的方便,这里假设以管理员帐户Admin登录系统。
$ V" t. s: _- `- g6 [! I8 x/ L一、“运行方式”给IE穿上铁布衫/ y! {: |5 R# l D
右键单击IE的快捷方式,选择“运行方式”命令,在打开对话框上,确保勾选“保护我的计算机和数据不受未授权程序的活动影响”复选框,如下图所示。
; u/ _& ]# J1 @" h$ M) C4 I' d: m# t {& I
/ K( w' V0 P1 I" i X, p1 P) i
0 f: }/ d: C( I7 d' g6 X
用这种方法启动IE,对几个“臭名卓著”的恶意网站进行测试,结果非常安全。同时还能用来对付DuDu加速器、3721等流氓插件!
( G s: ?7 |( u( Z5 b为什么?原来这时的IE浏览器会获得一个受限的访问令牌(Restricted Token),无法对系统目录和注册表进行写操作,网页中的恶意代码也就没办法破坏系统。 x) a' A% y9 j/ T# w3 T
当然,还得让实验来说话:
) M1 t5 d) \1 Y5 j0 Z! V分别在“运行方式”和正常模式下打开IE浏览器,然后用Process Explorer双击打开这两个IE进程的属性对话框,切换到“Security”标签页,即可查看这两个进程所获得的访问令牌,如下图所示。
e7 K2 ?; }: n% o3 O
( O. [% U/ z. `0 c8 O" ?
: d0 U3 F& {9 I& o) |很显然,相对于正常模式,“运行方式”打开IE进程所获得的受限令牌,其内容发生了以下两大变化:
7 Z) U e$ Z) Bu 用户和组的SID% j2 m5 c% `/ {4 X' H7 I/ w
(1)Administrators或Power Users组帐户的SID被标记为拒绝(Deny)。, O) B/ s5 m. m- y1 R
如果某个资源拒绝Administrators或Power Users访问,则进程无法访问该资源;而且进程会忽略除Deny之外的其他访问权限。5 T* y3 x- N- g# Q% R b. p
(2)除了Admin、Administrators和Power Users组帐户外,其他帐户的SID都加入受限(Restricted)列表:当进程访问资源时,必须经过两次安全检查:一次是检查令牌中启用的SID,另一次是检查受限列表里的SID,只有两次检查都通过,才能访问成功。
1 A' e$ V6 S# Ku 特权(Privilege)4 [/ p, e9 f, r" L
仅保留SeChangeNotificatonPrivilege(跳过遍历检查)特权。+ n: `% F$ T. l" b, e) p. Q
难怪这时的IE特别安全,尽管是以管理员帐户Admin登录系统,但是IE进程不能访问用户的配置文件夹(%USERPROFILE%),连收藏夹、我的文档都不能访问!
8 Z# I7 T& |# V7 UIE也不能在分区根目录写入文件,对注册表没有写的权限。同时只有SeChangeNotificatonPrivilege(跳过遍历检查)特权,可以防止病毒滥用特权做坏事。; I6 |7 T# u. O
提示 配置文件夹ACL包括Admin和Administrators和SYSTEM,由于Administrators被标记为Deny,而Admin帐户没有对应的Restricted SID(在第二次安全检查时失败),所以无法访问。' W5 a) t: [; j7 i
二、“基本用户”类型帮助IE强身健体
; R/ f$ b4 n, L用“运行方式”运行IE浏览器,虽然非常安全,但是有以下两个缺陷:5 u) i: X" h" `$ L, ^* T
u 限制太严格,例如IE浏览器无法加载收藏夹。% T6 b7 v4 h. q# F$ h# Z. b: V
u 每次运行IE浏览器,还需要增加额外的步骤,很不方便。/ E: C7 m. r/ p5 A E3 q
本文将介绍如何给XP系统启用一个“基本用户”(Basic User)类型,这个“基本用户”(Basic User)类似于Windows Vista的“标准用户”(Standard User),只是默认没有启用。
! {9 W" z7 {6 d& k0 i1.启用基本用户类型
* J( c, h7 u( m X(1)打开注册表编辑器,定位到以下注册表项:
- T$ b% |1 j/ h: X3 ?1 u1 ]HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers: W3 R+ a( V" w* i+ }# {
(2)新建一个名为Levels的DOWRD键值,其数据数值为0x20000。
/ M5 o' O1 C6 b# h! p5 m2.Runas命令+ x9 x- p8 D3 k6 \
打开命令提示符窗口,运行以下命令:: a( R, ?! o% { K; }
Runas /ShowTrustLevels
$ p6 _1 {! N+ Q( V. j- H# j+ A) z6 w即可看到系统当前的信任级别,如附图所示,其中有一个“基本用户”,对应新增加的注册表键值(Levels:0x20000)。
# l! [1 x. x; S* F9 Y
7 v0 D3 g; }: U! R+ S6 G
# ?, z% B6 }/ I4 ]1 O( B1 b$ ?) q; Q, _
运行以下命令,即可以“基本用户”的身份启动IE浏览器:
! r9 y) X Q. {* Y7 z% Jrunas /trustlevel:基本用户 "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
7 v8 C$ S9 X7 }# N8 s$ M0 X可以新建一个快捷方式,在项目位置里输入以上的命令,这样每次双击该快捷方式,就能够以“基本用户”的身份启动IE浏览器。
& X# g2 ~4 @+ r) Q, c0 F3.软件限制策略$ R1 O5 U6 B" T4 Q8 j' r
打开“本地安全策略”管理单元(如果第一次设置软件限制策略,请右键单击“软件限制策略”,选择“创建新的策略”菜单项),展开软件限制策略→安全级别,在右侧的详细窗格里可以看到“基本用户”,如附图所示,这和“Runas /ShowTrustLevels”命令看到的信任级别是一致的。
/ w% R& i+ e; F, d! [/ b( l) I
; a' L9 o( o2 x( N- y) d" t6 C* ]3 {" s" Q% M
7 V) x; m) s5 g' O& S7 H可以新建一个路径规则,如附图所示,指定安全级别为“基本用户”,这样每次运行IE浏览器,都可以运行在更安全的级别。
* I, e s) p/ Q) ^5 m0 \
: |$ n e0 b3 |' \6 j# a P$ w3 P2 k, G' X1 d5 M; F
% U! Z" e! K. m9 n* p' C 每次新建的一条“基本用户”的软件限制策略,都会在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072注册表项下新增一个子项。如果是路径策略,则会新增一个Path子项;如果是散列策略,这会新增一个Hash子项。注册表项里的131072是什么?实际上就是前面增加的那个Levels:0x20000,0x20000正好就是131072。
3 z3 y% L, T {6 a4 d4 C. ~3 G4.查看基本用户的访问令牌
8 L9 C: C2 m0 M1 F1 ^& C用Process Explorer查看此时的IE浏览器属性,发现其访问令牌和Windows Vista的“标准用户”功能所获得访问令牌相似,如附图所示。
& I$ x% D: B, S6 S `$ q( b) v, q+ `7 h
9 B" d. ~5 \. V; N+ c- w2 _; C, I) E
) R9 l. f' H( B* x
Windows Vista的标准用户、Windows XP的基本用户、和运行方式之间的区别如下:
) f6 |. D9 s4 T(1)Vista的“标准用户”比XP的“基本用户”多出了几个特权(Privilege),只是默认禁用。
' w- b5 M$ I6 }" W7 c2 W# i(2)XP的“基本用户”所获得的访问令牌相对于“运行方式”(Restricted Token)来说,限制相对少一些,只是将Administrators和Power Users组标志为Deny,而并没有将其他帐户放入Restricted SID列表,这样IE进程可以访问配置文件夹等其他资源(包括收藏夹和我的文档),可以读写HKEY_CURRENT_USER下的绝大多数注册表键值,但是仍然不能写HKEY_LOCAL_MACHINE下的注册表键值。/ Y: P6 }9 Y1 O% X0 Q( B6 W+ C
三、命令工具
# ]0 V' y$ K' c1 L这里推荐Michael Howard所写的命令行工具DropMyRights。$ X7 b f/ J: p5 c' q. {
DropMyRights的使用语法如下: S' `7 q3 w1 ^; f8 s* E! j2 w+ e
DropMyRights {path} [N|C|U]6 F" ?1 j% N2 E& J* |
这里的path是指应用程序的路径,N指代基本用户(Basic User),C指代受限用户(Restricted User),U是指不信任用户。3 D! m" P- U; x
如果要以基本用户身份运行IE浏览器,可以创建一个快捷方式,将项目位置设置为:
$ l+ L5 K# h! T9 h6 F/ ?( q3 EDropMyRights "C:\Program Files\Internet Explorer\IEXPLORE.exe" N8 e0 O' W5 a, c, x6 @% Q
这样就可以在需要时双击该快捷方式,以更加的安全环境下运行IE浏览器。( v) r! W ^ O1 J
四、注意! b/ @" J5 C( a1 a. `
+ k3 D V2 ~& u) x
/ G1 R9 m( D8 z如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。
( Y/ E- R8 L: g1 a: V8 l) M+ p+ D6 C8 [# a& T; [2 ^8 f- ~) W7 ]
提示/ b( p- m1 ~- x0 x; w7 Z: r/ H
1.本文部分内容参考自Michael Howard的文章《Browsing the Web and Reading E-mail Safely as an Administrator》(两篇),原文链接如下:
% n+ c v8 T7 |* p/ phttp://msdn.microsoft.com/security/securecode/columns/default.aspx?pull=/library/en-us/dncode/html/secure11152004.asp7 E; B q3 R1 t* c G+ {: m- O7 y
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure01182005.asp
% U# N" E% s1 s. U2.本文提到的Process Explorer,可以到以下网站下载:: ~( E' b; w8 H I
http://www.sysinternals.com/Utilities/ProcessExplorer.html
+ t" O* P8 o1 o8 M1 E3 e/ K; j本文提到的DropMyRights,可以到以下网站下载:
3 p) `1 e! s) Shttp://download.microsoft.com/download/f/2/e/f2e49491-efde-4bca-9057-adc89c476ed4/DropMyRights.msi
# K. r; p4 ~4 m- }6 P3.Windows Vista的核心安全功能UAP,目前已经正式改名为UAC(User Account Control)。
/ x% S$ k; y" d+ M
' `# ^( U& k2 ~; b' R
, X4 Y' A0 g" b: w9 \' t7 _# m ]9 p
. M5 K6 u: e+ V/ `* O+ ~
5 W4 r3 j' M( ?# K0 c8 ^4 C" h- @$ M8 x* o' g) Y3 o! _* c
Comments4 ~" \+ s) f8 O( r& [, J8 a
# re: IE浏览器,我要你安全、再安全些 . E) @; q# E. S8 ^9 n& D
/ [1 U0 K! [' n如果IE被安装了太多插件(包括Spyware或Malware),要想启动一个无插件状态的IE,可以直接运行“"C:\Program Files\Internet Explorer\iexplore.exe" –extoff”(只适用于Vista下)。 6 N5 H2 ?# e, |2 |5 T7 h( r
# re: IE浏览器,我要你安全、再安全些
" _) c9 o8 k$ Y2 S1 f( y' ~$ j2 [3 l' `" D5 o. A
如果XP下的IE要实现NoAddon的功能,应该用什么办法呢?
. V" b0 T# |) Y, x. k# re: IE浏览器,我要你安全、再安全些 ) B6 m/ c/ H5 `0 z. ?& Z% [8 z
- p% c J& u% ?7 j
XP中的IE没有该参数,所以估计只能打开IE(此时已经加载所有插件),然后在IE的“工具”——“管理加载项”中一一禁用这些插件。
4 i2 f* g8 O- v% H( w# re: IE浏览器,我要你安全、再安全些
% K. @( E; Y+ o; p0 O. l8 ?6 G/ X: t: \) M q* K" Q
IE7有一种启动方式叫做“Start without Add-ons” # ?5 D6 m6 k+ G2 p# I; D
# re: IE浏览器,我要你安全、再安全些
% G6 E$ X9 |0 m! O) q, N$ Q/ c7 h
0 p" t6 d H' mIE 7.0也有这个功能,太棒了,期待啊~~ & `' |3 T R$ B' A4 c
IE的很多常见问题就是由于第三方插件的冲突和干扰所导致的。
! I3 m+ I8 E) J7 F9 ?0 N# re: IE浏览器,我想你安全、再安全些
( q; C6 Z- q! J, y2 a3 l
$ b4 J8 n# w' l/ B- {/ @3 zvista的安全模式里面我记得好象也有IE的安全模式,就是"Start without Add-ons" ; b5 ^; i4 T$ c- z& ^
# re: IE浏览器,我想你安全、再安全些--Updated / \% z* A, Y8 O1 n- O
0 `: X" d: O8 K
如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。 ! e% W1 ?; G. ^ X
# re: IE浏览器,我想你安全、再安全些--Updated 6 p, x6 `! R1 u# U2 p4 |) s: B
% H( M9 V/ N( k$ Q9 a
是的,在HelpOnline论坛上有很多关于IE种种故障的案例,我都是先建议禁止所有插件来看看是否为插件所导致的(事实证明很多情况下都是),如果不是再重装IE(也很方便,一个命令即可)。不过IE 7以前的版本没有一个很方便禁止所有插件的方法,而IE 7提供的这一模式基本等同与诊断模式。 ! r; b' @9 i7 b
# re: IE浏览器,我想你安全、再安全些--Updated
+ t& N' o, o- M* z* T0 ^0 c2 v7 Y$ H4 a$ K' B
我也遇到过很多的这样的问题,基本上都是先卸载掉IE的插件就能解决,甚至都不需要重新安装IE. 1 ^7 o0 X. N! Y) E" Q3 e) s
# re: IE浏览器,我想你安全、再安全些--Updated 4 ?& F4 D% n# t* ?
- O1 J5 ]7 l6 y. v, s
嗯,遇到IE 6.0 SP2相关问题,可以采用以下常规排错方法: 9 y9 L% c" {* R" X6 e
1.在IE浏览器窗口上单击工具、Internet选项。
' X: Y; K$ e( T7 O( m1 H在打开的对话框的“常规”里单击删除文件,并勾选“删除所有脱机文件”,然后单击确定。
( r2 \) ?# u; q1 }单击删除Cookies,然后单击确定。 8 W& E( A0 k# l0 b) n7 @. t
单击清除历史,然后单击确定。
% e* r+ f$ w( x5 ~8 F) o$ U) ~2.在Internet选项的“高级”标签页,确保清空“启用第三方浏览器扩展”复选框。 * l! ~* P3 W8 m! W! W8 c
3.在Internet选项对话框上切换到“程序”标签页,然后单击管理加载项。
* }: p" G' {" g* m1 s( ^& I Q. z在打开的对话框上,单击“发行者”,然后禁用所有发行者不是“Microsoft Corporation”的加载项。
% J: k! h f$ p# q. [" i单击确定,保存设置。 ' T! T5 [/ _& D+ T" i5 E* b9 C( D
# re: IE浏览器,我想你安全、再安全些--Updated ' y! M% u" a0 ~* S8 x/ V C! Q
( q; ?' [( j( u4 e( V+ ^6 x6 W( \盆盆,我不太擅长组策略的设置,我有一个疑问,就是你这种限制之后其他的IE核心的浏览器的权限是否也会降下来呢? 还有这个组策略是否仅针对由explorer进程下创建的IE进程有限制作用呢?
) p. p u I5 j; t- N当其他和explorer差不多同级的进程创建了浏览器进程,后者是否会继承前者的权限呢? |
|