|
一. 防火墙是什么? 5 s9 c, ]1 _9 C' K ]' S
8 q8 \; {9 L. i
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方# ^8 y' G) ^) D/ Z
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制( h* ~% _# E- b( `0 A9 n
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
' b2 e6 G# |3 ?, D和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更
& L( k" e1 ~# G; k- d: y改、拷贝、毁坏你的重要信息。
F2 A) B: |1 J7 B3 N* k6 G& c- A9 l/ g ~- Q7 t5 f" s) G& \
二.防火墙的安全技术分析 ! e0 B$ O3 T& B
$ O; n, k/ m3 k `( V, Z
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火
0 M6 m' \8 _ ~3 c M墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认
?( E( J6 q1 u识。 3 E' w% D) T4 H) Z
2 \; j' @2 I. p# r
1.正确选用、合理配置防火墙非常不容易
. ? `, A- P8 Z- B2 [9 B
, X# D0 k7 M) V: ?0 z [ 防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系/ j. m9 g" f' }. ?, _% ?+ s
统,配置有效的防火墙应遵循这样四个基本步骤:
9 }" M' j( O+ e& o3 q: |, U: D, b% p
a. 风险分析;
( s3 j0 S: V5 a" @+ k
6 Y i: j/ `5 D( X# q b. 需求分析;
1 ~1 \8 G5 Z7 r/ ^* g
( w5 W2 D" h5 D4 w/ }2 K9 L c. 确立安全政策;
# F) X0 M+ ?- `# @6 `/ k- A
' P q: y: z7 U4 d d. 选择准确的防护手段,并使之与安全政策保持一致。 # ]5 d' r+ f1 B0 a9 E5 [
7 N7 t2 B2 Y, e( I, v& U" t- f
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只) V |5 s" @( e' k* k
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防( \2 E% o, B+ q
火墙能否“防火”还是个问题。 : w: @' c& v# E6 D Q
% ^, ^' \+ b Z% Q6 \0 B1 m! j 2.需要正确评估防火墙的失效状态
! x1 K! I+ A" ?1 V) t% r2 b2 r4 a& A
评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
. x0 e. O5 w, a- R9 J1 q9 b! z能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻' p+ g6 \3 y5 g0 v, Z& S
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正% a1 {- r* d, R; ^6 F f- y" I: a
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数# s" X3 y% |+ s. \1 }3 I' f
据通行;d.关闭并允许所有的数据通行。
4 D% ^; m8 b: M- X7 s' g- N5 K5 R5 e1 t
, \2 F# P* j& x% f9 z 前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进
, e4 a* a# ~5 f* R- E行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐
( P9 u/ O/ E9 C6 \5 ~+ f% }0 s/ |6 \7 `: ?患。3.防火墙必须进行动态维护
* f' ]# |7 H8 u5 ]+ f: P* x7 e: y7 Q7 U" Y- M
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
+ Z9 u8 M9 M$ r0 o用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动
' W& E9 [. i# k I" i态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,& k: l) q% v. g' g7 Q
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
4 K( Q5 ?( g& ] W# @8 M& P9 C5 Q- s4 H
4.目前很难对防火墙进行测试验证 1 \ ]; N, B: a. y1 l
1 D ?# T' D% w; \
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚6 i: K7 ~: R* \$ b, k/ W3 m
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
4 B& x5 I5 J& Q9 j大:
- _5 o2 d1 Q7 i$ E- _0 h4 I$ l5 K2 D) k. C; O) @
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的
# {, k. }. f4 G3 \6 ]0 j* ?7 W工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试2 \: `+ G _. e( J$ c4 ?% W3 s$ C
的工具软件。
/ Z$ l5 T3 ~- F7 @% l" U+ t
9 {! H! q5 d$ I; o$ ~: I( }4 Y b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作: O9 u9 c i& H' s# L7 p5 L/ }1 {
难以达到既定的效果。
0 t$ o3 @$ r- M' t6 T N+ x, {0 P6 M4 q: o5 R7 A3 V
c.选择“谁”进行公正的测试也是一个问题。 4 I8 o9 l. O; B2 a% X' S$ z& C
" ~- A4 T0 U5 N: e! W$ u) G2 i6 T# j
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,+ K' K8 Y! Y9 ~9 L+ }
进而提出这样一个问题:不进行测试,何以证明防火墙安全? $ ~* x/ O& |/ M" [/ B0 Y
k4 W, i+ r+ z( y- P 5.非法攻击防火墙的基本“招数” 7 Y# `! m0 c9 i5 [
4 Y. q/ Z) X* g5 O* B
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到; |$ I6 w3 e6 O, z6 r' T) L+ I
了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值
" ]+ `# f, S1 @得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。 ; |* _6 ?; P+ z9 r- U, o% y% f
* G" G$ y+ D! a; _1 o 这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
/ b* L$ g; y$ z9 Y& H: |( u恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接" M5 Q! l0 [: B
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
1 N& q7 e' V: f T' V$ k信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地' a; T6 {) \1 e, {
址缺乏识别和验证的机制。
* o3 g! I# j1 F& d
( P$ U& J1 v0 z2 z; A2 B 通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出* @1 W. d( C% e/ H! ]8 u" q% f
请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
* M" V) x$ H2 V& Y始序列号ISN。
( q' B7 Y8 g" B7 H( ~
Y6 i6 c) K* y: t& A9 p 具体分三个步骤: ' f: U) y9 w8 e2 l; ?
+ {% |8 v, x% `# N
1.主机A产生它的ISN,传送给主机B,请求建立连接; & d* w# q* t# I `& O' W* T' x
" v5 q4 p& @% y1 ~ 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
! l$ X4 R* C1 V; E7 VACK一同返回给A;
1 Y6 V% |. l; W' u. G! ?7 [# E; V
2 j# m6 A' s3 a) {7 w, F$ I 3. A再将B传送来的ISN及应答信息ACK返回给B。 ! j! h: D5 p9 J8 J, h0 O9 e% E. a
( H) e6 L% l9 A4 K7 v 至此,正常情况,主机A与B的TCP连接就建立起来了。
9 A# Q `( E$ ]0 }, z- k4 c3 L
IP地址欺骗攻击的第一步是切断可信赖主机。 - v9 E4 \( {" t7 H- w
- y1 a" r0 c$ n% i
这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
* b$ h4 F8 I/ M, e1 T- ^) M不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
) y, @. [3 M9 G- C( W能发出无法建立连接的RST包而无暇顾及其他。
% F& N% U" z: J- c8 u8 d( z
9 q; q! c# d8 a2 B 攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
* L- N& @% a, o0 z8 D$ e通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连' y$ Z" D* f- N
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
7 G6 o, N, h7 ]3 d. j" @确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目
% F8 J1 W9 i! r1 f标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从/ [0 O+ ?; t* F, g$ B
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击
( y% s3 e: y% ^" W% m, p5 \产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。 ! X0 A* B- H* s, e3 R
( H8 j) D/ i2 O* T$ Y 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主% i* [; v8 J4 W: J0 Z' _! O
机。 . I2 x/ `& i) G
8 }: z7 }2 A' u! Q% F6 I- r; ~ A
随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过: B+ u5 @! i# y" \
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
3 a, a' v4 c3 V" i1 Q6 i反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
% _. Q9 W8 @$ t5 z" }0 k络。 ( C& d4 I0 m5 D5 C' l# x% Z0 n
! H8 D6 @( u) \$ q$ u [
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
$ K& ]9 y; j* N1 U' T不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
1 O3 Y: A# f9 a7 [9 H$ M1 \ YRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
! B- v5 ^+ _& z许Win95/NT文件共享;Open端口。
9 r& m- z% r" L' R9 v1 e
& \ V& c' U' Q+ m, h5 \9 m7 d b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防
1 E8 Y$ B: |. J t1 M火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的
3 x3 N& k$ `2 g5 F- t职能,处于失效状态。
* X6 [7 ^$ [+ _: E& c4 I3 W* {& K' l" Q# D N1 A
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,$ T. r3 T$ V* ~9 C3 I6 T
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件3 {$ Z" G+ S( l3 V
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期' Z. X" L7 X" X4 T
望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
: ? O* g! I- A3 U/ [# ]5 {8 e因此不仅涉及网络安全,还涉及主机安全问题。 # y0 n! ?) J. n! T/ B
( `/ r% N& q- E 以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,/ b! o) n- L3 I8 A
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
4 O2 H+ u% b0 \+ E( A无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 - A" r8 V4 Y/ H; }- h5 ~
. Z l: c( k7 s 目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存9 _% ~1 J$ b |8 o
在各种网络外部或网络内部攻击防火墙的技术手段。 : C9 ~$ o4 Y0 \0 ~( [# x
( o# ~5 O4 ?8 B" G; N- P 三.防火墙的基本类型
) z y! U4 Y6 G a/ \
- R( n2 c7 V- I, h 实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应0 D- f( Z4 O/ J" W/ [+ X7 w! {
用级网关、电路级网关和规则检查防火墙。
G4 }8 v% Y0 x* e6 x* ?0 g/ K9 r+ S/ j
1.网络级防火墙
0 p, d! j$ O, R6 |" h2 O# F& c, Z! r. p* v" R0 z3 {! v
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过' n$ d' X9 f, r$ A% |
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
( Q+ S j; j0 ?能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来' a$ G+ R; T3 Y Z+ e
自何方,去向何处。 3 [' |6 m& O7 {- d8 E* ^: P
* t: s- d9 m4 f$ o0 y
先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的 C V- q( z& B3 X$ [6 H' y
连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定
8 }( g' u) B, ?义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直2 M! j& I, [ I# {/ q* c' V
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默
" \0 h* `! p8 m( X认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于4 F! n2 `8 p7 G8 c
TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如
5 P5 V) {4 n. v6 |5 I( a9 U; @Telnet、FTP连接。 1 C0 M0 z+ s0 j5 Q) ?6 W0 P
' b( f5 m( F) `3 H0 S 下面是某一网络级防火墙的访问控制规则: / A, N, A; L; M8 T0 ?
" `/ h/ E9 J" [8 d: [ (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1;
6 t# ~& o$ w" g: e& T% r
: s) F: d% d9 L( B, \6 w (2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主; F7 {7 | X' P8 q
机150.0. % d6 y( `7 m; B
( j/ f+ u6 r2 X9 v/ l" ?" l8 O T
0.2上; 9 m* M0 t% q% v6 @. _# W$ n! b
- ^7 B. p: H: A! B# f8 ]1 { (3)允许任何地址的E-mail(25口)进入主机150.0.0.3; ^4 l5 Y# F! `5 b( d2 A
* f5 Y+ [9 t- Y0 P
(4)允许任何WWW数据(80口)通过;
. `. A1 d8 L2 K% N/ V2 i" o4 a4 t/ t; g; Z
(5)不允许其他数据包进入。 , c' O# I3 ?$ N: V- m: n! z
3 e" @- K& `1 G Y
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护! X& j4 U( Y% g) J3 H4 ~* n2 }( I
很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
g' ?& _& h9 L: @
; c* E1 ~- q% @7 T: E 2.应用级网关
5 u+ c* G& ?6 m. C1 ~4 A; C3 A @6 O! ]3 }- `% F
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
: t: j8 o' X& q服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层# e+ H7 U, Y3 R9 Y
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议' G. W7 Z$ g9 k" @
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
3 P" D2 S; f4 y8 D: j# s& ]+ k- q, x0 [- A* y
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
: X, h( p, o2 r0 M" oFTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的" t! ~- s4 X8 B, H
代理服务,它们将通过网络级防火墙和一般的代理服务。 4 V# j' a- U7 W* Y1 Q+ m
. ?; o. C' i x% C5 K6 o 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,% r5 M3 N# U+ f- v$ y
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
. Q) T/ w2 V) }' T" r' o$ w" O; m防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录
) c& D4 ]0 a- Q! d. S K$ J+ `(Login) 才能访问Internet或Intranet。 2 h8 V( s9 Z) t5 l# }) v) l
$ c1 E: c6 C- Y3 u4 p
3.电路级网关 2 j, ~2 T0 [8 }+ j8 {
6 i& _# B; r0 u$ U, `
电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
9 C+ R3 t1 a4 X6 f/ x- ?- g1 {信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层8 H0 d( s. O0 D) T I! C1 a2 `
上来过滤数据包,这样比包过滤防火墙要高二层。 0 M" k0 D8 W% Q* ]0 V! c
$ s& t' b6 y) {- [6 B8 v 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
8 i' Y# F0 a% Z合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;/ n+ v* K3 k$ n/ b, Y
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
5 O1 |2 m+ X; L; @0 U7 B全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一
, ~ Y: _# H& E* _ X |7 S! Y个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP* I* ?0 Z7 A( [' \6 }' J/ n! R" }
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
" c6 v+ `7 J) g. p/ n因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 1 j1 |; Q. e2 K
8 f0 T9 H' o& P& P0 C0 ]" P3 q! K 4.规则检查防火墙 ( {5 I* N( D( X/ z" ?5 g
% a3 i, U9 E+ T+ N k8 L 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
! x3 J: {/ o7 [, v, K3 u G滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
9 q1 u7 h) ~- o& v6 x$ [进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否: \. Y& g+ T& h- b; y
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
& u4 l2 d/ b5 _- _+ N. d. [& I+ Y容,查看这些内容是否能符合公司网络的安全规则。 0 l' e' G3 \ U5 D, Y
0 T5 m3 h7 C C' y5 x. ~ 规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,
* G' d9 ?/ `" y8 ~它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和) t& V- v7 J' u$ p' f) }" M' N7 y; z
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
0 _( V2 i) ?- V& ]9 {是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式
8 V1 t. ^( a3 B* _来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
9 j& J& v9 g4 J2 p1 i5 c' O% I1 Z" l1 I' Z, X' I4 p( \4 V8 C
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用" u( m) ^* q1 C U/ [
户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
( A3 m4 U9 p; ?+ C个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一- H7 v8 ^- E7 E& [( p
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1
5 l4 O% u' K5 M2 l/ U, l! ~ p防火墙都是一种规则 检查防火墙。
+ B! I9 ]- [; D% H5 ~
) [% O$ @' }+ z: g, |# g5 A; X 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
, I/ o( U: H# ^4 G1 f, F是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的% T4 G0 V+ l, _9 V" }7 Z
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽
`7 v1 @- K( O. L查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数
( ]" O ~, l* E5 F; D ^9 I据。 |
|