|
|
|
一. 防火墙是什么?
' ^" V+ z5 g0 P: M/ }+ r7 C* j7 f* W; r
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方. G6 \) \8 \' k) }5 j
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制( i4 b6 y+ s1 s. L0 ^
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人6 ]1 }; J) c* r6 o, ?
和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更( U) z# v2 p m% u
改、拷贝、毁坏你的重要信息。
# k* h% B, z V+ {1 s0 ^5 I
. E3 L3 {, ?8 @8 ~- F" M& a 二.防火墙的安全技术分析
4 d H) S: v' F; Q n
$ Y% ~0 v. s1 R7 v 防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火0 I* g/ i/ t3 J/ w! n
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认
# R& k. g0 U9 j2 N- M识。 1 j; o8 j; D( Y
5 d' L) L! t, t, O 1.正确选用、合理配置防火墙非常不容易 ; T/ `" ^5 {) h, k) f
, T$ j' j/ ~& y1 l' @5 I" e
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
, r. j0 ]4 m; i3 q$ U9 d统,配置有效的防火墙应遵循这样四个基本步骤:
4 v' @2 H2 V7 \# v
0 B0 k' d' C7 ~: F0 e9 S7 G a. 风险分析; / k# \1 x! X5 Z2 v- A( w# |# _
$ {7 _0 _3 X) X+ A b. 需求分析; ' }( v: P+ ~4 K( Z
9 f8 \# n9 D6 F# T4 }( T5 x
c. 确立安全政策;
( g. H: U3 u0 u; Z2 E, [, @0 P; ? [0 A3 ?
d. 选择准确的防护手段,并使之与安全政策保持一致。 : u7 ]8 U) ^6 q) P1 l
* i9 \, k) `& w' ? 然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只+ r0 t+ z& i5 y' C2 ^7 A
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防% U) h$ ]+ a4 K+ _$ z
火墙能否“防火”还是个问题。
7 L7 |) V5 N u6 E% p @
3 {" `, M4 L y0 n; H 2.需要正确评估防火墙的失效状态 ! N2 g$ h1 @# O- ?* K1 E$ t# i
7 J1 X. \4 h( J- o/ N6 ]- g* T 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,8 f( ?# _& t2 \, W1 w
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻' o& ]& @6 p/ ^( a
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正
- ~; V& G1 M- O+ \+ Q1 A常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数
* {; x) B, P+ t. T. H9 ~据通行;d.关闭并允许所有的数据通行。
8 m# E8 Z8 z) i, r& ?) s8 J" s" j9 \8 {& J3 H
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进
* R4 B# y7 R( z/ p行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐
+ u# [/ m0 D& F" G+ P! B2 I患。3.防火墙必须进行动态维护
6 h/ ~/ Q1 z, E, h! f9 d1 c! f6 |! V! I
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作/ _9 ^$ y; p0 h; m) Z! Z: ?
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动
! m3 [5 L/ n* ^8 \. M& a态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,
( |# `4 t3 K9 A此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
( |! P9 A4 l0 t; K% @, W) ^$ I/ ?9 k+ [
4.目前很难对防火墙进行测试验证 8 I* j/ O4 T9 M$ R H
' l+ G- \9 q+ s( C# M1 ]2 l3 m# K S
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
; Y3 f( t" N. G8 ?* X至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较# B, E4 t% W* a& Y3 r# U2 S
大:
2 ~- J4 e: m4 X' [$ v" E- q+ {- P; u# ~7 m% f: s ?
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的
: i. T5 E; @3 D, k4 c$ Z工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
_5 {; u. e, S的工具软件。 % d+ D3 g1 V# w/ S
5 ]& e7 L, r" E5 a0 Y b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作
4 g9 ?' Y% V, w: u8 m1 F) |6 P难以达到既定的效果。 ; I# C, U$ e' A
8 j! F; U o- Z3 I' ]" o c.选择“谁”进行公正的测试也是一个问题。 1 B# B$ d+ A# K
2 Y0 K! D4 O$ f0 }. |$ u( C4 O
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,, Y1 G- H0 b" V5 E ]! w, J4 W
进而提出这样一个问题:不进行测试,何以证明防火墙安全?
a# ~) J( [8 |
$ f% S( X+ b# r* K/ Q2 @5 P 5.非法攻击防火墙的基本“招数”
7 {, ^; R2 l; X- y
* }* p- a, a5 e$ U7 ^9 m a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到
, o' m* z! C6 q9 ]了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值6 {, W# J$ U3 y( x7 j
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
, i" `, E) K0 o9 W9 ^5 Z, j
: H: Z4 F- {* a2 K9 V2 E 这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰8 ?8 E0 d, g1 B/ |8 A. e0 V. k, Y
恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接
5 _! x* K. f2 c& X' P口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
' K8 W' c$ N+ K' O0 y- ~- x信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地5 G6 o' z" t9 B4 c
址缺乏识别和验证的机制。
7 s; |' C/ l, ?5 o \) y- q" s/ K/ Z& Z0 b( l% s9 \' v$ R
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
# h' ]3 B7 j6 }6 C5 g" V+ Y请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初2 J" Q! H4 X& a4 C( F9 y4 l
始序列号ISN。
; y- g6 c6 d; D8 B6 D# [% i5 {" E$ o9 X6 ~
具体分三个步骤: : w3 R8 N, ^6 _1 C
# [0 E/ |3 c7 F: W
1.主机A产生它的ISN,传送给主机B,请求建立连接; k* z! c; V% D# v$ L: f/ X. a
: X Q0 {. b2 k' @; G) u& g
2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
! o% q! n/ N: c; Z6 f' v( AACK一同返回给A; & z+ O, w6 q3 R; \5 k
3 U7 B% w: Q& q `0 W, G
3. A再将B传送来的ISN及应答信息ACK返回给B。 5 P- {! V4 E$ j L
4 k+ o% j0 ?. C& I+ Q
至此,正常情况,主机A与B的TCP连接就建立起来了。 $ E9 |5 x7 c2 G3 a. |+ o/ @
) h* [5 \% D7 S$ k) M/ N
IP地址欺骗攻击的第一步是切断可信赖主机。
. D0 ?/ U7 ?0 K5 O6 N: f
6 `3 Y P/ m a( }- J; l 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾" d/ r1 r( I' e7 k
不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
% T, w) [1 y2 I- \: [能发出无法建立连接的RST包而无暇顾及其他。
/ t9 @% s% T6 {7 [* u! {6 u# u! |- j' Q4 j/ v
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),7 x* P" R# {" t" K; x
通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连
( b) K" B( M4 v* u. f4 P接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和
9 _/ L. ?7 o4 V确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目 z' S0 G/ E. w; d# n) n
标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从7 V2 k4 V( ^1 }7 u; b
而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击
& y) ~; r, N) K( V4 k2 @4 u产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
- d# ^0 @* r! J% Z& C) C
; O1 m) |: v n) |5 O 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
' j$ `9 K) P% p7 Y' b机。
+ n" E8 I$ A( S: V; g% C! N- ^7 E, n2 X- u7 y* D) I' r$ G+ m
随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过7 ]* H4 C4 H) t- n6 N
这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
" R* f$ Y/ N& W4 j# w反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网0 i- v! U1 @3 U* g% o" H
络。
) g0 ^- a% n4 E* B8 a7 | [$ K3 w1 L6 M" }) m
归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
. h2 [2 P% Y; O# q$ U; k不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许% W. w6 U" p- f/ C4 `* T
Rlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允$ T8 @3 Q/ W1 _
许Win95/NT文件共享;Open端口。 8 ?! i L! a/ _
" T( A: p8 |1 f1 B* q0 l9 @. Y( a b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防5 d& S( d* Y$ g6 \* y M% I
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的/ i" P& a7 w/ k1 z3 d2 R( p
职能,处于失效状态。
$ Y" |7 U! H& R- ?* v& K( n. W0 n& B' t! h% @7 z6 o
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,: S6 w; j7 \' J8 i! H: N
随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件
: y- h2 v( Z* v: K& n$ B; R或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
+ B/ S h5 d9 J! u9 `$ V8 S望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,: X, z B$ N' }2 s- _& M4 z( n
因此不仅涉及网络安全,还涉及主机安全问题。 % c7 F$ y# y1 {8 E/ a: }
3 m. G* |3 Q5 d: T( q9 n6 n% Q
以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,
5 @9 Q5 i. h9 @. {- a" u它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
5 P, r( w4 l* w无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 / L# Q+ W P* \ f* {3 O% j m: p c
$ F8 @. ?; A1 M5 j3 L4 P: h
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存* w1 n; v- A- d M7 H+ `1 Q0 y' u1 d
在各种网络外部或网络内部攻击防火墙的技术手段。 * P; ]2 }4 K) {6 P y3 i5 u
+ w- P, G% C ^3 }1 a* s5 Z d( r 三.防火墙的基本类型 * ?6 J9 S U- X3 X7 U8 ]
+ {4 K+ G* c+ t9 u1 ^; w) }
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应
! C$ a, F3 Q' A2 n, T& f) {/ P" o8 }用级网关、电路级网关和规则检查防火墙。
$ G" l- d2 k9 x- d: Q+ j7 \
& ]$ l% R4 ~# k: H 1.网络级防火墙 % c" k* N6 l1 u
) m" d; v2 F: E' F$ D2 k# r/ U+ `
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过' j( h# U J: ?6 K4 C. M8 A$ [
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
; l! L3 x( {/ B6 k5 S1 c能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来. k7 D- @2 f9 A
自何方,去向何处。
& J2 C6 S1 i$ {) B% O, N
) |' l8 }5 E" D; u+ R0 w8 F1 ~ 先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的" n, w7 U. b W: }& K1 T
连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定$ u. B }* {" ~
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直' |! ~) m" x G
至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默
( @. U b" d* u" [, ^! O认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于3 _! V# C1 V: ?" b
TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如
+ |- {! l6 d) Y# v& r+ ITelnet、FTP连接。 / y6 C4 W! C5 h$ W# z/ d
6 z9 X4 [' @6 s8 L8 r! ` 下面是某一网络级防火墙的访问控制规则: 0 q% C. M% d+ O
% P. ~3 M H3 K0 J& i
(1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; & J& ^. M* O$ H) x8 p3 H$ V% L
/ t2 O I/ ^$ }2 `! R7 |
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
( E" T, H2 f' Q机150.0. 3 P$ y8 w& ^' u2 R K
% c4 X ?& m* H" w 0.2上; ! C+ Q$ l' \" f% t! o$ H
, [7 r4 u1 N4 c3 e& t2 q
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3; + D2 `* S: q! }; M) ]
+ c6 {+ v& _# T p; y5 g* r& @
(4)允许任何WWW数据(80口)通过; 8 q# d u! }/ o2 B: v
/ \2 a5 O$ n& y) Q& h
(5)不允许其他数据包进入。
% J( e* [2 k3 |7 }7 F
* s Q. A2 X8 p3 t! B) O 网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护, G/ r7 p/ l5 X0 }/ Y, A
很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
7 t+ }. q# R* I+ a1 C) `# F9 A; j: }- d4 }; P* \+ \
2.应用级网关
, \( `5 P# G8 L* U' r5 z3 h/ H) [' @3 o4 q7 ^, n2 r, z& }) u
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
8 J8 b0 j$ |( J服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
0 @ z$ ?6 Q% A }& q5 R" o上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议. @: g2 ?" o [1 ^ F2 T7 Y+ a
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。 ( n# U. h% x5 s+ ?1 ^
2 F. R8 v5 K6 ~6 Z) h, ?
常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 / C/ H' o# j- |8 ~2 |! |
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的$ A# F3 x; y" e; ~. ~
代理服务,它们将通过网络级防火墙和一般的代理服务。 + k1 z5 ~' P' o( N" U
; L; q3 Z6 E/ Y( O r* f
应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,4 }+ U$ _% R4 |6 R
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过% ^+ c. i& D _0 ~0 W
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录6 W6 K- l- {! P- `2 Q
(Login) 才能访问Internet或Intranet。
/ m( c" o- J( |/ a
, c2 P1 ] c3 _ l3 F 3.电路级网关
/ {" i; ^) r& H. Q' a, k4 e8 ~! z0 C; t0 @
电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
$ h+ R! y9 d9 F4 Q0 h6 V3 Z$ K2 _信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层, ?; z: Y) f* S* G I. E5 S
上来过滤数据包,这样比包过滤防火墙要高二层。 - `; t& V' ]4 B( c( q
! }' E( D: t0 M+ c
实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
$ ?7 s: Z! I! Z. Q' _' }! r合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
$ ~ K5 v: J7 s3 YDEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安 G' @8 O! p' t* C$ H
全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一; G: m2 b1 H3 y( z. u* U0 q
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP0 p0 Q, ?* ~; [& R
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
! ?* \& Z' I# s$ M9 ]( c因为该网关是在会话层工作的,它就无法检查应用层级的数据包。
- g7 I$ d0 v k) w Y6 g$ D! }; N6 Y5 Q9 J1 q& H
4.规则检查防火墙
, F2 B9 {; H# \$ I# \/ S5 n; N+ i N h3 U+ Q; t
该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过. f$ {7 T( O" {& ?! |! l$ [
滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤 A# V1 m9 ~6 K. l# F1 _6 f
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否7 K2 l5 y7 F3 n/ [' N. _) F0 p
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
: o' J. ^ ? I6 U) U+ C容,查看这些内容是否能符合公司网络的安全规则。
! J/ |/ ?/ k% D7 G' r u- ^% \8 ~) @6 \' S6 c( J
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,
; s* V' c' J2 `" ~4 }它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和0 i, g4 r0 _8 U( Z! p$ w
不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
* `9 R7 h9 {' H+ ^0 ~" ~是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式
% A: C6 s; L6 g6 X来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
3 o5 n3 e' M5 ^$ }& I& W; F) l2 j3 P& a9 d/ t
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
( A: w2 h. ?+ |% A0 a户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
% g7 m h9 X- v8 \% N# R个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一 p4 C0 H6 o7 S2 O/ o7 P4 ~
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1! J+ `& O2 O- i; \2 L1 ?, \
防火墙都是一种规则 检查防火墙。 ! X) m! T" q6 ?8 i4 ^' v
; w" q e% }* S( J$ R. f8 H
从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
! L* h* m5 T/ X是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的 {3 x! z) l d1 o% g
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽6 V# O) e' x$ P$ R5 n
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数/ _- y3 K. }, m: y0 W) R, x
据。 |
|