|
一. 防火墙是什么?
/ j7 j) M ?4 Q% ^. d# y5 k) L: l. e6 W
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方8 h; p) H1 n" D0 k( L2 I' q9 l& ]
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制% w: I7 r5 g+ d5 a' D
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
# g2 O7 {. J( } i! e$ G2 H和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更
0 ]7 `& d1 O) n/ G+ u, g改、拷贝、毁坏你的重要信息。
8 e% H8 k6 Q( o6 D# K6 h$ a$ `% E0 g& T$ q5 Z7 K/ X
二.防火墙的安全技术分析
* v6 s- S* A0 v8 {6 B! o, d- {
& r$ N x# ]$ A$ n1 A4 ^ 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火% w- ]! W& }2 K8 _4 t' Y4 ?; O
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认6 W8 b% W& e A# A+ d) W. d, m
识。 ; y1 B! ?+ o! }( l# e3 s3 K9 G4 v
& K# |' r( P V0 c- W! f" ?+ K* M 1.正确选用、合理配置防火墙非常不容易 2 h& @& M5 t9 R, X
8 b; V: J5 k4 B* \ t1 ^! } 防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
* B2 u. P: E8 i9 b) s统,配置有效的防火墙应遵循这样四个基本步骤:
- N* B; _$ j$ o/ V. W/ Y9 x+ y' l; ~% H% w: {0 T( T8 U
a. 风险分析; 7 Q* ?' ~9 H0 |9 L
: ]! u8 @8 T9 ?, a3 F } b. 需求分析; ; y) a) e' H" p v
0 |( }+ f8 p8 Z# R; [% l
c. 确立安全政策;
3 d" R/ ^- Y% a- v% d* O+ k0 r3 {8 \3 v
d. 选择准确的防护手段,并使之与安全政策保持一致。
3 K% p; g/ Q" T2 a# u% K3 m' N N; G- O; W8 a. t& [4 E$ \, d
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只
6 U: k+ X8 N, R$ X1 t; [/ U是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
* `. q! n: ]0 T( e火墙能否“防火”还是个问题。
" g% S( x+ `. _% r- ^! j
" O, t6 m+ D' y! L3 z/ B$ P" u; p 2.需要正确评估防火墙的失效状态
5 ~/ s( W& u( u' _8 g
& i6 p9 d0 n" i# {; a! R7 I7 N 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
" n3 J8 c9 q1 g5 j能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻
+ s& ^$ [5 D; `) x' o$ m破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正
' O/ a, N$ `: N* L2 L常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数7 y5 Z' C/ t$ N! C8 o
据通行;d.关闭并允许所有的数据通行。
3 g; K, }0 R2 n% M, X+ G4 w, \) f" G
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进% r4 u$ k) S1 h7 \& P1 ?
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐
) m' @9 ?0 }+ ]( A- h! Q( J6 Y患。3.防火墙必须进行动态维护
" o1 L* n- b" u( c7 M# }7 X5 z0 D' Q: _# h
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作/ Z4 Z2 y; B) o n I1 }, d
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动' e& A4 Z+ M/ Z. D' T5 O: H" B3 i; \
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,: K9 O8 \5 u; y9 T/ L% L
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
/ S N$ m& R. _0 }0 B% B/ G. e
/ j* v# k9 Y7 B( a) K8 M& i! p. C0 o 4.目前很难对防火墙进行测试验证 u& G5 k: o9 O
" E/ t+ N$ b) p* f7 I. q! y
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚/ o7 w( D8 v* s; s
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
|( [% @( K5 \大: B' w8 U/ V( ^5 P) o% a- A
# a1 f! t' a4 J0 }, \, z7 R a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的' u' S0 ~# P* x
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
% Q! H( i& ?' V L4 \的工具软件。
( b8 Y7 h% F! G5 A9 ^
* [3 I) y; E8 r, T b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作
+ z' ^3 Y" B& n* T. c+ v难以达到既定的效果。
: c* f8 ~/ U6 L4 b8 z( F# {2 J) ]5 x+ j" f! U5 [
c.选择“谁”进行公正的测试也是一个问题。
3 y* ]% u& u' C. j& `" v# O6 |2 @# Y* c
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,9 Y, `3 @ K$ C7 Y. U8 o
进而提出这样一个问题:不进行测试,何以证明防火墙安全? 6 P/ n+ J; {3 g+ ?- ^
* O8 p: Q' f! C5 t: R. | 5.非法攻击防火墙的基本“招数” & S& j& I4 {5 E2 f6 r
! E! ? `. ^$ ? a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
2 l! C1 M* H3 |* M. a; {8 H* F3 @了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值
6 j! Z# y2 S+ p3 p6 j得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
: D6 `7 f; R7 T0 d9 Z. D
2 T0 [% O" c0 {# \. A! Y8 l& G 这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰: R" B) M' Y! O6 Y1 ^+ {: a
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接
% m! v n7 |1 F) F口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的8 j, ?" {' b6 I# K
信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地4 y* _" u- U7 s, N! F* }. k
址缺乏识别和验证的机制。 . i5 e; L# M/ C' m( [' l
7 t" O0 [- s ~
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出3 D* W# g% Q7 ?; x2 _% ~
请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初1 e. ~4 \4 V9 f- F m& c9 V
始序列号ISN。 6 ]0 o+ Y1 E$ t# [* Z6 n4 K! s/ Q
+ T+ v+ D! O; I) k8 S
具体分三个步骤: 0 P7 n6 J( R$ ~- R+ Q7 S
# P' @1 N- ?# a! R9 i( h 1.主机A产生它的ISN,传送给主机B,请求建立连接;
* v$ J( |* {3 f9 u
% J1 h" ]: b1 w e8 k I S: [ 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
6 O. L2 k- e: q: I* R' [ACK一同返回给A;
0 t* u0 v8 |8 w. [/ E$ v. D+ b& x. K1 o* m9 t
3. A再将B传送来的ISN及应答信息ACK返回给B。
- J4 T8 b/ h# y* U6 p3 N1 _: O4 k0 X* }" d6 x1 m& k/ U
至此,正常情况,主机A与B的TCP连接就建立起来了。 5 X- M' X$ V# H! Q' b. U3 f! v$ V H
1 S/ v; ]8 @! J8 _1 V6 b
IP地址欺骗攻击的第一步是切断可信赖主机。 , ^4 ~' t2 W k0 Q0 M6 X: z
0 {" }# }6 {* y( ]$ F! z: S 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
4 G5 F& x5 @; d1 N不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只, a5 Q2 P! \' z2 w2 p
能发出无法建立连接的RST包而无暇顾及其他。
3 r* z, U( \- Q& E; J8 ?/ g5 W8 s2 u7 `
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
% i) M5 {1 G* k* M [6 B通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连' Z9 m0 P/ E! c2 k: h3 W
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
3 p! R+ u" e [* S7 G确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目
% T1 D7 ~9 j: |% f标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从3 ^5 ]: B8 i7 B6 |4 E% d
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击$ P% y) d) l# P3 y7 J! @
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。 ' ?' b5 S6 |4 g
/ g7 t2 |7 L- { `* f 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
2 F% N) ?0 \: L2 W. h机。
9 S' ]* o- J. N2 K$ R! p
/ t* \# V$ X( y( ^$ U 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过
$ \. c! o+ }" J% V( v: n- T7 L这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
8 v* @$ X$ P: e, L, t+ G: k) a反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
& |9 n) B) ]2 V络。
$ U0 i! f8 N) {% k3 z) \8 W% |4 e' a5 R& o
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
- H' ]7 ?5 S( X( x5 K+ v4 k U4 o不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许 t1 G* N8 B& P. h( }
Rlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
' Z O+ A1 b5 J1 d/ [许Win95/NT文件共享;Open端口。 . y- K' W: p8 ]2 L. Q- g! w
1 Q# l l! M; E" b" A) T b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防3 l0 e# c3 g+ |" Y0 ?5 Z
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的
2 d4 D7 X! k& u9 Z4 L' c职能,处于失效状态。 % [9 l# D2 {6 O9 n, a
7 j) L$ P% P- `- r8 P; [ C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,% j% R! Y- s! W* y7 A5 ?: t, k
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件
/ u% U9 h' R% [) G或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期7 D) b' e b; s, X. g1 S" X" E
望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
, X( @3 c5 i0 {4 j& T5 G5 M5 M因此不仅涉及网络安全,还涉及主机安全问题。 + e0 U. i3 z' q$ e
9 v1 F( B: K8 ?# d: ~* w 以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,7 Z. k* R0 Z4 X
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
% w; z1 T; a4 J4 d$ B% y# F }无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 7 b; J0 d: H1 _' d; {. ?7 A
8 ]7 P3 g) s% m5 O5 }5 u6 E 目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存' p" ~( @! v f2 v/ M) f
在各种网络外部或网络内部攻击防火墙的技术手段。
/ D% T7 I0 z4 w! v9 j0 ?* E7 Y6 z0 S$ @# F+ n
三.防火墙的基本类型
# x7 ?1 O' c& ~% Y6 f8 n- E
7 P) z+ q3 R* v 实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应8 ~' W+ N; Z8 B8 B
用级网关、电路级网关和规则检查防火墙。
7 p( `) H( H) H8 D, y" R; u A/ m9 b7 i% n
1.网络级防火墙
0 Z% ^1 i* O6 H: c3 m* X& r8 g0 S
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过& K" z2 A0 b4 G, E6 H
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
* S. K# Q0 I4 M- T能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来1 [' k" G1 o: A) j4 a$ h
自何方,去向何处。 ) D- M! ~( f v% _
' U7 c9 S, M$ X( `" G 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的: c- D* Y r0 b- e
连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定7 S+ m& s( N r7 Q
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直# d) b2 L! C) H9 B/ _
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默8 i2 i5 T; c8 c& K( J0 {' q
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于/ j# c: W* B) j2 D' z3 K
TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如
5 Y C3 c* h- s* o _8 x, CTelnet、FTP连接。
* \8 C) |0 `6 G# u7 b+ A# p9 D3 g. s+ b
下面是某一网络级防火墙的访问控制规则:
+ _' o) F9 \' @% l+ E: `0 x8 b" Y! N3 Q7 t0 \
(1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; ) [- \ q5 ?% O2 G2 t" @5 O5 x2 }
: a! c$ c5 V: t
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
s& l- y$ N( ~# `% q7 J机150.0. . `" O4 @+ x( N) D* |# i
5 I4 v: @& K# @ 0.2上; . z2 i2 m6 N( w& F0 x; _+ J
# r9 ?3 s* W# m- C( s5 S (3)允许任何地址的E-mail(25口)进入主机150.0.0.3; ' s K# p0 B+ B W9 G: N; Z+ r
1 t9 U; o6 s' |( T (4)允许任何WWW数据(80口)通过; 6 F, b ]0 z8 C- z( b+ ~
4 Y1 L; Q9 M9 f/ O6 V) o
(5)不允许其他数据包进入。 m% G3 q# D, _8 I1 ]. f/ C2 ]. W3 G
" Q2 ?2 T- t! n ]8 }$ T% o- x
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
+ I9 W* g/ y% l9 G0 E' _. X很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
% h$ Z: O, K" ]8 A7 G
0 v, ]8 m& ~& } 2.应用级网关 , D8 a# z/ i) G7 C+ @
' ^5 D/ p. ~ w$ b# z" ^
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任4 U% e' V# W D& T* \
服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层& o! {8 [8 Q' Z- @% |
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
. `: X4 M+ B: W需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
9 _- e$ C# p2 i3 m# i
4 P1 V: Y; K1 ]' A, E4 b 常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
; Q) b2 t1 @4 H3 W" f* U' \! |FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
5 m9 c* B- W9 u( q) [# ?代理服务,它们将通过网络级防火墙和一般的代理服务。
5 b+ \ [+ m1 v8 K: {! }8 E" M3 p3 ~8 _7 u) t
应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,) e) h4 M- i/ u0 d
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
! i i0 ]/ ?' A- }8 }, I: {防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录
. W! R' M# w) W4 Q/ K(Login) 才能访问Internet或Intranet。 : N! U9 C4 `8 G+ y
; v! m: W+ @7 C7 A; G( R+ k5 A' Y
3.电路级网关 1 M9 `4 e! e& T" c' k5 g
0 K* z& X9 S) u& w b 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
+ p) U9 A; o6 }! A& j' }9 q! \信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
% p# ]: r+ `6 F* _( j上来过滤数据包,这样比包过滤防火墙要高二层。 1 j: c8 a$ C, h# U
6 ^3 b( t: x' L: r/ U- {
实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
3 A2 _( |$ i w, \" N) d) p: n合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
. l: i# E- A4 A. Z& d4 o" l4 |DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
* P6 @5 p6 f% z9 m, v- w全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一
! P' g/ t( r# i7 ?个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP
) [* U' M7 T; g0 C& t地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,! K1 K$ Z- A$ d8 X" |9 I1 Z1 s
因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 / J# m) t/ S) f# S# b' u3 f) z) K
3 _5 [9 E( x6 O/ S5 Y, _ 4.规则检查防火墙 " e4 f7 S5 \: g4 G
5 H8 T2 O+ [# V1 k3 e0 R 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过& Q8 |, V2 v3 s# T/ k
滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
* E/ h8 P1 F6 M* q/ j: x' e进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否% E4 o; u) r& O& O, ^7 @7 w. x5 {
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内- _: `4 @( W7 Y; f3 l& ~# }$ `
容,查看这些内容是否能符合公司网络的安全规则。 ' u$ K* s6 e1 ^+ X' p
. J. d6 p% ^. X7 O$ o 规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,
3 i8 ^0 z: l" l它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和! ?6 _3 } Q7 g) F
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
- g* Q! I4 P$ v# }8 H* D Q( h是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式8 D9 Q2 \$ b) R+ p5 u3 S* X8 Y
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。 ; c+ x6 b# }1 ~& o# Q; W
7 _# u9 E, I7 @3 F! r1 p* ~6 M 目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
# S' X0 |+ t' p" j5 r8 e0 F q户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
I( w' b# S! `& [6 v+ o3 K/ g个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一) s6 w& C, W6 }3 I! s2 Y% c' t
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-15 k% m( j. {0 l1 l/ x
防火墙都是一种规则 检查防火墙。 - y* o, V, k5 c6 Q9 X! S0 ]$ j
9 _: H0 \+ v' m/ B 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
/ t, X W k" U" ~; a1 d是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
5 K+ E6 e7 P# ~1 `; g+ I功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽
: h9 \5 o4 K9 ^1 r查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数) D; _: v' m& r3 e
据。 |
|