|
|
|
一. 防火墙是什么?
9 _4 ~& e; w: Z o- J$ p
3 k6 ^. Q2 S! ~( V/ `3 v 所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方
1 s( J) }& G# }% \8 w$ c法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制
. g S% k7 k' `2 M; p4 m( Y6 L( l尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人- A& ~9 c) i' l; ?. E# n
和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更8 l M0 r" u! [* ]# t* C
改、拷贝、毁坏你的重要信息。
$ \9 y0 a2 ~" Z' l' F& m3 q$ x* r$ I# N4 R, n: Q) P) _
二.防火墙的安全技术分析
6 y( V. F3 g: V( D7 F) u' ]7 }' O7 c! {( p: a* k
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火7 N# x4 }, X2 U2 z2 ]
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认9 J" _7 [/ W* p+ a8 U$ A( O
识。 5 ~0 @& _6 v/ g
2 p( p; l8 r( |6 J 1.正确选用、合理配置防火墙非常不容易
5 f7 D! P3 O0 D4 ]/ F( K- Q* q" [6 E7 I
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
& ?# i. ^- D. N6 U统,配置有效的防火墙应遵循这样四个基本步骤: & d6 H$ y% J a& K6 z
7 A& J/ l* M$ g9 c% z! q" T
a. 风险分析; ( I% V" b6 Q& W1 W2 h4 {% Q
0 Z A2 i; C( h4 A A7 ^
b. 需求分析;
$ x" u9 b7 Q, q/ i) \* K! q3 V1 _/ D2 v; R, G1 |
c. 确立安全政策; % Y: I4 {: t! g+ W
0 ?+ y I6 {* E
d. 选择准确的防护手段,并使之与安全政策保持一致。 * Z2 r1 s) E/ k! O7 o: N
2 G! z F0 k( U 然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只
2 W. j* ?0 T) E是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防3 Z! D* ^3 |$ b( P
火墙能否“防火”还是个问题。 / A% m5 ?0 _; i% M7 P( q+ Z
1 d7 Z& `* j# g, p* c2 y X 2.需要正确评估防火墙的失效状态 7 [2 v* q. C7 O$ b
1 ?; F6 D* Y% | n% p 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,9 `) b' m" E/ u# d
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻
- c6 B8 x& c9 e1 w8 B7 X破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正
8 y) D6 u, ~: i0 B' V+ ?常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数; {3 ~* e l1 ^4 t
据通行;d.关闭并允许所有的数据通行。 & m$ w/ ]# |- F& x
6 C2 K' F+ O v2 C7 u; a( O 前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进$ H ~9 h4 q! J, o
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐
: J: A4 t P- V' g2 _* e患。3.防火墙必须进行动态维护
# `( T. c) D& c8 U7 E$ E' I+ k
; s1 N9 e6 ~5 {4 p: F; V 防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作7 w. x3 v( z. ^' ~5 I% o/ ]
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动
) Y! }1 w& }0 @5 t态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,
9 @6 `3 T$ u3 W# C/ p此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。 ; w5 A% }6 L* o8 d' U
$ |6 y1 g: |4 F" b" Q
4.目前很难对防火墙进行测试验证
- i7 r0 b# M+ L6 v1 R6 v- m" D3 _* _; i
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
; ?5 Z5 k) M8 g- \& A Q# _, A" U至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
5 x- ~2 f& R8 b+ a, Z' @大:
* S5 \, R% O0 U, n9 m2 L
t5 B. g( e/ e. d a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的, X) e1 |6 h8 L9 F! R6 I
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
1 \% d9 E# F. L的工具软件。 . `, s: }, K T' }3 Y8 P
# k) w& k2 C+ X6 }' c/ s4 Q
b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作. ^* A$ r) B8 o' }5 ~
难以达到既定的效果。 # T7 m2 O% B, s6 ~
! }+ d% l9 o; g1 v c.选择“谁”进行公正的测试也是一个问题。
/ W$ I! M: Q, \1 h9 M$ J Y3 b; \9 M; W
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,' o( ^2 q2 x, z0 K# M, F
进而提出这样一个问题:不进行测试,何以证明防火墙安全? / i( }+ Y' ]' P& M& Z
) h3 P0 |5 J! d7 t 5.非法攻击防火墙的基本“招数” 5 I, x/ D' `2 u( v
- _- v+ T8 W) @% u. c a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到4 L6 U% O: n9 T* Y7 j9 q
了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值
; r% z- t+ U* B9 s得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
* a5 U( `/ T3 a+ b' a8 r
; P' i3 n4 g/ N7 s) D3 @9 m5 p 这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰5 C. L6 X0 d- E: {2 p: i! D
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接8 a! T! J n; L$ N0 }- L- I7 D. U
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
9 X4 U) ? K+ z5 q$ }) T信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地# d7 G/ k: k6 U
址缺乏识别和验证的机制。 " |" V6 ?: [, K
, ~6 i+ E# D2 r3 ~+ q
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
7 |& m _8 G: t! f X请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
& s: d: Q* N3 d1 W- k7 `始序列号ISN。 0 h& P0 q. r5 H* j' C7 t
# w' t' e4 P/ _# ~1 V
具体分三个步骤: $ c& h3 c4 } {2 m& R) b) N q
& ^5 n; h x& H3 V; P( L, P: @
1.主机A产生它的ISN,传送给主机B,请求建立连接; , e7 P3 C5 T5 ~4 C
- i4 B3 u9 t9 T, B( ] 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息( H2 u. |3 o% F F3 M2 H" N
ACK一同返回给A;
j) X! L0 g0 C" M3 K: E0 n
. {' L0 o5 W$ t: G& n; ?% {/ j 3. A再将B传送来的ISN及应答信息ACK返回给B。
# N6 L/ }& W8 Y" @( N9 @$ D0 y( i$ J5 D8 |5 s
至此,正常情况,主机A与B的TCP连接就建立起来了。 . w# K O# l/ y1 Z1 L4 s
5 P( C9 ]7 J7 Y8 [2 Y% R% S. {
IP地址欺骗攻击的第一步是切断可信赖主机。 % O- w, v& N5 P/ A9 T" h: H0 I
. P' P0 H0 F- I( i4 B0 c 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾
( X7 D* l, k5 S不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只2 y; v- y; _6 v% t
能发出无法建立连接的RST包而无暇顾及其他。 % N) b# V0 e2 x) [+ _5 w2 L' S
' ~$ b; x1 t& g; x 攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),/ D% m" d! e* g. _3 U1 E! E7 E: V
通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连5 ~3 N5 b0 E5 ~$ p" i( M
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
' d3 g9 t4 l) ^, z- F+ t确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目 u& N5 r& Q' n5 T+ ?9 e3 n
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从' M4 g( I6 f) E% r& Y* E
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击
0 R1 t+ H, e* E; Q4 X* \* x; U产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
8 j% c- G ?, A9 p8 g- s" T: P/ b! y& P# B3 g# s' {8 t4 K* o7 H
现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
, q. m: R$ \) W4 U; z& [5 |2 B机。
: ^& f7 a0 T4 `( W' f. L- m/ I6 q; l" l2 G
5 j7 E- c* \6 X 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过: I9 Y+ t+ F C( s
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
9 i9 R- k; t0 L% E" Z' ~6 b反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网
. L9 J1 t. I6 l1 q- K络。
# d0 r8 J; C9 j2 i; N" d. R4 M O7 W, h$ j1 B
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;& x) z! N' L/ L) k* E! l
不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
+ f# q+ k, p# g* q, DRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
! L9 E, g9 w& f& s5 v5 {许Win95/NT文件共享;Open端口。
( j% t8 j5 I' G* A8 d# e5 ^# Y
7 C9 T5 \$ ?* Z- u! g( R% {: X+ C b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防
0 {0 ~; {3 [ x+ x/ S火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的
2 ?9 e7 u! e0 \+ O+ f% _职能,处于失效状态。
- ]! Y) `, m+ g4 \" M0 h( v( ?; K* u( F4 g+ i9 P
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,
$ J- R- C0 c+ S E( O# ? w随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件
1 S4 J8 D5 A8 ^! p$ G1 y或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期9 _% B' z5 S/ a7 s- E1 E& t& Q% Y
望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
: z- E6 D& d" B因此不仅涉及网络安全,还涉及主机安全问题。 , C5 R& @3 r. l2 i2 K5 t& }( e
1 W7 e, u( Y, K0 T" p
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,; W4 K; {, Z; Y- |! M3 g
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则- X. b$ d' ~* Y4 G: v! q) \% [
无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 ' F% a8 p/ k" f" u" T% A! b$ z! R
2 C8 E7 D, u! w. v$ W1 M1 g& u 目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存3 E9 e3 [1 C& O* u- n5 U0 e
在各种网络外部或网络内部攻击防火墙的技术手段。 , F% N, B9 b6 l5 n, k& U9 c' l* j
% }9 l" [2 ^% C# w2 v6 q! }+ M! T9 o
三.防火墙的基本类型
8 I m3 \: \6 Y* T; y- S7 X6 y( g- v- |, x) h
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
A) V/ a7 ~3 b, Y6 ~用级网关、电路级网关和规则检查防火墙。
8 x8 G6 _. N5 n- O/ q! n8 u) z
+ \! n$ S4 }. J0 ^ 1.网络级防火墙
$ h0 ~( t" G' L$ @
: [3 E! f5 h/ U4 h% m; _ 一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
+ f4 y5 v$ L! N$ ^% }与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
$ y- M7 U& [$ d& h能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来
* N& k+ i0 }9 H- g8 A3 `自何方,去向何处。
' i0 _3 P. c1 @) n1 u$ `5 L: a" c( L& Z( o: d1 ^" g
先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
# {3 x2 ]2 |, i; a* |连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定
' n6 [, N2 X6 {义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直$ s# O9 k. x) Q9 C/ D, M
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默) ]- i% ?8 v3 u+ g& ~4 ^4 i
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于
7 Z4 k& k- \" D9 B* P. b2 rTCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如: d! ]$ f% U9 U3 ~/ a
Telnet、FTP连接。 ; t0 p# s/ ], r9 g" U" s
4 E( _+ m8 R* o+ k% q% ?! x" C 下面是某一网络级防火墙的访问控制规则: 9 l2 b% O6 H, k# ?, _
. K: A% I5 _4 y% j7 x (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; 1 G* X& M; p. u
c: y3 ]2 q& I3 s7 J (2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
4 o: K; n' z% F3 s机150.0. - X& |. L7 i( t r
3 a" z3 T2 E) C$ c! v0 V8 w1 x
0.2上; 2 _2 u. n2 S5 E- z
2 m% G! x1 l7 S( G' [& i! j
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3; $ z+ L" S0 ^+ C2 _/ F
, u+ Y2 f: m( V4 P& N ^8 b (4)允许任何WWW数据(80口)通过;
, e7 s) r& ~+ y: N
+ f- Z6 `7 R* z. j1 _6 V2 S/ O% ? (5)不允许其他数据包进入。
+ P8 V4 P- o8 I& h) {' W, j9 H2 k2 S* d0 Y+ a7 _: }; x
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护8 `( o8 \& j$ ?3 A: n( G1 l I
很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
' ~- ]$ w; M6 u/ v1 ?% U6 P3 J% u: i! z& r
2.应用级网关
5 H1 s3 ~& u; @8 G# @( I" M
, D' D% E8 x/ r& {. X 应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
& f* @6 t! V2 c服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
' x% s* {+ ?1 t0 s. `% }上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议5 G& x0 ?6 P0 T) a5 E. ]
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。 ! u! U$ h- i( j$ o2 k5 l
; k; ~6 Z; {2 k7 ]9 x: l3 U 常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
3 |1 C3 I6 H5 z0 Z5 v: p3 Y. k5 M5 ?4 DFTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
. S8 g ~) g) h* Y' i2 ^代理服务,它们将通过网络级防火墙和一般的代理服务。
# g/ _& J: e2 F, ?4 J& i5 D. b1 R" V4 B) v( C
应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
7 U' P* [# a5 A4 @( B' |5 \$ g8 [而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过8 T w$ S1 i& M1 }
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录
/ m ?7 U. t7 ?(Login) 才能访问Internet或Intranet。
. Z U0 k& Z+ w( ]1 N
0 O) g3 ?+ U7 A3 r 3.电路级网关
8 t! S& u; V l2 }
9 W4 |3 I9 V2 f. H6 J 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
% W4 U C a. j, L信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
, \- e$ C9 B: K7 Z& t8 ]上来过滤数据包,这样比包过滤防火墙要高二层。 . c! E. e7 h- C; C. Q
, d/ I, ]" R, c2 F- ]9 M
实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结8 x. B0 M7 \8 U( }& r' `. O0 ?' z
合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
* n) q' x+ X0 a% pDEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安1 p- j. n. c. \
全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一" w8 `7 q5 n5 v" r( y5 q- o6 O4 R9 h
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP
9 p! A$ ^$ c- K5 X5 q* s" |! b地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,, i0 R, I3 B8 f" ]+ Q! R" p
因为该网关是在会话层工作的,它就无法检查应用层级的数据包。 - E7 A( a& N; c, Q" r+ `) p
) j3 P4 a7 \* ~8 f 4.规则检查防火墙 % }- I0 }- K1 [
9 K1 a) C8 V: p- X 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
9 s! y& a/ p2 r. a% F滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤
( \' }1 v0 Y* T; e7 q9 r3 K2 ~, k1 \进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否) J8 t$ M/ }' }; p" k* |1 E! V
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内# I3 A; L. A0 r
容,查看这些内容是否能符合公司网络的安全规则。 ; \2 L3 B, D2 W( j0 Q+ l) W
& g( g- |1 c% F; i
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,
+ W3 m) Y8 c- O% K7 S3 n它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和; X4 c$ E3 _# x! C
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
( @, r9 |5 H0 V3 ^+ N4 @是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式
1 I7 n$ x3 N" Z/ W1 D7 Y来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
5 v$ {. N1 b% ~4 z O8 ?$ ?' m$ X" ?3 I9 M, n
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
5 p2 }2 ^6 d- P; K户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每0 u1 N `2 w9 X0 i, U
个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一
! g6 j6 H* i, o: B# T/ F' OOnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1
. B9 N( _" l8 s防火墙都是一种规则 检查防火墙。
( ~( V* _- ~" ?; L( H W
4 t9 n) G- k5 v4 Z" {& w }! I, C 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
' M6 X% W; P* T$ q: w% ^* n是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的
7 `8 C8 s. v) K) N功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽- p. n1 U7 b& R7 N7 g4 p
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数7 c! C9 _! w2 c6 R- k0 J" i
据。 |
|