|
|
|
一. 防火墙是什么? 6 y4 h# C) K! y+ k2 [
" Z) V8 M j6 l+ r% c- v 所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方0 r& K' _1 W e: u9 ~$ O
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制" n a+ x8 w" U; B
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
* ~4 X, d; C( I* W; u和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更
* A3 _1 c4 s$ p6 w改、拷贝、毁坏你的重要信息。
8 H; d: t# o) I& }% R* }5 H
' R. I2 Y+ k' b: V; M% r 二.防火墙的安全技术分析
9 d6 O. f; L2 x. q7 t
' s1 h- H+ a- O6 Y 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火- t% `5 N& M# u, h8 P
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认
: M; Q0 W( d1 ?# _识。 " `! q, A2 z; r9 U2 Z4 E) I
, k$ P/ r- b' e* d/ @7 @
1.正确选用、合理配置防火墙非常不容易 ! w6 a' {8 j, L2 o
, R7 H x( p9 }
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系# @, _- O1 F) b2 n) F% C- d
统,配置有效的防火墙应遵循这样四个基本步骤: # g5 k# c; Y4 x
& x$ |& Y; A, }# X
a. 风险分析;
3 @1 F; \3 `" W. l% @/ K; u- N# f. s1 @' M- F: O2 B
b. 需求分析;
( a4 \! ]$ D1 W+ m# P# X
. |# s. ], K \4 { c. 确立安全政策;
* @1 l" z$ q# }' |4 f! U
' n5 J% }7 o) z( ]3 c8 f d. 选择准确的防护手段,并使之与安全政策保持一致。 % ]) S& M9 O7 F0 a0 y1 ?+ P* j
' V" g- q, {9 b) T1 w' @/ r 然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只; s" D( X0 ?) Z; W. z
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防
* o. Y4 D- I7 k8 Y+ ^; _# K' n1 J火墙能否“防火”还是个问题。 2 V- W! I3 j* P# l$ E9 ~, }
) S! ~/ n) }/ @ 2.需要正确评估防火墙的失效状态 , Y5 R+ p0 q e
/ U1 e( P6 f, G O, v5 t1 I
评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,; d/ ?& L& s% @- }( S. Q( [4 ]. B
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻
' [% B; t% a, ?1 ^9 [/ @破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正
' a6 T' ?+ R3 ?" N, {3 z! b' |常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数& S) G( F: c; }+ f# C9 g
据通行;d.关闭并允许所有的数据通行。
# S; _* f8 ^4 i: j |& }+ n+ i% }% \5 d
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进
4 ~8 ~5 A* O2 y# v) `4 l% Z行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐0 D# ~/ Q; O- [0 f* H$ E
患。3.防火墙必须进行动态维护 6 R: \, ^# \: V
8 ^9 p' _* |* P* q+ O9 a
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作0 x3 V4 h& Y& C+ o9 O
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动
; t/ X4 U* W- b% z/ v态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,
3 i" W: N9 T4 f; H) X! J2 J" d此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
1 a# v; {9 k. Q: U1 Z' y6 X" w* U1 t$ F0 V! ?$ I* p
4.目前很难对防火墙进行测试验证 % U5 ~1 }% B0 v
7 s& P/ ?5 g8 I$ S; z6 k5 r
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚) i0 O: N) g8 z B
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
r/ }$ A% {, \3 O大:
8 L. L5 G, Y: p" F6 H& ^# e) U F8 e) [
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的. u! l0 ~3 f* Z
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
6 a: t2 \' q+ S& M% }5 |8 H- ?的工具软件。
5 V, @' [9 L3 H* q- H9 q k o2 ~* C9 |2 o
b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作6 A L# k: u, |/ v
难以达到既定的效果。 / F* J, L) m' D6 Y+ d
2 Y; M) b# u. A1 v1 R2 p7 t c.选择“谁”进行公正的测试也是一个问题。
7 B% d3 e# N$ C+ _1 S0 R" H& Y0 G0 K C( M; A- _
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,
v0 R( v6 p/ x! P9 V4 X进而提出这样一个问题:不进行测试,何以证明防火墙安全?
) ^" M, V5 V7 p' s% L+ M: [" _
/ a5 H# S0 n0 e/ ~: Q 5.非法攻击防火墙的基本“招数”
9 F k/ n; U/ Q. y# a3 s" i Y1 }" {
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
/ C7 |! `, a R0 y# t- e7 l7 x b了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值
0 H4 Z3 N+ K. h" u9 w4 g: [得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
( f9 l- U/ |$ I: J/ q- R- X' {4 V* J2 l$ R' a) q0 J
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰' U$ z y# {4 _; v
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接6 J" \- F, `/ |. Q4 Y2 P1 t, X" Z
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的* n4 e. V0 i6 }$ b
信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地 ]3 B( S1 Y/ D1 s' ?2 z
址缺乏识别和验证的机制。 + }. ]' a2 x) o
/ j* K4 I: k6 u# Z$ l8 J* I/ y 通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
2 F5 K! F5 P2 }8 J2 `3 [& e9 D请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
; ]9 c! D" t" s' Y始序列号ISN。 1 I0 q. j( N& W* X8 { j
/ S$ t& G1 W/ o% R6 @% N 具体分三个步骤: / D0 v* @8 `) O- b3 B+ }% b1 ^- w
& K5 h, n( y8 z
1.主机A产生它的ISN,传送给主机B,请求建立连接; 3 y8 G! Q6 p! p/ H7 \8 V
/ b- b- Q/ \- p) Y
2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
$ R3 e+ L) B3 G4 J: w3 CACK一同返回给A; ! L* a6 [) [, N* }/ g- t! l
& n- w/ W" G9 f! \* p) Q
3. A再将B传送来的ISN及应答信息ACK返回给B。
, J6 {3 n K8 s' Q& v0 @. t
4 M3 X( G* P( c% G 至此,正常情况,主机A与B的TCP连接就建立起来了。 5 R+ y- l: n: c5 V( t
' D; q* n) e0 _* `- E2 [" W IP地址欺骗攻击的第一步是切断可信赖主机。
6 t! s8 g8 H7 l' G- g6 G1 u" s h" o0 A7 i) f9 B! V
这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
1 `+ l7 |1 L6 i7 d/ X% i2 O不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
& F- C# [1 d9 `' S' ~3 k能发出无法建立连接的RST包而无暇顾及其他。 ) k. }5 H: N) W5 @- h
( g$ t$ y: S9 G- ~. W: X: s
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),' ~- d+ d" w% `# E
通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连" K5 Q9 b& H* z
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
z' }! _* P* R4 ~* q. @确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目
' p! j( w, Q9 z% t标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从
! q. O$ Q: v; S! H0 L而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击
4 W9 j' } h5 A* ]& a, k产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
; a+ m3 A W! h. y5 P+ ~. z# j( g1 d, W3 `4 F5 M' @
现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主6 z6 Z* l+ O& ]0 P. @
机。
/ t( O$ z( M! e: g5 l: \5 b
# N3 Z7 S, x6 w4 n; E! a+ e9 c 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过0 V* R' G) B% o7 ?$ k; J
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
1 u: [, j/ \1 E u5 \反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网0 ~7 D6 k) E. T& y
络。 ( y/ l* O d2 B: k) v) m2 |% R
" c( ], Y5 B& P( L
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;7 l3 ~! [! Z% g! T5 H; A/ @
不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
; V$ G; x# a2 r$ T$ eRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
7 `0 X N! I+ @: b3 k f许Win95/NT文件共享;Open端口。
* R" \# h, H I( e4 {% Q2 j! \ s5 J/ e0 _* Z5 T* Z5 F! G+ g
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防) E6 u, X& ~6 y0 f; h6 a5 u
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的
9 z* j; `( h; g/ \9 a职能,处于失效状态。
; i! f" F, ^9 w' z! z7 t' a4 V! L3 M! m U
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,
: y9 x/ E" W. L. G7 b6 M3 g) z$ Q& u# [随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件% F+ H- @6 k+ p; k6 t" g% J
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期" K1 j& A, l6 Y
望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,4 L4 E6 P+ \5 p, ~7 w( E+ h+ I" W
因此不仅涉及网络安全,还涉及主机安全问题。 7 H+ v D/ A+ b q0 V. N8 i! b+ Q$ h
) f2 b# s1 E6 w/ M 以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,; F, \$ n/ Q% R" h# S5 v7 R. y
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
. \8 \! P+ n/ W5 y无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
& J( s) Y1 Z+ c5 D) c+ v" f# i/ o: n0 K. G3 m! C6 F& e+ p- @
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存) H6 \. H" y; v0 M5 m( j# Y' w
在各种网络外部或网络内部攻击防火墙的技术手段。
' `7 v; `& Z5 w0 z4 W6 t, k! X* }( T
+ Q. b9 U! l( `+ A: R5 j' ?( H+ E( M 三.防火墙的基本类型
3 e8 J2 p9 w( w# N8 o- u( H# M) w5 l9 K' j
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
. Q6 s% e( `: m. F+ E' }" h8 L用级网关、电路级网关和规则检查防火墙。
U0 h/ l- v$ ^" e
* @. y% D A/ U# ?, x, o 1.网络级防火墙 7 m2 n/ h0 L- b
9 m% s/ R( Q: {7 M
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过5 O% e: b6 `6 Q' d4 c) r
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
9 F* o4 y. k& f9 g能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
+ \1 \8 V* y+ O+ O7 G, j自何方,去向何处。
) H3 ?1 N7 {( H) v a0 A
, V: g( `' b7 \3 k/ x 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的 P2 L8 s' O( ]
连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定7 ^ c4 H) H3 u/ t
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直
* v' g P+ I: W& t* Q; M6 n至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默( g# p! G; B, i
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
) _- M* J& e! a9 i+ c! q" t+ Q' FTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如1 {( y' m" ]6 B, r
Telnet、FTP连接。 , L& r* J3 X9 _8 g: C
& \6 b6 |3 X" Z* S9 o1 |" T3 p
下面是某一网络级防火墙的访问控制规则:
# b3 ?$ p: y6 [% w2 `) c' B
/ V8 n, a9 a3 x% E9 n (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1;
' i# W$ ?, z# ]: ]' g
8 D' h+ q \/ W' K3 L9 _7 F7 F7 _ (2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主! _4 h; Q5 i* u, ?" A( {
机150.0. " Z; T! A9 T! m* v) \# _# a
. ~ H/ T3 b: R9 Q
0.2上;
8 `$ W' K# E; R0 i& e8 D5 c! Q" p3 Y& n8 G6 c
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3; ( f& D6 f; s! J3 ^' J8 [2 F
7 z2 r4 n; R( C. ^ (4)允许任何WWW数据(80口)通过;
* ~- l+ ]% W5 q% U: m! `* r9 Y1 I3 M4 t _2 q, s
(5)不允许其他数据包进入。
- r$ Z; f9 \; m- S) T: k2 V. p+ g' c0 M0 M- m; q* ?4 Z2 f8 |
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护9 R9 J3 c, a8 e8 m- b5 Q
很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。 , x4 e% V7 F! G2 q& G
9 J: V% l% K" Q! f& D" n( S
2.应用级网关
4 ^8 m# f1 J! p. s8 a0 F% H/ t# G- A6 L: i
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任/ _6 _. J3 {+ D6 x9 i
服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
2 d5 C. I/ n8 @# R, `上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
. f" T( t; {8 U/ Q7 l需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
# @, F2 w6 A# L" h9 L3 e, q' \" n5 _0 G: Z5 X/ N
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 3 V3 r: z/ i7 t% K- f* {! D3 h3 f
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
4 B. q# L( [ r/ B" M$ s0 m, m' `代理服务,它们将通过网络级防火墙和一般的代理服务。
5 X5 |5 X7 [; \8 O; l; g
$ V* @* o( n& @8 v 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
+ B$ j0 y4 l6 c4 u- r8 b+ D而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
% {1 A' }5 M$ a/ [防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录
4 f) R: a7 a) Z) L5 B(Login) 才能访问Internet或Intranet。 , R! D) y0 v! g4 }$ W
& s0 w; V3 N5 a6 Y: U 3.电路级网关
\' v$ C7 ]0 M- E
+ f0 u& Z* X* E 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
. S( H& A; S' E) M% C$ Z信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层- r/ ]" R Y# {) q- H
上来过滤数据包,这样比包过滤防火墙要高二层。
. ~/ p9 K, x3 @
% i( v1 P9 d1 W, M0 S8 ?6 ^ 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结2 v- _) t [3 x% [, Q
合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
/ |$ @) F8 Q: Q; j: A/ NDEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
1 S: @7 O: x: B' e全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一* S m% P. g6 H+ K
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP
|& _% D' w9 v' ^( q地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
* u; C& r7 f" s因为该网关是在会话层工作的,它就无法检查应用层级的数据包。
5 Z5 ~4 Y) ~/ Q: a8 Q5 K Q* g G1 y8 u( t( v% q
4.规则检查防火墙 - x, t3 D5 y) @3 G
4 I U6 |9 m; u. M- Y) G& }( B8 \ 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
) W% `( j6 w; u" ^% J1 B滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤0 \. o2 x! R5 J/ Z7 o
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否' L# |+ }+ G4 b9 l$ r2 h
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
# t: X' O3 D, V容,查看这些内容是否能符合公司网络的安全规则。 - C3 \! V5 |- [. z2 S" W: O& o
' o7 a$ d( l1 Z @' D9 \
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,4 Q f. U3 T8 F; I% s- ]
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和, \ n7 J) v* k. q3 C- ?4 Q V
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
) p1 k- r: Y$ J) D7 }6 j是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式
2 j' ]( S1 B! I" d* M, {来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
* v: K1 `( p( V1 r; w- H* `
6 h+ U0 `& D6 J. d. C- l 目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用( h' E% F C3 y
户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每5 p) e8 D0 d- ~, e: D
个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一
; W2 [- y& m; c: }( ]& ]0 _, WOnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1
% X& T/ t3 y. d+ u* J# k' b& w0 b% v防火墙都是一种规则 检查防火墙。
: u4 h6 b- q) P$ c
* w& M1 d/ b/ V+ T8 T 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就+ P0 t. ~" y: n- [" a: j8 S9 E
是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的" G8 T/ C- J5 a8 U4 A9 C
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽" Q" h3 X8 {! _
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数
1 l, j& k! o3 }/ F+ e% p. M据。 |
|