|
一. 防火墙是什么? ' T5 L5 D* n/ Q3 [# o
b' w) i% M+ K9 @ 所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方7 S L- U7 k& f( b Q3 x L6 Z6 U
法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制7 r( a2 r* L' a5 ]& O; j
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
) C) N% n: u2 t( N和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更
+ T y2 G( i$ s9 S改、拷贝、毁坏你的重要信息。
& t+ s9 q. w9 w* W: }2 d; c
& W! n# e2 v0 m$ O 二.防火墙的安全技术分析 6 h3 z6 @/ _6 I8 b5 Y5 z7 V
( E( L$ W* l/ u
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火" F. ]$ W8 w9 w4 K2 f8 h
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认. A+ z2 @1 \7 v, V
识。
" K2 I( [$ ~" l$ n6 \* V: t5 S. ?! }' q2 i {( j
1.正确选用、合理配置防火墙非常不容易 % s+ t3 O, E3 z3 L. `7 V Y
6 p s9 t7 w: K* @: [
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
% T( }; b% T# T0 @统,配置有效的防火墙应遵循这样四个基本步骤:
4 z$ A8 H! g0 `3 r; G' k- R) }; W" A8 ~ G! c& R9 s* b
a. 风险分析; + {( g, H/ F5 K1 G
2 m3 A7 g( d, s: I0 d6 S* O b. 需求分析; * I) D) M. ?7 G0 C- }% O. s
6 t* m# N6 W- Z; J c. 确立安全政策; ' G8 y4 _4 c2 _5 u5 O; p
. k0 c t+ ~7 g( y6 X! l
d. 选择准确的防护手段,并使之与安全政策保持一致。 8 _2 d0 V6 r5 F' p: F* X* c) l
. Y% i5 n" _$ q; R
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只- k6 J1 [/ N1 f3 `4 A3 O3 B: @
是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防6 U! N+ q0 e' W/ o5 P3 G
火墙能否“防火”还是个问题。
: [0 E) a1 B) w" ~, }( \( R5 C; c4 n2 [! G0 K
2.需要正确评估防火墙的失效状态 a! l. a8 V2 E, T$ @1 i* ^; b
j7 \, Y; n8 O/ ~
评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,
. S4 d, l7 B: V1 I能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻
5 H( e3 c% K0 _- E- Z破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正* s( z+ G, Y- a6 S9 b
常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数( f# U: \ B1 P! D* J& c
据通行;d.关闭并允许所有的数据通行。 6 O: v8 g+ k( _/ Y$ q) e
1 N: O" W7 }. U
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进4 A7 s; n. @4 g; f
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐5 i2 d9 D/ g, ?2 A$ K
患。3.防火墙必须进行动态维护 ( i0 H9 x) C3 q- L) r5 y- `* t
2 X* s- [4 v6 e1 M
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作
5 \, }- j, O+ h0 z. V9 U用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动5 O( e; X3 L4 K& t. g
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,: s9 A2 b6 H: q5 f# T( p
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
! l! z# S; u: B, O$ J/ {1 ]+ L W Y T: T# e! I7 u) X
4.目前很难对防火墙进行测试验证 , i( h+ I+ v3 g h
" f1 k1 U y. I n6 b5 M. l9 r' A
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚
. P8 O6 y, O1 D* U至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较
# \5 a- T& w6 P大:
6 _# @9 N, z: ?0 G& @* f( a1 q# Z$ V3 C- L7 k# y/ k& }8 ], K
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的
; | ]# W3 L+ r2 h工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试
3 M+ L' x; I/ F9 `的工具软件。
# G3 Z; d( x% _: u' p0 Z @
- p, u9 ?/ O8 i ~/ m b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作
& H# M8 j3 d4 v5 I8 m5 e难以达到既定的效果。
" a- z0 d# ]4 q3 n$ Q8 K& \% m" e/ U7 i/ k5 W2 S* G! v% {
c.选择“谁”进行公正的测试也是一个问题。
% H" k9 t" Q2 a5 X$ [3 `; z) c/ l
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,
3 c/ `% H q* \进而提出这样一个问题:不进行测试,何以证明防火墙安全? ( }* [6 ~$ S1 y
- ]1 O& l5 v& S4 I3 y
5.非法攻击防火墙的基本“招数” 8 R- A! X0 P# ?) ]6 K% q
% g, v7 {! C) y T9 [ h
a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到! l/ h: {+ J* W0 S" l
了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值
9 F: f0 m; F/ S( z6 q' I4 D得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
6 i; w8 ~' c2 r' a& k% o, ?" D9 S O7 P* p$ A9 y
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
7 t' ~- r& ? R2 i: f恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接( z% o+ ?2 }5 S* w5 ^3 I
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的
9 E+ y5 r9 ]; c# l' \# b# k信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地
5 E; @5 V: y, n7 ~2 M6 l; m9 E址缺乏识别和验证的机制。
0 j* i3 `( v3 A* l: u- w' x* W, o3 i' o5 @" s
通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出
0 C- X% w9 ?9 V7 H$ z请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
7 q# Y; Z F$ ?" \5 n+ |始序列号ISN。 5 G4 U& Q9 o6 K3 d2 Y' E, U# d9 r; P
5 @, }& w$ s, Q( p `9 J7 `9 M8 v 具体分三个步骤: ! [& B+ R; j& u' N+ s) K
9 J2 E l1 C5 V4 H, ]6 G
1.主机A产生它的ISN,传送给主机B,请求建立连接; * @. @, P4 q7 `' ]1 I. N: s* w
3 V% C! M) ~* q9 D1 n 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息+ H% r0 h6 `* k& ~* E% b2 `
ACK一同返回给A; s" E* D( `; N0 P
0 r1 @& E6 B/ I! c" x$ G* f2 I
3. A再将B传送来的ISN及应答信息ACK返回给B。 v& m {# Q. q5 {& u
* _- } p; d2 [- r 至此,正常情况,主机A与B的TCP连接就建立起来了。
" P2 \% O5 n, }
8 L; b% Z P; O) {" L% q, ? IP地址欺骗攻击的第一步是切断可信赖主机。
$ |0 } Z/ t1 k- v* c. g1 F8 n
4 I; ^7 ] F% x [+ m u8 l0 M 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾. E# I& }0 t8 s' w1 q
不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只/ w; {' ^0 `9 T8 V3 q6 Y. _
能发出无法建立连接的RST包而无暇顾及其他。 9 Y1 r4 k6 N) ?: P
! b/ O: h: E, H8 V, z$ B 攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),
~! }0 G( j$ Z( ?& n6 B通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连! E* G& q I" ~9 B9 p
接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和. ^& b; | v3 T3 x2 i) K
确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目
7 j2 \- g, Y% ?/ j) t$ Q8 c+ r标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从
5 o: e, _* Z7 j" p5 [) ?2 A而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击2 e. W/ L3 @- {
产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
% M u0 S* S1 ?# M. v. b% g$ |
: X( f1 D6 o* x) p 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主, t& h, o7 ^5 e, |; m5 i4 s: }" I6 _
机。 % K& k$ e" w3 S" J4 ~
) ?/ ?3 B6 Z+ \1 C- o 随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过
. _, r" L% b5 \这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
2 f) r7 @6 P. x" m! H: L+ j' j9 \% J% G反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网4 K) U- w5 ^" ]8 D
络。 3 b& k$ v9 x. N' r6 ~
: G+ b; m2 z4 D& z* L" O7 z5 u/ J 归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
' F6 p# G1 G1 ?6 M- M/ C6 o! d. x, \- T不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许
# `" d& i( R8 pRlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
( _3 b2 x8 o. t P许Win95/NT文件共享;Open端口。 : s* t' F3 ^/ B2 i$ H
/ z( T# f. h+ ~ b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防# p% k4 C6 L1 q7 { A. j( \# Q" U
火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的' a' ^* W% l1 y4 ~$ S! s+ J% q
职能,处于失效状态。 P. F- s* g# o7 X+ o
3 A2 }! y6 W- c
C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,
% v! K' i$ ]0 a9 K) w随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件9 j2 n3 o8 {3 A; N" a1 U
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
% J F( o* I6 ?. p: @& |望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,6 w) ^$ E3 T9 T, ?* M
因此不仅涉及网络安全,还涉及主机安全问题。
1 F! `) i! r4 p- l
$ d3 l0 ~/ ?8 d6 Q' s. o8 J0 t! n 以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,- v$ h& B( X9 l
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
: v5 W- k" u7 m$ T' C8 e# q( d无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 5 [" w l% b- d
- ^8 t" ^% L; H+ o8 S; I1 H& A
目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存
) ^ Q5 ]8 s4 S% S* f) i在各种网络外部或网络内部攻击防火墙的技术手段。 3 ?. S5 r8 E, {: i4 J
$ y6 w( H0 i1 q7 K: ?, ` 三.防火墙的基本类型 ' ^+ A- c3 C' u0 }9 X3 y
; S% F& H: w- G 实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应/ J, V8 z% i+ H) p7 Q, y9 S
用级网关、电路级网关和规则检查防火墙。
8 j/ l+ i. h+ x: i: W% h6 d3 M+ H$ R) D/ Q: g
1.网络级防火墙 . S# _* _/ V& h* [
: |" c4 D( g7 l6 [/ Z! Q
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过
) s) \, @& N/ ^4 ?: @! m与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都8 c: Z: b$ d; B: T5 u* g
能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来2 K0 ^$ N, i! V4 f" V! K. g# }
自何方,去向何处。 ; ?/ K3 k! x& M, r m
+ w! m6 s* `: v$ Q# L, D# u$ l
先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的
- @( m1 t+ T! X+ u# j# z: c+ s; _; M) N% r连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定" N, j. s% {# k
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直
- C/ Q& v. W- N至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默
. Z( i3 K& g8 N# \9 k认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于7 U4 w# Y/ j7 I( t- c" `! y
TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如 Z( Q l1 w3 J9 s9 n7 K
Telnet、FTP连接。 / }- N1 t( s/ n; v. o
4 d7 e$ P5 h4 D4 `+ E 下面是某一网络级防火墙的访问控制规则:
9 I1 S, i3 i3 n3 l3 ]2 C4 c
+ `# P( K% F% V) O- G' Z2 m (1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; - k5 P W4 \ V: u1 z3 I
" F: u/ m6 t' b9 \- `0 W3 z3 D; O
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
, }$ @, J4 d3 |6 k) x# X# S/ P机150.0. # g8 P8 F' W3 T# i' ?
( K! E2 a9 c: v4 y& c ? 0.2上; : e r1 |, F" @2 w
8 a# J: l* n3 @ s. b (3)允许任何地址的E-mail(25口)进入主机150.0.0.3; 3 b4 D0 Z- }3 @; {
) Q* v( [) Q& [: b
(4)允许任何WWW数据(80口)通过;
1 a# B3 A# C+ b3 P0 o( n( T8 S( @, u* ]/ ?
(5)不允许其他数据包进入。 9 C! B1 \# E' L
I. \2 n/ G" j- f6 U1 u 网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护; z3 N! X) T) F, g( D& ^6 c
很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。 6 L. Q; J+ n$ g+ |9 p+ l+ S9 j- k9 k
4 d4 [0 c0 h! A) t- h" C 2.应用级网关
) ]* e4 \2 k3 L" I, G( M
+ q' z0 `& c4 Y 应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任
% d# e+ _9 Z9 b0 z0 C; x& R服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层1 Z' g2 b( `; g5 i" e
上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议, u9 O8 \! H8 T0 d4 Q* B+ ~
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
* Y6 B6 B7 t" c, a8 A
4 |7 r1 K: n: J5 d% Z4 ^ 常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、
3 Z: S h5 J2 s( CFTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
7 a, _, w, M9 s, B6 I9 b代理服务,它们将通过网络级防火墙和一般的代理服务。
- A5 L7 j7 m& q& t1 \& }
$ ^/ h0 u- M j7 s$ P 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,
3 Q3 \3 V! K. a3 ~而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过% w. I4 E, X( L0 g8 O: c/ G
防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录 P2 t- d- X$ [
(Login) 才能访问Internet或Intranet。
% X8 i: E3 n" w; [- `5 }; N m" R/ G; r1 A
3.电路级网关
; U F9 S o! X- P: C
; G4 F s2 r0 G6 {( k! O0 h 电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手0 I0 D9 R0 ? [; ]
信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
) ? Q7 \2 {: T% c& |! p I" L上来过滤数据包,这样比包过滤防火墙要高二层。 " H# C+ E$ o7 f8 L* _$ s
- O! m- Q9 _$ F; x' X0 m& L! ^ 实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
2 T8 ` }# }3 a a: W; A0 V) B7 f合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;
) A# Y/ f: _3 [. }DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
/ Z% o3 U" i2 h! l全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一- H. h B% j0 N" A
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP. G% {- J( T! m7 O* B
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
8 q Z0 H8 ?* N; x因为该网关是在会话层工作的,它就无法检查应用层级的数据包。
: q* J. H% y! v2 S9 ]* \9 Q L* Q" ^- v: P( s$ R, ^9 ]. ?
4.规则检查防火墙 . B( T$ [% X: K/ s2 U
5 Z2 f% h! Z7 u: b* @( O 该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过
7 h5 J5 \1 R- e滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤# c W+ ?2 i" k6 S1 d4 A9 |' U# Z
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否+ b, D% k7 m% ~- R( W! w) ^
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
7 f& u: Z: ]) L- ?! \# y0 O- q; x0 H容,查看这些内容是否能符合公司网络的安全规则。 9 I4 ^0 G8 j3 S4 c! q( q' \0 F
' E; Q$ l7 O2 c- Z i( q7 A 规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,& g: n$ n ~0 i' @/ Z% B' D
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和
! f# ^9 l9 \8 c3 W! T, A0 g3 ^不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
/ D, u* N7 X6 |# \# J, Q是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式2 M5 V" {$ D; {4 r: r% p
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
8 z7 [. B% L- C. b! {1 s) | v) e; v. G2 N2 ?2 W
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
7 y! E S. E/ e, g0 q$ n1 [. ^户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每7 q+ H7 J4 ^' H% e* g( V
个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一
4 ~( U7 d6 H/ o8 B. U+ LOnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1
; v. g6 j" A$ H2 C* U' ?& e2 V& O防火墙都是一种规则 检查防火墙。 I$ `0 H) [6 F9 E! I/ k
/ T8 f: B; O0 O. e/ ?) E0 s8 _ 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就
7 Q1 j, u! G1 G, f是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的( I+ A, k& m, ~2 m8 d( t4 y. F
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽
! r; n! f7 t7 }% ^: [查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数4 b0 A! D: y' X( _3 y4 I
据。 |
|