|
一. 防火墙是什么? 7 B$ [9 J7 Q' r! i; r
, ~& r2 ?$ `( z, Q5 k 所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方
1 d; h0 d# a. U+ Q; [3 m1 L- @法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制. r$ A2 C. {* O% t0 A3 p
尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人
( H2 V5 l/ N% f) Y7 ]1 P8 m1 j q和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更7 Q9 p3 X* f7 d5 E. e8 b# m" V
改、拷贝、毁坏你的重要信息。
5 Q# s, l n% c! u
" o& ^2 m2 p0 x/ b% H 二.防火墙的安全技术分析 . B$ C( K/ q1 ?8 c
8 I5 Z, O1 y0 H# ]( M
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火% n. p: q' g$ o9 M+ l5 k$ ~& j1 c
墙的基本原理和实现方式进行分析和研究,我对防火墙的安全性有如下几点认& X s3 o0 C0 M" n) g7 I
识。 : x2 d0 i; a7 P
% P2 I, R7 a8 `3 A5 g9 s) K. g3 M 1.正确选用、合理配置防火墙非常不容易 / @, h$ Q. ^9 o( A$ g
4 ~0 A% _2 s! J- _8 n 防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系
, f4 [0 z7 [: H, D9 M( n统,配置有效的防火墙应遵循这样四个基本步骤:
5 \2 x: j" S+ ?' | `' j
5 M5 n; s) r- j2 X9 }9 E( T a. 风险分析; 6 U) v& s1 n; g- [0 g. e+ y" y
% E% m( V" `+ K b. 需求分析; ) D1 M* L9 ~; T! p! p
/ K( E3 R" x( O; V" L. F
c. 确立安全政策; 8 @5 g/ Q9 K3 p% T d
/ r- \& {; a h6 E, W# H$ f2 P
d. 选择准确的防护手段,并使之与安全政策保持一致。 3 l s( t' ^* v0 O" H; M
! u/ X6 y. S0 F1 f% ?, l 然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只
0 I7 g" R9 @ K5 y8 M* l是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防 D# H% c4 |( `. w8 h1 N
火墙能否“防火”还是个问题。 ( z, @) {9 ]+ J6 _! g- l3 u
" P! K+ N& S5 j0 ?3 ?/ s- X! ? 2.需要正确评估防火墙的失效状态 ( D3 ], o$ t3 \' D$ }! r9 |. v
. Q: I0 p, N$ x- T- s 评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,- m- Z/ p0 U* C6 B- q- x6 q; K8 j. W
能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马纪,而且要看到一旦防火墙被攻2 `2 Q }+ O/ T- r9 B+ A
破,它的状态如何? 按级别来分,它应有这样四种状态:a.未受伤害能够继续正
2 X( p& |# j9 G# w常工作;b.关闭并重新启动,同时恢复到正常工作状态;c.关闭并禁止所有的数& ~6 o! f* m- z/ y! D
据通行;d.关闭并允许所有的数据通行。
* P: \* K8 J u! ?4 G/ }) A) n! u1 p+ R- q& j& k. C
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进- b+ `- D. C! k+ w
行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐% q0 q9 |& w F Z$ n
患。3.防火墙必须进行动态维护 % n; }* P& W2 @- ^' b$ X
% e5 @; @) S4 f6 J
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作9 z, \' D% k8 f1 P* G8 @
用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动& |" f, d: r5 B& G9 R
态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,/ K" q% G- f, t# F s0 \
此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。 ; t: a; S4 w( A# @! q- U6 J+ |* G7 Q
h; Q4 z1 w& j0 p 4.目前很难对防火墙进行测试验证 $ }: l3 l. N3 e
% H/ h! u% |3 p2 _/ v/ k3 x j" Y 防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚2 Q! M3 M+ Z; \! k
至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较+ }/ @3 v7 z! n) B
大:
' R# X3 e9 N$ T3 D* U3 @. O6 U# J8 d# e- z* Q: u4 K
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的* A0 ~- z# I6 h/ Z) Z
工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试" a0 G( o5 _* z
的工具软件。 ]5 k( [# R- Y& ?$ k
' p1 Z6 l7 j5 A2 ~" P, Q b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作8 y' i- k6 ?* e* G
难以达到既定的效果。
4 }9 W# U- s, Z, N( H% D
/ S1 @- e4 a4 z% _ c.选择“谁”进行公正的测试也是一个问题。 3 |, e" y4 D, g, l5 G6 t& o
: }" {5 s4 F+ h$ R0 }9 Z 可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,
$ y8 x9 ]+ k4 {* O" ^% \" y' P6 w' V进而提出这样一个问题:不进行测试,何以证明防火墙安全? ( A) F/ v/ @8 a; [2 O. W
3 a! b) K+ U6 C) O7 W O
5.非法攻击防火墙的基本“招数” ) [& \7 E: n2 _# W
1 I5 o; E( L' v; } a.通常情况下,有效的攻击都是从相关的子网进行的。因为这些网址得到+ W" _( e0 v9 q& x: W* a
了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值, ^$ n7 C) e5 ?
得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。
5 \! z4 _% Y3 H8 o, Q# H3 m) I6 H0 q) t0 M
这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰
$ Z( ^+ s. F/ W6 t恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接- y) ^, J; r2 \, R* V) W/ u7 o
口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的* P8 I3 \' T9 K2 T- J
信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地
' [7 x7 h& U6 Q: D, N5 U" I8 o址缺乏识别和验证的机制。 ' n: Y7 O* v; j% u5 x. l) H- A
: }$ ~0 y! J% ~" o+ {' z 通常主机A与主机B的TCP连接(中间有或无防火墙) 是通过主机A向主机B提出; k& u5 j' z# @+ o% P z
请求建立起来的, 而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初
7 J+ Q C. D: R, D A1 b; b+ d始序列号ISN。 ) ~+ F$ h6 S; a" | _9 j6 y
2 M6 b& n6 o( Z; [& o% J' N
具体分三个步骤:
1 T" O O% S/ S4 _+ ^. |. t5 A' _: \5 a+ b5 ?/ b3 L4 l+ a5 ]
1.主机A产生它的ISN,传送给主机B,请求建立连接; ( ~* \ i7 a& N# `
: D; ]+ k `; Z$ {" \2 O o 2.B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息
8 b6 m$ J3 ^8 M1 K' L. n QACK一同返回给A; 2 C4 r- }; Q0 I C k. t$ T( B; j
2 _* d P2 m/ o1 J I
3. A再将B传送来的ISN及应答信息ACK返回给B。 ) ^+ ~4 k9 {5 w* O5 y( F! h# }% J
# F I1 Z/ }. }- V* A! J! i 至此,正常情况,主机A与B的TCP连接就建立起来了。
* u" d( C" Q# O, S5 t: m, @3 S" m p: t; [/ O' ]; U
IP地址欺骗攻击的第一步是切断可信赖主机。
( Z$ l: e1 O1 W' n
, w$ r$ U# Z* I6 U2 o( { 这样可以使用TCP淹没攻击(TCPSynFloodAttack) ,使得信赖主机处于"自顾0 C+ L' F* Y# y
不暇"忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障, 只
8 H8 N5 B* a2 A$ T* v! ?能发出无法建立连接的RST包而无暇顾及其他。
6 k* M: j: y, g3 A' w/ g7 x: V5 T: m5 w
攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),4 u- x0 A0 `; b( X' M- v6 N1 ? g! ]( c
通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open) 一个TCP连
* ?( D8 X% V8 r) o9 s( ?* t接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和- i8 F( @! A# X9 n
确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目
* E) i+ R; Y& @/ d标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从
! z7 ]8 e* F( p而给信赖主机发送响应(包括SYN) ,而信赖主机目前仍忙于处理Flood淹没攻击
0 m2 X3 A# D& q e# C- o; c3 ?产生的"合法"请求,因此目标主机不能得到来自于信赖主机的响应。
% }$ ~3 v0 C! a& _3 I( |" D& }# i: e
6 {9 _. I, h7 f$ Q' [' D6 Y 现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主
2 M# ~% U a3 y机。
, E! m" T2 y" T0 O. X7 H' D4 Y+ U& s* |& j1 N \
随着不断地纠正预测的ISN, 攻击者最终会与目标主机建立一个会晤。通过
/ C/ t0 z# A2 C2 m+ D& P7 S$ C" L# N这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果
/ D' \4 ^& B/ }+ I8 T+ d反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网 d- L6 \0 f" a- q; R
络。
( g$ A9 t7 h. e [6 p
2 Y! p6 r1 p" i: |' S2 z 归纳起来,防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置;
# p3 Q2 g7 M9 B- U8 P4 P不适当的安全政策; 强力攻击;允许匿名的FTP协议;允许TFTP协议;允许5 q( X9 l C" P5 Y
Rlogin命令;允许X-Windows或OpenWindows;端口映射;可加载的NFS协议;允
: [; j; s7 U: j9 W" ]0 s许Win95/NT文件共享;Open端口。 + g3 b q2 `$ P
/ ?* `7 _1 F) X+ W f
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防
/ |& w1 E }& Z' J, {火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的4 T) v1 ^& ?2 a! q
职能,处于失效状态。
0 q8 }& y9 u% c, \: k! p
, o, w2 Y) V9 {! O5 u# O3 l. u0 @ C.需要特别注意的是,防火墙也可能被内部攻击。因为安装了防火墙后,
& f& G( D! v, ^6 l: u% P8 W: w随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件3 w6 Q* {9 a* B9 H$ O
或使用FTP向外发 送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期
' r, v4 U- N$ z7 a5 _$ `- V望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,
0 l/ V. A2 N, O( V7 r因此不仅涉及网络安全,还涉及主机安全问题。
# ?2 d8 [% s1 c
/ ^/ Z3 x0 c5 L, p' d 以上分析表明,防火墙的安全防护性能依赖的因素很多。防火墙并非万能,& \- B# b8 N) A4 f% D' r
它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击则
* ~. D7 s+ B. H1 l7 J/ q- u无能为力。从技术来讲,绕过防火墙进入网络并非不可能。 ( u' ]- q' z/ u! |: R
0 ]' g2 ?* l. M6 f$ g 目前大多数防火墙都是基于路由器的数据包分组过滤类型,防护能力差,存- H# e! R, M2 _1 d
在各种网络外部或网络内部攻击防火墙的技术手段。 1 X5 h; e4 N6 C* [. ~5 g C+ k: H
4 L3 L! _; y6 {, r; S! Y 三.防火墙的基本类型
( p% b3 L8 C, ? ?
: S8 U( D$ d2 G! s' g 实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应0 H2 u/ t6 h& h1 F9 X9 F- H
用级网关、电路级网关和规则检查防火墙。 , Z( Z: j2 q0 P- z& C$ Z. H
! H4 T+ Y3 a6 M6 E) X 1.网络级防火墙 * u u- u( r! `& A
' K# f6 A3 x- I# }& r
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过+ G" O5 D- |& S9 g+ Q
与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都
! ~9 D! h+ {/ H能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来' u3 g8 }& w) I# ]$ |& q7 s
自何方,去向何处。 U$ E. w3 j; g' q, f- k; n
: a8 i$ ^5 c& Y
先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的$ w9 B) @ p0 V2 k8 z- T
连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定" K$ ?5 C+ D; P% K, q" A2 j
义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直
# ?1 V2 H' _# k c- J至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默* b7 c/ [ [8 E' T$ x; a1 u
认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于, J$ y3 j: w! Q) u6 O" V
TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如
" Z- }: `1 Q% t/ D% ]. ^Telnet、FTP连接。
( ^' s" A( K2 U) k2 \8 h$ E2 y$ D
7 C! y- X }. t# v9 F/ o2 a* r 下面是某一网络级防火墙的访问控制规则: / g; O3 f, ~) r- X2 h1 |" H6 }
& u( R% X6 n t0 j$ P: j
(1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1; / e8 a1 w* r$ m f# R# j0 h( F
) D5 I6 H* Q( V1 u8 s' W0 w# e; L2 i. y4 n
(2) 允许IP地址为202.103.1.18和202.103.1.14的用户Telnet(23口)到主
3 Y k j0 H0 k+ Z3 ?- r机150.0. 1 _' d8 k2 Y) n
- t( J6 J! I% d/ J7 Y9 c. x5 f2 N
0.2上; ! E! X+ a$ D+ `4 T. c5 k
* e* l5 B0 b& p (3)允许任何地址的E-mail(25口)进入主机150.0.0.3; # p D7 K6 X7 {; ]/ S
$ z; b; x8 _6 d0 t1 A& I" ?
(4)允许任何WWW数据(80口)通过; ; a) C# D" V( \/ m ]$ E. p, i+ I
7 e! y* V( L6 h' |4 P
(5)不允许其他数据包进入。
& N0 f# G' | R) W$ x3 V% W: q# x# z9 c; D% b
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护
, I' d/ A" B# e6 p! e4 \7 T* V6 r很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
1 W4 ]" S3 T; r) R5 w) \/ {$ J- B* J+ R. r0 ^0 q! ]$ J. i" v, H; w# s
2.应用级网关 # W# q; `7 }! f' K
- N) f. \' `% N# @# K
应用级网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任2 F% Q9 Q. q( v
服务器和客户机与不受信任的主机间直接建立联系。应用级网关能够理解应用层
$ B4 R+ e% L- S' i上的协议,能够做复杂一些的访问控制,并做精细的注册和稽核。但每一种协议6 N8 g. r' a9 s4 D- n% s8 m
需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
* `+ D l# E5 O2 K& R" J
" q) n1 Z6 |: f% ` 常用的应用级防火墙已有了相应的代理服务器, 例如: HTTP、 NNTP、 " p8 V( m2 b5 Z# ~
FTP、Telnet、rlogin、X-windows等,但是,对于新开发的应用,尚没有相应的
' D0 G/ l6 C6 y5 {# }0 F; ?代理服务,它们将通过网络级防火墙和一般的代理服务。 % L- W6 Z& X( f. |$ R
+ E: A/ D& l4 W' [) i4 h% l 应用级网关有较好的访问控制,是目前最安全的防火墙技术,但实现困难,* p0 `: w4 `: e
而且有的应用级网关缺乏"透明度"。在实际使用中,用户在受信任的网络上通过
6 T; L" B( c0 w防火墙访问Internet时, 经常会发现存在延迟并且必须进行多次登录
' L' t4 S- H& M(Login) 才能访问Internet或Intranet。
( T- J# _( z7 O- X
7 {9 e& u4 Z' r$ O 3.电路级网关 9 _$ `) _0 l: b; `' |, `
8 _% z# O# D/ }8 L
电路级网关用来监控受信任的客户或服务器与不受信任的主机间的TCP握手
8 |# C8 [! d& S5 h3 ~1 t* }1 Y信息,这样来决定该会话(Session) 是否合法,电路级网关是在OSI模型中会话层
( R3 w, Q; T/ t$ |上来过滤数据包,这样比包过滤防火墙要高二层。
3 n* }! f" T. E& }7 M& O0 v- f5 d4 H9 E G& K% q& w# J) {. N
实际上电路级网关并非作为一个独立的产品存在,它与其他的应用级网关结
6 d" A: V& D; s" t* j合在一 起, 如TrustInformationSystems公司的GauntletInternetFirewall;! O y5 n8 O, r* v' J, Z
DEC公司的AltaVistaFirewall等产品。 另外,电路级网关还提供一个重要的安
6 n' B1 f; H; P% j' B! v全功能:代理服务器(ProxyServer) ,代理服务器是个防火墙,在其上运行一0 B7 S' T1 j5 g9 |
个叫做"地址转移"的进程,来将所有你公司内部的IP地址映射到一个"安全"的IP' B% \% y; C7 i9 L- z
地址,这个地址是由防火墙使用的。但是,作为电路级网关也存在着一些缺陷,
/ t% f/ ]1 m. N因为该网关是在会话层工作的,它就无法检查应用层级的数据包。
1 K( r" f! b3 Y5 Y2 X3 N( v
' [/ X0 T8 H- \ 4.规则检查防火墙
7 W# ~4 J% r# q3 U( X7 Z C/ p6 R& Z# Q
该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过1 D7 f" A0 A! s9 f9 S( A
滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤 Q* K0 v' w L, c
进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否; r$ l1 c& Z2 B5 V6 _
逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内
5 b; [: ~6 A+ s" b- m+ e容,查看这些内容是否能符合公司网络的安全规则。
9 M' p$ D- [- y. k- q! j @4 d; i) l2 K
规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,+ ]; a K, d1 m: A. \
它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和
* e1 g8 m9 T' K i) {0 F/ I不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而
3 d: z. c- v- M7 S- s& {- n0 B3 m1 C是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式, p9 G2 E" e- Z' S+ @0 \$ Z
来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
" n8 O3 l3 m9 U7 ]/ @
' N M8 _4 }2 e; C 目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用
/ I( x5 i* {# s: [: l户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每
$ f% L' }: K7 V5 U# D7 l1 e个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一3 \7 v1 ?: ^. X3 ^7 ~/ H* v
OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1) D% M7 j3 n) a3 F: F* a
防火墙都是一种规则 检查防火墙。
, q6 W7 x% t4 E, m3 C" A2 ?
5 B5 P7 z E' G! S! } 从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就$ E9 y' }4 g G8 h
是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的3 A( B) g' [& Q% B. J
功能上则向“ 透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽/ V. L% J0 W2 h8 w
查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数
; }* O1 S/ g# p7 }. D; T据。 |
|