|
一. 防火墙是什么?
% B1 o& R' H8 K. g- M5 R% G5 @1 Z) A- W' D! D; g- H# q+ W
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方: M8 C/ _3 D- {/ p% o4 q' R+ P
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制
7 \* t0 Q( c& a* a. Y尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人( s3 V1 w6 }& S1 o
和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更
! Z; |1 E+ o; x$ P8 {5 M! M) c改、拷贝、毁坏你的重要信息。
7 I' `6 _ L: C4 K* y& f C# p# E
) f \ v3 m" z6 ]" B 二.防火墙的安全技术分析
+ F; S3 U4 \2 \( }$ q0 c
3 ? ]" d9 T- r$ z1 u! f2 \+ d 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火1 l( Z3 R0 p' K2 D0 O
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认4 [6 D. t8 e8 @
识。 3 a! j6 q8 e! D* u
$ X6 V) X% }6 U* q5 q 1.正确选用、合理配置防火墙非常不容易
) Y! r8 i: N' q f
' R- y$ F" A' a. F; h 防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系+ d, R% b/ P2 {" s1 Z
统,配置有效的防火墙应遵循这样四个基本步骤: 0 W+ y' ?. z4 {7 \
9 ^, O0 l& d8 l a. 风险分析;
: M7 n- ?! {+ u- E1 a/ ~& M% d. K
- C1 e+ E7 c1 _2 }/ P8 c b. 需求分析;
9 A6 O, y* I" ]& V# M& _* v/ G8 K! O5 \) w% o
c. 确立安全政策; / z5 x$ U; V) g& S& n* s
2 p+ ^* ~* D* v! J
d. 选择准确的防护手段,并使之与安全政策保持一致。 & _& c! T0 I% M. @- C
9 b9 Q) R" S1 R! j1 I M 然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只( ?. m( [0 M, C8 J; _
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
: R& t: ` d( @$ U火墙能否“防火”还是个问题。 ' I9 j5 r% h. J
& V: x4 I! J$ j7 W/ T- r' K 2.需要正确评估防火墙的失效状态
1 j' i) o3 G' z* y
* U$ e# G2 v) l9 q' j+ m2 g 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
7 |: z3 S9 ^7 U能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻 N1 F3 n3 G4 y( s j& G: v f% c' h
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正1 [/ O# r* a. q' y: e% `) ?/ Y7 m
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
3 J! I+ N( P$ [6 W' e1 \据通行;d.关闭并允许所有的数据通行。 4 F3 s$ p- i# D8 h+ A
, k& v( W# Q& o; N 前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进+ q+ @( E/ ^% p) H
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐7 d0 R2 N1 @9 \& S3 S9 c
患。3.防火墙必须进行动态维护
, L! x4 F! w1 Q/ O
- Q3 F( W) ?& l! G; [8 L; _ 防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
3 a0 G9 L( P" M用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动
, A+ S( ^) z" ~$ K. N态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,2 L7 T' a+ s' u/ ^
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
" F3 R" e9 F/ `! A
$ W M0 y0 Y$ B. r8 ^1 i/ V* I% |. i6 O 4.目前很难对防火墙进行测试验证
0 ^ T9 U Q' M" T2 H! {0 [8 B
) r4 n' g9 E, i" T( b5 g0 V9 X: W 防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
+ q: J6 ]5 \# c; p( T至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
2 {. p2 z& M" `# O% l8 I9 l6 l; J大:
: Z) \+ t1 {: l1 E) m
9 _' R7 N) e ?! r' f. b! m+ t a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的" j# o( |( W* X. Q7 N7 ?; P
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
# r2 h7 M$ z6 F的工具软件。 - Q& w8 s4 G, S2 V8 n p
7 i( w' A$ O- z$ h7 X Z( B
b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作
) F7 P0 X- ^5 D8 Q" v难以达到既定的效果。 ) |+ Y* p2 A0 r
( n) \# X, @2 O# k" |" y c.选择“谁”进行公正的测试也是一个问题。
$ s3 w( E2 n4 t3 v+ v9 n" }2 K, P2 L- O P4 r3 D6 o1 ]0 m7 z1 x
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,2 [7 q" _0 v: u/ V
进而提出这样一个问题:不进行测试,何以证明防火墙安全? - z( R- p2 v @0 p" v7 e9 a
$ ^, c( R; k) }& X
5.非法攻击防火墙的基本“招数” , L3 e7 B8 n/ O
6 ?+ C0 z( x) ]" M9 G5 A
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到1 M* ~* Z2 W! w6 c* A6 b! J" Z
了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值 f9 L r5 }) }' G
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。 ( z3 ]. q3 }: F
6 I4 q0 M/ y+ ?4 b7 F 这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
6 v) Q9 |, n: ~) C6 F7 F) G9 O% G恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接
7 Q& @! K( v0 c+ ~( I I5 T; Q口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
' S; V7 H9 n9 i! @: W+ |信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地
& F. z# g/ \2 v+ A; \" W7 k址缺乏识别和验证的机制。
- O$ L, M0 ^6 _+ y; j: k6 ]1 R( o7 O& U: J. l! L* ~* T$ k
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
; h' c/ Y9 Q/ O请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初# t/ v6 ^$ u2 W0 n3 P
始序列号ISN。
9 H! }# l! b/ H- K& t( Y0 [3 @% l8 A( }; h4 Z/ h- u
具体分三个步骤: 6 u# |, w ` S) y, g6 I
% F, `1 ]! B) _5 V4 ^0 s: W9 Q 1.主机A产生它的ISN,传送给主机B,请求建立连接; , v5 Z+ m: ^# I( Q
/ t7 q/ J9 p$ I2 R, a9 _' m 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
2 j0 t& D8 q2 w+ h0 o7 D3 n* OACK一同返回给A;
/ X. z. Q8 v3 N* y* v; i. B9 ~- r$ {
3. A再将B传送来的ISN及应答信息ACK返回给B。
4 g. z. ^& L4 O. t" k8 a6 ]; @1 x$ K; b0 Q+ t! b" w- u+ k$ j
至此,正常情况,主机A与B的TCP连接就建立起来了。 " Q" C/ J2 s) x0 F8 q" V/ U: v% O
$ d9 U9 F# k; e+ V7 ~( c9 X IP地址欺骗攻击的第一步是切断可信赖主机。 + h- n0 o6 A+ _2 x$ v2 l
6 a+ s& P" D) T! G6 e
这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾) p9 ^" [* o/ g4 o
不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只2 O3 Y9 T. S: Q9 g3 }
能发出无法建立连接的RST包而无暇顾及其他。
" K8 s U) Q" X# Z& ~( x$ f( F( p. R' T2 ]) }! v K
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
. X! m& U, f4 p通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连
9 q8 b* c/ x8 A, b接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和" q) K$ Z: Y; F' N+ Y1 t* b- _& V
确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目! h' |( `, W4 l9 O% I5 e9 v
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从9 h: q6 b7 q6 N3 |: N
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击
2 O4 ?3 \8 x2 q/ b M" z产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
! H5 F6 s5 ^* k" b, J6 U2 W( }$ f+ ~- J( c+ M
现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主- I- V9 B1 Z8 ?+ p
机。
9 N' j. q/ ^% P4 s% T
* h6 T+ R# H: ? 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过
8 t Y0 @+ y- j这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果) X. u; b% |+ G
反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网( W& h4 \1 w8 k8 _
络。 ; I5 ]0 Y0 M) H- O, I/ j
2 C: k3 z( I+ b
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
5 e9 b+ I3 c7 F+ ^不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许) O& O d& N' X9 ~' E- j' m! o
Rlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
' S5 x9 p$ I6 B$ d, ]- q许Win95/NT文件共享;Open端口。 ; |6 {) U1 g1 b6 x4 f
( i/ T6 r5 d2 F0 m7 C b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防
! a. s: s* J5 q* G( @3 Q7 \: n5 T火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的0 S2 Q2 T: F/ u$ r8 A
职能,处于失效状态。 7 x! v( L4 j2 K, N
! @6 @; _8 V4 r; o* m$ B
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,& a% C' {- q& q1 p! i5 Q! i8 `* x" G: `& ]
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件) }7 O, `: S# i8 j# f5 l4 K) J
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期) y2 F$ K2 S" Y% c$ e# _5 T
望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
0 r, M5 H/ [: a. y+ V4 s# w因此不仅涉及网络安全,还涉及主机安全问题。
4 F" A( `8 l* c1 A: t& i5 q: i( ]; |7 c* ^8 k4 d7 p( ]" z
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,- u5 @+ @$ M6 z {
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
9 ^! n/ M/ t M' O2 E, q无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
7 F, S2 S( }$ a; _( ~2 b$ D4 R0 ?" M! Q/ N
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存
; |) a8 t5 e3 u3 S- a在各种网络外部或网络内部攻击防火墙的技术手段。 ! O _+ v0 ^% S! F; z5 ]5 [
. @% C+ x& _# Q. U, V! Z
三.防火墙的基本类型
$ u C3 y9 j0 G$ O* ^8 T2 y; P% P6 D8 I+ V1 Z6 U- a
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
X# e Q. ?" |/ t o, g用级网关、电路级网关和规则检查防火墙。
1 C. d0 z+ i5 y- B R9 s9 i7 U- X. r" ? ? t2 v+ W, p0 p
1.网络级防火墙
$ }. B7 m7 ~& l: n# o3 X# ]
* d* |! ? m: w4 n% ~2 ?& A5 a 一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过) ?5 \4 E8 k" C5 u6 r+ z
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都5 j+ N4 t0 O, T- R) O+ V1 L
能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
2 Z' L7 z1 z z* V: Z自何方,去向何处。 6 O3 S9 w& ?8 I7 s
6 b( `2 _* F& i: q 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
: q [1 f% L! A) C连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定& W1 D5 G( H( g# ~
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直
( z4 y8 S4 A8 Z6 d" g9 f至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默7 l( \1 B8 s4 o5 J- Z9 `
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
9 j, z3 K B+ ?1 LTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如
9 F: d8 k( f1 MTelnet、FTP连接。
* L* e; V7 Y# s5 w* x% i* H; [6 Z- p% ` h5 y& l
下面是某一网络级防火墙的访问控制规则: : W7 m4 s8 Z2 ^6 L" D& S5 k" s
& x; Q* j9 D2 V e! v6 C0 m (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; 3 n; y* \% H4 |3 H" n" A
2 G9 U ?+ J+ k8 F; O1 j
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
$ Y9 J0 a! t) ]" N# [机150.0.
9 u3 k) s0 q% d! P* K( |
: t9 |8 Q# F+ }% ` 0.2上;
* }% C! W- I6 L$ L" a) G1 E8 A! a' w3 p# L0 v/ s
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3; % F0 n. B! K0 s$ c9 |3 G
& Q- U. e, R5 _" X2 N4 f (4)允许任何WWW数据(80口)通过;
: B% Y8 d9 A3 o" m7 D& l6 W' h, ^+ a
* |2 V0 z9 C+ T% R: L; S1 Z (5)不允许其他数据包进入。
) m$ Z6 _2 |2 |( @' {3 B. \ Q( T1 y$ s. { i/ I" f, I
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护. F" T( w7 m) P* b# V; o
很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。 5 h0 g/ b( r0 v8 K* f: N
* U3 Q }. R9 u! v$ N
2.应用级网关 % v: Y4 I5 p' O- D% P/ b
5 P3 ~7 C' `3 w* Q- |
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
0 Z$ M( u2 r9 T7 l4 l服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层% q/ y+ v8 l) W) D
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
) {( x& h; d1 X1 s( X$ U& {需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
6 ?* F( {7 R- I; L0 K+ _, G4 m5 Y& C- z1 ^1 }$ n: B: K. |
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
* |7 J! b" R. ^+ dFTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的1 ^* _. E4 Z3 `- h
代理服务,它们将通过网络级防火墙和一般的代理服务。 : Z& F W5 L% s& M* E2 W
! y. B0 [1 }# j6 ^
应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,- h8 a; K/ E! G
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过* E C9 C8 Y+ |3 R/ L: z, E& B) ~% O) n
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录0 U2 Q, h6 c% u6 ~; a, F& h
(Login) 才能访问Internet或Intranet。 * Y4 e3 Q9 T( |; Q
' T/ W1 w* ~ J) m$ e5 s) n! C& a
3.电路级网关
9 t5 u& Z+ f( x- Z0 ]1 R2 h6 W! m0 x9 L5 z; D
电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手4 Z& |/ L8 u. e, Q
信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
$ w. v! U. ^, [上来过滤数据包,这样比包过滤防火墙要高二层。
$ O" Y- d: R! H6 R. L( W: P- C0 z; x% V9 E& w
实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
+ g$ E6 S5 `3 c5 i4 }" x- G% g合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;0 w( Q! {' q& O* J x
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
+ }# a- R& W: w% T4 M6 [. P全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一( x6 P+ ?9 H5 a- D5 t
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP
6 C5 G: s: v% \" n6 p地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
3 ?+ ~9 n- v# I: L f因为该网关是在会话层工作的,它就无法检查应用层级的数据包。
& G9 o$ f4 ] \2 K) w7 y, V+ U2 o: }
) i% q F% B4 f) I4 U! c* n# ^, \ 4.规则检查防火墙
9 }( N/ H p( R; }9 B
& Q( V2 S( C( K! V1 ?8 R# k 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
& A% |8 [3 X2 M X5 n7 b/ x3 ^滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
+ D0 w6 {8 z( `( o进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否
. Q L; ~+ U# Y4 D: _1 A5 t. Q逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内) n+ J/ V9 ^, T0 C
容,查看这些内容是否能符合公司网络的安全规则。 # @3 }0 b. [2 d' S+ W, T
$ F; r; W4 T9 W' y+ n1 o0 P. K
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,- A& a8 D4 m& ]9 I k8 d; I
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和8 o( l3 N! o. `) \
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
+ W# f2 T$ X( d5 E, M9 Q9 X& j8 |. B是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式
, g. F: g8 F K& R来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
6 u. H6 i2 _1 g7 e6 S2 W' b. |8 t1 F: W5 |7 s( ~; \
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
0 Z' f' D3 {+ M- j, a4 X, a户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每1 O- u2 s" b9 }; H, K \4 b
个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一$ f1 G; N) t7 y: s% p
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1
* {0 e, w2 c+ {( c9 ^2 g7 b防火墙都是一种规则 检查防火墙。 $ b, S8 t7 Z/ J: N$ k* n
0 ^& o R9 I1 |1 j( x5 N7 ^
从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
/ n: W8 l3 E$ C. C. A/ q! P是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
( p0 w& x/ A8 ~7 S' j5 f; o功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽. j2 L$ N6 w, ? h" z' A: b0 _
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数
_& x( S2 W6 n: [' V" i B/ w! \ d据。 |
|