|
IE浏览器,我想你安全、再安全些--Updated
' X! \. d0 u& `5 b4 gIE浏览器是一个颇具争议的组件,不少用户一想到IE,恐怕脑子里就会浮现起曾经遭遇过的惨状:主页被恶意修改,IE动辄无缘无故关闭,注册表被改得乱七八糟,莫名其妙跳出网页……5 a3 V5 k' M& B0 ~$ |6 V9 S
也难怪, IE是连接Internet的门户,难免会受病毒蠕虫等的“骚扰”。想让IE练就 “金刚不坏”之体,那就得首先分析一下恶意网页为什么可以为所欲为:大多数用户都是用管理员身份登录系统,IE默认获得管理员的访问令牌,这样网页中的恶意代码就会以最高的特权对系统进行篡改。只有让IE运行在更低的特权级别,才能防止恶意网页破坏系统。
& X1 D! O# S% ?7 Z, ^* Y$ n n' T怎样才能让IE以更低的特权运行?Windows Vista可以满足要求,其UAC功能可以让所有用户进程运行在Standard User的特权级别,但是Vista还“犹抱琵琶半遮面”,其实我们的XP一样可以达到类似的目的!
& o: Y& \$ f6 r" e3 J( s3 I2 q提示 为了讲述的方便,这里假设以管理员帐户Admin登录系统。" ` @' r1 q& Y: O" a* ~
一、“运行方式”给IE穿上铁布衫 i& f3 C! W$ D2 O1 b
右键单击IE的快捷方式,选择“运行方式”命令,在打开对话框上,确保勾选“保护我的计算机和数据不受未授权程序的活动影响”复选框,如下图所示。4 \5 q) x, ~. v. t- q
3 }& k, n L0 o8 e5 T! ?% Z$ L; K, H- U0 |
3 j8 e* g# M7 U
用这种方法启动IE,对几个“臭名卓著”的恶意网站进行测试,结果非常安全。同时还能用来对付DuDu加速器、3721等流氓插件!0 @! Z Y. ~# B' _' z0 b
为什么?原来这时的IE浏览器会获得一个受限的访问令牌(Restricted Token),无法对系统目录和注册表进行写操作,网页中的恶意代码也就没办法破坏系统。
9 n4 `7 k5 z L2 o当然,还得让实验来说话:
) a; F6 ]' }! D0 u/ x ~分别在“运行方式”和正常模式下打开IE浏览器,然后用Process Explorer双击打开这两个IE进程的属性对话框,切换到“Security”标签页,即可查看这两个进程所获得的访问令牌,如下图所示。( _( @ x. k8 J. U3 C" Y) C4 {
" ?2 R: |0 b7 a7 f) Q- Y4 W
. O _, ~ G6 y' @$ J" I很显然,相对于正常模式,“运行方式”打开IE进程所获得的受限令牌,其内容发生了以下两大变化:
; \1 D" I0 C" ^' Gu 用户和组的SID0 f1 \2 n2 ~0 E2 A
(1)Administrators或Power Users组帐户的SID被标记为拒绝(Deny)。
; [; V- z# c" J W& g/ t" T如果某个资源拒绝Administrators或Power Users访问,则进程无法访问该资源;而且进程会忽略除Deny之外的其他访问权限。
1 b2 D; K4 B( _+ U3 i(2)除了Admin、Administrators和Power Users组帐户外,其他帐户的SID都加入受限(Restricted)列表:当进程访问资源时,必须经过两次安全检查:一次是检查令牌中启用的SID,另一次是检查受限列表里的SID,只有两次检查都通过,才能访问成功。- n- m/ b9 g$ e7 g
u 特权(Privilege)
. ?) V: J, I' s# b# c5 U" t' h+ V仅保留SeChangeNotificatonPrivilege(跳过遍历检查)特权。
9 ~3 ]. e/ u6 |7 m, k难怪这时的IE特别安全,尽管是以管理员帐户Admin登录系统,但是IE进程不能访问用户的配置文件夹(%USERPROFILE%),连收藏夹、我的文档都不能访问!" W6 k, o, a6 n% w
IE也不能在分区根目录写入文件,对注册表没有写的权限。同时只有SeChangeNotificatonPrivilege(跳过遍历检查)特权,可以防止病毒滥用特权做坏事。. Y7 d: G- ]2 [' Z; C; K+ Y% u6 z
提示 配置文件夹ACL包括Admin和Administrators和SYSTEM,由于Administrators被标记为Deny,而Admin帐户没有对应的Restricted SID(在第二次安全检查时失败),所以无法访问。8 A, p6 V5 H9 w
二、“基本用户”类型帮助IE强身健体
O% U0 q2 L7 Z. V E# s8 b1 d. I用“运行方式”运行IE浏览器,虽然非常安全,但是有以下两个缺陷:
. [; o$ ~; b) R* `* _) t; mu 限制太严格,例如IE浏览器无法加载收藏夹。( @$ p# d& X. J, E# T
u 每次运行IE浏览器,还需要增加额外的步骤,很不方便。+ V' P3 x W. m% g% K; A
本文将介绍如何给XP系统启用一个“基本用户”(Basic User)类型,这个“基本用户”(Basic User)类似于Windows Vista的“标准用户”(Standard User),只是默认没有启用。
1 S7 f9 B8 e8 K9 x1.启用基本用户类型
: W ^: N) e8 K/ M7 V1 F* g(1)打开注册表编辑器,定位到以下注册表项:
. q7 H, H, D& G4 q/ g0 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers2 B# s8 j! j2 {4 V7 _) g2 b4 a
(2)新建一个名为Levels的DOWRD键值,其数据数值为0x20000。/ F- [* a. ]3 s9 n$ F5 I
2.Runas命令7 D5 O3 s" B9 n1 i2 _3 {8 l2 y
打开命令提示符窗口,运行以下命令:4 k8 M1 N0 F) p. s
Runas /ShowTrustLevels0 x& V( y. f2 |+ P9 P
即可看到系统当前的信任级别,如附图所示,其中有一个“基本用户”,对应新增加的注册表键值(Levels:0x20000)。
! _% \$ o% L) H3 g8 `. p Y& {" c3 s8 p) b" `8 g, M3 O! ]5 W
5 M( o$ n2 ]5 ~6 [" q+ X4 P
, |1 u# b k; Z8 i: u# I$ q运行以下命令,即可以“基本用户”的身份启动IE浏览器:
! [# _ {4 L) ^4 Z# y8 @1 U9 Yrunas /trustlevel:基本用户 "C:\Program Files\Internet Explorer\IEXPLORE.EXE"3 h Q5 R2 m0 {1 S' G
可以新建一个快捷方式,在项目位置里输入以上的命令,这样每次双击该快捷方式,就能够以“基本用户”的身份启动IE浏览器。& U$ q" X# L6 ?% P; [ B
3.软件限制策略( ?: ]# q7 P' j9 |& k$ I3 c$ M; {
打开“本地安全策略”管理单元(如果第一次设置软件限制策略,请右键单击“软件限制策略”,选择“创建新的策略”菜单项),展开软件限制策略→安全级别,在右侧的详细窗格里可以看到“基本用户”,如附图所示,这和“Runas /ShowTrustLevels”命令看到的信任级别是一致的。
. C( W8 w- j K2 n1 j# Z/ a) C& c2 ?" w [" F
3 W- w- w1 V4 x# u& T. t: N4 m
3 a: j; g0 [) W$ {9 H可以新建一个路径规则,如附图所示,指定安全级别为“基本用户”,这样每次运行IE浏览器,都可以运行在更安全的级别。& l% i5 u( J5 J; H
2 W' |1 x, Y8 Y" F* M, M( O
- D* ?' W- y! b1 ~: g O! U& O- d4 c/ L8 }
每次新建的一条“基本用户”的软件限制策略,都会在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072注册表项下新增一个子项。如果是路径策略,则会新增一个Path子项;如果是散列策略,这会新增一个Hash子项。注册表项里的131072是什么?实际上就是前面增加的那个Levels:0x20000,0x20000正好就是131072。/ s% S- f" d' `
4.查看基本用户的访问令牌 ]$ [3 j& ]3 K
用Process Explorer查看此时的IE浏览器属性,发现其访问令牌和Windows Vista的“标准用户”功能所获得访问令牌相似,如附图所示。( L( B9 N" y- ?8 F( e! X
( c9 i% Z6 m; A. G3 T
+ O* @2 S$ A8 z3 _. @; ~$ M: ~# D- H( W9 R2 v. a$ g5 e9 O
Windows Vista的标准用户、Windows XP的基本用户、和运行方式之间的区别如下:
8 e- E( o0 o1 `( a! \; Z(1)Vista的“标准用户”比XP的“基本用户”多出了几个特权(Privilege),只是默认禁用。
9 _ e F& {9 G5 M/ P. a(2)XP的“基本用户”所获得的访问令牌相对于“运行方式”(Restricted Token)来说,限制相对少一些,只是将Administrators和Power Users组标志为Deny,而并没有将其他帐户放入Restricted SID列表,这样IE进程可以访问配置文件夹等其他资源(包括收藏夹和我的文档),可以读写HKEY_CURRENT_USER下的绝大多数注册表键值,但是仍然不能写HKEY_LOCAL_MACHINE下的注册表键值。
! D' _4 m2 U* i6 [9 [5 K" E三、命令工具
+ ~# { q0 U; \, U" H这里推荐Michael Howard所写的命令行工具DropMyRights。
% M. n* I" e8 s0 b& MDropMyRights的使用语法如下:" B) T3 d! P. U# J' w. C8 r
DropMyRights {path} [N|C|U]
( ?9 Z- d- Y' y9 f: R+ z8 z& q这里的path是指应用程序的路径,N指代基本用户(Basic User),C指代受限用户(Restricted User),U是指不信任用户。. A. w- V" C/ |5 C6 X
如果要以基本用户身份运行IE浏览器,可以创建一个快捷方式,将项目位置设置为:
8 R. K' |3 Z: H* m. K9 T) B& k. SDropMyRights "C:\Program Files\Internet Explorer\IEXPLORE.exe" N% y' g9 Q" p4 y
这样就可以在需要时双击该快捷方式,以更加的安全环境下运行IE浏览器。+ h! G; `9 _5 F2 h5 Q2 N
四、注意# ~% w/ n, n/ }9 s
) b+ }% }$ V5 _: S* \( z& }8 M
1 c/ S! a$ _+ l5 d, R7 C如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。
) C2 w2 t- K- J s4 E, T7 z5 G
9 ^' g8 E* U0 p# b( S, G提示+ L- F S0 S! G) T9 I# K. C
1.本文部分内容参考自Michael Howard的文章《Browsing the Web and Reading E-mail Safely as an Administrator》(两篇),原文链接如下:! u) p0 B, L+ i! J# s
http://msdn.microsoft.com/security/securecode/columns/default.aspx?pull=/library/en-us/dncode/html/secure11152004.asp
X' C/ Q% T# I7 V' S$ |! Vhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure01182005.asp
: t5 r" o, N, u5 c) s- l& K2.本文提到的Process Explorer,可以到以下网站下载:
2 B7 l: q; K" ~, v; D* ~http://www.sysinternals.com/Utilities/ProcessExplorer.html
( M5 _) {; j. u8 T本文提到的DropMyRights,可以到以下网站下载:( v7 @: I+ o) R. D
http://download.microsoft.com/download/f/2/e/f2e49491-efde-4bca-9057-adc89c476ed4/DropMyRights.msi; s; a* W8 `( J
3.Windows Vista的核心安全功能UAP,目前已经正式改名为UAC(User Account Control)。
" Z* i7 F9 P1 p' K3 L) ]1 s% h
3 z0 w. {5 e: @7 ~- a, Z; Z
+ @ p0 `9 b9 `) }1 w1 h2 y/ k n. m# g5 _% W1 t5 o
8 ^. {2 m- r0 a w# `
2 X) P3 {5 I% I* k* `" Q" Y" [2 |- n$ ~% [
Comments
9 Z1 F. h8 n+ o& J0 w) v# re: IE浏览器,我要你安全、再安全些
- L0 t/ I$ a) g) }. M% ?: @2 l7 [( \9 e
如果IE被安装了太多插件(包括Spyware或Malware),要想启动一个无插件状态的IE,可以直接运行“"C:\Program Files\Internet Explorer\iexplore.exe" –extoff”(只适用于Vista下)。
/ ?; W! u6 Y; \, a: L9 U# re: IE浏览器,我要你安全、再安全些
! X/ t! C+ M* [/ b+ B- p' S# ^5 k6 _/ ^: W" u
如果XP下的IE要实现NoAddon的功能,应该用什么办法呢? : z% D3 x7 Z+ b
# re: IE浏览器,我要你安全、再安全些
0 a8 u/ x0 H' `" X# v( m2 L4 [
5 K; P2 C! T( b2 w1 }( p1 R$ i! MXP中的IE没有该参数,所以估计只能打开IE(此时已经加载所有插件),然后在IE的“工具”——“管理加载项”中一一禁用这些插件。 , x- M# |' O4 |" ~
# re: IE浏览器,我要你安全、再安全些 8 @" A4 U+ Q7 e7 R$ J
8 @: a0 s( c5 U5 @! s2 {
IE7有一种启动方式叫做“Start without Add-ons” ; S; l! m5 {) @8 }9 @
# re: IE浏览器,我要你安全、再安全些 : E. ?- i2 F1 |% \& g
8 H. I9 p+ _; [IE 7.0也有这个功能,太棒了,期待啊~~ 4 @8 H1 y# x, i
IE的很多常见问题就是由于第三方插件的冲突和干扰所导致的。
$ p8 ^. L6 L" A& b5 L1 G8 A# re: IE浏览器,我想你安全、再安全些
6 _. L2 T, `; _+ ^( i, _4 @" p' u
& R/ K# s& R! @# e: E4 x& f3 pvista的安全模式里面我记得好象也有IE的安全模式,就是"Start without Add-ons"
7 M: T# ~2 ~6 }# X# b# re: IE浏览器,我想你安全、再安全些--Updated
; Z: j/ T& B3 c4 t$ z( B- ^+ A3 X6 N$ `/ l5 Z; x
如果确实需要安装某些IE插件、或者要运行Windows更新等需要管理员权限的任务,请暂时禁用“软件限制策略”,否则这些管理任务将无法顺利完成,例如笔者曾经死活安装不上MSN Space的上传图片控件,系统也不报错,原因就是IE浏览器运行在Basic User特权级别下。这里特别期待Vista,因为Vista的UAC可以自动识别是否需要管理员特权。
: u) d& e" q" J# re: IE浏览器,我想你安全、再安全些--Updated $ o0 M' r& f: G" A2 a
- s: z. |% l$ O% }是的,在HelpOnline论坛上有很多关于IE种种故障的案例,我都是先建议禁止所有插件来看看是否为插件所导致的(事实证明很多情况下都是),如果不是再重装IE(也很方便,一个命令即可)。不过IE 7以前的版本没有一个很方便禁止所有插件的方法,而IE 7提供的这一模式基本等同与诊断模式。 / h( c# s, L# I1 [; O2 o% R* {
# re: IE浏览器,我想你安全、再安全些--Updated
0 u- \8 W/ V( T0 n' ~7 K) f& L! t3 k4 f* C
我也遇到过很多的这样的问题,基本上都是先卸载掉IE的插件就能解决,甚至都不需要重新安装IE.
; {7 w; N, U3 }$ n0 q) P# re: IE浏览器,我想你安全、再安全些--Updated
! X s/ i+ N2 O6 a8 c
* _! R' @/ S3 p+ N' A- k3 l嗯,遇到IE 6.0 SP2相关问题,可以采用以下常规排错方法: 0 b2 b: ~( E3 R( V. j
1.在IE浏览器窗口上单击工具、Internet选项。
( r1 S) X6 o, `9 ]在打开的对话框的“常规”里单击删除文件,并勾选“删除所有脱机文件”,然后单击确定。
$ H" l0 K2 @$ p+ v1 U7 Q9 T单击删除Cookies,然后单击确定。 ! e* K- h# G d3 e9 [& ?
单击清除历史,然后单击确定。 " J0 l* n1 d5 G( i- s% P
2.在Internet选项的“高级”标签页,确保清空“启用第三方浏览器扩展”复选框。
$ P4 D% E1 Z9 l% m" Z1 s1 z3.在Internet选项对话框上切换到“程序”标签页,然后单击管理加载项。
5 E) W; I$ K- m在打开的对话框上,单击“发行者”,然后禁用所有发行者不是“Microsoft Corporation”的加载项。
9 X+ {; H# J( y$ D( n单击确定,保存设置。 7 m$ z+ Z( P' J& q5 o4 c9 g2 m- a' U
# re: IE浏览器,我想你安全、再安全些--Updated 0 x! m- q2 R9 c
* ~# m5 t0 Z" I" B: v盆盆,我不太擅长组策略的设置,我有一个疑问,就是你这种限制之后其他的IE核心的浏览器的权限是否也会降下来呢? 还有这个组策略是否仅针对由explorer进程下创建的IE进程有限制作用呢? + H# G; [4 E* N. F& g7 G
当其他和explorer差不多同级的进程创建了浏览器进程,后者是否会继承前者的权限呢? |
|