|
一. 防火墙是什么?
u9 A0 K k0 ~! U& e
9 v9 f% ]. P4 O& L, d$ N T @4 P* S 所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方
8 b* [" H. ]2 V, u3 r2 x法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制
9 p3 r. i, ^/ e0 T尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人3 w. b# \" P: V$ d+ v/ _% R
和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更
4 a4 @9 S- d+ G! q3 H改、拷贝、毁坏你的重要信息。
+ V5 |5 Q5 b- O. b* |! g: t$ v4 _" S( o' u/ `% Z0 o
二.防火墙的安全技术分析 1 @( c0 X2 C2 J4 A8 n6 Q
. k9 n2 Y. r3 l n% c 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火
$ ^. j+ m0 X2 M( l" h7 l墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认: E% V7 u9 r: P8 j: Y+ _2 v, m
识。 * Z5 F# s5 K! V9 `
0 \) M0 ?2 I8 x2 h 1.正确选用、合理配置防火墙非常不容易 ! L: o [8 e9 O0 ^' a2 l
, y: S [" C3 i6 x' \0 {5 D 防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
6 f8 r) X# R# m6 t1 }统,配置有效的防火墙应遵循这样四个基本步骤:
. K0 e, k& s6 H7 I4 V7 g+ S$ ^, B8 T# M9 c9 x# s
a. 风险分析; 7 q/ R0 j' b& w3 u
: t4 u2 s" T# i) Z) u- S' L" p3 T( P4 Y
b. 需求分析; ! I# T; c, ^$ J C% K
2 G5 R0 p0 i$ q, ~! \0 N/ `- N
c. 确立安全政策; ; L9 c( g8 \7 i) e5 p
- H- c. v% \9 }' y* e2 b7 x' Q
d. 选择准确的防护手段,并使之与安全政策保持一致。 ! }# l; Y) A) u' s* T# n' f
& M/ l ]6 C+ B
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只& r e! n5 q3 E* T
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
/ N9 R% {! H- e火墙能否“防火”还是个问题。
8 T4 ]) L! v" G
* M& }* O2 o4 S 2.需要正确评估防火墙的失效状态 * R. E0 i6 n0 O) a$ O/ g
- ^! Z2 c8 o5 N9 d2 c5 r 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,6 q) T/ }: Q! F# T6 ?7 E0 g
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻/ F( e0 b6 X; n4 r
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正" O; u' ?( x* u' i0 {% R9 O! l
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数9 n; i- {- b4 Q: i
据通行;d.关闭并允许所有的数据通行。 ( O, d+ \- U: [/ `
3 J( h* D, O: B* o0 n9 M: ~1 L2 N( w: v 前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进$ h: {0 ]; p6 K' G9 F& L" M
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐" d( t( a3 A8 Q( e+ b9 ]+ ^
患。3.防火墙必须进行动态维护
1 s3 ^' S4 X( Y; `5 o. _5 ~/ N
$ R( t( [; S5 A! Q 防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作# R. p& r" p; U2 `0 E. H$ V+ R) _3 R
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动$ [( M' n9 w! M3 L$ v" ?6 N( b
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,
1 l2 P. C3 r* ~此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。 4 S; h5 C3 z! {! H) ^* M- U
; y4 J' w \+ \. |7 c
4.目前很难对防火墙进行测试验证 & V" y0 o* F) l5 S
3 F" ^+ o* e- B/ G; m 防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
/ U5 t# c- Z0 K. p: _至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
6 J+ c5 G5 M0 D( E! H9 `. h大:
( a0 Y1 o( W* @2 c0 i* o5 ^' t
2 m: p' M: c# U8 a a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的8 C# y0 H: n; q2 z& q& h
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试( v+ l" b# d/ x6 c8 K' q
的工具软件。
! F! X E: E; U3 Y, A6 l* v
# C! x% ?$ f; ^. b b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作: V- Z% p% E' {- f i
难以达到既定的效果。 - y1 O+ t9 h4 W2 I! S8 T+ q+ k5 r
h/ @: y( C1 Q4 [
c.选择“谁”进行公正的测试也是一个问题。
; R% |/ R' |) M
9 t: A, ?3 e6 _7 |; u4 A: f 可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,
% t. Q: ^5 r3 R, x2 x$ m3 l进而提出这样一个问题:不进行测试,何以证明防火墙安全? " p7 H8 t% x1 v) n) `
9 t% U5 k0 h8 y4 F 5.非法攻击防火墙的基本“招数” 1 C" N1 S9 n$ u' Q" E
) p8 x0 j8 i( m( s: \. U
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
* j) ^( W0 u3 r& o7 g5 A了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值% ?, `1 b4 V8 a" s b: C, A
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。 1 H# y$ f$ ~% r- V% ~* s3 q
' t T" K1 a, K3 Z* B" ^5 ?
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
& I' t! M" _# E6 Q! s恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接9 c, d8 t) p' }8 n2 x$ M$ b
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的* t Y* u: N+ _( r. Q
信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地1 B- V" F# M0 j# h4 o |
址缺乏识别和验证的机制。
! @7 r- J0 ?7 ~- N* _% [7 m1 \4 I5 ^
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
8 e! U% y3 ^# Z3 U8 U7 S请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初0 F ]1 z/ a% Q. a" ]( D2 O; n2 k
始序列号ISN。
* F. l3 T2 [, O- n$ o S! \
9 R H' ~: F1 Y5 \ 具体分三个步骤: # X8 _& m; X! P n( s: j: B
+ o, N, V7 ~ Z. }
1.主机A产生它的ISN,传送给主机B,请求建立连接; O+ X( ?' t2 F
7 D, @4 a3 D' F( o# Y; a 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
5 n& X; {2 }0 v! wACK一同返回给A; 3 s/ z8 K* F, t) Y! P
' z; e- ]/ w: y+ |( }0 ~$ S 3. A再将B传送来的ISN及应答信息ACK返回给B。 ( s+ _9 }$ n( M% d
, ^! K+ |* M) F3 x) p 至此,正常情况,主机A与B的TCP连接就建立起来了。 ; r& f) k: n% F) \( l/ `, q
$ X* g; w8 E" b; S( J IP地址欺骗攻击的第一步是切断可信赖主机。
5 Z; V" T: H4 i" Z$ i
. W' g/ N1 o/ G, p6 W 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾# y6 a+ e+ B) F3 V. ]
不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只$ y" z! j q4 ?$ U5 |% K5 I* R
能发出无法建立连接的RST包而无暇顾及其他。 9 K* ^* u m# D. s& y2 K+ S7 ^
- o( W6 Q g' E" q$ l# \+ e) C 攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),* Q# m% b X U
通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连6 ^5 ]! s" M: V1 ^
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和! g0 ~5 u2 J8 V! ?1 r
确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目1 M" o5 {8 r) ]8 H0 u
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从
1 Z0 y! J, @- y' w9 D而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击
5 a/ R: e' v. S6 i. c产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。 ( `' E$ f& k% {
' K3 b. P* Y8 F ?( e 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主1 \5 S; |% n+ ~5 J( G, K6 M
机。
' C8 {, E& ~, L$ T0 w
* y( M; l' \: ^+ N* |8 P9 b 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过
. u7 e6 ]- o6 C+ ]这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果: V) O R: X8 ]; B4 k5 p, ]
反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网6 ?8 o1 u: j2 Z- r
络。 ' ?9 H- K+ i2 S4 b8 b
K, F' K- H1 G n6 Y 归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
! S3 P0 h+ N8 y/ [7 w5 N不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
5 _; y. H, M& x' D" D+ k* ZRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允, n; ?0 w4 m1 E$ g( D" m) \$ p
许Win95/NT文件共享;Open端口。 9 j# t! T! c2 ~' v/ i( q( {3 X
9 k1 M# Y$ Z3 m" v( j b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防
& Q" [+ m' L0 A, F' L# M0 q8 K火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的6 j: \& y( \& ]% y9 M0 F: n5 {0 D
职能,处于失效状态。 " v& W* n% }( u
( I7 b/ A3 ^$ C9 F) j7 V6 L
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,6 s* h/ [5 |' Y- ^7 s1 L
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件( i8 x- t4 f* D- x: R" s/ C
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
# \% G) B* F8 s4 V! y1 o望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,. q# B0 C) ?6 e
因此不仅涉及网络安全,还涉及主机安全问题。
" b( I2 T! m% q2 L, `5 i2 r/ x- |, j2 }
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,
7 b. u" F3 C% Y) j# ~9 w它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
- t7 e& t! i/ l1 C无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
: t% t% B/ r! v3 z% K4 O# O
! i5 n' o8 _% L. Y4 u& x 目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存1 i* S7 }! E, t2 `
在各种网络外部或网络内部攻击防火墙的技术手段。
$ s( O7 d4 ^ n/ V( T, Q
! ?. ~, ]' E- o' y/ S$ c; U1 { g 三.防火墙的基本类型 ( e- v( j6 q9 |1 o7 S
3 p9 q! \0 T# g
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
: C* f$ f% ~% D用级网关、电路级网关和规则检查防火墙。 8 w, A2 p( S- U" u
# d$ [, j/ o: R
1.网络级防火墙
) A" Y1 z# H( q) h. c" z; v6 _1 a( c. p. j8 J5 U
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
: p3 V" z: @$ E8 t% X0 W与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都8 S0 P% J/ l( H, A
能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
* a% r1 L9 T9 y: N) z自何方,去向何处。
2 L6 S/ Y4 O$ _
5 F: C4 Q" R/ I 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
8 {, m# g( D1 {连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定
& e& k7 r1 Y" {0 i/ D% H义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直5 x y* p# C6 r* g& Q4 S' L. D4 m
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默2 W/ |1 @% F( y/ [
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于5 d/ N; e7 k3 x7 Z; A+ Q* R
TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如
6 a* T& ?0 L- ]. {" R) G/ lTelnet、FTP连接。 7 K" \, ~3 v. ?& d# \
( f' j3 _' r& W, b+ j0 A
下面是某一网络级防火墙的访问控制规则:
: J; U2 `9 |% f& ]" _$ }5 N& _6 a7 ], L5 y8 ?
(1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; . [, W/ h" {9 e5 t
: j8 G# O' o6 Z
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
+ k& W: H& d+ J- S6 g K4 ?; \机150.0.
1 Q: T2 g3 m' m7 f7 Q
! q, {- B; g7 I& V- e( @# l: u 0.2上;
5 s2 _+ I* B' F7 Q+ m# X) ] u- E- k
/ X- j& k! c0 ]8 h+ H6 h, S (3)允许任何地址的E-mail(25口)进入主机150.0.0.3;
/ w; ?9 o7 O3 F' t1 f2 C* S" [- C. A4 q% ^8 J
(4)允许任何WWW数据(80口)通过; : J4 U+ d8 }$ ]1 g( @! y
3 y. [, r( w# S+ ?3 X+ } (5)不允许其他数据包进入。
' m" b% w; l; R0 _: f3 {3 [0 \6 b. s- Q: S9 F
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护 G9 T" h0 F6 s
很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。 ' J* \' P( M, a- `$ D: V& U: B( ^; x
4 W' [0 ^' o5 M7 G, H0 ~ 2.应用级网关
; X7 [9 G6 ?7 g `6 U: x& J4 i- U
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
2 l7 w% _, `7 S5 {服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
+ M5 M& C( T0 c8 h$ w: d5 b- K上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
8 w9 a$ D( H- F/ [% P需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
3 Q% v) l3 s, l/ ?5 ]% Z5 |) n: }5 B7 U1 `/ ]3 g
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 $ V8 Q+ p( j8 b# `! j( R! d
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的1 ^# G% H. W" g7 H& E" A8 @
代理服务,它们将通过网络级防火墙和一般的代理服务。
1 z8 V5 ?# a9 a6 g t8 z% k) E% L! S8 w# u# \2 q( F& I" F% P, L
应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
& x7 S8 q' o" B, W. T: o而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
% R& m7 V% p7 y4 V4 \1 q& ]防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录/ M, ]0 E' \3 L4 r' X. S
(Login) 才能访问Internet或Intranet。 i7 S3 R( \( V- W. @
) S' Y& n1 p4 P5 o7 ] 3.电路级网关
* x" s. I% O0 A
' C5 b3 k3 i6 y) }! c+ r$ B9 i 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
- R8 L. L @; Y信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
: M. u' \$ ^6 d" N" y+ x m上来过滤数据包,这样比包过滤防火墙要高二层。
! D" k8 p* V" V% \8 ]4 A, B! @* v5 r, K! L) S3 e+ Z0 d: J- s# Y
实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
+ J1 {1 b1 Y) H) Q7 n' Z- P合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
: R; Q1 }: H Y7 G8 `: r- QDEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
7 w$ j8 [2 }) E9 H全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一1 y5 D$ S- w' @; g Q
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP
" m+ s0 T2 t" Y, M' y6 x) M地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,2 B! g3 j( d$ D+ ~: c4 @ K& `
因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 3 H3 h: N a& R6 U3 |; L+ Q+ i; O
2 h" B2 f+ f0 }6 f# ?; @ 4.规则检查防火墙 3 c9 ~6 O3 A5 b, u" K# z# C
- B) _7 B# H" i6 N/ M 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过2 G3 I+ q9 p. f) ~
滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤- ~6 i( y' ^- ]6 e
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否
+ A8 z' V- h/ V3 e7 f. Y3 p0 k逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
; `; `; V0 C) p# q' B* l* }容,查看这些内容是否能符合公司网络的安全规则。
N* n. g/ g5 L) ?% \% p4 N1 B8 {- `7 I! W
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,1 w& G- H N0 G8 F
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和$ T2 b* o( S6 m
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而9 T4 w- G5 |) _; i- j* ]
是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式/ E3 v4 G$ O! l1 a5 e0 M. j
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。 - t1 ^: Y/ z) G1 E R3 E& m) x$ ]( h3 C
$ |- N- @' k% ^7 J8 l 目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
+ Z0 e2 m3 W* [2 q& c: D户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每# L9 N7 |$ z, A
个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一
4 h3 g8 S5 f2 Z4 \! }) O" OOnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1 j% K0 v9 o1 s, ]/ y
防火墙都是一种规则 检查防火墙。
8 V$ f% H R x
! q$ ?* o' {) x+ G 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就* Z. S, Q# c6 B% J
是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
! f8 X- f1 H/ a1 ^* j k功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽
' N. m% ?. Y; C, t. e' X; ]查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数5 }' p: x5 u9 r& S5 y. a1 ]& O
据。 |
|