|
一. 防火墙是什么? # [* g! E$ @ }% }' U
# A8 ?) G' s# }$ G' p+ [, N( r& Y
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方4 T) ]! |& q8 _+ P0 u
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制
! Y. k: r6 Q% s尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人" Y* `6 D, F5 A: Z+ T
和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更
! u. [! j* V2 X6 D S6 d改、拷贝、毁坏你的重要信息。 9 W' o$ c4 E5 Z& N3 F
7 `8 Z; A$ [7 \) J7 Q 二.防火墙的安全技术分析 + ~9 L/ @: h) l4 Y
$ a, X; u+ y9 D$ x 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火
. `3 R* u$ v" n" W墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认+ ]3 w; J7 k2 {5 H. {( h
识。
& k) o, w" @6 |& u! ]$ I8 Y, c8 Q+ O; w0 O* K+ ?; x0 W
1.正确选用、合理配置防火墙非常不容易
: m* g: H/ w: p- K, q
, ^ `- s4 t- }2 y+ { 防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
1 _; \1 x5 R* x* \+ P统,配置有效的防火墙应遵循这样四个基本步骤:
4 y, n) S, y) K6 V) \; d* @" ]7 }/ }+ l2 U3 s9 u. q
a. 风险分析;
6 `6 K/ z) ?! R8 ~& Q% {5 d. a& ~. g4 P% V% G" h0 _" z% `/ [/ |% i
b. 需求分析;
4 v3 K6 S9 s$ ]4 l# ?: @& \ i* Y, C- _. w5 U9 p+ q
c. 确立安全政策;
- E3 [. S, {1 w! d0 ^$ q! d3 X! L% l7 N: ?
d. 选择准确的防护手段,并使之与安全政策保持一致。
0 Y( j7 D8 A& u# z% {. J; f7 Q: @6 h2 a/ R- o/ @4 r( R" L: k
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只 g. A6 X. E5 N w
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
% k5 z! D# \* c w火墙能否“防火”还是个问题。
0 j( v. F, n4 U: z5 e
8 `- H8 B2 r- q2 o 2.需要正确评估防火墙的失效状态
) N+ O( v0 d+ I; P- f7 z, G6 T1 i. l4 V# U( l! I% S1 Z3 S
评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,3 b0 y$ u5 |8 o0 ?; w f% P
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻( |3 p0 ~+ e% U1 K1 h! Y
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正3 q& W& Y5 H& V& `
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
$ D, B: u* C6 a% V5 O. [据通行;d.关闭并允许所有的数据通行。 " V9 c/ V$ F3 y- M' z8 {3 Z
/ x0 d# O- ?( O; s
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进9 o7 g* D9 d& L- q6 I
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐
% T; b" z2 k, F2 @) c* M患。3.防火墙必须进行动态维护
/ L8 v7 B" D2 l- b' k4 Q4 U' k9 b6 N" s9 K6 N2 M
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
' n) w7 o6 d8 Q4 a6 y用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动
3 q0 i* T; a: N; L D态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,' L! b! V7 R! @* I) Z
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
5 I7 n0 q+ @8 n9 p! i0 b
h# w9 k8 I' N* Z& _' [ F \6 U 4.目前很难对防火墙进行测试验证
3 D, Y, T% T& V6 x# p+ Y: Q) G
% ?% t8 |% N1 [. t* K) ]# F 防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
- k- `. c8 z4 \* Z, x7 {' n+ _至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
8 R0 \/ _' K9 x& _大: . b. }: A- V0 w; [
0 V8 g; W2 b& e& c6 s/ F
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的! V$ A, A$ g9 H: X
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
- r* K) Y: }6 ^1 M {的工具软件。
4 j1 h( \( Q0 y! \' H# m3 Q. t) ^% D. B( G/ V
b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作
/ V0 W, P- W+ o' z9 }* l3 P难以达到既定的效果。
+ a- D* p; ?( C& h p! ~, J" G- ?+ m; @7 D |) C) Z, T
c.选择“谁”进行公正的测试也是一个问题。 5 }$ k2 @& N9 g/ L0 `" q, ?$ I- J
+ ~6 z; ^" F/ R/ ]' W# D& _8 ^1 z: b
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,5 Z5 K$ w/ ]" _8 x# e5 F1 _
进而提出这样一个问题:不进行测试,何以证明防火墙安全?
0 @+ ~- U4 x' s' Q {* U9 X# A7 y, r# _9 G; Y2 B6 g2 a: K
5.非法攻击防火墙的基本“招数”
7 _- l8 B: [8 U! j" V j4 _- f* J0 R2 y3 F
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
O' J( z/ s8 {* V& ^) ?* n了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值
9 ]) D- g5 S2 \; @+ h得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。 ( Q4 k( u% x7 [+ C) y8 x) ]( _ R
7 m' k0 `! h7 v1 G) R1 y9 H
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
1 ?1 D0 t" g* i2 U恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接
0 s4 m+ I7 ^$ O( n8 U0 R. U口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的( s* M+ V6 N/ R* f; J7 B
信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地* E# ]$ }0 c; x5 M; i
址缺乏识别和验证的机制。 ! J8 P( h. k: z' ~( k' v& J6 z$ E
/ L S& F4 c% d5 g! Z9 o4 G5 n
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
# o g. t( E" j% r( n1 p请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
6 n' w( L$ t1 n5 _. v- Y始序列号ISN。
3 e% u% t( s7 Q9 H, @$ {" F5 A2 t* f, }
具体分三个步骤: * B. j9 l+ h" [
/ } v. @8 A# _$ I- [0 u- O5 O2 z 1.主机A产生它的ISN,传送给主机B,请求建立连接; ! ?' d" w: f; z- o/ c
0 Z/ j8 Q+ x* \. W2 `9 R* _# l
2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息+ }% E6 C2 @# x& T* I8 A E
ACK一同返回给A; / v7 r3 J" t3 z: t' L
; Y, l1 m2 H7 J# V 3. A再将B传送来的ISN及应答信息ACK返回给B。 ' t7 H. u( Q& ?3 a3 t# R
: y/ ?$ w' F0 b9 V- }: @2 q- d
至此,正常情况,主机A与B的TCP连接就建立起来了。
5 V; D; h7 u* ]
3 @) f s; D$ K# n* @. y: e; B3 {1 I IP地址欺骗攻击的第一步是切断可信赖主机。
0 a1 D& o; n8 w* |$ F4 p
A, y" O2 c$ [- |8 O% }; c- N 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾 z7 o! U1 h7 d" P V
不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
u. T# ^5 H+ [) b1 j能发出无法建立连接的RST包而无暇顾及其他。
+ A9 B& M7 p) |: U' v8 d" Z' V E1 G# `6 u) \5 V2 [7 M, _
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
" D. `7 }1 k5 k, k# r9 o( J通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连
; D# b; r& v( E1 F接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和# Q& _7 [" e1 o) \0 D/ Z0 w
确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目6 M B* A4 l0 s; v3 ?4 X: H
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从6 j/ z8 p: S5 q
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击
( O- K$ D% \7 z2 A产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。 ) _ n0 I7 h! L# Z
+ H! c- B u8 y% Q u2 O 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
) L4 Y1 y7 `% W" g机。 ( X6 v1 g* v" j8 m" R6 U1 f& \( s
9 H0 N7 g, y! O+ T& o/ T: [ 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过
/ Z6 \: ^: C* P: o# R/ M) R这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果8 q( b/ H0 U8 M7 q E
反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
0 j2 S. R% v5 h' h络。 $ y. S" `$ `2 o4 y) S0 h& [
7 D3 h# D6 D2 h 归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;2 g0 A; K1 O' q% d2 K0 F
不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
% A" U( Z! G: N9 U: q, [. \Rlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
/ i7 z4 k4 D6 e w6 i2 |许Win95/NT文件共享;Open端口。
+ w; A& c R6 L* [; B6 \- v. t1 O E( D5 }. _. N; Q
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防
- G7 ~/ I* O7 f( x( i1 |! Z火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的, H1 \# a D! s* v" A9 ?
职能,处于失效状态。 0 S+ m; l G4 N) |( e n9 p
0 I3 y4 A4 H( `: h; \ C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,7 p$ Z5 _- _! _- x# T: x$ f; v" E
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件
: f! s `1 u. O$ y0 L, @或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
3 q$ J/ t8 s5 ~$ _$ B1 {* y2 _望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
" l' a& i$ B% E9 s2 z因此不仅涉及网络安全,还涉及主机安全问题。
( _2 R% u( w7 X9 T% d8 O* d3 ]! B( N& T! J2 k1 ]
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,
2 L: r e" s7 N/ i' G# _# E它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
1 ]4 u2 x8 G7 N6 @' v无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 5 E( e2 I2 u7 V/ B8 P
* D) u& X- {) e7 @ E, z( i
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存' r) j7 Z2 B1 z* f
在各种网络外部或网络内部攻击防火墙的技术手段。 6 V) D! G2 h! \0 \5 u) c! G) `
" ?" Z, y5 T2 S. W
三.防火墙的基本类型
; M/ @9 a8 l5 v$ d j% {+ Z: A. D' a$ Q$ G! u. j) a
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
5 c! o/ @" y, P, T( t2 {( a用级网关、电路级网关和规则检查防火墙。
: t8 j" B6 h/ \* ^7 K( T3 X1 t9 U3 B' V! w s
1.网络级防火墙
$ q2 B% I) Z# p
9 t* G- x2 N, d E* H6 Z 一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
3 O+ Y. G2 s9 K1 F @与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
2 W; y& i! n# ~+ n能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来0 Z& s7 u/ z+ e% r
自何方,去向何处。 2 l& @' f' g t/ F5 L* s2 G( K
* z/ ]: p- F* X8 {+ ? 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
( \: V- s" _9 f) I- }连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定$ J @* \3 n& S) T/ P7 n' [6 j
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直 W* O( r _( N2 |+ R1 H7 X# n7 ~
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默
8 J# X3 [( L% r6 K) s9 Z' x; U认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
: T' K! e$ v! R7 p- j3 j6 [1 ^* h( b) _TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如
n2 ]9 G+ u4 q9 S+ n6 BTelnet、FTP连接。
! M F3 c; T% \6 o8 n& X5 n4 D# B# K/ H# e& }! T2 m) A% ?4 j# b
下面是某一网络级防火墙的访问控制规则:
( R7 _7 `; p% @
6 [" }2 C; ?- S8 ? (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; ( F2 @2 O# u1 C2 m/ v9 L2 h
1 t. r% `# w. u9 B' M. s7 h$ w1 ^
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
' e' [ H* o# i7 o& f! }: F# J机150.0. 5 k! C% M5 g1 A" M& s( I0 |
9 w% a: d, x' N4 U6 M. J8 K, B$ Q
0.2上; 0 v5 m3 x2 i; I
' j0 Z% S8 F! c4 }) x5 }$ s (3)允许任何地址的E-mail(25口)进入主机150.0.0.3; 6 R' R+ K/ |. ~3 B4 u% F
- W( n( H) R- ^2 h
(4)允许任何WWW数据(80口)通过; ' ]* o9 h- S- b
5 S0 B/ o( h, }) D$ l0 c6 r
(5)不允许其他数据包进入。
: G3 W% O3 d) b- |, j" u7 A7 v: r7 {) j# s5 K. m
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护$ h# Z8 |! b# | m0 C, ^' x
很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。 ' h" i! }0 q& y
7 `" L/ H' n* Z* b# }% i$ c. E
2.应用级网关 8 Q7 B$ ~0 c4 ]
, l9 F/ t9 e2 G& P, @
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
6 |! R; E, b; D; h! f服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层% t3 i3 w2 z7 q- |$ ~/ n0 m
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议: c# b8 o2 B/ s9 j1 S
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。 % O2 v( b& a j/ Y
6 k& Q: d; }2 s4 ]- U 常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
8 B+ D* A$ X& H; g8 ~FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的7 ~# _- S c, V% H1 ?$ {+ `
代理服务,它们将通过网络级防火墙和一般的代理服务。
6 ]/ N- L- a* `% \. s# Z6 ~* ?
7 f( {3 V6 N9 u 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,2 H$ ~ f& H8 |* R6 J
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过% u6 h! h Q. v4 e h, `
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录+ d. @3 d R. d
(Login) 才能访问Internet或Intranet。 / f6 P- m2 { l" t- J
" I `2 Z& W, _" Q 3.电路级网关 : A. J b; R; u& H6 {
$ @7 T" {" }& D q 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
9 q/ U J# U, a" c信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
' a5 \! f0 G5 i6 Q0 u/ h$ V/ ^上来过滤数据包,这样比包过滤防火墙要高二层。 ! Z3 s" [, \1 x" ?
3 z! P& l1 p/ x% q
实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结6 W% ^7 y: o: i9 h/ o
合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;+ e4 P3 S' s: v. G
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
* {8 v/ h) A \全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一 h) Q" D9 [2 g0 S8 S
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP; k+ M2 _2 D5 X$ H/ s
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,5 l c: B& D5 [7 a2 a* _1 m+ K
因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 & e( H4 n0 |5 D( L3 {
+ [6 q Q; K6 C5 G) f {" W 4.规则检查防火墙
: J: ]' o m7 D6 n
8 I# g( r7 g- I; L1 n; o/ m0 f 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
4 r! V7 ~. b$ L滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤; b$ S8 B% V9 Q; z# p" O6 M' v
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否
* D. Y5 V7 \: W$ S6 }( o逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
% h3 X: R! M) F- K/ w容,查看这些内容是否能符合公司网络的安全规则。
5 r- f- D0 _- K5 Y; B5 W( x( j( Y
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,* N3 w3 T, Z& d3 I1 P3 Q8 r( F
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和
, ?3 m3 N" X3 S不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
7 \+ S7 u H- p$ ^5 S6 D是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式
+ p+ j4 _% X7 a8 t7 q来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
3 J3 z8 h p0 u, }( ^4 }( o7 Q3 L- {. F/ ^4 F% f
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
: q# t$ E- q* o6 {1 }& Q户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
) V7 g7 i1 F% V# L1 b5 F个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一+ e2 S& q% O% H* @- {- k) X0 J
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1. e1 e5 c& |9 D/ u, J3 D# \% s
防火墙都是一种规则 检查防火墙。
& M4 K$ _8 P; U2 ~! S9 i
, v% P8 }1 {6 w1 {- V 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就; w% b& b" L* \: E; g# x- O K) P* @
是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的; Q+ _$ X' K5 W( r
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽- A( ~" s5 q4 e
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数
& G* u% Y- G, ]- B据。 |
|