|
一. 防火墙是什么? $ L( d( }0 J5 M0 |+ ~
' j8 G# x4 K1 \; l5 Q8 i
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方
- E& F1 v5 U1 J6 C+ g! |# C3 t3 }法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制, j- m" I) T, I0 f: w4 r* G# F
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
# `, u. V* F7 p5 P. I, _/ S! @和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更! g( v6 I. {: [* J5 V3 [
改、拷贝、毁坏你的重要信息。 ! J0 v l; \" H+ B8 M7 u- g
i H- i3 `2 ^% g# I, j$ w+ c
二.防火墙的安全技术分析 ( e( k& H* X8 a7 i7 |* ^! b
0 e" b% @3 `" f q
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火
|& h: ?& w9 o' s6 l墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认4 b6 o7 ?/ @8 \+ s% l# {3 [& e6 D
识。 / f0 \$ o9 ~! F6 I7 _! ]' a
% I4 x S \! |' M7 c* n
1.正确选用、合理配置防火墙非常不容易 5 [8 ?* G7 e' O; e3 v9 n
0 w. A1 L7 w9 ]4 \: F
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系0 j# |5 K+ q3 s0 d+ ~9 C) o
统,配置有效的防火墙应遵循这样四个基本步骤:
) h d# s2 a/ F- `' I
0 B" A7 v9 t$ v) W( q7 W8 V$ T" X a. 风险分析; 8 C k3 m1 B4 m
( L1 B: C i; v! E
b. 需求分析;
6 `3 O6 O/ t( X. K0 ^3 N* b2 I6 r9 S' t' a) O9 Q1 `
c. 确立安全政策; & ~! Q' L: B7 C" y+ a
* r- f5 h# c; O! |* ~/ [ d. 选择准确的防护手段,并使之与安全政策保持一致。
) b9 b1 f% I/ ^5 O- S# c! q6 e: l0 d+ f; i* D6 m
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只
0 {* L6 U8 x; U- g( P* S# A是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防9 Z2 X! T5 j/ _6 {$ `8 Y" l2 X
火墙能否“防火”还是个问题。 8 ~1 c/ }( [/ u) F# q3 G1 ]; _: o
3 c9 \; t0 P' X 2.需要正确评估防火墙的失效状态 % a4 X8 e9 P E
2 t+ t/ B# v& i, E- L
评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,: Z* \' a0 R# m6 Z0 \6 K& T/ l
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻) c6 `2 A8 ^2 f6 | m! n
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正
2 h; O: _/ [; v, G9 [* ^: _常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
/ q8 f' z: D5 Q1 T据通行;d.关闭并允许所有的数据通行。
% |# X. C/ w: j/ n" ^: N; J
% {8 o+ L1 j5 C 前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进6 {. r D! y* ]% L: U& O/ O5 Z h
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐/ I! a* V& I: U) V. T" Y3 I
患。3.防火墙必须进行动态维护 - e! ]& g" Y% q3 s5 j+ D8 s
$ _) H8 v M L5 o+ T
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作: I6 S2 U% @# |9 c" S+ L0 F U7 B
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动
/ m7 ?9 Y8 X% l% g4 \6 F态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,- @8 B% [% U) I) `
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。 + _7 `, |) s$ l" e( I1 P
6 ] ~; A: I! U" g, y8 y3 V. d C
4.目前很难对防火墙进行测试验证 1 p2 o! b) F" M
4 P: I6 I/ ]0 z! B% V3 e: t
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚. @2 t% U/ x6 |' h
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
. `! o" A/ |# N" I/ H# f大: 6 [2 C, ]$ s& g. s
' n8 H6 i# E+ |! F, S8 b5 k. o
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的9 k1 p7 J, P% Q/ F% t0 n1 {
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试& B% J4 f0 c& c; y" m6 ^ d
的工具软件。
% C+ r4 y8 w1 _1 |7 `& g6 q# B7 ?+ A5 ~# O# Y+ e% ?
b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作
5 A* r% Z+ H1 L5 _难以达到既定的效果。 ! Y+ o! C. W% B% H( D% }' W
( A& i8 ~1 }% F c.选择“谁”进行公正的测试也是一个问题。
7 p+ j) K% i. H+ |, O' W- D- Q' R# n
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,6 T5 @9 q* l; C/ d( c1 ~
进而提出这样一个问题:不进行测试,何以证明防火墙安全?
9 R; _0 a0 M- o2 M; g# @0 ? @% v" O. b* u) v
5.非法攻击防火墙的基本“招数” , x+ V6 b2 V7 I" ~
1 R! a! G( w! n, B" v3 b0 P$ t# M a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
9 s& m1 [0 j' ]$ g- z1 o了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值. n) T9 i: b) F- H
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。 2 B3 d s9 I+ F6 T6 A4 Q8 _
$ k, r# i5 \& X6 ^; f" N! o
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰/ ?9 {8 j+ S5 ~, g# o
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接# l+ y) C7 N/ D- k: g! Y
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的& S3 h2 @ ]3 f/ H7 }) A6 n
信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地
1 i, F( @2 S* D; E- L. e$ ?2 {4 p5 D' b址缺乏识别和验证的机制。 8 c" [. i/ |( m, G+ F& o4 |
_" f* \4 P, H% }; d% u5 G 通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出' ^2 z. r2 w$ i2 u T% Z
请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
+ @8 Z) U) y# c" q始序列号ISN。 * B' ]7 b$ ]) ^7 ]( d4 j/ x& n
* g. C- O9 [- [& ^5 ^ 具体分三个步骤:
; i' _# e& k8 J6 E
6 n! U9 _& A- B# t 1.主机A产生它的ISN,传送给主机B,请求建立连接; * R- ]' z+ a7 }- I* ~
: d8 w" B- G( G1 E0 e F h
2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息- ~0 P4 P3 M+ N/ j7 E4 I" t
ACK一同返回给A;
9 t, D5 p* z& B, `! k( |& y7 [9 M' V
3. A再将B传送来的ISN及应答信息ACK返回给B。
) u6 w( r: R* R' u$ J6 |: h f* ?5 `9 a; a
至此,正常情况,主机A与B的TCP连接就建立起来了。 2 V) `3 b( J: j/ O
, h* r, S# h: c; m IP地址欺骗攻击的第一步是切断可信赖主机。
- R3 L0 q- C* b$ H) q6 m
/ a0 [! U4 h5 b) c 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
/ |" {5 B$ `, D& V% w不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
# r; @! }. `9 M, B能发出无法建立连接的RST包而无暇顾及其他。
% _: Z h5 i, k5 Y' ]" y5 a/ L) G; t" d* ]4 ?7 h
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),$ h8 K) Q. A+ c6 z' U: `8 M
通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连
* p3 z; R, z6 J- `接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
$ q) T2 D3 T1 z6 F5 B确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目
" R% `+ Z/ e/ J& |* v( B标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从
) I( i% Z& g6 p& \! d0 `4 D& p而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击% D9 J0 V7 f9 V! H. L+ o
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
4 U; S* I9 J, U f( E, e4 f) V
现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
$ ~3 z, j( J# F$ A: o机。
& J' |1 m" `( s5 w) {7 ~3 Y2 e, W
( c) e. |1 @( c- M# [ 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过/ |, k6 n/ J" _2 D5 Q
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果& R9 K( O) E3 [! s& q: Z: {
反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
$ Y: {7 `1 `+ H) Q( R k2 j1 g) @络。
6 F% |2 h, q5 C4 i$ S8 [- T' G7 o! ]. y7 T: H7 t
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;# P: x1 V w( g- F5 h
不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
7 b, H0 r, f* s5 o& Q, {0 G# \: {2 CRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
; U6 h! R: y1 I许Win95/NT文件共享;Open端口。
! I) y, y9 `2 h2 O3 C4 u
7 K9 w1 q5 l: ~9 z+ h( ] b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防5 P% u) v% o* Y- G9 ?* P' _
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的
}! [- n; \, j4 M' o职能,处于失效状态。 v/ j$ r5 _( o
% P8 a5 o# E2 A
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,/ z4 O- q+ B) H$ r7 Z* m# }
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件
0 l/ d$ |3 l& N0 T或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
/ O& Z) G6 w' w1 B$ e望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,4 @) }5 L7 g- K) Q
因此不仅涉及网络安全,还涉及主机安全问题。
4 B1 [) m6 P: f) G: B" q0 J" n6 O5 N1 i' e
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,. k2 b$ N2 S& _' o! ?4 B
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
: ^2 G6 U2 B; A, m* ]+ S无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 ; x% }/ q: u& P7 C' ~: |2 z7 W* F; W
7 a3 ?4 F3 f/ V; e" q+ g5 ~ 目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存
8 B5 H7 h# T7 i3 O在各种网络外部或网络内部攻击防火墙的技术手段。 ; I2 {# Q0 A: r6 f7 k( k
- \: h5 y! k2 }" J& K, L 三.防火墙的基本类型
" O$ n8 k; l& F& b
e; l2 K' U1 b" |# s 实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
2 p8 \) C J* N1 c* P用级网关、电路级网关和规则检查防火墙。 . V; F; p Q5 l6 h
( O( Z( L, j) W 1.网络级防火墙 # G( Q; D2 [5 A/ |
' h# A- z) K9 g: ]7 K
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
* d1 G/ q0 {. H+ P, v6 {* U% B与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
( J1 Z. x @9 a% z' _" k能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
& T7 z# _, X# j9 Q/ J1 R自何方,去向何处。 8 H3 c* j# N e* v
, T2 J7 z+ x) P- ^" o% i* U) G 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
3 m' i+ X' _8 k连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定9 b& [# ~, g, `3 `* ?. {+ N
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直
; y/ B: f. j; X0 O# J至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默- v% h R2 C" q- [* [
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于- q' \) b* \# f/ @9 p* L' N y
TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如( ~2 N2 p& ~1 k; H: ~# x7 b
Telnet、FTP连接。
6 k. Q' c# n5 ]6 Z f
) j! Z* H1 [$ y i 下面是某一网络级防火墙的访问控制规则:
0 V; r; Z" N9 H# a Q
, N- g" p3 \6 c/ d (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; ' \; \8 s# q5 N, X. g
. T+ w$ }' f+ i2 V$ }2 z/ y; E (2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主$ i; w3 q/ C3 F! w$ a8 c- z0 [
机150.0. . n: P# L$ G8 m7 k7 r: \
: l4 R: }1 N& d* ^; a! ^
0.2上; 6 t. a! d% f- n0 Y, w. E5 |6 x
D+ Q# Y! R$ \( e( C2 ` (3)允许任何地址的E-mail(25口)进入主机150.0.0.3; 8 ?: ?. B7 u K( {5 c; N% V
7 L# Y" t/ Z. ?$ i: h: D (4)允许任何WWW数据(80口)通过;
* [, o/ @) Q% m a
6 K: h* f1 _- ]$ G; h/ B9 u7 S4 W (5)不允许其他数据包进入。
4 N3 ]$ K5 {$ L3 f9 j" g+ ~
6 C8 f0 E. i7 b3 K8 G 网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
1 y8 ~/ ]) ]( O# C8 |8 \很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
0 x& X+ B5 j, ]5 B# H- z8 c' o8 t ^
2.应用级网关
/ \) A0 J7 M- F/ b4 j
% w+ }1 Y7 ^- ~: q5 s+ P8 a1 z1 q 应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
) f R1 L; ]. k. V) {服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层, |/ \! S& ?8 \& o
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议# ]' ^( q* b- [- o1 i* ^2 L
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
3 C6 t6 t' j# Y9 i" Y Q$ l/ O, G% U" f1 h3 n: G" V, U
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 . ?( g& _) _; n8 Z1 F' N# F
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
+ r) Y5 G8 z! T$ Y1 c' o) } x代理服务,它们将通过网络级防火墙和一般的代理服务。
# t. Q5 O1 D; l0 i7 n8 I& S# R7 X6 T2 \6 H5 K, ?& ?9 H/ O
应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
0 P/ g, S& w7 {! m而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
: Q- ]% ] o0 E5 ?1 a防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录
8 P$ B9 d1 Z7 D) r5 \(Login) 才能访问Internet或Intranet。
U- f& ]/ @; {: F( u: R; \
# U7 ^1 |; x: G 3.电路级网关 9 Z- g* M& G; Y$ d# S+ w
& g4 C+ s9 {* { i' P, w: I1 I6 n 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
) Y q" E: T' A: O, N信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层1 `, T* }0 v( V% F0 h% C
上来过滤数据包,这样比包过滤防火墙要高二层。
; h! U: u! K4 j$ ?' Y" b/ u
) z8 v: I0 c5 S; @9 I! T 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
' q8 l5 y6 ]. K合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
- z* Q4 u X6 F+ S) d4 vDEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
- z3 a- `4 f. R全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一4 q( C0 V. w9 r+ {. a+ O4 K
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP
/ y5 X' ?+ E9 X( X. J& v& |地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,- d* w; v7 x# W" V. g( e7 {
因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 # |9 t$ [" [9 x4 h; B
# A# h3 O6 [9 i8 ~3 W 4.规则检查防火墙 ) l1 e3 t8 p2 s0 J- |, W6 W
( R% b# J" |, [ 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过, I# @3 O$ ^0 \
滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
) U) l! @) r* ?' |& g8 }! ?进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否# t- y1 w; o* Q" n7 I- t! J
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
v$ ^- {0 \2 M容,查看这些内容是否能符合公司网络的安全规则。
3 Z- d7 ?" o5 _9 m- ~' S) v4 A$ H/ `5 q9 F" U5 P6 o) |
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,
% t4 s+ J( U3 x5 }4 G+ F它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和* W- k/ @5 Y. p1 Y8 l! v
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
( T# G5 T- `- a% L5 Z/ x是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式; v: o5 x1 r% M" B% M1 i% M
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。 2 K& g0 Z8 W% K
# T8 h# L' s1 Z1 w* U5 }1 m
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用4 I+ f% }; ?) e8 z6 d: P
户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
% ?6 g# ~5 ?9 c# c. j# B个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一9 ~% |. b8 S. Z/ k% p
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1( G) o8 x# J) v2 T. b) J
防火墙都是一种规则 检查防火墙。
; a5 S3 A2 M3 A! h, b: E
7 a$ O, u' E6 A$ S 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就5 `. a) E/ G5 h! L5 ?1 V
是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
0 T! ~7 Q/ O& m, w功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽
M, y0 |, e5 }查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数0 f7 d' O' H6 R" | e& s
据。 |
|