|
一. 防火墙是什么?
, w0 _ w: x0 g' I ~/ m$ o: x+ w" M8 v& e7 P1 k
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方. _' ^, x( D1 ^6 v' u1 ^
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制8 D# q. G+ p' C) \: Q
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
5 u# U7 z% R$ S) J( S$ g. z和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更( |( @* a8 h# X9 k! c- Y
改、拷贝、毁坏你的重要信息。
( j. a0 C1 x, ? d0 Q6 h$ C
; ^6 m3 A% a; g 二.防火墙的安全技术分析
( _( A _. F1 I `$ Y3 w# ]. _1 r4 W& W4 |& f& @6 G+ o2 w0 g
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火3 R7 V( ]: v+ y+ S
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认
3 V. P! M. r" q识。
* ?1 Q8 ^0 k. U
4 m! D* A$ a; g$ N" r) n3 ? 1.正确选用、合理配置防火墙非常不容易
2 m `- J. V- w7 ~
; J% y5 {" X( _) K 防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
/ y: p' C; l. m7 y8 `统,配置有效的防火墙应遵循这样四个基本步骤:
9 `$ W, D6 W& `3 N: q: G1 \( {0 k7 N
a. 风险分析;
c. N8 w! b, ^
& T- R3 P. V( t b. 需求分析;
& @ g: G/ p8 K4 u$ B$ R/ V. Q: i! f
3 \( a/ s4 M* U) l! ? c. 确立安全政策;
) Q% S2 P8 o4 ?/ p- W4 I9 h- I9 v r, O3 _
d. 选择准确的防护手段,并使之与安全政策保持一致。 $ S t* G. `* q
% d( P+ e6 p! |) K3 l 然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只4 D! c' D! F4 g( x( k6 A9 a. h
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
6 x( i6 z. E3 R( X, b火墙能否“防火”还是个问题。
. P7 d' p7 y: c. b, ~# a/ R2 c3 q( B1 _+ G4 a2 s+ K
2.需要正确评估防火墙的失效状态
, x) Y; R5 H* r3 S4 `5 D3 g
p/ h2 n3 l4 G( Z. ?1 T 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
5 \. }/ S! G6 K. I& F能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻
! G1 }! K: a- H. V7 ]破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正
4 b! b1 a9 X- s" @) o" f常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
' X$ K% O$ K1 _) a! J5 O5 [据通行;d.关闭并允许所有的数据通行。 # v# j" Y3 ], M! e$ ?
9 q) k8 q8 Q. k8 [' i3 I
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进
" E7 ~; X6 U p k9 T* b: O: s行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐- i; X' J2 M0 }6 H$ u
患。3.防火墙必须进行动态维护
" C/ E5 r4 J3 Q/ t+ T2 X
" _+ v0 L, X8 W7 {. ] 防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
' P. o. O& c5 _, L! u! x$ k8 I6 j用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动
; {' R7 u1 n. |2 S u( c/ w0 N态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,
1 R- H e* h; i! t j此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
" V$ e# a$ A! m' T8 d7 f2 A8 g
" ~ `% O( g( C& d$ x3 m 4.目前很难对防火墙进行测试验证 / b* y% i6 R0 d
! f) A& c Q$ b5 c' t5 C
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚( ^3 n2 o! q( y/ F' ~- G- B
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
% P' P$ g! ]3 ]# q& J大:
" f7 M+ W) B! o. Y
% w- \' j& r1 T, t3 _ a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的$ ^4 Y1 j2 z& g* R, I9 g
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试8 z% Q/ G8 t8 H9 }8 C
的工具软件。
! D* \) b4 x g% l0 d, X
( F P0 H8 r9 h7 m b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作
: k) i4 X: f, }: u3 N0 Q难以达到既定的效果。
{ V6 h4 E2 \4 V; f- T% Y+ K9 K+ ^4 B L# C
c.选择“谁”进行公正的测试也是一个问题。 5 C4 l A: K1 C, S: q! m# O9 ~( J/ Y
8 u2 ^( M5 x& z$ G& l$ s7 }; y
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,5 k& K. i4 D- a- x. i
进而提出这样一个问题:不进行测试,何以证明防火墙安全?
' u; g& N4 ~& m' Z* S6 n
% q' z6 z0 V+ x: H7 n8 D 5.非法攻击防火墙的基本“招数” 6 t; d' \8 Z r* L" D6 n
2 {2 G0 F7 |, m& ~' w& r, Z" t2 o
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到8 r/ i$ }; I' U/ H: W9 z
了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值9 R( A0 Y% _4 l8 c: Q% M
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
/ C0 r* D# i- S. I/ u1 \: @% `$ c) C! B4 c* I" T! B
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
) x( N7 I) N+ r' I# x+ p; Q$ D恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接: k6 d1 b& @; }9 h
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
S5 g% K1 g, B9 n* w& Y信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地) j6 @; t& r7 s( P
址缺乏识别和验证的机制。 M6 Q7 i6 ~$ } I7 |
( h4 G+ k8 M# v; r1 J+ c" H
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
% [4 o M. {4 \2 t, a1 {# o! s. P请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
7 r) G1 G' w4 p5 T! a始序列号ISN。
; m4 O$ Z' Y! y: X$ y' @
- ]5 J& j, Q2 x7 j( V$ v 具体分三个步骤:
- Z/ R/ g0 n& l1 h R* u# k& {( o
0 B" B3 m# j4 T7 F: |, U 1.主机A产生它的ISN,传送给主机B,请求建立连接;
. ? \) ]- p/ ?, n- X9 C
1 ~( z$ O. S% i( D; r% h 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息2 e* z5 c" h5 ] G8 A
ACK一同返回给A;
b% H$ Z. G2 L; A
7 A& K& s% W7 A% ?4 N5 w2 ~: M 3. A再将B传送来的ISN及应答信息ACK返回给B。 % N- N' \3 k4 k4 _* }9 @3 D
3 X0 D) K7 J! e( ~" {- k 至此,正常情况,主机A与B的TCP连接就建立起来了。
+ D( L( y0 L; B
2 P8 @ ]" [9 |' D8 c8 g4 _ IP地址欺骗攻击的第一步是切断可信赖主机。 6 X/ a% |4 F. \+ v
4 ~# [. K3 u2 X 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
- i1 s; N& x6 n0 W6 r; v3 Q$ m0 p不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
% R3 ^8 R6 M9 h* j7 V2 }* e" e0 W$ z能发出无法建立连接的RST包而无暇顾及其他。 0 G) U1 H- ?! E P& X' C
8 m6 _: X. V9 ^/ x: ~; l 攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
2 s* T5 C) J" `" E) x ^9 O0 x通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连
! Q& Y) Y+ X y6 a7 E0 O接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
0 @& o) D2 Z" y7 l. ]1 |6 |6 }7 S确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目: b D/ [) k+ B" G1 `/ R$ c
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从 o8 { F! ] s: R
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击+ O' d9 @5 w8 n
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。 . W; Q. u; T7 i! @. w% S7 u& a
, B5 _9 F. k: \2 } 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主4 F. I- \9 K7 y
机。
7 X) J: o& J; q' V
. l5 x# f @# Z) K( n! F 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过- Q8 `/ e; }* b# ?* J- \
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
* o$ G1 ]' |3 G反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网0 o; U) O8 }' Y9 n: Y+ `
络。 7 y% V9 V' O- K( o" M' b7 Z& G
6 Y! ]0 {! W8 G) ~: v' F 归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
( C6 J2 q$ Q* }不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
5 ?# @8 v% V8 e8 e! O* JRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
& h/ U8 W: s9 T3 Q. S2 x许Win95/NT文件共享;Open端口。 " u7 ~7 n( u1 v8 J! Y' U) e
9 k7 C# x! a( I
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防 R0 f& n) R6 ]1 K; o; @# o
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的& g+ s- l& l/ N, i
职能,处于失效状态。 ; h& s2 ?( k! i4 r: _ }% e' ^
& a; k! {/ b) }
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后," e# J' ?: N ~; o2 o: q
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件0 k1 b% G: U" q5 K. s- ?- m
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期. V0 } |) j0 S( @
望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
( g7 p( L& F4 n3 v6 T6 ^因此不仅涉及网络安全,还涉及主机安全问题。 , \) T/ ^6 S/ S2 y; X. T
& F4 ], |8 J u: y5 f0 n7 D
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,
, X+ n% P) L' X2 J' y它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则- X9 k# c3 ~3 `8 C0 H
无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
3 b" |' t- V; n0 r1 W6 S( S/ K' U9 A8 [5 Z4 [& j; [" w8 w9 h/ V
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存9 @* ^! J( l$ o5 x7 ?& }9 C3 O
在各种网络外部或网络内部攻击防火墙的技术手段。 " Z4 B) `- G. h3 O/ B! u/ D$ e( t
- s1 ?5 B/ w0 x 三.防火墙的基本类型 - e2 x! r- L! p7 Z$ \( g
F2 I* @9 Z9 Z* d$ ~6 C 实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应5 y% Y$ z5 |. X* ^& x5 P
用级网关、电路级网关和规则检查防火墙。 ( b# j* ^7 y# [3 t3 n' z
+ q* I4 l# x" ?" X3 q5 A) S& G: S 1.网络级防火墙 ! u% l3 @' M6 H7 Q$ c- \
$ s: e' \0 |/ \2 D
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过" i! P# z& r4 \8 i+ g3 w
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都7 |- R T/ ^- w
能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来0 P% {) T& e4 a1 C! [/ z2 a
自何方,去向何处。 5 c3 m& p' b" u$ Y- R
3 n( a- g& I e* z0 O
先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
- Y$ E2 A6 Q2 ~7 P& ?. }连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定
2 t% @1 t ~3 _) [义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直
6 H3 h$ i0 H! Q3 V! Z至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默: K( I. f3 X2 `: P4 i3 X7 W e
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
* Y% ~6 r' O9 U( d& l+ c" vTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如- _: t! u) O8 g i) h7 C! h7 E
Telnet、FTP连接。 3 P1 t$ ?7 i# G
6 A0 M$ w0 {0 v1 d* { 下面是某一网络级防火墙的访问控制规则: - ^) c. a% _( R
, u9 r! z7 k1 s- E; t (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; * u: t9 }+ m) r' r, ^0 X
! g2 }( x! m# b, K0 Q
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
4 A% s( p- u4 \& @* B7 X4 i- i机150.0. 0 ?: X3 ]8 q b; L
5 I% `4 d H" q' |9 t& V
0.2上; : j& i' P- _ r6 X- D% K4 b
1 h4 W8 w( J8 N/ Q4 b
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3;
) z( V. X' c6 U% A+ f4 K$ x2 {+ }7 A" m) Y
(4)允许任何WWW数据(80口)通过; $ n; w' u* S: M! H7 n. g
2 V& \' Q- |. k: u (5)不允许其他数据包进入。
; e0 ^# @+ b' I3 s% h+ y4 Z; K3 v2 Y( b4 Q r# ^
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
+ P$ l+ f. X' Y! ^2 L很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。 % p9 ?9 j- T8 K# {# [
2 l+ l% `7 W% S 2.应用级网关
% j% O1 v2 n& U. }" z
' t+ E- U' J/ Q# P 应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任+ x) u5 q. U, f D: B' P+ X, ?
服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层' ^# A+ _' p& @8 e' G% g
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议; M. l7 W. Q/ C5 C. M* _
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
, \: q, w1 G- T$ A) B
( u% o% ^* C. b1 N1 R) {* w3 P 常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 & [. A( ]" [6 y7 r" K! c k; X
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的6 f+ {9 s1 Z# D( P3 m% h0 h7 G
代理服务,它们将通过网络级防火墙和一般的代理服务。
% D9 e$ u) Z( l3 b( s0 P5 t
: h$ t7 @' C/ X3 {2 ] 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
( l, G. P! M7 Q# \2 r而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
6 _4 ]$ Y# s3 L4 ]" z' Z* M防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录( G0 [8 g0 ~& Y; n+ M
(Login) 才能访问Internet或Intranet。
F6 `4 N3 a) {: `" H% E5 `* `4 ?) V) Z
3.电路级网关 5 K# s; T9 [6 ?0 _
8 N) p/ ?: I1 b* A" n 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手6 {! F( O9 A' V4 Y d! v
信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
3 s* j! e+ l" V1 R/ N: c& x上来过滤数据包,这样比包过滤防火墙要高二层。
5 a7 f% x3 ~# ^0 h v- ]6 n/ j
1 G5 P( U$ V; H5 E 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
$ d3 }$ a) |! X0 A" \% |/ l合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;2 ]* Y" Z5 n$ P- v! `
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
+ E5 w5 j6 k+ p全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一
' t, E5 r, g% Y个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP' Z, C# _' P( d, e# i
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,, l' q1 P3 s$ |; h. J
因为该网关是在会话层工作的,它就无法检查应用层级的数据包。
0 j9 k, N, i% R# B/ n
0 W( K P8 W% N: E 4.规则检查防火墙 ) a3 ]1 a8 [( F" x3 g1 a
3 J: I. \/ k0 _0 l' b
该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
8 [) J8 k+ s2 G滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤6 p8 M( D( m' r- i0 ~/ @
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否: ?$ s/ R: V/ P1 \5 [8 Z
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
q5 Q7 z/ ~! X4 k容,查看这些内容是否能符合公司网络的安全规则。
1 Z$ ?* M: e- u
' U6 R! S' B+ Z3 S4 m6 b. N9 `1 U: e8 s 规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,6 `$ D" R3 b! ~6 X X
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和
& u7 d2 a7 j* }4 ]5 J不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而* J9 b6 B7 y) t. {
是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式4 n6 F! C7 r& \- g3 h
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
4 B9 Y) t8 t: j3 W: y6 _ U# |0 \) M2 y9 M3 g* X& B) e) @0 o3 Q% k: o
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用' B2 d2 F# k4 O2 p) I& N
户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每) D) U. x- l( `5 W$ N9 k$ M; d
个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一+ i) p3 j9 n- t6 |8 m& i
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1
! e0 {8 `3 O- M& V' c防火墙都是一种规则 检查防火墙。
4 [" C& z9 c' Z5 g4 Z0 y( k, x+ E3 F0 u) K. u7 X6 S. J
从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就+ D$ `( w/ U3 O U( k
是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的* f7 P0 q+ I$ P6 ]
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽
% A5 Z6 l3 h/ m9 K/ R) Y6 Q' {! Q: C查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数! n7 S1 A- Q$ E& ]* b
据。 |
|