|
|
|
一. 防火墙是什么? ; b! b2 V* t1 e! Y0 a. j$ Q
8 v) {: j7 R% r# h$ w7 T) } G, ~3 x0 ^# d 所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方
$ S. a' h1 Q# @法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制
y1 @% b" q2 W0 o$ |, j3 n尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人; J' W% R7 Y3 P9 I
和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更: u% E: L: S# l2 K" l6 \ z
改、拷贝、毁坏你的重要信息。 9 a- o/ v6 z; t; _
5 Y! T' U9 R: d% t/ ]2 G: g7 E
二.防火墙的安全技术分析
3 o( W5 B6 U2 e2 L" j
1 M- S+ ] o2 t5 r" ? 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火
1 I& W1 T, i5 q墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认/ J7 n! K7 O. f3 J0 @8 @
识。 - e# [, D. }, O+ V
) G1 Q7 G$ | Q4 u2 \; } 1.正确选用、合理配置防火墙非常不容易 : j: t0 B# Y' z& \' G
; O. ?! c* U5 M6 B/ M
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
, ]: n7 G# x. g% U1 r2 O统,配置有效的防火墙应遵循这样四个基本步骤:
8 i# K# b4 F1 ?1 ], b9 i) P6 h. b4 t! H/ O0 e
a. 风险分析; 0 F4 O9 r! b0 [- y. L3 l4 {
2 Y) u+ a+ w9 W0 c V b. 需求分析; , x0 Q* Q4 L( a9 e* I$ J
. W+ P1 y. K% t: V! Y* y) P
c. 确立安全政策;
. X3 a$ X# e6 R( O3 I/ D. e
9 J) S% C- \* \; ?# \" p4 W d. 选择准确的防护手段,并使之与安全政策保持一致。
+ Z. W3 m7 E6 Y6 |" v9 n6 j+ z2 f/ H
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只# E- t7 f% T- ^3 ?2 H
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防( A% N7 |* S, Z+ ~4 F
火墙能否“防火”还是个问题。 0 @, [' W# M$ D v! e ^4 W' T8 s
) f9 H" J8 Z) e" U/ V0 m3 x 2.需要正确评估防火墙的失效状态
K3 t( ^, Z# U7 u+ _
u0 p# n# j4 F5 p I$ {+ Z 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,) s5 U5 M+ J1 ]! S# U/ u
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻9 U B- g* u* V A
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正
# v6 Z# |: |' }" C# ^常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
' _" m0 E \6 W8 o据通行;d.关闭并允许所有的数据通行。 % ?' V. R( |8 c
' R J8 D6 H6 U0 A. a4 g
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进6 ]7 R1 d0 r( K: i, h$ K! U4 O
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐
! H0 y) _& f. u+ o9 z患。3.防火墙必须进行动态维护
, F! s% n3 f1 H; D' D* v- o- m# M) w0 Z. V
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
& ^! h5 k* E* g5 V% w9 ~ x用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动0 C& `1 K+ h$ Y. K5 K1 q- m
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,( A8 M. h3 `% \6 J
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。 ]0 L( Z/ t) S @
: }5 j' ~, g) O9 K
4.目前很难对防火墙进行测试验证
7 u( n; Z. z8 c/ d* o: N. |8 ^1 E9 J0 i5 {9 `
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
/ F! s0 N) I6 k$ Z# B. s至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较0 B9 J: Z& q1 W" i
大:
, o9 }( R- q+ o; r) e s1 z. L5 {) K+ D% H# n( f
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的6 N6 Z' F: \4 Z: O% r8 [8 h! F
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
* ]: D$ S5 _! ^5 O; F的工具软件。 $ l/ S( E- P3 h6 H
3 N. A0 g6 }0 l9 b9 I' s b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作: P+ x7 K, m4 p e0 t- v
难以达到既定的效果。 - l8 c/ [: t+ ?& C& R
: S! M( D) d. b4 {% E3 ?
c.选择“谁”进行公正的测试也是一个问题。
+ i+ U2 i b$ {0 B
. W* I3 `" g1 S- c8 h0 h% Q 可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,/ i, ^( Y4 s, a3 v( ^9 P
进而提出这样一个问题:不进行测试,何以证明防火墙安全?
4 v8 d+ L" b; Z* R9 R! U( J2 T( Y4 b' J7 f+ r: t" M& d
5.非法攻击防火墙的基本“招数” 6 t4 H+ U4 g3 ]$ X/ I: w& G) ^# v
* u$ ?) H F( N' ^2 B1 q- a& O. N a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
7 c3 R4 {/ P+ V. ?. A" {( I" y) i了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值! t5 q! a* J: ]5 k- ]; Y
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。 2 r: o, v# r" b
2 j. w! n2 T/ D4 O
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
! F) l; c! g& i( d5 x* U2 h恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接! a3 i1 l: Y- m6 u4 O4 [* M
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
0 J3 a4 \: F0 Y- f信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地
) I) H# q7 \$ G' c) Y; s+ S7 \& h址缺乏识别和验证的机制。 % W* C' N* G, ^9 ~8 n3 z/ U# Z0 W
/ K0 W- r) v# c" Q) t" [, L 通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
$ e2 k2 b; i6 z ^$ J) p3 v请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
$ w I& H* o0 D$ h4 ~, h始序列号ISN。
6 z* J9 y5 X& w" c! g; s6 f8 ~
, E5 Z; I c: }. |2 J$ W" T 具体分三个步骤: . ]$ ?" j, A" q' J3 f
" ^3 q. W0 v, I6 P0 `+ D
1.主机A产生它的ISN,传送给主机B,请求建立连接; + K: d2 j9 v3 U
" U, Z9 H* e, e8 q- q5 R( [$ a 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
1 s9 y i+ y& u# @" jACK一同返回给A;
5 C' ~1 r7 v" X6 E0 z( R( u6 o+ ~4 K" B( @/ l
3. A再将B传送来的ISN及应答信息ACK返回给B。
& D0 t6 R M1 Q- ~* h; i2 @: S+ |! \& b4 X
至此,正常情况,主机A与B的TCP连接就建立起来了。
5 v1 b: V5 u( R( E* N( `* D) |# q% ]1 v2 W
IP地址欺骗攻击的第一步是切断可信赖主机。
2 @6 I( \7 d4 s
2 _- U; O0 I7 r7 v; h9 Q 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
$ W+ c- U$ y" ^不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
/ M1 y3 \! W' q, d: e- w. m; J* Y能发出无法建立连接的RST包而无暇顾及其他。 * i( x) l; d7 j4 a/ ~: e' V8 e0 A
; q1 \5 d- L" i$ U5 m 攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
; ^/ R2 i8 [/ j- H& \2 U, S' T通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连; w; H; i- X2 o
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
' o. W% a$ c( X确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目" d) m" a7 {; ]( m; y" n0 [
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从
0 @; I% Q5 e& F" A% S: r而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击" ?* u, E$ z7 a1 M6 K+ p. Y. v( S1 [
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。 7 L; q7 [- P! r$ |3 D. a l$ y( U
% }5 h2 t% a8 G% l4 ] 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主3 J2 U9 x, b& H: r; |0 I8 [
机。
! P) p/ \& |. O/ X3 O9 p
3 w$ e; M1 `3 A) Z 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过* f0 Y) |. a4 [5 h
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
% g( g# X6 v) p反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网 m! p9 ]( k. W) M# Z* D$ D
络。
. t: v: y3 F6 u- [; [9 e' q, g( ^
, s, k, b/ @$ l 归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
6 ^/ x% Q0 r3 }! P! B* T7 q/ X" q不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许2 F) S/ U* A5 ~& x0 N
Rlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允' e$ E+ }7 M p! U3 H
许Win95/NT文件共享;Open端口。
. x6 B; B, C% x4 E8 G* q
o. @* w+ h# f1 I( n3 ? b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防8 A! X: U Y" |6 u
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的5 q! _+ q3 _- G
职能,处于失效状态。 $ K; E6 X( ~- i/ f
4 T y% E6 |' q7 ?& K
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后, D" \ {! W, V s w8 u
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件# P; G. o* _! P( ^
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
4 ?( q4 p4 I. b) {望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
7 v# O4 j" R) b0 C$ I因此不仅涉及网络安全,还涉及主机安全问题。
- `3 T. |) n1 F5 u; C& ~( K; d2 `% @" \0 N' i
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,
6 V# N" f) l& g" p7 z/ D它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则( [; u# p4 C4 }
无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
" G0 _" ?; E$ X& Q" ^
6 d$ Q* g! z! f+ e 目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存' ^" b# x: T# q0 ]/ z$ L
在各种网络外部或网络内部攻击防火墙的技术手段。 ; Y* k' z G4 z& b
U! E* n2 R$ j; j' k- w
三.防火墙的基本类型 ! x) ~) A! J8 z% D: o
' I( y& ^. j O/ ^$ b A. R
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
( X% s& z; W* P, |用级网关、电路级网关和规则检查防火墙。
( D6 h; {$ q1 {6 I$ x
, a2 d( U& `3 A+ n6 q' q% H 1.网络级防火墙 * n4 W9 H- h; P2 k4 Z
# L3 b: ?. E& ]6 ]
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
0 D! M1 t8 D" L与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都0 h2 W" t. A# M: K) b
能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
E B7 s- G) y) ~# U5 e1 V; e! ^自何方,去向何处。 3 w6 X: K9 p8 `, A! w0 K7 L
2 {9 e" i1 q9 e' g, p I
先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的" Z& s& L! k9 ~) W+ d
连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定
" n& { O) D# h/ \义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直
7 s7 K( C4 d4 M5 b至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默 [" D5 L* O- O6 f! A
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于9 z {; G/ D1 [9 ~; U
TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如
7 K4 w- \( n3 K5 v$ y9 {- sTelnet、FTP连接。
3 S" \4 d- c+ r' u& N% p/ k9 \2 ? A! ]5 T
下面是某一网络级防火墙的访问控制规则: 5 K: ^; ], m8 T' i/ a8 J" Z
( V0 P: e6 i. z% x (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; # V2 F0 ?# g$ r* s( v3 `3 t
( s1 y% L+ A* X, v (2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
- R. n/ W v* [9 |* D. \机150.0.
1 M- y: W! V. R6 p' j; D* d; x' Y+ V- A1 o# r
0.2上;
7 e# W3 f& L3 o
! J j: s7 X, X( D" _4 a. |6 i (3)允许任何地址的E-mail(25口)进入主机150.0.0.3; ) ?. v; j$ I% W7 @' J N0 _
# R, Y. e' l* u/ h# [+ D/ k (4)允许任何WWW数据(80口)通过;
+ T2 M8 ?+ a( U# }# j7 b1 K3 b! L
(5)不允许其他数据包进入。 " \7 S8 a3 @# G4 E) U3 g
s9 j9 W) z- l) C" v! A% N1 t/ m# U 网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
' t! J( [; `' |- n4 Y* l很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
* W! F0 p. N, r/ ?+ p
$ |5 ]- q% B8 J! M w" G0 Y8 R0 J 2.应用级网关
! Q. M# l# C! P
: L! Z. l# Z7 w2 W' i: Q8 _/ W/ l 应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任7 [& L. ~" X! {% f- a
服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
4 B) K, L( R0 d" X上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
" }% K6 f: W+ l! v+ j; V9 o T需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。 4 X8 |- k) T$ v- }6 p2 B& ]# G
) x! T4 H& G/ o( T% ` 常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
+ |/ s! |! ]# U9 pFTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的, Z$ A. ^' `: o8 K
代理服务,它们将通过网络级防火墙和一般的代理服务。 / h$ Y$ N6 K& V* `, S5 M' B# X
& t' k' J& W+ T3 b- [8 e 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
- j8 _ x- ^: w$ e: E而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过5 v! r$ U8 [" V) x, u/ q8 l% u
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录# m# o( M" H. G: X
(Login) 才能访问Internet或Intranet。
d. U% Z7 c0 p# T! ~5 |, V" ]$ b& i! h7 o7 D' B
3.电路级网关
( I3 o( W( ^9 a" L& ]. X
+ r- O, j9 B- b* k) |' G' I8 P 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
4 l! g* _! Y6 Q$ x2 T1 [信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
1 X5 h" S- m! s$ f+ s6 I2 }上来过滤数据包,这样比包过滤防火墙要高二层。 7 M; l5 }. y# ^8 d% ~6 p
* k+ ]* Z1 I c) t2 p" y+ B& ] 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结7 u8 {& @; w/ H. Q- j
合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
7 @% s/ t9 W. E& D8 T7 ?5 _0 BDEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安, [, j' r* r4 j5 P; K& b) ^$ H
全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一( N1 e5 r, Y4 f/ v/ J
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP% C0 i: i' V+ }( ~0 N$ j( k' D
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
- P) ~) T t' r k8 r: B5 O因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 0 |0 g4 O$ _+ Y/ S& ]$ _
; G3 ^3 l J! o0 n
4.规则检查防火墙 ! e/ H6 x7 }. g; Q6 p1 U
; L: a. j. M$ } 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
6 q( `7 O, r; m& H, ]8 c) I滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
9 f! X' l' C$ ~2 X' E6 h, G2 k进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否* u+ T; s2 w' S2 j
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内 h& Z; s6 k: p: D9 y$ g6 r; S
容,查看这些内容是否能符合公司网络的安全规则。 " F& y8 c' ]5 D! m
6 L( k4 x6 `, u$ ^* a! L
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,% W+ t; J3 }9 D6 Q2 u) L/ x
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和
1 `5 y' L5 f+ u; o不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
* p e* D; ^( }: k( F: d/ x是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式, O3 i5 B* c, s& N1 q! L2 W
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。 & g$ O5 V- B& s+ @: \
1 U8 C) [3 U! Y8 o- ^ 目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用5 C0 Z6 n6 n/ \/ e- W
户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
$ N4 O9 f3 e8 B5 d3 n个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一! g" I9 `- |" a R9 _. w
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1; ~0 s0 B* @: S2 J9 \: Q1 d
防火墙都是一种规则 检查防火墙。 , b" L) M+ x4 _8 h# ^" s( Y
5 Q* Q y1 q' O 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
. R5 y$ ?- F9 f是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
4 E: X. z" K6 u& R; \功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽5 U) g* R. z: @) Q
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数
4 L+ b$ J- T$ j1 F, _据。 |
|