|
|
|
一. 防火墙是什么? 5 J' c# ^ y; [
; I7 G! U, R5 {* S0 s+ D+ q- t
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方3 s6 C$ T+ H# X, `6 }. |3 e' u6 L
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制
/ J$ q) x$ y' J* W尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
4 R0 O; N& i9 W0 L和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更2 d3 u I6 P3 a+ h. o9 X( r
改、拷贝、毁坏你的重要信息。
) O9 }, o* {2 e, H' ~1 B9 K* X) K; P- J: ~
二.防火墙的安全技术分析
. N. u" s. m6 v g6 C! A$ o s4 C/ }) k0 ~: ?
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火
1 E' j `. {/ y j% F; O- f5 V0 x墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认
3 y/ y) ]3 W+ S7 v. z U识。
! Q2 p3 p# p1 Y( y* f
2 ?. [% b( W5 a; H/ R" {2 j 1.正确选用、合理配置防火墙非常不容易
% s! S0 S9 j. K
, w. n+ d3 s/ v9 d- k 防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系3 ^* x" x( w* g) g0 s% V: a
统,配置有效的防火墙应遵循这样四个基本步骤:
8 L. `3 F! S) D" B4 X' o8 n
: m! U8 Z/ A$ R% s a. 风险分析;
: n7 j9 f7 h. Y7 t9 q) U5 _6 n( y# L
b. 需求分析; 7 U# D+ \' s: L8 H# p
* D5 N6 s( v# v. u' Q
c. 确立安全政策;
# y- ]5 s# s& F4 i1 P+ C) b* Z$ I3 O9 U) w$ z
d. 选择准确的防护手段,并使之与安全政策保持一致。 ( [( B8 K; O8 M& K H& _
( a% x) R" _- l% O u4 P
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只) @: D* c! Z) K' m9 o; M% z0 M7 Y2 |0 s
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
1 k. K @6 K/ q7 \7 h火墙能否“防火”还是个问题。
# b5 x! F$ L) Q$ N
( y6 o; F6 c8 w3 m1 Y 2.需要正确评估防火墙的失效状态 ' t9 c% X; O. V& _4 I& o
4 k9 D% Q& W5 l/ _& d- I& V 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
+ x1 W( S$ z; f0 |: z/ U* J能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻! Y1 ]# f& ]: y/ h& X. X
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正% v5 ?$ j( }5 {! V) J9 n
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
8 Q1 B! E7 }! k [; r0 ~据通行;d.关闭并允许所有的数据通行。
3 ] l* S. g; t1 B& ^9 [, G+ K4 P$ S4 e( j; }: _* W) B/ I7 \/ Z
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进. ~4 x: z+ W" @, W
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐, Y6 Q2 @" P% o8 _! W
患。3.防火墙必须进行动态维护
. u6 X& S' \: @' ^+ w8 k$ ^1 Z' q, m( {
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作1 i$ N7 z2 Q7 g) b! b
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动9 }" ? C& Z. e; Z8 g
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,
* [* ^! j; Q7 G: j7 g此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
6 }) C4 p- ^6 g7 ^2 m+ s* F/ ^
6 r$ D7 }% J0 W ?( r# e' w' w$ e 4.目前很难对防火墙进行测试验证
$ F" l* G4 b) r4 I* B8 B2 Q2 p$ U' ^( t
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚3 v A# o3 N e
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
1 S5 t( o2 S' G- L D& ]4 V大:
/ A9 G3 g" X) k- }
" z( R& C V5 c1 c$ c, g a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的 r1 u8 I, D/ n+ p+ \ P6 e/ J
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
* ]& L0 n0 m( W0 D0 g( A |* ^8 I8 k的工具软件。
1 V2 J' c- q9 Q( w' }
4 b0 ~ a) ]( r: H$ R b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作7 w j |/ V7 F2 t; l' W8 }- Y
难以达到既定的效果。 3 s7 X" a F: _' p$ c+ b
s0 Z6 N! V3 ]: M+ ?& U
c.选择“谁”进行公正的测试也是一个问题。 + C! F/ Z) F2 F6 v9 `
% {9 [* B) [6 V! Z s* D5 E8 x 可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,2 M: F- o7 i& {: Q/ M c
进而提出这样一个问题:不进行测试,何以证明防火墙安全?
/ k, a. L% r9 i- Y$ ` y6 x7 F+ j W) @5 J, ?3 B5 h
5.非法攻击防火墙的基本“招数” & O5 c+ D/ |6 U* f1 `. D/ m" c
" a ]: [/ {2 p; G
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
% z, T* t+ @' h- J7 W$ R% x了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值; g" k$ r# w! | r1 s( H) f* V
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。 " \8 ?2 k* g$ j
$ x5 }/ ]! I/ Q/ U& n8 o- I( H
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰6 R( N1 D/ q+ `& M/ q
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接
! [/ O. C, M% B" Y+ i口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
$ M+ n, L5 [# w |4 J信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地
! s% P R: u F$ r& p址缺乏识别和验证的机制。 9 X# W2 K6 { z% t- w' x. t2 M
' C- D9 M$ Z) h; W
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
7 e! l7 r5 Y1 Y1 N/ a) W% I# E请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初6 C$ c+ `2 o& r& t7 e
始序列号ISN。
: _! r# b' N% d6 D9 r C
4 |9 [* J, _, I l, s 具体分三个步骤: ) y: k" V+ s4 m# a, p3 u; T6 C
. W# f6 S: x: L# d" a% A7 @1 R; W# d 1.主机A产生它的ISN,传送给主机B,请求建立连接;
# H3 u2 S% C2 K2 ?3 T) s
" _8 P1 s( S V 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
) j8 q8 g, e! lACK一同返回给A; 0 A) W a8 o: v% j0 }2 W8 H, ^
1 @! \/ {0 y7 b( O9 e/ o 3. A再将B传送来的ISN及应答信息ACK返回给B。 % V; H- V/ v9 l; q& O, |
6 u2 ?3 k9 _) r4 `/ `# D0 p 至此,正常情况,主机A与B的TCP连接就建立起来了。
" j; ?/ Z) @6 i; e* t1 u
* p: }- c5 t6 i/ T0 U IP地址欺骗攻击的第一步是切断可信赖主机。 2 a# x7 ^. C( ]2 t9 o* r
8 M) ~* d6 K; d8 B$ ?) p
这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
/ v. G, R- _5 B不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
) _& ^3 p5 Y/ `* @能发出无法建立连接的RST包而无暇顾及其他。
/ V: L( \0 k; ^5 w0 u+ M" R) ~3 D9 o/ ]9 A# y C, k
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
8 j& C8 P1 Z; [3 J9 j! M通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连1 ~3 l/ ^+ Q j8 k) C
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和: m9 t6 v9 C( O8 l8 D- B) K5 p
确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目# f0 M" ?$ z9 a
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从) o3 S% O3 c5 q, j4 _
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击7 [( ]( z# ?; ?4 Z7 h
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
3 W- H$ |1 y- v# m* P- Q, ^4 E1 a0 y3 u: S0 n
现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
2 c0 |# H* m9 U& h4 e& o; Q6 G机。 8 ^( q3 M# X* |* `+ W* E# b3 E$ S
J7 l( R3 c% q& s4 ^* U 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过
* H. |* z( n6 c这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
* ~3 M0 }+ q$ ?& W7 N反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
' X! T0 ]/ o9 X: U8 o# Z7 W( k6 l络。 + j) d( _* @4 ]" d! O1 T3 Q% ^* x
2 q i t$ K; V! |5 ?
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;& j9 C$ r7 a0 d- s/ o z
不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
$ a0 d) Y$ Q3 c0 v ^/ X9 gRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
7 `# v8 G0 H# c% o& D& h许Win95/NT文件共享;Open端口。 " | B2 t1 W* [. v! v c9 k/ s# ]. V* s
4 ]! F8 z7 w+ U2 ^
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防
9 Z: H9 w. b* R' b1 Y+ v' S火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的& L) j1 l$ x6 [3 c, q: `7 d
职能,处于失效状态。 : u' | s: o5 y: _) c. B
9 ]0 C1 b$ E# C7 p. i
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,
# ?5 i# ^3 v3 Z* t! S7 K6 a& K随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件
# j9 e4 |* d$ w$ r7 H* ~或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期7 Y5 `" O& D5 F
望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,, A7 p! y D, E* ?8 @% u' x; a p
因此不仅涉及网络安全,还涉及主机安全问题。 ) D1 k$ R1 h8 _* F3 o" {
; c# \2 v4 W% r( N7 Y7 `8 Q8 b& _0 ?6 Z 以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,7 [) K1 F# U/ G
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则; t; c0 t, F$ r
无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
, D* y) S6 |; I* k# w
8 J% u7 \# o3 e6 l$ q( B9 W2 [1 b 目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存
$ o. S0 v" v. r( b- K" [在各种网络外部或网络内部攻击防火墙的技术手段。
p' q* N+ A; g7 W$ [% {- U3 {4 Z: k
& ]% @8 u! A; |2 O 三.防火墙的基本类型 @% }! \0 m0 J5 }% D2 O; F
2 u t7 }. X b4 w) {
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应+ F; g( J2 N( Q2 P% m: e* g
用级网关、电路级网关和规则检查防火墙。 # I8 Z0 A& c4 I8 J8 L
4 c5 Q( @. o( h+ i* n1 _
1.网络级防火墙
+ w" X, R( ^' Z, A6 U' T
* k2 r( X5 {7 b; `: s; X0 }4 D 一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过5 Z7 b6 N. l1 D% V, q( Q5 r
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
! ~# |$ k1 j! w1 ] z0 U* Z能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
3 A! w# Q% b/ z" u( W. i0 r自何方,去向何处。 $ N/ G! {# c1 G( {& S
/ \) @ v" r- _* j& }1 |3 U' ~ 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的2 ~0 C( X0 u+ K) O9 C, \
连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定! w5 g) E; B2 @: k, j# `4 r! K! N/ {
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直, f( D* c, B! v) O9 x
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默9 O; B. O; F2 H9 ^7 C
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
9 A2 S- T% f" t6 j( ? qTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如1 y6 ^! I# M0 p
Telnet、FTP连接。
* D4 r6 c, P7 b0 F. c9 Q3 e L
2 E$ q g9 ]; `3 A7 q/ N 下面是某一网络级防火墙的访问控制规则: 7 N$ C2 Z, s! d& E6 Z$ c( \
. M0 e, d: ?3 n
(1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1;
" D0 Y5 U' @1 d! C! a
8 }; y n( h! \( G* l; E5 o% B (2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主- D9 n2 }% @' T/ ]/ k
机150.0.
1 [" C- T! m" l1 U# S$ S6 b% z/ `
) S1 b( g' w5 Y5 G 0.2上; 4 S* o/ X( z/ o9 F7 U% X3 ]! Y
5 U) ^5 M, I! x- z3 M% c
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3; $ h8 g# y/ M$ E n
: R- p7 q" U% }* ]+ w (4)允许任何WWW数据(80口)通过;
9 G* o: r/ Z7 J7 r/ O
# b9 \( d# U. E% e, P2 g (5)不允许其他数据包进入。
, j( j, k1 S0 J; d8 _+ e
6 h+ P c, y* q9 g) c; V 网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
8 Z& k1 I( B& E5 I+ t很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
# F3 [+ M0 |. p" `8 u
+ u/ P; O( l4 l5 q6 I5 X: T 2.应用级网关 % O8 `% g b3 s8 F- F, r+ ?% I
; m/ L8 M& I! F U; F8 [3 G
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
) A+ B* d. s/ l4 Q3 G r( Z& ?- n服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
) W" e+ j4 d: H6 S! ?上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议! C3 k0 M' Z) L* y7 V5 F
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
+ I) p7 g8 P2 Q( v# B% S7 e, T0 h$ a5 b' A/ _; q; n1 N% K% e
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
6 T- H! A& ^1 w! ?' r1 tFTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
8 v: \! U! x! n: u5 W3 Q. K代理服务,它们将通过网络级防火墙和一般的代理服务。 2 D7 M+ z. ?5 K" }! y; T
) S- p( L; d L, I
应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,% W6 p2 A7 @9 _# t
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
+ q" t3 k- S5 c防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录' G3 x/ ?, o, m
(Login) 才能访问Internet或Intranet。 / D: m% L/ L1 z
/ b6 D* s! d$ o2 I 3.电路级网关 ' U+ J K. R# e# x5 U! Q
0 Y, {% e! _! A% j5 X
电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手, b9 z: `* P% F
信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
( j4 {* D; Y9 B7 C1 }上来过滤数据包,这样比包过滤防火墙要高二层。
( a2 @4 E/ B' m
! P5 l3 H, e7 K R 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结, f0 I; Z3 Z! h% _0 \) k5 ?3 j# C7 G
合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;3 E- p2 r+ b; \# T, M* k. {9 i! O
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
' `7 @+ z, v' s全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一
, W$ i% M5 D% F) \个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP4 ^, |( n8 K, D2 M: _
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
: F) t3 X0 } h( V因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 ' K, ~' C' R4 B- F8 S4 X, k' ]
0 V+ K! m+ u4 l4 Q 4.规则检查防火墙 , E4 {: l; g4 q! Z; E+ b" _
% V, r/ a0 D0 p
该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过; z8 K' {5 i# \7 u' T
滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤) F6 V& i! C# | c Z. M/ V9 W8 h
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否
. U8 Y' F9 G- R0 w逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内6 H W4 d& V; F+ O. r9 Z5 o
容,查看这些内容是否能符合公司网络的安全规则。
; Q8 |6 _; h5 c
" t) k# }* a9 {" K 规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,
/ I* `2 q+ H2 o% r `& p它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和
; s+ D, g6 m- Y7 {7 B1 x6 j不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而' [, y0 | s7 C; y2 E. n7 M2 O
是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式1 m" N# ]3 K6 M( f$ j* \
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。 % W) u, e2 q! G( _5 l+ u3 I7 B) O
+ ^/ t/ V+ l0 w( r 目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
4 L2 b& i. @% j: k户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
" D$ Z& H6 G; a5 P6 D0 \: w G个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一
% |4 b; i9 n; U, ?3 K/ t7 g( y. kOnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1
" R: u. ^' ^* n: m1 g5 A. p防火墙都是一种规则 检查防火墙。
% b$ g3 F1 p$ J' w7 a( \+ D+ _' ?) w3 k2 n
从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
) z. M# _) v$ e. A: W是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的$ a: ` A! f' ~
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽
% J% l3 d- @( _4 A( Y3 n3 d! O: `查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数
$ }: C* J4 F' m7 M据。 |
|