|
一. 防火墙是什么?
9 M! E3 c- N" [+ ~) x$ K4 {) E& N( J5 `+ q% H- X
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方* Y( p6 D2 m, B+ r. `
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制
6 y0 X. ~& }! b尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
. E4 L1 h& V1 G3 a+ K4 T4 w1 l6 F! M和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更8 u! R( ~/ I, C2 D2 G6 k
改、拷贝、毁坏你的重要信息。
5 v3 g9 Z6 W) S4 N, R. k: p* N3 s- G" v! ]4 \
二.防火墙的安全技术分析
o7 Y9 s: Y% O1 H- ]. R! c; f6 p
% p' h) d* M0 T' J' ? 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火3 U% x8 E4 K+ L' B$ D; @
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认4 N5 E7 y9 l- R! Q4 i
识。 * Z/ Q# H* T V4 Y" ]
" G% f1 I& I3 I* Y. s
1.正确选用、合理配置防火墙非常不容易 ! B. ^9 y1 Y9 w4 H$ ?; N
9 S) B' o$ M. b# u& L. q/ H
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系5 g& Z% H# ~ ^& O0 t) g
统,配置有效的防火墙应遵循这样四个基本步骤:
6 I0 G, h" u' E. b& v) U3 J% X0 Z# v' @' w5 l/ Q/ M9 e: D
a. 风险分析;
6 G: x _5 P6 Y9 [ R! u3 {5 O1 g
: K( R# A! s }) \% P b. 需求分析; u/ a! b: n1 ?9 l5 b ^" s) |+ Q' X3 W' Z
5 n6 a; H+ k. U0 l* t# j4 q
c. 确立安全政策;
$ O; v* O: |* Z- C: C% \ L
& T9 Z9 k+ W$ a; v2 _+ T d. 选择准确的防护手段,并使之与安全政策保持一致。
3 k+ n1 _, k& V4 ]1 M
+ k! t2 W p1 I2 s 然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只
0 i- l& }/ x+ C x" R7 x7 `是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
, y9 O+ H$ |( [8 F7 _' Y火墙能否“防火”还是个问题。 2 x U+ ~ O0 E. g2 t+ z
: B0 H; d" I8 ~0 N. e* K/ ] 2.需要正确评估防火墙的失效状态 8 h. P- K, ~" Q
& y& K1 I( o8 e, H1 o
评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,2 [1 d, h& O9 Z/ h
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻( v$ x: {% f, H/ a7 ?
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正! n$ ^& F2 P( {
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
; v, B5 e% o$ K( ?据通行;d.关闭并允许所有的数据通行。
$ o- b3 u+ }, T" P) n9 E& c3 u0 h; B: a' a
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进1 v* _. U. a& K; ?9 y7 Q
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐# U/ E! M; S9 d. @1 C3 d
患。3.防火墙必须进行动态维护 + y& M* {4 k6 f2 l `! F6 o
- }, e3 F3 O/ l* F1 i0 R* L6 c) [3 K
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
+ h4 E$ t5 f0 F+ n4 v7 s$ ^用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动) q( W z6 M7 a$ ]2 ~. N1 q+ w
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,0 V- U# b/ a6 k5 R+ P* F( N! V8 a
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。 3 u. u8 `9 s" J% @; h- B
3 l4 f p) b2 W9 p7 [
4.目前很难对防火墙进行测试验证 $ e& Y5 b/ _8 t/ o' S4 P* z
$ y- r/ b& \7 m0 g" [$ D& R 防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚* Y6 b( P; a* w/ R$ G
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
/ f" S' m/ F5 |/ U3 l大:
, a6 y% c6 K- _; U! Z! W) p% b& ]4 _7 Z0 X
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的
% Y: Y% c' x* g; U7 F4 q. J+ \- c工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试2 z9 @/ i7 K- k, y
的工具软件。 ' }* ]# O( C5 t* r: Y
* h! h: X6 b" ~2 `" u
b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作- n: r2 l8 F3 @1 H3 r
难以达到既定的效果。
5 L8 r$ E, ]% S4 H/ u
( T' N. U4 j- M6 I% | c.选择“谁”进行公正的测试也是一个问题。 / V4 e8 g' U5 S8 |0 a% R7 i
* N, M( h! {9 V# [. L& e
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,
" G4 a x* ~9 v) j: W进而提出这样一个问题:不进行测试,何以证明防火墙安全?
/ A* U' l6 f1 S6 @
8 S) x# y/ h# @" t 5.非法攻击防火墙的基本“招数” * d2 J* L9 D$ t% J
! o- @" K. x4 N r1 e4 Y/ q a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
/ |* d. V M% o4 d, m4 T! M" |; ]: |了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值& i% C1 g) H0 o6 J, I+ u" p6 n
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
0 D! Q& h0 d4 R/ w8 W( M6 w* u1 ~3 _; z2 r
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
* F& a: Z% {% b# a1 t% D. o7 F恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接
" A5 `8 I6 h* L# s$ ?* d+ Q口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
! x7 M6 R. j$ r7 y3 R信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地' s8 |) _" d, s* \
址缺乏识别和验证的机制。
1 H8 u) ?$ Y+ e5 ~7 z% C$ L- q% p0 S
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出* S: P' U! h+ ]% S4 k3 w% P2 T
请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初* f% c! j5 E) N, Y) L
始序列号ISN。
$ l7 y& Z( a& u ], W; `& Y R+ b6 N8 f$ x8 g. l4 d% q
具体分三个步骤: . O0 c) u+ H7 a3 o3 G' A$ t& I
: D" a; \* @4 g& [" }% o3 V 1.主机A产生它的ISN,传送给主机B,请求建立连接; . f; ~4 C, w) b0 F; I0 e: s: r
- W8 r, `$ s% d* @$ i Q
2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
, b6 j* w& y( cACK一同返回给A; * y+ C" p/ s D: f" N; O5 N
) `0 e, _6 i$ z/ p' { 3. A再将B传送来的ISN及应答信息ACK返回给B。 ( d* } B& F3 q# o
" `1 |' v, Z+ {. O+ R1 s) o
至此,正常情况,主机A与B的TCP连接就建立起来了。 . [6 g- ^' x+ F0 g+ Z, k
; k+ ~6 K' J1 T5 O" D# X IP地址欺骗攻击的第一步是切断可信赖主机。
% k6 ~5 _( M. x1 u2 E/ U1 ]8 i
( y& z' k7 _* h* U' e 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
/ U- v- k& ?3 h8 r: [不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
2 F0 b+ i) @$ d$ {, ~% Q$ B能发出无法建立连接的RST包而无暇顾及其他。
[4 `+ Y5 X7 h7 \" k9 K* x% ]7 k- A3 a; T- ?- c A' @: O
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
4 e- Q; G! ]# B$ S" O6 ^通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连
1 \: u6 y- a4 m接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
- C5 }" o$ i; t确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目, R8 E' ~2 v" @
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从! F6 n) K- F/ Z! D7 l0 w
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击" ~5 P8 |$ g9 Y { e5 |
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
3 i8 m& F" L( R: N8 H0 ?9 Z% [2 _: ^ w8 s* \
现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主; X4 B$ J5 g, u6 U% b$ g& }
机。
. N2 q* W' E% v* \9 ?5 s9 t' r i" z% E" Q
随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过
, i. B8 M S, |( m0 s4 o* H这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果3 w6 w( H5 e, f$ H
反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
* y$ ^( |- X; ~络。
* L% i% _. g$ c1 b7 _2 i# ^
3 a' J5 w7 j! b: o$ y 归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;4 k% X) H' T' V8 p3 u5 y
不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
" k. w$ H. ^2 n$ }& Q0 g- FRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
( i& x( \% J; Y3 g5 K' b许Win95/NT文件共享;Open端口。 4 J9 O3 H; I+ U( q4 F$ L* M
7 m# W5 f, u# _" u1 c
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防: v3 }, @& t% f. I
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的
2 @1 i5 x/ }0 ?* t' k职能,处于失效状态。
: v! Y2 y3 s( a# i0 q4 A8 z/ ^% X0 S" |" Q0 F4 J
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后," M$ f- w3 ^" p+ q
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件5 Z$ S: P9 [# N9 K! H( _+ J. L6 j8 w
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
6 D6 C! E; \* c: A: ? T望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
; Y" N9 ]& g& P% E. Y; o因此不仅涉及网络安全,还涉及主机安全问题。 8 i: D5 N' r' V+ F3 U( v8 e
% g6 Q! I" \/ m9 e# M
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,& m/ e8 e' |0 m9 z" B V4 S
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
+ w6 S z0 j. a" i' S& N无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 . x$ |2 t! g) z) L, n3 D
) y; H6 m( j9 g% ^5 J
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存1 ~) B8 i5 F$ W T) k$ m
在各种网络外部或网络内部攻击防火墙的技术手段。 3 [: @) _$ Y% B
3 R' f' m8 n l$ J' }7 F, j 三.防火墙的基本类型 ( ~* t- n$ }) ?) B5 K
0 J4 P& }$ P+ W 实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应) o# h: ]& O' k1 o$ q5 _
用级网关、电路级网关和规则检查防火墙。 ; L2 P5 o+ w8 R! g' n1 P
* b. n6 I$ r% f: f
1.网络级防火墙 ( T( t6 y6 ^& y
, n7 U2 A( z# S( w2 K+ n4 F( A1 D
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过/ c9 m0 s$ k& z7 n
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
2 n& B" J A9 @5 `$ E5 Y, A" t8 P. \8 a能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
' X6 ~ [, r" A1 E* h/ q# y" _. g5 B自何方,去向何处。 Z5 J& A% S3 w$ M: \" h9 ?0 J
% u& C9 B3 r9 L1 D; V/ b9 [ 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
) v6 h- q3 F. K2 n6 F2 E连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定% e% ^5 p' c8 m5 z
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直
$ E; A0 w7 k6 w, V2 f- Z至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默, Z% ]9 g1 a$ \- }1 E
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
7 T( S5 r' L' J" V' pTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如6 R% c% k; B# n$ b; p
Telnet、FTP连接。 4 r5 v, d1 X' {, ?
7 ^7 ~: ^0 r! J Q2 q; M: x1 j
下面是某一网络级防火墙的访问控制规则: , B$ I4 v" l1 x3 L: X
( a/ Q% T. h$ b9 T. |' x
(1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1;
) k9 e/ g9 t% A( t* |" Z! j6 z {
+ f7 t& l8 E! j$ e& C; j. _ (2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
" r8 T, i" W3 k7 G机150.0. . M" _: a$ ]9 d7 H: C9 s
, m$ e% V1 c# [) q3 ^: v; [' H Q7 O7 I
0.2上; : w4 x. x" y/ _2 o; Y! B6 W7 _: |
4 Q9 p0 E3 \: i1 o4 j (3)允许任何地址的E-mail(25口)进入主机150.0.0.3;
8 a) j( ?; I+ {" B- Y$ K, e& k3 O; b; i6 l3 t# |8 f# t
(4)允许任何WWW数据(80口)通过; & \1 f" z1 |/ m
9 f! N0 Z+ o. H; `$ p (5)不允许其他数据包进入。 ' Q6 E9 `. L4 J. m1 h
) p# v% {8 V5 C/ S% h9 F
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
$ u7 J- d& f7 y. Q很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
- \+ n) G, a6 k m6 p4 j9 i3 Z. p2 O' u, I) E7 j( j
2.应用级网关
" E* @1 K+ T7 i6 z) v' R5 L$ y% X8 o* m/ k U# [! E4 V" n, U% t5 C
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任/ g/ q9 `& P# ]
服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层. L: z/ S2 n7 E7 p" W& @1 G
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
7 u9 @2 `% p2 l: t7 `需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
9 _, b( N; G$ b" M$ E& k( s3 [' ^$ n4 V/ C/ B
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
[+ ]+ t, X4 NFTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
8 x. ^2 g% D4 R( T& O* f5 L代理服务,它们将通过网络级防火墙和一般的代理服务。
. `( e/ R( {3 O) y
9 y& m! V. X5 l {5 T6 ]* @ 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
# H1 s4 y& j4 ^& \0 @而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
& J0 p7 y% x: f2 t' J3 `防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录
" P, ^5 G' Q' H: r(Login) 才能访问Internet或Intranet。 + ]! ?% G7 r" W4 |) j9 k
0 H- t( q( N* I+ ` 3.电路级网关
( A$ b3 o* V) n+ r3 ]
$ w/ K3 G5 t' R6 J3 t 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
7 F9 R+ r4 n( m5 z) r信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
/ [6 r$ Z2 z; a. J/ a9 N+ t5 K9 L上来过滤数据包,这样比包过滤防火墙要高二层。 8 d8 A$ Y( B; c8 [. m
- P2 r2 S/ f# N4 N- ?) ]4 G2 @! t2 v1 m 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结3 T! A" L6 R1 _; K! [/ T. [/ m4 g
合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
$ \1 z& U0 l0 z* [% L" y( x9 Q# \DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
" _7 _% p" Q* \2 n0 D8 ^; ~全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一
, s8 q$ B! T h: Z个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP. _5 n' d0 i7 y" S2 r7 ^( D
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
8 E& P6 T# d- Z1 L因为该网关是在会话层工作的,它就无法检查应用层级的数据包。
5 F; O- B% ^8 n4 z- r0 M
1 I" s" t) z% d9 u7 L 4.规则检查防火墙 9 Q; E3 y3 f1 l+ S
% E& l* w1 d! x# K3 o! `+ w 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
0 j% {3 e! i) C2 x滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤 S+ `' f5 l4 \7 ]8 o% o
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否
- b# G1 S2 i6 |! ^ J; i逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内% r. C6 o* O5 F% R; h
容,查看这些内容是否能符合公司网络的安全规则。 + \; U, G/ y, W; x9 `% X+ `) S
# e7 ] ]* C2 h, i% X9 w7 m/ [
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,
% e& {) Q1 C. a! H3 z) d它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和; }+ R- [+ x8 U' P
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而- |: u" t; T, T1 I: i
是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式' x$ L1 E- f) D! M' t
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
& a1 |4 M% a# a9 J! B5 R% ]) u+ ?+ M9 `3 {# N6 r; s m* E4 H
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
% W# u) U4 q6 m3 @' n/ @户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
4 s2 X9 ?, |( a9 a/ _3 |5 w个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一
* v. ~5 D8 [; L; k' Y$ MOnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1) s# w# M1 K2 M8 t! o2 q+ m
防火墙都是一种规则 检查防火墙。
) @, F2 m A t+ z/ e, ?$ G
! `% v! A4 k, ]+ P% c. b. Q, w. k 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
- s0 q* P# i; g5 z是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
; a5 h6 V6 K K功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽! ?; B* k9 |1 b( L
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数/ b. e% x! v- F4 b
据。 |
|