|
|
|
一. 防火墙是什么?
3 E: S7 ?- V2 l& M5 M1 r( c# p, w2 `5 o# X: t5 h, f+ J1 ?
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方/ g% c* G& G/ i/ r! h0 ^
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制6 e# I1 `6 ~1 z/ p' j
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人- T2 V8 K3 `* H- D6 ~" r2 D
和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更
* n" ?' P; ^$ J7 p改、拷贝、毁坏你的重要信息。
/ v: I' f7 V6 w0 ^1 {, A! N
4 @2 k) s4 [" H8 X. ~( Q" @# K5 s 二.防火墙的安全技术分析
1 @" X; Z$ L& O" X* M6 H9 i) S' X9 f
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火
& {1 P) z; g% e8 a墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认, E3 H, o N1 E9 C4 a% }
识。 9 {" \8 u: ]& \2 H1 [: o
; r: q2 K1 c* p. j- u; u; d4 ^ 1.正确选用、合理配置防火墙非常不容易 : I+ Z5 U7 D/ Z' f! P" n u/ j$ g% e* W
' V! q M& o9 W' E$ p, }
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系: T. N9 E7 Q- n6 x `% A y, Y
统,配置有效的防火墙应遵循这样四个基本步骤: 7 m, L: R; K, m
, y/ Q% i8 |1 k' m% z4 V( S6 O a. 风险分析; - ~9 g9 J$ L1 O
4 A" ^2 F) h0 \/ O
b. 需求分析;
7 Q( a2 C- W7 g9 b7 d' P; b% Q% e# }, _. T. v! H' G
c. 确立安全政策;
/ ^# o$ f& r) I3 a* f+ ?# x' l. o8 F( `# i
d. 选择准确的防护手段,并使之与安全政策保持一致。
. S r' W5 e( X5 }8 H- H: W& S: l; a% i( r8 C# m
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只
9 Y( L1 f5 c; J是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
5 e7 n" }5 S% g0 I火墙能否“防火”还是个问题。 " U3 E8 S& K- ^# K/ s$ ?: V
5 \, E1 e8 w- u! j
2.需要正确评估防火墙的失效状态
7 Q3 B2 ~2 G' b; Z8 Q) q
5 f2 U; Q* j( ^+ r0 q& ?* s 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
& I9 V$ T0 _2 Q, F l% L能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻
% j) R' q; r4 N6 M破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正. |" a% T! l L
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数* q9 Q6 x; g1 z E
据通行;d.关闭并允许所有的数据通行。
3 d; S' B% K4 u$ G3 U3 i! t' U. } X+ `- I+ x O2 [
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进
2 c( n/ ]1 f' e% R0 Z: p& [行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐) ]$ h: `7 X- g: B" R: i3 h, w
患。3.防火墙必须进行动态维护
9 }0 s+ \9 I2 s/ Q8 v
, j) o! H0 S. H; K 防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
6 [' Z, X' ^4 e$ t* R0 ?( { r$ R1 m用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动5 L7 u. q* r. m+ x* I0 d
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,* Q- c* X, r1 W; Z' r3 r$ O& @
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
. w9 R' y, T5 o
. k* i7 o( Q& p# ]& { 4.目前很难对防火墙进行测试验证
- e2 h* e# U0 G# a% q B, h+ P
y: {1 _) F0 s" V; j 防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚/ G! @2 r& Y$ m. p7 }
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较* r7 _5 Z$ C: _: Y7 g, h( |9 g- a
大: 9 ^7 R7 p7 y+ V( a- R. K( [
8 u/ ~6 K3 l0 o& h0 Z a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的
' J! g+ C2 U0 H K5 z工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
/ l5 Y) p# W5 [8 d4 L/ q! {% |- S% A的工具软件。 / {8 ^" u( X1 W+ C8 z
0 `+ ?6 D$ u* u! O# W b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作" ?/ Z, K! C# }$ O! }* f9 `
难以达到既定的效果。 6 N* T5 Z! y; W$ F
3 `9 v: m( G7 X0 k* o4 k
c.选择“谁”进行公正的测试也是一个问题。 9 G- Z* ~- M7 M4 A$ ~" g! c
" u' O1 D" W; T" b% W2 c
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,
: D* @, s! W- ]* f6 M& {进而提出这样一个问题:不进行测试,何以证明防火墙安全?
5 {2 f/ v) C# l3 E
. f$ K% H) w7 Q$ V6 P5 ? 5.非法攻击防火墙的基本“招数”
+ p) ^0 V. ^0 x9 v9 M1 x. R& W6 h( _' ?6 g/ K; y* Q- m
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
' q5 L8 B6 j& Y6 z了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值" t# x1 X9 }3 p" B
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
; `0 i9 r: \( Z+ m" x7 J; i
! t- A# X" ?) y9 o1 Q. a# C 这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
; I/ |9 C. A, O' @) t+ @* l; E! [恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接. \: u& c7 e) g/ z* ^4 l1 N
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的' m- \0 O+ l/ X& _
信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地- |2 _' ^- M" x, P. d# C( i& u2 n' ?
址缺乏识别和验证的机制。
% r. _1 K9 W U5 q; j
( W, h. P3 R$ Q8 T. S 通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出. h2 J9 k0 z* \# _! i
请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初- d5 B9 e( A7 M4 Z9 ^7 ?3 i% F
始序列号ISN。 @) G0 Z+ O8 P$ ?: ^8 J
/ M1 v$ L+ @% N: z8 G 具体分三个步骤:
5 w9 i0 K/ H- r/ t9 f V; q* H; b
1.主机A产生它的ISN,传送给主机B,请求建立连接; . P& r; J4 Y* U- M6 C
& S1 u# i+ r2 }7 h" L- K- S
2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息9 B; \) e) l* m
ACK一同返回给A;
% {3 X! V6 e% Y; F1 ~
3 f7 e. V: Q! `$ w; o" u 3. A再将B传送来的ISN及应答信息ACK返回给B。
& W( e- C- E k: `4 Z. ?% O4 O/ c7 y& ? u8 I7 E' l& E+ q4 F8 h( i
至此,正常情况,主机A与B的TCP连接就建立起来了。
. F4 B+ X0 a2 X8 F; X& A& y* e" h- [9 |, T/ s
IP地址欺骗攻击的第一步是切断可信赖主机。
" R7 G" l, F( [
- ~& v" N9 z- b7 l/ }3 p 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
; t; p3 L* `% U1 @! J9 ]1 ?不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只" Z. X+ L0 z8 d, g% w* p& a. F! m
能发出无法建立连接的RST包而无暇顾及其他。 - _" m: {$ W H' s3 W* _
9 z! Z- { @/ \3 U1 c* k
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
9 O' V4 y$ o1 l! S/ {5 B! p$ I' P/ U4 B通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连6 X5 N+ [; N. k. V. q: q+ u* s [# ]
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和, B! g6 B5 B: D5 j
确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目% g4 A$ C: H4 V$ t$ B% O/ ?+ [( ?
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从3 s8 w. t( a: y2 p; F
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击. t$ H4 l5 S* d9 v& r$ b1 _7 ]
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。 6 r7 ?9 {1 x, m& G/ y& ^( H1 k
3 c% b5 D% s: n
现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
7 N2 x) r+ A2 M5 I. E: B; \& _% @ j机。 ! Y" f! a2 `6 C+ u
7 ^- q: _0 S3 f1 C; E, o; H( Q! { 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过: e' Y* ?+ c1 L0 r0 ?1 T+ S) q; m, S, d
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果4 m# p" [8 Q1 q C, |1 B0 M2 O; z4 B
反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
% N2 T6 o# R* {8 s' k络。 / u- o- _) U* n- O7 k/ t
( C1 w0 i9 b% j4 p& p( W" E 归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;: B/ O: T& n! }2 n9 O
不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许: F- f" e+ J& Y& ^6 G: F$ s
Rlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
. U: Z @7 ]1 h% S m- R; r& V2 n许Win95/NT文件共享;Open端口。
' N) t3 L6 F( `; Q! `6 g9 R5 A" W4 X" V" Q& G
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防1 ~. ~( P7 u! v" ^& Q5 F- d: t
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的0 o7 j# m5 r! j+ l, L! o( Q, Y9 p0 y
职能,处于失效状态。
4 X* r7 g l2 F. k, I0 }* A" t! J4 ?7 ^& Y v7 N
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,
0 V) T% q. S$ O$ I: _随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件
% ?3 O' T4 V! B5 X% _$ U; v或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期9 _ D# E: s+ P2 S/ v& Z. Z
望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
# B; k- `1 q5 h因此不仅涉及网络安全,还涉及主机安全问题。 9 S/ Y! W6 r, t; w! p. i
9 }4 Q1 Z, H) y* r+ O) n" h/ }$ O 以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,
# ~4 H/ K% J6 d, R+ d3 V6 }2 f它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则- Y T: Z, ^, J% h' L
无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
$ F5 b' n& w% M. D j. n/ ?5 W7 `" O. A0 i3 O) b
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存
2 h$ N, |. {7 Q$ E2 T在各种网络外部或网络内部攻击防火墙的技术手段。
, a: M" x! m! \1 A4 z
, k2 j1 b6 O) D! D' l) t 三.防火墙的基本类型
1 O& P2 D. t+ p4 B
" V0 f8 u) K$ J3 { 实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
% h5 X0 ^5 \1 W$ q用级网关、电路级网关和规则检查防火墙。
! y1 `* g) _" r7 B, ^' Y( M3 h
/ J8 O8 Y0 Q; t; r$ l7 B 1.网络级防火墙
5 T) Y8 k0 I9 z$ R2 w) _' D4 A% q" b, A C" f X
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
' t9 ?4 B& ]1 u/ ^$ o与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都! H( |1 p3 Q4 p' E
能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
! l. {$ T4 X3 h3 \自何方,去向何处。
1 k9 U% h3 z* \6 Y
% H; b3 o# m- Y4 d |( D; o' l 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的0 y) R1 y2 s8 T
连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定
5 U9 k1 \2 D2 Q# V4 j$ J义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直5 U" q9 u/ Q& |1 o" O
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默7 K+ ^8 `0 U7 `5 a7 Z2 Z
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
- s9 y, ~' N+ mTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如) o9 G8 ^. H5 F1 i, Y% P
Telnet、FTP连接。 * b5 s8 j% Y6 A' D$ o6 n$ Y n6 T
; o6 E/ S; H* Z% K 下面是某一网络级防火墙的访问控制规则:
& ]1 t$ J1 [. d/ c6 ~( R
4 E1 E, j( x/ f5 ]* f3 [# h4 D2 y (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1;
k! s- p) Y* u! X, o. N- S% w0 @; L# ?* o: q6 N5 E4 c9 o5 f+ s, }
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主: S& A: g1 w# C* q3 r7 x
机150.0.
9 t9 C2 ~& R/ i/ b! u# j7 T* I+ q) q
0.2上;
; `6 h: s) y' r8 h% F7 ` d" F. j, A9 `* x V" N, o
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3; 4 n& F$ m9 h& M: @5 ] t. @
# Q) c$ U$ U8 ]9 ]( ~2 P F
(4)允许任何WWW数据(80口)通过;
. f5 ?5 E* B# M. a& N% \ s4 H" e) p; x( b0 ?; Z
(5)不允许其他数据包进入。
3 I- L' K7 d, i) R# m; A( @
* U- Z* I# n% e8 c# t 网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
: n* O# c3 e0 Z# r' u, `% I很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
! B8 \& l5 Q8 J
2 k! W; t% v0 s" j0 J' i 2.应用级网关 & D8 l( _! x& q1 L& k! r" X
1 F& K: |* u7 h# B/ ^9 N7 M
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
. f+ d7 J! H r& G9 r6 i服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层2 D# B; {/ ~; v# s9 N
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
. d1 }6 J: d( y2 x' V' p8 _需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
/ ^4 Z- V9 z" M. P5 i+ z/ D* J7 g' P1 h! U
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 / b. e9 L" Y! s( e/ a/ r) M/ _
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
2 ?% D" O& N) s; K2 P8 t代理服务,它们将通过网络级防火墙和一般的代理服务。
! v- b5 k' b4 A+ f: b7 k1 C8 U0 X1 T$ J. G0 K
应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,$ j/ [/ A( m" c# K
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过& B, e* r% X- N" v; ]' u# y
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录* v9 @1 q9 ^( ^4 j H
(Login) 才能访问Internet或Intranet。
9 D$ |2 V2 |3 z; I6 k7 d# @0 c! V, R' |- l9 V
3.电路级网关 ) K/ f v) L, P& X: ]% W& D5 Q
9 K; g4 ]) W6 P# S 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
5 B+ x4 J* y' C- q- }信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层6 o; l% \7 j8 u0 O: B" t
上来过滤数据包,这样比包过滤防火墙要高二层。
& y8 g+ z+ h7 [5 a. I0 S
1 T0 G- A( C. j" T2 o 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结$ S) \: n; \8 V8 F
合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;8 ~0 y2 {( G2 v) [# N _) @2 A
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
+ B1 g/ {: L: Q7 F" p全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一4 [. D/ f& I& K
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP. r a Q3 k" I2 t1 B' u# q: n8 w
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
; `, L' A6 N% j因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 $ H& c7 w( p3 Z) z. k
: v1 o# t" Z: g! Y- z. \& H$ {% H0 A
4.规则检查防火墙
7 N2 T& d3 t+ G0 `% J9 Y
& d E! m8 y* G2 y- v$ X 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
S% i3 ]# ]0 ~# v% w0 J滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤 M4 }$ g5 p8 C M
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否
6 M$ a2 O9 `7 |, O1 m, L9 L逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
2 N0 L9 n# t$ E/ x2 p容,查看这些内容是否能符合公司网络的安全规则。 6 }/ x( l# X# N# [
7 o" r9 L) h& | c8 i 规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,5 X7 D( T% y/ n8 [" k/ C6 k
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和0 p# t$ j- X3 P9 \+ j
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
+ I- \1 L# Z) D是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式( D6 J& a* c, S
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。 . r0 ~9 n' D) ^- |7 p5 @
4 h5 F7 b# J2 z$ Z% y0 W6 \
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
" f9 j* a1 ^* R# U3 m( A户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每; D& S* {) F* s" r4 y e! T
个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一. _& g4 m( s! I1 a& W
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1
' J! \6 w4 r- _ Q防火墙都是一种规则 检查防火墙。
f* A6 p, k& y3 U- b+ c" U0 N! Z2 f% m" \! n2 o: |
从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
8 N# s/ h" Q- q2 P是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
/ a) v6 e. o! ~2 Y& S) c功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽, {; s, \( v" t( O" |3 z3 {
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数
z; M0 ^, T# \+ V据。 |
|