|
一. 防火墙是什么?
! `- L. {6 }2 e& v( t ?, |! l2 I8 K
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方2 N5 {) }" P1 ]6 n; p; ~) N
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制
, _1 ^- Q& M" B- I尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
- y3 x+ U) m0 q: Y4 h和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更
0 h9 E8 d' n# i& q8 V7 k5 _改、拷贝、毁坏你的重要信息。
B3 \, S: |) O
7 b2 z' h! C$ l 二.防火墙的安全技术分析
3 g1 n9 ?6 _( C1 h! Y: w
( w o* x( ]8 O% H; a 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火: ?9 X& M6 |$ E5 V7 s% G
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认
' Y1 C$ }6 l7 M) u识。 1 B5 ] i2 j. J# _# s7 R5 Y
% C; P5 d7 ^4 N. E. Y9 i/ j" b 1.正确选用、合理配置防火墙非常不容易
! ?( H5 l0 E2 `: O. ]( I% w, x$ k* A6 b
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系3 q5 k7 X% B; Q; D
统,配置有效的防火墙应遵循这样四个基本步骤: 9 U3 q7 b8 { N" t, {; a* j$ l
t/ K& ]( w [/ Y a. 风险分析;
: D8 Z1 k' U4 E+ k
" \; r/ a, _1 {! P3 o0 Y' J b. 需求分析;
7 Z' f6 d2 G. |
5 N1 A& ~& Z9 v; {/ F8 A c. 确立安全政策;
) B& O5 @- Q7 z T
) S' ~/ e1 Q+ I+ L% S1 Y' v d. 选择准确的防护手段,并使之与安全政策保持一致。 2 ^ L6 f* X6 G# q: k# u
6 S T! a l& Y U/ @" j8 r 然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只
2 Y' ^' Y$ Y; V是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防) X& {% m* K# ~/ ~$ v5 h
火墙能否“防火”还是个问题。 % V6 Z, [; I( M, [7 J2 `
6 J% z" L _7 f7 o 2.需要正确评估防火墙的失效状态 . i4 c2 I- T; T. {
$ M+ p1 q6 n6 _
评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,! |3 a( e8 I1 z% R2 A% u) @
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻
5 @4 L7 J, `* \* v& Z+ B3 X破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正6 Z. N3 P% j3 | k! u
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
0 M. @9 }8 N+ q6 i; P+ t据通行;d.关闭并允许所有的数据通行。 - I& A5 K, t0 k9 ?$ ~; ?
# r& a$ P: P1 a' f m* S( p
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进: A# ]6 m% f+ S* I1 }" y+ W( o
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐$ ^0 k6 V) `- A5 H. L
患。3.防火墙必须进行动态维护 " W0 r: U3 S1 o* g! e9 h
3 D2 g+ x0 i8 a4 G6 e4 s7 M
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
+ D8 x& d+ n1 ]) ~5 U/ t用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动
( |1 S0 ^, k( o/ E9 e y态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品, Q! I6 T3 y c4 D8 r8 `3 g4 T
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。 * t$ x1 u) O# c
4 k" c6 e F0 f8 S; ?
4.目前很难对防火墙进行测试验证 ; B. D- m2 S# M( A
' q5 X' l8 r. Q7 H 防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
- h5 \& X% q" b4 ?至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
: c$ M3 |. I8 @& r# I大:
9 i% t$ V. |9 j
$ p/ T5 W! ]+ k2 i a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的
* u% N1 b0 t5 O d3 Z工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试& [" s6 L* N0 u' c% z
的工具软件。 # N, o& n9 J/ S; e+ r" M* E0 U
8 k9 W! i+ Q( q% |& _ b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作
1 s# Y2 H9 [. |0 F难以达到既定的效果。
# o- }5 J6 H3 w2 w9 ] A, g$ G$ C2 w) N5 z% {8 O& k! a4 L5 s3 R
c.选择“谁”进行公正的测试也是一个问题。 - q$ J$ }% F4 g! d0 \- b
3 [2 s4 T7 o# F [' ]9 W9 O* R 可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,
+ S$ ], }! G% q8 _# P进而提出这样一个问题:不进行测试,何以证明防火墙安全? 6 c- v6 V6 m m$ y! `4 n
- O" m1 h6 n$ o4 f5 Q% z
5.非法攻击防火墙的基本“招数”
/ W# G1 r' l2 k, T2 ]5 o" f" q4 c r9 }3 Q% b" x
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到* K- a3 b [$ ?& F" k# ?
了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值9 i" q8 o X4 z" x K$ U/ e
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
6 B4 V) b+ b1 D) ?( X G# A0 _7 V6 \0 \! M \
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰: U9 `- y4 t3 A; m: b
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接* U$ D& P/ B) x8 D. P& T
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
5 l2 f3 X7 U2 f% L" [ ~信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地6 P7 Z9 a2 Y1 ?# o+ q) {. I
址缺乏识别和验证的机制。
: d, o, H$ o: z" E* Y8 Y4 K% N9 r' L- v/ \5 n$ R
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
! Q1 r1 i- R# W" @- a% p: ^1 _% ]请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
% ~* i8 n7 R7 J+ h/ I始序列号ISN。 ( H% H% Z" R! ^6 B
) C8 L& y4 }5 S. G- v
具体分三个步骤:
1 X) S! [& p0 r$ r4 S7 P& K' x" `$ J) T6 E) D
1.主机A产生它的ISN,传送给主机B,请求建立连接; 0 z) j0 P. N: x% x- e
9 H) [( i9 ]* P0 k& k( W 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息( Y0 j) K3 L3 j) L
ACK一同返回给A;
# D. L! U7 m! Z* M$ P, e
% g2 h" L8 _1 ]! J 3. A再将B传送来的ISN及应答信息ACK返回给B。 : e' n- M7 V+ r- ~* M& l1 d. M
+ }2 k1 U: m( N0 V 至此,正常情况,主机A与B的TCP连接就建立起来了。
0 x# z) l, a$ R0 S7 d) z% P# p8 `, f7 t8 p2 p0 ?
IP地址欺骗攻击的第一步是切断可信赖主机。
2 D) U- D2 M/ N. E0 k! ?$ i. `4 F( m h
这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾! ^( J1 v" z$ j. ~1 `( t6 i
不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只/ y+ I$ l8 u% }$ |( h0 f: J
能发出无法建立连接的RST包而无暇顾及其他。 ' ~ m. F9 b# d1 k0 F7 _( B: o
; G3 ~! a7 G" d" g
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),8 a* q( F8 c3 W2 W4 ~ o8 n3 w
通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连7 T5 [+ u; H* _; F$ U3 R
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
; n" K$ R4 y2 |1 g; v8 L; ]确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目
5 c$ ~ i: L7 s标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从
6 p+ {$ t& z* G而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击
; a9 k; C7 B' j& R( i# m产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。 / [1 c$ @ ?6 ^) ^8 E
3 q/ M/ p4 t; v 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主8 W2 \! U* `1 i- M8 Y
机。
, w3 c2 S! Q& Z" u
& Q `. ]! I3 X V6 o! _( I 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过
2 w& v+ L8 n* v- Y3 u- v3 O这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果- F' a) T" Q4 ~1 j
反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网+ C0 [: `! J5 B, q& R
络。 ; m0 Z \7 k/ u9 B! x* K" e
m; |$ b$ R6 I# L( Z u
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
( J5 E! j# O9 Z. d4 r/ }, b% \不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许2 e% T& S* [+ R; ?
Rlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
& P+ m4 P |" {( A4 Y S4 c许Win95/NT文件共享;Open端口。
5 _! e1 s) D# G. } i. b8 ?; X) @$ {5 k5 M X8 I
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防# O1 Z; k0 j& `/ l/ t3 M( h
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的; B5 D0 U$ V) A4 G( F
职能,处于失效状态。 . D& c" r ]% V; e3 a1 a. o9 f
' {' c# r* a) d# z" g# X
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,
1 m" N5 t4 z& R: A% D, h6 d6 L5 Z随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件
. T, B; t: I; B l V+ H或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
# e% J R0 s* }望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,& Z& S2 K; Y9 R R2 F/ Q# L
因此不仅涉及网络安全,还涉及主机安全问题。
8 a; n8 k3 a; H" B+ \! a3 p- N3 a9 F3 r: A9 b2 |- ~: r9 E0 i: @0 x
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,6 [+ e! [. w. O, J7 A" L
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
8 H4 C8 A: F" s" p& ?! |, [% O无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
5 q: ~0 v3 |1 t, g6 g1 B* a V: @6 p% \& r+ v' J O
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存" {" ~: \3 v( k5 M/ q* ?: z s& i
在各种网络外部或网络内部攻击防火墙的技术手段。 & x) ], E5 p% m9 N! P
; H; w# R; {2 ^6 F3 t 三.防火墙的基本类型 , e: K& X; U# c& I' X9 X$ S
& t4 ~$ ^6 H7 y ~# y% \ 实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应4 F7 E0 g5 q5 z5 _- f# Z- u
用级网关、电路级网关和规则检查防火墙。
6 o( n% J1 j( ]% h5 Z! Q% i$ g: H$ T6 W+ z9 p- ^
1.网络级防火墙 8 x8 C) l# e7 ?
L, O6 z8 @5 \) r* `+ R
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过6 _1 o. G: X5 `/ @5 c2 c: }5 P; O" A
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都; ?& ?* E( i6 P4 m" q5 Y$ Q8 _2 I+ R
能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
* O8 I, l, p5 H# L- t/ \自何方,去向何处。 ~4 {7 {! I% J7 l. M; |$ z: s
8 E& J1 [; G$ T4 }" b) b' S n4 o 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的& ^6 m4 V' v- d: o7 H
连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定9 T6 u! M# \; s9 K! {) j) E
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直! a0 U4 z4 v4 _
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默3 t: k! f5 m, J1 F Z
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于+ X& y0 u$ o$ X& K8 {6 Q
TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如; F% d! ?) U0 _8 f# A8 L1 A
Telnet、FTP连接。 $ P, v C( k% o9 _
! {3 m1 J, V" I& w. t5 b& e 下面是某一网络级防火墙的访问控制规则:
+ B G0 q" H, T' s/ `
/ G, x7 j$ y. s3 k4 E0 w (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; ) g3 N! V6 P) T: I2 w C
1 D0 y, q# S; D+ u7 F! M (2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主6 [. k8 j9 g5 `! ~% m+ b# i: M
机150.0. : z( E$ N- w; m1 Q
8 W. n, d$ b- e8 D9 c 0.2上; 7 W' l) l/ x8 M
! G6 A$ }% ^9 A: z (3)允许任何地址的E-mail(25口)进入主机150.0.0.3; 2 t& Y: Z2 n6 i. p/ U, x
! P9 o% C. ?1 ~$ k5 N8 {0 m$ H
(4)允许任何WWW数据(80口)通过;
' D; X. T6 ~$ r i; r4 F' N5 U2 \8 s, {7 o3 O; z! `# L
(5)不允许其他数据包进入。 # q/ M0 g x' O
7 \4 @0 R- \/ t! P- a* X- k
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
5 M& I: R+ E% n- d. p: a很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
; `9 y9 A" _2 y- Q, C5 r& W' Y: `9 m9 Z3 [
2.应用级网关 8 m$ k. p P5 l+ l- v
4 P4 {( l& C) ^ 应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任/ H6 u- |( n* |% C8 o7 r, ?3 x% G
服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
, }9 N: C& b! h u5 ?上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议& |+ C) w" b( \. D. p A
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
% \6 C5 z5 j% Z& Q9 L" Z& R5 x% j6 \4 Z6 W! W% D4 O
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
4 O3 j- m9 p6 q gFTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的- Y4 B; t! h# D7 [7 f
代理服务,它们将通过网络级防火墙和一般的代理服务。
8 a" \& r3 d. |% r# p. N5 k& d7 Q8 |
$ M. [8 x& f" d8 ~( |+ t' ? 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,8 c! F3 h# u" F9 R7 x
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
$ q, F K' I9 P. E N$ |防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录2 n+ J! Q/ ?* [( Y, e2 I
(Login) 才能访问Internet或Intranet。 3 Q! r R* A4 Q, t. X" T( @1 @
/ F' I* F6 W& O6 [8 F+ X8 _9 R 3.电路级网关 6 Y( o- r/ g E1 ^5 \& Y) z
7 C. r) e+ d5 z& s" O8 F 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
% O8 L6 e# [ G, E信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层. ]( e0 F3 H3 ^
上来过滤数据包,这样比包过滤防火墙要高二层。 9 L+ S$ Z, c: Z3 w& ^: ^# o, A
) N; `+ `% V* p- P 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结( S$ e% G2 X; i$ D: r6 i
合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;7 F: y6 ?" r2 l) f# g1 A
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
+ v* Q3 F% L k6 X8 L& E全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一
; N3 u2 Q* A- U9 U# A Y个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP2 Y: W( C$ K! I& T& P
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
: d" }6 W4 [2 g9 s因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 4 M& g# P* _% d, W
( t a2 a* n2 V8 n6 |
4.规则检查防火墙
3 x; x# E- W: z4 [# x, A" K1 Y. ?( H+ i& b
该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
4 O$ C# b' q. ?滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
4 r4 e4 k* w% p' r5 M进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否, o$ M# X6 e$ v
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内$ D0 v5 s2 n! j: d! Y1 h1 [
容,查看这些内容是否能符合公司网络的安全规则。
. T8 T7 T+ Y: N: M" W6 O. c; u; @! v3 N( C, @
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,
& N% `4 K8 K" U: L- ^; M它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和# W& i8 w% R- o- u8 x- h
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而6 y; `: n( s+ q6 ?7 B2 p$ o
是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式
; q3 Z, d3 p, ^; y- }. r) h来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
9 c$ |# U& q$ h9 Z% v9 N% c4 |4 z5 F
, ~+ A8 L7 p1 O% N% [0 u 目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
5 `1 x9 X @% A' X户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每6 h, T2 J% Z9 W& }. y' [
个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一
2 l) E3 L& m5 M, J% POnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1( m3 S- I7 L5 S7 [$ o9 e5 A% o6 H
防火墙都是一种规则 检查防火墙。 : C1 |/ T" }# s9 U1 L. e+ w, U
$ H2 ]+ i8 T7 H# X+ @ k: e
从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
) P! H6 r& G8 ^. w0 G是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的' Z. N, x3 q9 L3 w
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽
0 N5 W% n$ c+ o6 {/ n, e4 A7 I查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数
+ M6 ~) o1 _* K- e- f) k' c据。 |
|