|
|
|
一. 防火墙是什么? 9 }0 O4 Q5 x; f ^! [
& V2 \+ l& n7 M* R* X
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方
7 D: a; D) U( k! x7 h9 n1 h法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制
' q. f" e# y# i; T4 i尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
9 w8 _6 F1 @9 z1 N! N+ C和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更6 w% i; w' ?# p. ]
改、拷贝、毁坏你的重要信息。 9 S8 ?- m6 O1 u# I6 [3 ]! L
* G# y. z7 i4 f" o/ B2 J/ Z" o" b 二.防火墙的安全技术分析 ' S- z* I3 N: O* N1 q+ \7 s5 }
- L1 G- l2 e+ j6 f
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火
1 l C9 ~4 `5 Q墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认
8 b. O. }& c, j识。
1 X! `1 i5 m6 z7 m5 V& W: M; ^; H: n0 u; j7 E: {: K3 z0 ~3 O: k
1.正确选用、合理配置防火墙非常不容易 . d" X! C4 P9 m& d# K" D' C) U* F
* l, L5 I9 o7 m3 u2 E( N
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系' [! C( M$ `7 \) F9 y9 j
统,配置有效的防火墙应遵循这样四个基本步骤: 3 q% U S6 \0 A7 w
4 E8 P; s" R [0 k+ d% R a. 风险分析;
! [8 {4 R' I/ ~: `- ^, ^
6 `. o4 |2 g8 Y4 i* e# i b. 需求分析;
6 v* r8 i1 Y/ k' C
5 q" I0 c. n% G1 d" K c. 确立安全政策;
' ]" Z9 X5 q4 J' a( u0 k* B& w- Q
d. 选择准确的防护手段,并使之与安全政策保持一致。 $ M$ ^5 A3 A( h* ?6 G
" L0 ]4 L' n) _9 b: l: A6 J9 A3 x4 D
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只1 K# m, _0 S8 A C3 p. j2 ~* `3 c0 F
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防8 A7 z4 n; n) M! J- r
火墙能否“防火”还是个问题。 6 B1 X X" q$ n* p, I& a2 t
8 u6 h" |( q; J& g9 C
2.需要正确评估防火墙的失效状态
) b$ t o& ^* R. u; i; p, T- u9 }- c5 n8 L2 e3 H8 c# O( s) J
评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
& R) }. U; S: a4 S7 \/ `能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻' T' J- `& l5 q, ^# R8 g
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正3 _% Y/ s W( Z) D( |
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数/ M6 A9 X- j/ D! F3 B2 F! ]0 |8 `
据通行;d.关闭并允许所有的数据通行。 3 ?, D( W& b8 Q& U% y8 c) v! k
- F3 n( d+ c" @& x6 [, D3 | 前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进
g4 F2 T5 y6 G& X2 N行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐' `' Y6 g2 D0 T5 H
患。3.防火墙必须进行动态维护 H$ d- Y* @1 C, Y! a/ |
% R$ {' r7 c3 @+ |
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作. J5 `, ^, f2 i, ^
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动4 B8 J; X$ o) S4 G
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,
& a9 c6 T: B0 Y3 n此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。 1 m. q3 R* f% _) c
* M' A! P% M7 h; k3 [& i& x 4.目前很难对防火墙进行测试验证
1 C! K2 x& {% s1 _
$ O6 D8 m* r! c* X( ^/ u2 G. {( a6 P4 ^5 X 防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
- J1 c" ?; Q' s0 G9 }1 y( U至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
" W8 z4 u1 e. I大:
; N, u/ N( d9 p. }7 O3 ?& N1 _4 K' G" W* P: z
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的$ S- Q) R2 M( n1 i# o( u
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试, a/ f. u, r( R- H6 S; Y4 t
的工具软件。 % z" ?. N0 q' H' ?, W9 k' H
1 X4 @0 p* M- \ M4 J; r
b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作
% m7 ^: n! o+ B难以达到既定的效果。
+ n3 b8 o' Q( e
. ` Z) P f4 `! d! ` c.选择“谁”进行公正的测试也是一个问题。 . k9 L/ o: }5 W
- p* U' x6 x8 v) `0 o/ V 可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,. k( {- \3 R" K; G
进而提出这样一个问题:不进行测试,何以证明防火墙安全? . d! G3 v9 e$ X* K% B' j
! p0 u6 X$ M: N# W) X
5.非法攻击防火墙的基本“招数”
# l$ A6 Q2 _4 a, a8 |5 v% l3 ^
+ J' l- T7 K' V D" _6 Y: @5 ^ a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到- e9 h( F% G) h; m/ x6 Q
了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值
$ O: _: w% ^ l, w得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
6 n, y6 x, }; V) y+ ^% @& z5 H7 J6 v2 ~$ u& D
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰7 x, q5 m- s/ W' T* x
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接8 n5 n: ^% B) Z5 C! C% b1 ^; X
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
3 N* g: B+ e7 k信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地% C% D/ d, e& o2 W/ @9 P; q
址缺乏识别和验证的机制。 # ]2 Z; u5 Z3 a1 f+ G* V
. d; v7 G7 }! B* C4 @; i" _! Q) n1 i0 A
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
1 c" u# @ c% \6 k& i+ _( y$ L3 w请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
, h |8 U$ V3 k: ^$ `) c7 H始序列号ISN。 1 F/ O9 t% b% |
' w8 Q# D/ |1 }. W1 w& Y& `9 W8 J
具体分三个步骤:
; j. P( s5 {, I7 ~
b M5 s: D3 R) [$ U8 r 1.主机A产生它的ISN,传送给主机B,请求建立连接;
! e. ?. e3 R- J3 A
2 v# { H0 K3 d( \6 z* ?/ R 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息9 x% n. d3 e( g. F. ]' r
ACK一同返回给A;
& h3 n) i2 n% Z; Y8 U
9 i* j6 w" s1 `4 J) @" Y+ u! U 3. A再将B传送来的ISN及应答信息ACK返回给B。
0 ?5 H8 q/ r; @4 k5 ~1 D
+ G( P3 t/ P2 V9 J- S: B* W- U 至此,正常情况,主机A与B的TCP连接就建立起来了。
# C" W7 I7 g! V E# ~0 }$ [' o2 q% L) A" E3 k7 c
IP地址欺骗攻击的第一步是切断可信赖主机。
8 H O7 X$ r/ R9 d: V1 c
& s6 n- B, M9 [& d4 V; n/ H 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
5 W% v% E; X, U8 [, J- G$ G不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
; E3 ]' i3 V- y; ^! o7 H能发出无法建立连接的RST包而无暇顾及其他。 ( E+ p# k$ e) k: s" o( o! Q2 V
) W9 @7 \3 G6 J4 y T
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),1 U) Z6 x5 h4 _% v* Z0 c
通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连% e) ^* W5 i+ t- H
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和0 F: N& P% c- C# Y2 Z
确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目
5 S6 X8 k5 N H" ]标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从
0 t0 o( C3 @ e* j2 M而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击$ A. D' l: E: e; {7 c
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
6 r' C2 L/ }& |* s
8 }0 b0 ]; G4 {; v 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
- X6 N5 {" a7 Q' Z5 s机。 5 i+ j, h7 l; w
6 j% k8 d' j3 B7 B4 j/ E; |
随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过' h- l+ _' r. B4 f
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
6 A* [3 X$ g+ @6 q. t+ u. |反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网2 S4 b2 ]( ^- S
络。
. \" y/ v) q9 J% L+ ?6 \. d; ]6 @0 L4 x! g
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;8 x v3 Q% L. I0 V6 E
不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
' s+ t: X- e; B( cRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允/ u4 L0 G/ R3 K; ?6 z4 \
许Win95/NT文件共享;Open端口。
( s% l# `# t3 u* g$ a& F7 R
- ]. l& }9 {! ]3 }: ] b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防( V+ C: N5 c( m- L5 q, i" S5 X
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的
0 K0 x5 l1 c* z: X/ d. e+ k职能,处于失效状态。 2 ?( F7 r9 X2 Z- A' b: i" c
# z [+ Q3 t3 `. X7 }1 t0 h C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,' k3 m# K; G/ _/ O, D
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件# B' h7 |$ Q$ V( l$ H
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
9 B, c U* m. N7 c8 _望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
& j6 n4 X" T" I& O因此不仅涉及网络安全,还涉及主机安全问题。
* M$ a* }0 e+ M l: C7 u" q4 T
0 s& V* a' h9 ? 以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,
- u9 P. F) k6 ^它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则! a4 p* M; @ L7 Y3 X
无能为力。从技术来讲,绕过防火墙进入网络并非不可能。
' P! j' V: M4 F9 _' l4 v5 a6 f
" a% X g, m8 {( @7 g/ U0 z% s 目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存* n; O9 F9 a$ F* P* ~# H/ n
在各种网络外部或网络内部攻击防火墙的技术手段。
+ O4 G: w) I; e/ F' V, y
/ t# o7 H* _2 p2 U: Q 三.防火墙的基本类型
/ [' J8 S/ M! a6 q" h- G; u9 D# m: J' q) C, U% v; Q
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应) ^! h7 M$ X" q" P" V
用级网关、电路级网关和规则检查防火墙。 " E. d1 q7 Z8 \' ~9 T
9 o2 ^# e% ^1 B. H: D8 e0 q 1.网络级防火墙
( k* ?" B3 Q3 _3 R' v+ M* I3 e3 G) j0 `. q
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
3 u2 c$ K5 P! c, x6 v% P$ T: @! M与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
# Q, F7 K8 u( R, \* e能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
0 y4 N; W7 C6 W: v# _1 L自何方,去向何处。 % C' I9 o# Q2 }2 h. `7 u& D/ {
7 N6 W7 w/ z) B8 L- n
先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
5 ?% q% C8 J9 [8 M% l& z* x连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定5 u8 a9 t7 L7 P
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直" Q- G+ c" \6 Q, r' k v
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默' l) w4 u# v. x: c' M
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
0 k% c; H& h. r& y- H+ mTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如' j: ]. T( d4 `$ u! c4 P
Telnet、FTP连接。
& a- i" a$ j; `7 }, n4 Z
1 W' ~+ J! b- W7 i* H- a+ {) {, ? 下面是某一网络级防火墙的访问控制规则:
! H8 v/ z! j4 J$ Y! N( k1 B9 o
2 T) H! l7 P% ? (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; - g" j H& D: E7 j' }0 N
( O8 @5 |. g% R3 {& f1 q6 D
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主$ \" h& v+ q! D9 M9 `- U
机150.0. 6 X; g% p, o) L* |* p* A' D
8 ^2 I _# M4 d- q 0.2上;
: O3 N0 k1 g9 i* g; y" `: u( q/ |2 I1 ~9 Y6 |
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3;
$ {: _6 h3 I2 J' o% Z, Z) T- N" e9 n
(4)允许任何WWW数据(80口)通过;
! }0 l/ v6 |* z0 N3 A" y4 \( a# r# u; r/ u5 e4 X$ Q. _
(5)不允许其他数据包进入。
3 a: ?# R. W7 G# v8 e5 ^& d" }) O: |! |! g# y) C' d
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护* K1 C' Y& S' u. W7 @3 E6 A/ q
很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
) y% A0 T2 P& c/ b$ `, P# X" l0 V& u
2.应用级网关
& G9 O: u- c# s& k, u M% t7 {0 y1 P& c6 Z: D, K
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
. j$ i1 x% ?8 E( t4 e# ~# v服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层/ g. E4 |- K6 x, o+ q
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议
4 v0 L8 h. O3 A, V需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
5 _: v, W5 {3 Z$ {. q4 a L1 {2 Y' f& o- I
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 * O* E9 M3 |5 ^. v
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的1 ^5 P) J; i: a( B r1 P( a
代理服务,它们将通过网络级防火墙和一般的代理服务。
' H* Z# _3 c6 _1 ^
$ ?" a& ` z' H2 \$ {( A0 N0 W) @ 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
" A, k* q8 t, b5 p( h) U6 J' Y而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过8 |; d6 ]; U) W+ R$ e9 R
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录
" l, J& U. Z, P7 Z+ ~8 h+ l(Login) 才能访问Internet或Intranet。 }- A! J8 O, Y2 ^/ ]& T; O$ n2 x d
! l8 i, q) ~9 G* b
3.电路级网关
- {& `- `1 ^; D9 z1 K3 X* ]3 d* J# U# p" Z+ t
电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手* F5 \! Z% N" t! b+ z8 I0 A+ q }! z. S
信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
5 m) m7 _, p8 l上来过滤数据包,这样比包过滤防火墙要高二层。 4 T2 m6 m2 M& Q; I, O g+ p
/ z3 v3 v, o8 S# ~1 M
实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
' T0 p( M! J* [2 l5 s: q3 i合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;7 h8 d2 _. x( G: m
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安1 q7 M2 I0 S8 C* J0 S
全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一- B; p8 p' b! k+ m
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP
, ]2 j J& ^5 R$ C- v1 O地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
5 u! ]2 A7 T& A; f( v因为该网关是在会话层工作的,它就无法检查应用层级的数据包。
8 [7 b. H: x& D1 z8 g9 e
, f) U5 T# w4 n8 p& L) |7 P 4.规则检查防火墙 " p; P' ?8 Y u9 I# Y; k
l! ^1 D) j8 X# p 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过) D0 ~6 y3 r; z K5 k; u
滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
8 x: I0 }! C/ j# j6 ?, R9 H进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否
/ K$ d! H+ l5 ^- K4 a4 N逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内4 \$ J2 `+ M7 O$ Z% h
容,查看这些内容是否能符合公司网络的安全规则。 " o# U _+ g6 x
8 X8 O) G& N' s$ N 规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,
1 ^5 S- C1 q( t/ q& n& M它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和
% c2 H/ }; X' _. g x( w不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
8 d- F2 Y4 p( M是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式
5 ^4 v. ^, h( K1 n6 e( W' r来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。 * e( g$ H+ V. h$ x) K0 e n( _
4 U9 `( ~1 q {2 c4 J
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
: r. X; x" G, [) z1 V5 m3 I户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每' ?# D7 ?4 I9 n8 A4 d, s
个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一+ [% q5 w' B3 t2 d" f
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1( N" o. t' [3 p( W- {- t0 O3 {1 n
防火墙都是一种规则 检查防火墙。
9 e r- M0 n+ _2 c/ y0 |) k' M/ _' O
从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就- c4 p8 t3 v( h, ^5 l2 \
是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的9 X" k6 u' ~! I" V& ^9 v
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽2 `* r7 m- d' A
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数1 \0 b4 }* l2 j! n8 g( w
据。 |
|