|
|
|
一. 防火墙是什么? % k" T- F9 K0 l- ?2 }/ S9 S) v
! g9 S; k& x/ c/ f3 j+ C 所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方
- Z4 {, ~! u0 F" _) S0 I法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制- X: m2 V' ] Y. U& d) K5 J3 U x( N
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
" F% E8 K9 s0 S. m: u& z4 H- N8 M" g和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更 I; m+ R) P# Y% S( C, y
改、拷贝、毁坏你的重要信息。
1 j: m( X6 V* Q3 @# O% x! I+ e0 Y: A* O3 q% \/ C8 o% P" [
二.防火墙的安全技术分析 2 b) X W3 ]5 [$ y& \" A
- o, w+ M" n7 |6 [ 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火7 ]. H& Z4 S- |
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认6 t; ]/ ~( p, `( r- m% v g2 |
识。 . t9 v$ P, D B
2 n' ~3 f6 n6 t* {- I- q3 L
1.正确选用、合理配置防火墙非常不容易
l0 r0 S N0 G0 r+ Q
8 y5 w% ^! }$ C0 ^2 m! \ 防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
6 n* k( @& D" H: Q: [统,配置有效的防火墙应遵循这样四个基本步骤: " p: K6 b0 @4 r1 X
- Y1 L5 B5 Z: i5 ^4 ?/ w a. 风险分析; . X8 u9 {, z( b3 Z
/ c. M0 y5 f- G( M1 Y5 i; ~' L' b. z/ s b. 需求分析;
7 J n' k# u- J! X3 b/ \' f3 u
[3 r% I- o9 M6 k5 b& g c. 确立安全政策;
: H& K9 Y4 K7 t8 d+ ?; T1 }
" V, _0 ^9 Y& s+ d% T D# n% I d. 选择准确的防护手段,并使之与安全政策保持一致。
9 O" }: ]# ~) Z( _! D) b' ^6 Y/ S4 ^( S$ }6 {4 H3 v# k
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只
1 s! ?' n3 {0 E是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
$ m! [, I% O) s# d+ }* g火墙能否“防火”还是个问题。 \3 z: {- z9 p* `" e+ O! k
' Y! p' O4 F+ @8 x7 R/ @ 2.需要正确评估防火墙的失效状态 ! ]5 s* K# Y* _0 f
2 I% F8 I t! }( K7 } 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
; l1 K- k) D% Y4 W能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻6 ? D" e; Y; n& x: A
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正
4 l; l4 D! N" E% E# k; k& ~6 A常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
. G/ E. V4 _7 ?4 r据通行;d.关闭并允许所有的数据通行。
+ q9 x: n# Z. }# O0 d' n3 x" }' k+ E! K) W. C5 K: f" {6 i# n
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进
6 w" k* t9 n+ t& t7 P; s; O行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐- Y3 ~) Y+ K, n: r5 T& w/ L
患。3.防火墙必须进行动态维护
& {3 ]8 K- M/ Z9 ~# ?
5 d4 L% T2 x) k* R8 r 防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作* l+ Y& x1 M; |. N9 u& [2 T
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动: V) b+ M4 @! Q0 |" d
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,
% Q0 F! f: t% [* B4 w7 u此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
: t' y- \ M$ `; h/ L9 O; {4 O4 [7 C; i; O$ R% N( N2 x
4.目前很难对防火墙进行测试验证 * U) R* D# i$ n; n
/ b! Q8 @; t7 @! A# I
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚- ^: r: L7 i7 T8 g* @3 V% y
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
& q9 F c: M. C5 Y大: * r* F! M e0 v% O
2 {, O |1 j2 H9 p- o2 h0 T a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的/ i/ n. u2 R# v, I j
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
* j6 m8 ^8 Q( w) ?4 j a的工具软件。
/ @( J2 t4 u; |2 R7 C7 }! ?- b& D/ m& R3 W3 t$ l! x- V
b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作0 Z `: W) ~' U# A
难以达到既定的效果。
) G' V$ T* y2 }7 |& ^: _/ \$ u0 s9 u! L7 V4 x
c.选择“谁”进行公正的测试也是一个问题。
1 p* j" ~: z7 ?. u8 N2 n
. r; P3 m/ m: p5 g 可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,
X: H/ L' E6 ~. M进而提出这样一个问题:不进行测试,何以证明防火墙安全?
: N, X* ?: {8 S5 O/ ^5 N5 \
/ r2 b. o0 T) B( V$ @: r m2 a 5.非法攻击防火墙的基本“招数”
# h8 y1 F7 `: y+ [# n
1 L; r' L; ^9 p: }/ C a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
- j, x( C- r+ W了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值. f9 ] L7 h- [& L
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。 % Z1 g+ M9 {# y/ l
5 Z) Z O) X& \0 G, Z
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰7 y( G6 t6 l# h, E' D! Z
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接' \/ I6 b1 r8 v; `' A5 _: T- F
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的% Y* t+ N% \4 H# [! Y/ R0 P
信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地. Y1 Z" s/ S7 ]- k! [$ K1 ^2 s
址缺乏识别和验证的机制。
+ [% P- t7 N$ L8 u3 M# b E: I
8 ~3 }1 I! n3 H& a! Z3 H/ `" i9 \ 通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
% k. w- S1 J' o/ V8 j请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
6 k1 l9 z0 u# Z. W( m! |3 [始序列号ISN。 & W' O# C2 B- L& B
+ h0 H" u5 y9 ]( R 具体分三个步骤:
0 K0 Y$ E* X4 i1 P. V% u" O1 i, K' I6 w
1.主机A产生它的ISN,传送给主机B,请求建立连接;
& Y t# {$ b! p
J6 l& T3 {% E9 ?3 I 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
, a" I, W) d: V% V( `4 V- XACK一同返回给A;
2 ?0 {% [5 t9 E6 ]. e
3 w1 S) B9 L4 E 3. A再将B传送来的ISN及应答信息ACK返回给B。
+ l$ B" T2 ]% j2 W# v
- n: o: S2 Z7 G, R$ a 至此,正常情况,主机A与B的TCP连接就建立起来了。
7 v( ^* e" \. l$ _# q- o/ \6 s8 j5 @
# @$ i2 ?8 d" B7 c& a- U0 S+ }2 f IP地址欺骗攻击的第一步是切断可信赖主机。 8 I# Y8 Z8 [/ f" V) A, R
0 V" M) u% U) G7 L* N 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
+ U2 ^+ t( M# b7 J2 C; \不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
3 w9 D" s! g- N0 K) C# s/ v7 m) Z+ q能发出无法建立连接的RST包而无暇顾及其他。
# x% v! u: n, z
$ J# e* `' \+ n 攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
9 e3 w' `- G7 x& u' p, g通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连9 Z' M$ R: m9 q8 Q# P
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和8 c; A; A, q+ o: a; U
确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目* n3 m: D1 R# e3 ^* @6 u
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从
i/ R5 o! @( k; d而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击$ x+ L6 T* d) H+ ^- @( ^. O- z
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
( d C! W7 [ W. t9 g* c% I$ ~7 s8 V4 t6 d/ B) m! z
现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
# S6 k" ^5 [7 M% r$ t W机。 2 k% v# {/ z$ i9 I# ~4 s
+ K+ b# l- T. d. f, x 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过2 G& I- n$ `) j1 {
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
. u' X5 e1 L9 Y* p/ T! L6 N反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
% e \1 Y* N0 s- p. p% N- ]络。
: f1 s( L& O' M# W/ x. {3 C0 z3 P: y( d0 k6 g6 y
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
8 Y8 N) z5 n1 V9 w, A: K* U6 l不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许" M5 U( }3 `6 G, ^: f2 s
Rlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允' p" N! `& b* S5 D: L6 P m1 d
许Win95/NT文件共享;Open端口。 + Y B+ W m& q
5 B y, o0 `1 F& R$ m( M% Z
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防+ P5 _/ u7 a7 l! m
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的% R# x) a* k6 c; j
职能,处于失效状态。
' O# P% V; Q( u0 I* L: g: e) N2 B3 S* n) l8 U& s
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,
9 [/ L6 v w2 S% |7 @! m随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件( ]/ Q0 V/ N H- a/ n, c: z, u
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期- g% |, H" ^. F
望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
- ~. P1 B( I% q) W% x因此不仅涉及网络安全,还涉及主机安全问题。 . y' @" s! M; y
$ l9 ~1 K3 b$ ^; {* V
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,+ t$ f1 V3 G" j
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则* ^6 l! `8 @8 Y2 f0 x* I4 g2 H
无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 # j p8 o' V! k X8 U
- c% v( s, L! N/ p4 _4 r0 V
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存
$ ~" J% K: {/ \. ]# y! m+ K2 _在各种网络外部或网络内部攻击防火墙的技术手段。
" a( C. L1 @9 F8 b `7 i6 T R8 F4 `, r% z! ~
三.防火墙的基本类型
# }1 z! w; Q) \! X5 p+ V+ Z i$ T9 U0 q3 T
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
$ g1 r: Y! W7 r* X用级网关、电路级网关和规则检查防火墙。
) ^: U6 |! E) |, j8 I0 l% k: t ^# ^- G3 T
1.网络级防火墙 " [: W; S1 E! z6 g& A
! u; ]3 x- m1 P! a4 N2 e, q6 z 一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
; C- n1 J) u8 ^8 k5 h S- U" ~与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都+ Z/ T0 r/ y+ y/ M& l- R
能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来& w! x, h5 K' ^' F- I
自何方,去向何处。
3 F2 I. g1 s* u% Q) w
3 k! Y" O" E' ~, o2 x- Q 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
3 x% w2 p8 S- ~7 _) `) R- R连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定
% x3 i2 |3 M8 a" c6 a9 h义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直" J8 }: h) d8 C, W! l
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默# j) ]3 }5 _! d$ \1 D, Z- y
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
/ @: R( c3 k4 @' W/ C7 k6 sTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如 b6 A" H1 d( Z/ S& m
Telnet、FTP连接。
, X, b, q; ?" w9 d& X5 s
8 @- }, v; C3 x" K$ }1 Y% a 下面是某一网络级防火墙的访问控制规则:
. T8 E6 \7 m3 _# j( i# O/ Z8 R# t
(1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1;
! D9 b! k$ m$ W3 I' ^+ e# r0 ?. v: d3 F; ?! k3 z$ t5 x2 h
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
! B+ l9 j8 _' j, \( O9 Z! p3 {机150.0. 7 Y, z, v( D$ d
! _* z8 s% l0 O, h4 X% j
0.2上;
5 c j; Q" J* j% T4 @1 t' X' b: D' o( n
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3; ) U+ q( ? U( N8 d; A X2 I
$ o9 e9 F. A! s6 k: T, D& g7 I (4)允许任何WWW数据(80口)通过; ! v) _9 o+ { ]+ B/ U
) O0 {- O+ u; J, q1 Q4 c* h* P( L# a (5)不允许其他数据包进入。
, q, J; q* h' \* F4 D! z& p2 i% Q
4 W* L- v9 X( e9 w5 _! L 网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
- W3 F }& d* v: u- @很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
: ^% c4 e+ B% {4 W5 B- S4 U/ P5 C. t
2.应用级网关 / \0 R% `2 q1 E) r
3 R) @( V* F5 B 应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任. n$ h. w- F# O2 g
服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
2 B# P1 {% r: l1 ^4 c# C( \上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
" t% J. U; a; p4 k* z/ j8 }+ q# o" T需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
; N0 ]" ^+ N- N2 D; a4 h" z8 g2 P3 k, t# X1 @
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 ' ]" I" u \+ R. a" b5 l! q
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
( K' p5 Z7 A- ~0 J2 C) J/ V代理服务,它们将通过网络级防火墙和一般的代理服务。 . `) c3 {' N0 h6 g- N- e
/ w) f+ t8 u# {; M0 W* B 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,% w1 w* T% x0 |8 `. m0 T1 A# n N
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过$ i6 R: ]+ Y) l- @
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录2 A1 o) j1 N# j% Q& n
(Login) 才能访问Internet或Intranet。
# k, z+ z9 }/ X# q- F" r
& }2 }8 Q& o0 N, H( V d8 L" B 3.电路级网关 ) Q, [0 n; d* ?+ P: x& k
; S+ W; y1 r( d; [3 A2 D/ _* } 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手) d2 g$ a( q4 H
信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层, O4 t$ u" I' y* M+ o
上来过滤数据包,这样比包过滤防火墙要高二层。
& ]( _4 N! P) m3 ~
+ |- K- j [7 ^ C( l L 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
' V/ P) d) m8 o; O合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;. p, b% G+ j& @2 R4 g- [( s
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
% }& I1 z8 z7 Y. e! ^) u. y全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一+ Z* n9 }1 v/ ]
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP
9 l& S8 w9 J1 u2 S" U$ Z地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
% T8 ]3 r/ r4 h! a因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 ! o, a5 Q* d4 F2 j+ @! F
9 F" n7 T( s/ _: V7 ^0 K
4.规则检查防火墙 8 U: t0 J6 J! v' L( Y2 V- h6 q
" Y3 J4 E+ m5 f1 ~* q
该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
6 w* V: w7 Z8 w1 c g滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
8 J; u# T* V+ e3 e: L) e, g) o2 I- {进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否# x/ ?& w" G6 h2 x. ~8 {
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
. _ Z. w; p9 Y: T1 @容,查看这些内容是否能符合公司网络的安全规则。 , E1 Q' A0 n4 H" j
+ t% F3 I& Q% I9 }/ I 规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是, a. n7 Q$ W$ M! Q
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和' Y- s7 _4 Z7 v4 @
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而4 R5 v. K3 C" `
是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式
: [, b6 l+ { h" Y8 B; R( Q0 V& }" F来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
) C* ^7 `6 i: V4 B, G% u" d- f, E+ b# L4 l: ]0 J( h% z% F
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
5 F; T+ f0 U: p3 q$ T5 E9 \* q户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
/ t9 ]7 ^( S! }个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一
- i; B6 v% ]( z/ S5 kOnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1
# N+ L. [1 ?/ y, g( O防火墙都是一种规则 检查防火墙。 & M$ X5 u9 Y$ m
) k6 ~+ [* R6 [# ?. D 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
$ J$ z K* j0 A, Y0 h9 @是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
" Q& g1 q ^: b1 x功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽! F2 E* `; v1 a1 c, Y" Z" b
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数. A% d& @, @0 ^( N$ X9 F z) |
据。 |
|