|
IE浏览器,我想你安全、再安全些--Updated
% |! \' w7 I3 I) V0 _6 o3 g4 JIE浏览器是一个颇具争议的组件,不少用户一想到IE,恐怕脑子里就会浮现起曾经遭遇过的惨状:主页被恶意修改,IE动辄无缘无故关闭,注册表被改得乱七八糟,莫名其妙跳出网页……
7 k* t2 z4 `6 `# H0 |: i也难怪, IE是连接Internet的门户,难免会受病毒蠕虫等的“骚扰”。想让IE练就 “金刚不坏”之体,那就得首先分析一下恶意网页为什么可以为所欲为:大多数用户都是用管理员身份登录系统,IE默认获得管理员的访问令牌,这样网页中的恶意代码就会以最高的特权对系统进行篡改。只有让IE运行在更低的特权级别,才能防止恶意网页破坏系统。8 I1 R$ C3 j6 G% c' }, g
怎样才能让IE以更低的特权运行?Windows Vista可以满足要求,其UAC功能可以让所有用户进程运行在Standard User的特权级别,但是Vista还“犹抱琵琶半遮面”,其实我们的XP一样可以达到类似的目的!8 V; I/ C: y0 C1 v% M
提示 为了讲述的方便,这里假设以管理员帐户Admin登录系统。
5 h C+ u5 O/ I" M1 U2 e+ r一、“运行方式”给IE穿上铁布衫% S Q5 ^8 J- [, ^/ t b
右键单击IE的快捷方式,选择“运行方式”命令,在打开对话框上,确保勾选“保护我的计算机和数据不受未授权程序的活动影响”复选框,如下图所示。8 R9 v$ [/ o. s7 o: H: x4 \
& z9 t9 h4 w6 [0 T( D) z, V/ t) y$ ]' [
1 b! D3 Y* {, Z8 R! T6 V
用这种方法启动IE,对几个“臭名卓著”的恶意网站进行测试,结果非常安全。同时还能用来对付DuDu加速器、3721等流氓插件!
% h( J, j7 V; c$ f) D) C为什么?原来这时的IE浏览器会获得一个受限的访问令牌(Restricted Token),无法对系统目录和注册表进行写操作,网页中的恶意代码也就没办法破坏系统。
: r7 L+ ~) R8 g6 q1 B0 |当然,还得让实验来说话:
; |# s! `" S L( N% I* @分别在“运行方式”和正常模式下打开IE浏览器,然后用Process Explorer双击打开这两个IE进程的属性对话框,切换到“Security”标签页,即可查看这两个进程所获得的访问令牌,如下图所示。# m6 E$ p3 s2 }, H) t# i7 t
: S& S' D; Q) @) E9 v+ `! f7 V- R
很显然,相对于正常模式,“运行方式”打开IE进程所获得的受限令牌,其内容发生了以下两大变化:
1 } k8 \" `$ K! A8 s, t e( y# gu 用户和组的SID
2 f3 x' j/ V7 v$ R# P! C) k(1)Administrators或Power Users组帐户的SID被标记为拒绝(Deny)。
4 ]4 K ?7 _4 T) ^+ N, Z3 ]+ Y* T如果某个资源拒绝Administrators或Power Users访问,则进程无法访问该资源;而且进程会忽略除Deny之外的其他访问权限。$ U; p+ S$ Q( ]
(2)除了Admin、Administrators和Power Users组帐户外,其他帐户的SID都加入受限(Restricted)列表:当进程访问资源时,必须经过两次安全检查:一次是检查令牌中启用的SID,另一次是检查受限列表里的SID,只有两次检查都通过,才能访问成功。
* h0 a0 m& S& h+ J/ nu 特权(Privilege)
4 u( h! G9 E. c仅保留SeChangeNotificatonPrivilege(跳过遍历检查)特权。3 J9 E+ Z+ Y; a( N
难怪这时的IE特别安全,尽管是以管理员帐户Admin登录系统,但是IE进程不能访问用户的配置文件夹(%USERPROFILE%),连收藏夹、我的文档都不能访问! H W; Y% h( Y( Q& z
IE也不能在分区根目录写入文件,对注册表没有写的权限。同时只有SeChangeNotificatonPrivilege(跳过遍历检查)特权,可以防止病毒滥用特权做坏事。
. T* p: J$ ]# t6 D提示 配置文件夹ACL包括Admin和Administrators和SYSTEM,由于Administrators被标记为Deny,而Admin帐户没有对应的Restricted SID(在第二次安全检查时失败),所以无法访问。' Z0 x# l$ k; P* r* Z7 S: H
二、“基本用户”类型帮助IE强身健体: F$ n; x8 @( T" {. @. h, Z+ z
用“运行方式”运行IE浏览器,虽然非常安全,但是有以下两个缺陷:
3 w* L! w+ y; L& i; g) N& s& ou 限制太严格,例如IE浏览器无法加载收藏夹。0 s$ S; p+ z, V
u 每次运行IE浏览器,还需要增加额外的步骤,很不方便。' l' ~/ }7 ~0 P/ D/ f% D' ~" F+ {
本文将介绍如何给XP系统启用一个“基本用户”(Basic User)类型,这个“基本用户”(Basic User)类似于Windows Vista的“标准用户”(Standard User),只是默认没有启用。
4 L& ^% y" b ?4 n; Y% P8 G' p4 a1.启用基本用户类型3 H6 z# s$ I0 N. g
(1)打开注册表编辑器,定位到以下注册表项:
; ?: m8 E7 o/ z k. e! ^: HHKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers
3 ^* C" x* I& j(2)新建一个名为Levels的DOWRD键值,其数据数值为0x20000。
& O$ a+ T% q( O/ P" ]. ]+ m2.Runas命令5 C2 N) O3 x) \) ~5 m9 `
打开命令提示符窗口,运行以下命令:$ u' x$ v% p' ]- D2 y }
Runas /ShowTrustLevels
+ c7 e7 G+ a0 ~, `% X" M即可看到系统当前的信任级别,如附图所示,其中有一个“基本用户”,对应新增加的注册表键值(Levels:0x20000)。
* q" {) a4 f; v5 C( J7 t: Y; G- g" @! f( R7 O
4 A. a% B( i2 g5 @. q1 a0 x4 L
# z' h/ C/ B9 y/ Y! n1 e& a运行以下命令,即可以“基本用户”的身份启动IE浏览器:
8 s( D9 Z. w) y. o& I3 K$ _runas /trustlevel:基本用户 "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
9 {1 r; V2 B# O$ y% @8 _可以新建一个快捷方式,在项目位置里输入以上的命令,这样每次双击该快捷方式,就能够以“基本用户”的身份启动IE浏览器。# t5 f/ K; r2 U$ |8 j
3.软件限制策略3 C& L( T! U' {+ b$ o' ]
打开“本地安全策略”管理单元(如果第一次设置软件限制策略,请右键单击“软件限制策略”,选择“创建新的策略”菜单项),展开软件限制策略→安全级别,在右侧的详细窗格里可以看到“基本用户”,如附图所示,这和“Runas /ShowTrustLevels”命令看到的信任级别是一致的。
0 Y8 G0 Z3 {% a Z* Y
1 }7 Z0 Q1 K. I: M7 ~' O& ~0 A8 V0 i# E6 s8 D- Z7 M- G' {7 `! Y
( N# d/ v$ t. b: D1 s' G! |可以新建一个路径规则,如附图所示,指定安全级别为“基本用户”,这样每次运行IE浏览器,都可以运行在更安全的级别。
* K% U- l+ u( q* X V( I. N) t! x' F' ~7 Y
S1 j) I# v- I" f
9 @/ B0 ?9 C: i) H 每次新建的一条“基本用户”的软件限制策略,都会在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072注册表项下新增一个子项。如果是路径策略,则会新增一个Path子项;如果是散列策略,这会新增一个Hash子项。注册表项里的131072是什么?实际上就是前面增加的那个Levels:0x20000,0x20000正好就是131072。: B4 g, Y( }! z5 s* h" C9 n8 S+ d
4.查看基本用户的访问令牌
. E* C; B# y, V, n. S% J; k8 H用Process Explorer查看此时的IE浏览器属性,发现其访问令牌和Windows Vista的“标准用户”功能所获得访问令牌相似,如附图所示。
* ^( q6 k9 ?/ G* f8 r* r0 ]# ~
' a( V* N% d) a. q
2 \3 _+ w' U$ t& k
7 ?" M4 m, P' m$ Y6 V* q, RWindows Vista的标准用户、Windows XP的基本用户、和运行方式之间的区别如下:
* u3 P( W" O3 J4 f x5 y0 J1 E(1)Vista的“标准用户”比XP的“基本用户”多出了几个特权(Privilege),只是默认禁用。
$ ~/ R" e0 a( i1 m(2)XP的“基本用户”所获得的访问令牌相对于“运行方式”(Restricted Token)来说,限制相对少一些,只是将Administrators和Power Users组标志为Deny,而并没有将其他帐户放入Restricted SID列表,这样IE进程可以访问配置文件夹等其他资源(包括收藏夹和我的文档),可以读写HKEY_CURRENT_USER下的绝大多数注册表键值,但是仍然不能写HKEY_LOCAL_MACHINE下的注册表键值。
5 R8 K1 w4 ?% y0 y三、命令工具$ s; v" f! f2 E' t+ j
这里推荐Michael Howard所写的命令行工具DropMyRights。
5 v3 S B2 w" L: t% |+ fDropMyRights的使用语法如下:4 M G1 U, Z0 Y$ I0 W3 N
DropMyRights {path} [N|C|U]( X# c1 ~( Y& Z: Y' M/ i8 s$ }
这里的path是指应用程序的路径,N指代基本用户(Basic User),C指代受限用户(Restricted User),U是指不信任用户。
& G4 ?) n4 a5 Y9 P如果要以基本用户身份运行IE浏览器,可以创建一个快捷方式,将项目位置设置为:, t( n# K# k) F( e$ U' m( P/ Z+ r
DropMyRights "C:\Program Files\Internet Explorer\IEXPLORE.exe" N
& s2 w* B, i$ Y7 ^7 F& v6 u这样就可以在需要时双击该快捷方式,以更加的安全环境下运行IE浏览器。* q2 O! h& }% ]2 S, l# k5 A% v! M, N
四、注意
0 ^" G7 {. d( B1 e$ [+ H( y6 D; M; B; O- O b M
+ r# ]/ L- J, w1 G. T+ y! f: e7 S如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。
9 T1 K5 D1 w# q. V" m% K: D `7 Y
提示
3 E7 V0 t0 S8 M k5 {% E R1.本文部分内容参考自Michael Howard的文章《Browsing the Web and Reading E-mail Safely as an Administrator》(两篇),原文链接如下:' W2 x, }0 V# ^. U
http://msdn.microsoft.com/security/securecode/columns/default.aspx?pull=/library/en-us/dncode/html/secure11152004.asp' ^) ~. [1 F# r4 ]; N# r% F( t
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure01182005.asp
$ h% ~( O9 |6 U8 }& X: @, R# W* O9 [2.本文提到的Process Explorer,可以到以下网站下载:* F& B* J4 {& A3 f' @& W& j5 H
http://www.sysinternals.com/Utilities/ProcessExplorer.html
! `4 Y3 `5 x( v# R8 h本文提到的DropMyRights,可以到以下网站下载:
$ E+ i$ u# w1 ^9 }4 [( q6 shttp://download.microsoft.com/download/f/2/e/f2e49491-efde-4bca-9057-adc89c476ed4/DropMyRights.msi
3 f, E& T: |9 S. L4 o6 `3.Windows Vista的核心安全功能UAP,目前已经正式改名为UAC(User Account Control)。
% ^5 s8 y7 U8 `+ {% _
% \6 E7 n3 ~/ v3 y+ u. L1 Y8 G: l7 c Q+ P3 v* b
& m) x. @* M: W# s6 z
! T W# C* U5 U* u( a4 w6 {- e z* ]% Q
* r+ b! E* ?% [" j
Comments4 d2 c) k8 {- i" T. Z- K9 A! A) G
# re: IE浏览器,我要你安全、再安全些 , ~9 c3 o7 s, h. L
6 ^7 y! f& T, Z7 }" _5 R2 S如果IE被安装了太多插件(包括Spyware或Malware),要想启动一个无插件状态的IE,可以直接运行“"C:\Program Files\Internet Explorer\iexplore.exe" –extoff”(只适用于Vista下)。
* }- p4 P* \" a! G; Y# re: IE浏览器,我要你安全、再安全些
. n9 I c. M2 z) `
/ R) H7 r: l3 H `( y如果XP下的IE要实现NoAddon的功能,应该用什么办法呢?
9 u$ l9 N" e1 V0 h s# re: IE浏览器,我要你安全、再安全些
) n$ S7 Q+ U1 R4 D: p Z' u ]" R0 ?1 m- A& V& B
XP中的IE没有该参数,所以估计只能打开IE(此时已经加载所有插件),然后在IE的“工具”——“管理加载项”中一一禁用这些插件。
( U( V% k' r; }+ U3 S' s8 z# re: IE浏览器,我要你安全、再安全些
2 s0 S4 o: s9 ?% |) D3 q
0 @. C* x$ G. z5 I: Q9 X) _ h0 T% ^IE7有一种启动方式叫做“Start without Add-ons”
L; I* B# I/ o9 _# re: IE浏览器,我要你安全、再安全些
) _2 n2 Q y$ W# w4 N2 o8 C* D# h* D) w: I9 E' S- O4 }6 @
IE 7.0也有这个功能,太棒了,期待啊~~
/ [6 Y/ Q# L8 y: L IIE的很多常见问题就是由于第三方插件的冲突和干扰所导致的。
x# P' A4 Q( {# re: IE浏览器,我想你安全、再安全些
* l# W+ a, S# P! G5 p5 s) ]7 |% i' p) N6 r+ g) |
vista的安全模式里面我记得好象也有IE的安全模式,就是"Start without Add-ons" ' i. T6 V& a _" Z ]
# re: IE浏览器,我想你安全、再安全些--Updated 9 Q2 A5 u" @6 A- u, B, y. S( r
2 `8 N! f9 S- l' R3 p
如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。
/ ~; t5 w4 _) Q9 r5 I& I, O# re: IE浏览器,我想你安全、再安全些--Updated 6 b4 H r( J' l
9 L/ C" v6 k% y" `- F) v6 a
是的,在HelpOnline论坛上有很多关于IE种种故障的案例,我都是先建议禁止所有插件来看看是否为插件所导致的(事实证明很多情况下都是),如果不是再重装IE(也很方便,一个命令即可)。不过IE 7以前的版本没有一个很方便禁止所有插件的方法,而IE 7提供的这一模式基本等同与诊断模式。
4 ^. K+ G) x) M- ]8 Q# re: IE浏览器,我想你安全、再安全些--Updated
% F2 j% c. y3 m/ r5 [" ^
& k* {% a, K9 f. L我也遇到过很多的这样的问题,基本上都是先卸载掉IE的插件就能解决,甚至都不需要重新安装IE.
8 b6 y; d- v& S4 a$ ~: y# re: IE浏览器,我想你安全、再安全些--Updated 8 [+ K, s/ ~5 u L
; R/ W% w- @8 i. h' h& u( J* K$ U2 ?$ ]
嗯,遇到IE 6.0 SP2相关问题,可以采用以下常规排错方法: * c: `0 c& f ?+ C, d; _
1.在IE浏览器窗口上单击工具、Internet选项。
; F- ^% E' r, Z$ f" v- q在打开的对话框的“常规”里单击删除文件,并勾选“删除所有脱机文件”,然后单击确定。 & T* L8 h* j5 g; ^4 S
单击删除Cookies,然后单击确定。 2 R+ t' ]0 E3 F% @$ ?
单击清除历史,然后单击确定。
6 ]" E* r" z& ^6 c' a) _" h2.在Internet选项的“高级”标签页,确保清空“启用第三方浏览器扩展”复选框。 9 m+ {1 P, P) F
3.在Internet选项对话框上切换到“程序”标签页,然后单击管理加载项。 ) h9 D/ c1 q+ @* n/ U& [+ j% u d
在打开的对话框上,单击“发行者”,然后禁用所有发行者不是“Microsoft Corporation”的加载项。
. I* F5 W! @4 s5 r. D, X: a# x单击确定,保存设置。
4 j# O0 e6 W: P2 u- X9 H# re: IE浏览器,我想你安全、再安全些--Updated
* @1 F j. i+ r' i" c' E- p% B7 \3 V. E& A0 Z
盆盆,我不太擅长组策略的设置,我有一个疑问,就是你这种限制之后其他的IE核心的浏览器的权限是否也会降下来呢? 还有这个组策略是否仅针对由explorer进程下创建的IE进程有限制作用呢? ! l# c+ l' p6 g& L( o) K
当其他和explorer差不多同级的进程创建了浏览器进程,后者是否会继承前者的权限呢? |
|