|
一. 防火墙是什么?
5 `- R h+ e9 c4 M: U$ v' D" j( C& i4 v* f7 h- H
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方1 ^3 E) n# l% w3 C( I/ ]' O
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制; @' I" \7 c: w3 H4 U. m
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人 K) ?& o4 @% e; _
和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更1 j3 p) W' _0 B# y c/ \
改、拷贝、毁坏你的重要信息。
& B6 x. r q# ?. p3 A
" O9 X0 T% \/ G* }, I& E 二.防火墙的安全技术分析 4 I4 N: S/ ?. V$ Q% y7 f
- \/ Z2 t. {; d/ }* }2 W
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火* w" f0 _2 ]# M9 V: |+ W' x
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认1 A" S& h6 Q' ^' U9 n! z% Z
识。
6 a- e M" q) b( u* P- ~9 s6 q v7 @- B5 G& H( {
1.正确选用、合理配置防火墙非常不容易 & R1 i! Z: ~, }5 L/ _
5 I6 l0 S) T9 ]) X
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系4 ] F }; P8 W O. x/ `/ s# x5 O
统,配置有效的防火墙应遵循这样四个基本步骤:
" d" `$ Q. Y8 Z0 q7 c u0 G Z+ S8 N" p/ K" k# s' l- C# J' d
a. 风险分析;
. ^; R0 ^) A4 J( I5 u2 h, U; W6 O$ t) U% Q. ~$ K
b. 需求分析; , u: u4 R7 b0 }. t( X& j( Z% [
* x% [) t3 o! i" G% }
c. 确立安全政策;
9 [8 A0 @+ _) F2 R8 r [
, m: H: W+ G S/ G! q d. 选择准确的防护手段,并使之与安全政策保持一致。
; i g; q8 R4 @ X0 _/ V3 O5 k; c8 A3 f: x: k, h! _( d
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只
: F9 n* F" k( P& K# S& L是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
; S+ M) W4 n/ V5 T火墙能否“防火”还是个问题。 % W8 L, C, z) E+ P0 Z4 t
$ ^5 i: {, G+ s
2.需要正确评估防火墙的失效状态 - B3 V. F, H% U4 R. o( b
8 {0 w2 Y( Z5 y5 e 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
m, X5 N2 p. Z& }9 Y2 ]& `% Q能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻
) ~- L# N# B- L/ ?- J' m4 K/ M破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正9 g" ?5 r0 b/ g- _' Y1 L$ c
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数( R& J, E+ g3 m
据通行;d.关闭并允许所有的数据通行。
% |" ?1 ~5 b+ y" ]( c2 p# J* ?8 Q
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进
, k- U& Q& t% |$ n. }行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐5 F' I/ W K+ W
患。3.防火墙必须进行动态维护
9 K4 J/ K; j/ [7 K9 b6 i5 C/ c+ V5 J7 o" L& [0 ?
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
9 b9 X1 `) n. ^: @3 y用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动2 e! _/ _, c0 k* N y6 q3 B. k
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,
/ Y9 {+ ~, \) o7 `$ o" ?此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。 % D& H7 S5 T# y2 W$ d
6 q" `* A7 }7 N4 _: q% t 4.目前很难对防火墙进行测试验证 + s, Q' \ m2 p3 y* R) w
' J* m4 u7 F4 z) r* g. ]8 c4 o/ i9 ~3 a 防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
. @" `' L1 N1 Y/ j* @ {* u至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
5 x- B; ^' J. z' D大: # O4 N& M% n& ?8 c6 _
1 ]' q& \0 e3 `4 m! {" G# S
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的 y8 G8 v! `, r% U: ~, q. o7 c" a8 i
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试) U# ~8 n2 S5 c7 `9 p" o! v" L
的工具软件。
& x/ d/ W) _4 Q+ c1 t( o
% h$ Z( W, J* `2 X/ i, V. P( W b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作+ u! @- C" c7 d* r% l( x
难以达到既定的效果。 & @' }6 m4 ^8 j7 U. I1 S7 Q
b7 G0 |" f [% p6 n! V c.选择“谁”进行公正的测试也是一个问题。 7 m$ j* `9 r) j/ C& K
" ?' {7 h" l8 _: ]
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,
/ p( \- d2 T0 M% p! E3 M进而提出这样一个问题:不进行测试,何以证明防火墙安全?
% ^* C9 ^& q" V# }
+ D; j& v `- T; } 5.非法攻击防火墙的基本“招数”
3 b r( c- R7 U9 [ `" Y- ~" n" |1 o1 b- o, v/ B9 n! `
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
) x; d* f! E2 Z# X* ?9 l S了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值1 U2 P+ ^1 M; ?
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。 , Q8 n l/ p0 ?. }, C/ c& V3 Z, F
# N) S Z# | m 这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰$ I% V+ M! C9 C* n
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接
6 H5 `* S. y( q% [- M O5 N! l口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的3 y1 D4 ^, {% F) { K6 G
信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地" u, `! [' U' U
址缺乏识别和验证的机制。 - Y! }, s8 D& V$ w2 L
0 r5 y( t0 D+ @9 J
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
) ~0 ?; W, P+ c/ w/ Y请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初1 C6 {% M1 f4 D
始序列号ISN。
# X1 E) d3 a: \/ l7 H
/ u: a8 |9 O/ d, ~: r 具体分三个步骤: . R; E. z/ ?; A" @' ?
+ N, L# w+ x3 |4 H/ Q* Y
1.主机A产生它的ISN,传送给主机B,请求建立连接; 8 s- w j$ i6 k: C4 N$ B
, a1 O: e, V" V; l" ^
2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
2 T L W) x) S, _' N3 yACK一同返回给A; , b; e2 E8 S8 L
# o3 @. C l# Y# T/ Y5 ^ 3. A再将B传送来的ISN及应答信息ACK返回给B。
! Y s+ B" t. q# q' B; E; j1 s. ] v) b) g# [% o! K
至此,正常情况,主机A与B的TCP连接就建立起来了。 ) E; J/ g1 J& T( ] x$ @) k+ [" `0 L
& @6 L8 M, e- i0 N3 \+ h0 U
IP地址欺骗攻击的第一步是切断可信赖主机。 - n, x7 ]% S7 `: V5 G9 y g
" @4 h* S8 P# M0 p9 ~; U% m 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
; ^$ {: w" U' k; g* Z/ r不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只1 y, U- i0 X* T; [
能发出无法建立连接的RST包而无暇顾及其他。
0 i/ K4 F0 O0 \- B: x9 i; r o7 j& A$ {0 d ^( C7 |9 G2 }
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),0 G: }- `0 H" z2 Y( E3 t- C* ^
通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连* r8 l; z$ ]" R. R$ ?
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
$ i' S! v( l. u确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目
. U2 C- k& G3 W标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从. G% h! k" d+ \7 F4 p$ c2 j
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击- Y/ T3 `3 ~" \( S0 A! K4 t
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
! \7 w' L# j9 Y$ F6 S8 _! B: J C+ }* A8 t
现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主9 J5 m$ D5 ?) M
机。 8 i: T: G6 F$ `0 i/ \
0 A) Z; z# C4 y! a2 ], L 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过: x+ w' U( t* U
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果& D! e- U& O7 ]! X
反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
3 Q8 @* Y$ p3 c0 o, `7 C1 O' z5 ?, _络。
/ v, e6 M% w+ o& _$ B# O& \$ z: i0 B8 \6 L& Y5 F. ~8 s* y$ Y& z
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
5 K9 ]; m$ e( ^* \不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
! `9 l$ {1 s1 q5 ~1 SRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
/ O2 Z0 c3 f/ {( O4 l许Win95/NT文件共享;Open端口。
# i- S/ s0 l9 O8 c$ [ P/ Z, d3 H" b @1 w1 @2 v7 E
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防
. `4 e' D* I5 O) g9 {9 `0 Y火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的
/ f2 O3 \1 r/ K* P" \2 w职能,处于失效状态。
6 e' q$ c2 D6 F. b$ O3 M2 o/ z2 `0 e! e e
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,. c; Z0 y* U- H, h7 ~# G7 v% H
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件8 P( ~: `* c% R
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
1 l; X1 _# `$ g! h1 G3 o望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
! b- a/ w9 r6 |, ^6 z% a! k因此不仅涉及网络安全,还涉及主机安全问题。
+ U9 ?/ {" S2 d$ k/ W& D
% |& G4 v) N, }# l( v' [: A 以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,' \$ @" g( i" T0 x
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
, ^ Z9 v6 L& F无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
' V2 k. U; P0 O9 Y% y% G \+ M% a) t- V$ j8 {
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存
( N8 C* r8 P' X& g% t4 q在各种网络外部或网络内部攻击防火墙的技术手段。
- ~ t) j5 C' |) d8 ]
- s5 |% K" B* R# S9 Q1 ]1 k 三.防火墙的基本类型
. F8 I; u- r, A" K! z' A: ` e: N- M" }$ c
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应* y: ?) r) I0 _" T6 T5 g
用级网关、电路级网关和规则检查防火墙。
' d- f' b- J8 S3 p" c) ?1 ~) S7 r7 B: Q; L6 t+ h; u
1.网络级防火墙 - V# M( X/ i7 F# q
0 [9 f$ K' i0 f. d
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
9 b L9 {" y1 V) l& N/ v与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
% o% o8 {2 J* C' S |" h0 [能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来4 w# Q8 D$ L& d
自何方,去向何处。 , N7 l" q" Z- e
t2 w; ^1 F) Q1 N+ D) K9 i- ^ 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
6 p! I( f j1 Y6 D连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定* r" t0 q1 _4 B8 ^+ \2 \
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直
4 d$ c4 {' G4 A. N* H; ^至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默
' x' S- N; {1 M+ d) }7 @: \认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
0 l6 ^+ G% \% G6 }/ T1 S% b1 l1 LTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如9 l* B# a2 o* r# N. K/ E7 h
Telnet、FTP连接。
9 m0 \' v6 u p# }2 ?) }' }- P
- f) M9 x( y1 } 下面是某一网络级防火墙的访问控制规则:
, `; q. Q: Y% C; l- q+ T, \- A; ~
# e W/ i- l6 l! D& a+ O+ p* @ (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; 9 {- z4 [% `2 T: {- }# d& q9 m
# {7 L( \( L* h (2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
3 W# g* s2 J4 _; o) E机150.0.
' O! }8 ]- D P1 @9 A R. k, i& a! ~
) |2 [5 t4 c: ~! L 0.2上;
3 h4 j2 H' p0 [+ J
4 `6 N+ e7 n) e+ ?7 i U/ [! Z (3)允许任何地址的E-mail(25口)进入主机150.0.0.3;
( R' o$ t$ Z2 `/ O* Z7 w7 I2 H% |6 `. U M$ J( {4 W# i
(4)允许任何WWW数据(80口)通过;
% z* g+ \7 P2 a) m% r8 S I$ b
$ n" [* G7 p4 D; ~( O2 z (5)不允许其他数据包进入。 ' U: d4 k+ A. F$ ^1 M* P4 k) n, D
+ Q, l' k* Y9 x5 H# ^9 ?: ?
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
9 J) }! j7 j$ i很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
; \! K- Z6 h6 K8 k; n1 w5 X4 I$ t, q( X* V# B, q! B
2.应用级网关
0 o4 Y9 `& z4 o% F' f2 C7 V- [: u! T# q1 M5 M {: B4 [3 J$ Q' V
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
! `) z- A* x- Y# H" U- i服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
7 F1 P$ j/ H- S+ r5 X; [% w上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
* L3 G$ f; w J7 y: v( W( n. p需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。 6 b: I8 x, k$ y9 f
. B6 h" ~3 I, X8 l 常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 5 E/ a! P8 j& E A- i0 C, }
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
& s- x) {" w- r9 I代理服务,它们将通过网络级防火墙和一般的代理服务。 / ~3 v% J8 C' \ c2 p
9 C. Z! c+ u j, A( w1 E 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
4 d6 Q, t, X9 s( _7 B9 O而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过( j3 m( ]" E7 a0 V p
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录! ~3 j% Z7 j) S) E$ r U! O
(Login) 才能访问Internet或Intranet。
' L! Y: g: D* _9 p1 P, Q# k7 v6 `
0 x x! {9 L0 K" t* X 3.电路级网关
) M, o' N4 J9 ?, F$ h) L2 r9 I: l3 T
电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
/ B% _# h* O7 E: l: k0 d1 Y" o: I信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层& c) @* X9 Q& U3 T* D
上来过滤数据包,这样比包过滤防火墙要高二层。
+ {, y; t5 ^0 d& q; p) n% ]" P+ c1 J1 I: k, ]
实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
1 S( @7 }$ I' z) c2 C: \, e! z4 Q合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
f6 f& S3 G8 k) P* E! I- lDEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安5 C, L2 P- @9 @& a' y$ h" d
全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一* X0 O( i' T3 E K
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP
$ o. g, Z+ B( j2 _地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,: p- t8 Z1 p3 o. C! {) r5 _& S
因为该网关是在会话层工作的,它就无法检查应用层级的数据包。
; ^% m2 x& s& X9 V* Z9 x
+ J0 J7 h, V4 G. Y% f6 u/ [* D# V 4.规则检查防火墙
) h; m6 a. e$ w: H: W- R+ C* t: ]
3 T0 O# h: ]6 e1 d6 q% _ 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过 {0 ^7 ]% \( d- r4 u
滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
- ~" r/ K( e$ I1 t进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否& G9 p Y+ B8 @ ]
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
+ ~8 M) Q: K- C5 ?7 U8 ]5 \2 U容,查看这些内容是否能符合公司网络的安全规则。
^; d4 v m p0 g# ^& t$ ?6 \2 T) ~, K: S+ w ?
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,1 ^5 C$ a7 L [
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和
0 d( x5 M& F$ J% c( Q }1 H9 [5 r不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
9 c4 ~( D4 b7 x8 H* y" _* e8 ?- B" ~是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式( u" Z3 m1 n( L3 w
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
6 g A+ ]) U" y' A! ^$ i O, v& ^0 A, S
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
! s1 k5 ^; F% L# ]$ x; N户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
0 S; M8 A# j- c5 b个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一8 p- `& M' F! c; m' N
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1% M: p% o6 ]0 W) j. j0 \' \
防火墙都是一种规则 检查防火墙。
" X& k( P4 X7 F. U3 J) v8 f* L, E; f ~# z" A; Q
从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就- b' Y! }' |7 n: ^
是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
# S* K p% j! v功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽
5 r( u5 B4 v( ?查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数, B* J6 Q; r+ d2 h
据。 |
|