自从INTERNET进入我们的生活,到目前为止,它的影响已几乎可达全世界每个角落,真正从信息意义上形成了世界范围的地球村。我国近十年来的 INTERNET用户数与带宽均以惊人的速度增长,根据CNNIC在2000年7月份的最新统计,中国网民数量已经达到1690万,相比较于同年1月份的 890万,在短短的半年内,网民数量增长了一倍;2000年7月,国内注册的各类域名达到99734个,比同年1月的48695个也增长了一倍。2000 年1月的统计数字表明,我国国际线路的总带宽达到35lMbps,而2000年7月,这一数字已经达到1234Mbps,预计2001年将达到 3.3Gbps。但是随之而来的是与之相伴随的很多困扰我们的因素,比如IP地址的短缺、垃圾信息的泛滥、对传统伦理观念的影响,尤其是由于当前网络协议 TCP/IP所固有的缺陷所造成的安全问题。
网络上的信息安全可以大致分为三个部分:系统信息安全、传播信息安全及信息内容的安全。网络上系统信息的安全包括用户口令鉴别、用户存取权限控制、数据存取权限、方式控制、安全审计、安全问题跟踪、计算机病毒防治、数据加密等等;网络上信息的传播安全侧重于防止和控制非法、有害的信息进行传播后的后果、避免公用网络上大量自由传输的信息失控;网络上信息内容的安全则侧重于保护信息的保密性、真实性和完整性,避免攻击者利用系统的安全漏洞进行窃听、冒充、诈骗等有损于合法用户的行为,其本质上是保护用户的利益和隐私。
由于TCP/IP协议自身在安全上的脆弱性,事实上,当前INTERNET上的信息无论系统信息、还是内容信息,都具有不安全因素,比如大量的网站被黑、用户个人帐号、银行帐号被盗用、国防机密档案失窃等等,说明网络的不安全因素它已经严重影响到它自身的发展。去年被媒体爆炒的电子商务终于受到冷落的重要原因之一即是:如何保证网上交易信息的安全?
一 TCP/IP网络的脆弱性
目前使用最广泛的网络协议是TCP/IP协议,TCP/IP最初是在美国国防高级研究项目局(DARPA)的赞助下开发的,并成功应用于 APPANET上,开发它的初衷当然是军事目的,但军方后来公开了TCP/IP的核心技术,由于该技术简洁而良好的开放性,终于使它成为网际互联的基础,最终形成了今天的INTERNET。
1 TCP/IP协议存在安全漏洞
而TCP/IP的简洁与开放恰恰就意味着它在安全上存在隐患,如在IP层的IP地址可以软件设置,这就造成了地址假冒和地址欺骗两类安全隐患;IP协议支持源路由方式,即源点可以指定信息包传送到目的节点的中间路由,这就提供了源路由攻击的条件;TCP层的三次连接握手事实上也是SYN FLOODING拒绝服务的基础;其它应用层协议Telnet、FTP、SMTP等协议缺乏强有力的认证和保密措施,黑客极可能籍此造成否认、拒绝等欺瞒行为的攻击。
TCP/IP网络的开放性可以给予黑客更多的机会,但在这里需要说明的是,最终的安全问题会集中到网络服务器的操作系统上去,黑客利用TCP/IP找到了目标,最终的信息失窃和操作系统的漏洞有关,黑客们一般是利用OS的漏洞来掌握远程主机权限从而达到窃取或破坏目的。
当然,我们不可能不注意到的是网络传输中信息内容,TCP/IP协议不包含加密层,那么一旦用户捕获到网络数据后再根据协议分层分析,有可能得到大量机密信息。比如说,局域网内可能就是纯文本的信息流,通常的电子邮件也是不加密的,更糟的是,在缺省模式中电子邮件客户端用来与其电子邮件服务器进行核查的用户名与口令也是以纯文本形式发出的,可能被截获或假冒。
2 基于TCP/IP网络进行攻击的手段
一般情况下,攻击大体有如下三个步骤: 即信息收集→对系统的安全弱点探测与分析→实施攻击。
1) 信息收集
信息收集的目的是为了进入所要攻击的目标网络的数据库。黑客会利用下列的公开协议或工具,收集驻留在网络系统中的各个主机系统的相关信息。
◆SNMP协议。用来查阅网络系统路由器的路由表,从而了解目标主机所在网络的拓扑结构及其内部细节。
◆ TraceRoute程序。能够用该程序获得到达目标主机所要经过的网络数和路由器数。
◆ Whois协议。该协议的服务信息能提供所有有关DNS域和相关的管理参数。
◆DNS服务器。该服务器提供了系统中可以访问的主机的IP地址表和它们所对应的主机名。
◆ Finger协议。可以用Finger来获取一个指定主机上的所有用户的详细信息(如用户注册名、电话号码、最后注册时间以及他们有没有读邮件等等)。
◆ Ping实用程序。可以用来确定一个指定的主机的位置。
◆ 自动Wardialing软件。可以向目标站点一次连续拨出大批电话号码,直至遇到某一正确的号码使其MODEM响应。
2) 系统安全弱点的探测
在收集到攻击目标的一批网络信息之后,黑客会探测网络上的每台主机,以寻求该系统的安全漏洞或安全弱点,黑客可能使用下列方式自动扫描驻留网络上的主机。
◆ 自编程序对某些产品或者系统,已经发现了一些安全漏洞,该产品或系统的厂商或组织会提供一些“补丁”程序给予弥补。但是用户并不一定及时使用这些“补丁”程序。黑客发现这些“补丁”程序的接口后会自己编写程序,通过该接口进入目标系统,这时该目标系统对于黑客来讲就变得一览无余了。
◆ 利用公开的工具象INTERNET的电子安全扫描程序IIS(INTERNET Security Scanner)、审计网络用的安全分析工具SATAN(Security Analysis Toolfor Auditing Network)等这样的工具,可以对整个网络或子网进行扫描,寻找安全漏洞。这些工具有两面性,就看是什么人在使用它们。系统管理员可以使用它们,以帮助发现其管理的网络系统内部隐藏的安全漏洞,从而确定系统中那些主机需要用“补丁”程序去堵塞漏洞。而黑客也可以利用这些工具,收集目标系统的信息,获取攻击目标系统的非法访问权。
3) 网络攻击
黑客使用上述方法,收集或探测到一些“有用”信息之后,就可能会对目标系统实施攻击。黑客一旦获得了对攻击的目标系统的访问权后,又可能有下述多种选择:
◆ 该黑客可能试图毁掉攻击入侵的痕迹,并在受到损害的系统上建立另外的新的安全漏洞或后门,以便在先前的攻击点被发现之后,继续访问这个系统。
◆ 该黑客可能在目标系统中安装探测器软件,包括特洛伊木马程序,用来窥探所在系统的活动,收集黑客感兴趣的一切信息,如Telnet和FTP的帐号名和口令等等。
◆黑客可能进一步发现受损系统在网络中的信任等级,这样黑客就可以通过该系统信任级展开对整个系统的攻击。
◆如果该黑客在这台受损系统上获得了特许访问权,那么它就可以读取邮件,搜索和盗窃私人文件,毁坏重要数据,破坏整个系统的信息,造成不堪设想的后果。
3 拒绝服务攻击
和上述的系统信息隐患所不同的是,INTERNET上还存在这一类恶意攻击,称之为拒绝服务攻击(Dos),这种攻击所造成的后果,虽不同于信息失窃,但会造成网络严重瘫痪,无法提供正常的服务。
DoS的攻击方式有很多种。最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,致使服务超载,无法响应其他的请求。这些服务资源包括网络带宽、文件系统空间容量、开放的进程或者向内的连接等等。这种攻击会导致资源的匮乏,多数的DoS攻击需要相当大的带宽的,恶意的攻击者为了利用较小的个人带宽去消耗大量的带宽而开发了分布式的攻击,他们可以利用工具集合许多的网络带宽来对同一个目标发送大量的请求。
较为常见的基于网络的拒绝服务攻击有:
◆Smurf (directed broadcast) 这是基于ICMP的拒绝服务攻击,ICMP是一个在主机和网关之间消息控制和差错报告协议,IP并非设计为绝对可靠,这个协议的目的是为了当网络出现问题的时候返回控制信息,它并不保证数据报或控制信息能够返回,一些数据报仍将在没有任何报告的情况下丢失。上层协议必须使用自己的差错控制程序来判断通信是否正确,ICMP信息通常会报告在处理数据报过程中的错误。当网络中的某台机器使用广播地址发送一个ICMP echo请求包时(例如PING),处于该广播网段的主机均会回应一个ICMP echo回应包,也就是说,发送一个包会收到许多的响应包。Smurf攻击就是使用这个原理来进行的,如果在网络中发送源地址为被攻击主机的地址、目的地址为广播地址的包,被攻击主机就会被这些大量的回应所淹没(因为他的地址被攻击者假冒了)。这些smurf工具可以在网站上获得,许多网站至今仍有很多的这种漏洞。
◆ SYN flooding 在TCP层的标准的TCP握手需要三次包交换来建立。一台服务器一旦接收到客户机的SYN包后必须回应一个SYN/ACK包,然后等待该客户机回应给它一个ACK包来确认,才真正建立连接。然而,如果此时只发送初始化的SYN包,而不发送确认服务器的ACK包会导致服务器一直等待ACK包。由于服务器在有限的时间内只能响应有限数量的连接,这就会导致服务器一直等待回应而无法响应其他机器进行的连接请求。
◆ Slashdot effect 这种攻击手法使web服务器或其他类型的服务器由于大量的网络传输而过载,一般这些网络流量是针对某一个页面或一个链接而产生的。当然这种现象也会在访问量较大的网站上正常发生,因为正常情况下一个服务器承受过多的用户服务请求也会同样过载。
◆分布式攻击 有些程序如Tribe Flood Network (tfn) 和tfn2k,可以使得分散在互连网各处的机器共同完成对一台主机攻击的操作,从而使主机看起来好象是遭到了不同位置的许多主机的攻击。这些分散的机器由几台主控制机操作进行诸如UDP flood, SYN flood攻击。
4 数据传输中的不安全
当然,我们不可能不注意到的是网络传输中信息内容,TCP/IP协议不包含加密层,那么一旦用户捕获到网络数据后再根据协议分层分析,有可能得到大量机密信息。比如说,局域网内可能就是纯文本的信息流,通常入的电子邮件也是不加密的,更糟的是,在缺省模式中电子邮件客户端用来与其电子邮件服务器进行核查的用户名与口令也是以纯文本形式发出的,可能被截获或假冒。
事实上,目前对于局域网(如一段共享式HUB构成的以太网)内部的网络监听工具非常多,著名的有NFSWATCH、NETXRAY等等,这些工具通常很容易在网上得到。现在的问题是:局域网外部的攻击者有什么办法能在局域网内部使用监听工具?而根据通常所假设的内部用户可信原则,却恰恰发生的是内部用户进行了非法的越权监听,怎么办?
二 安全措施与防火墙
INTERNET上丰富的资源吸引了越来越多的用户,通常的用户都是这些资源的受益者,但我们还是会意识到网络上的巨大安全风险,至少下列用户与普通的个人用户所需要的安全级别是不一样的:
◆军事机关
◆政府部门
◆教育、科研机构
◆金融、财税、电信等具有专门的行业性质数据处理业务的部门
◆电子商务
◆ 各类ISP、ICP
◆ 企业intranet
特殊的部门信息网络可能会自成一体,但大多数情况下,即使存在安全风险,用户也会以极大的热情接入INTERNET,在这种情况下,用户采取必要的安全措施尤为重要。而在这个时候,如何既能保证享用INTERNET上的丰富资源,又能保证自身的安全呢?用户至少有两种选择:主动的入侵检测防范与较为被动的防火墙设置,其中,防火墙几乎是一个必然的选择。
根据ICSA入侵检测系统论坛的定义,入侵检测是通过从计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和遭到袭击的迹象(的一种安全技术)。入侵检测技术是动态安全技术的最核心技术之一。通常的入侵检测包含动态的对下列情况进行检查:系统进程 、查网络连接和端口、系统日志、是否被进行大量的端口扫描、帐号扫描、以及与OS直接相关的一些进程、文件的可疑变动情况,通常包含基于网络的入侵检测系统和基于主机的入侵检测系统。入侵检测技术的特点就是主动性与动态性。用户一旦发现危险的入侵,可以采取相应的措施来保护自身的安全。理想的情况是:用户可以籍此发现攻击者或利用防火墙切断与之的连接。
防火墙通常被定义为:设置在可信任的内部网络和不可信任的外界之间的一道屏障,它可以实施比较广泛的安全政策来控制信息流,防止不可预料的潜在的入侵破坏。
通常防火墙具有以下特点:
◆ 从内部到外部或从外部到内部的所有通信都必须通过防火墙
◆只有符合本地安全策略的通信才会被允许通过
◆ 防火墙本身是免疫的,不会被穿透的
理想的防火墙应该是能过滤一切来自外部的不安全因素,防止危险的入侵活动。它可以与入侵检测系统一起维护系统的安全,也可以通过自身的良好的安全配置,简单、高效地完成大多数场合安全防护。
三 防火墙技术现状
防火墙是一套完整的(软、硬件)系统,它可以从TCP/IP的各个层次中提取、存储、记录并管理相关的信息,以便实施系统的访问安全决策控制。 防火墙的实现技术目前主要包含两大类:包过滤技术和应用代理技术,事实上,实际的产品中往往是二者的良好结合。
1 包过滤技术
包过滤技术是最早的防火墙应用技术,发展到现在,它已经从早期的静态包过滤演进到了现在的动态包过滤技术。
1) 静态包过滤
静态包过滤技术的实现非常简单,就是在网关主机的TCP/IP协议栈的IP层增加一个过滤检查,对IP包的进栈、转发、出栈时均进行针对于每个包的源地址、目的地址、端口、应用协议进行检查,用户可以设立安全策略,比如某某源地址禁止对外部的访问、禁止对外部的某些目标地址的访问、关闭一些危险的端口等等,事实证明,一些简单而有效的安全策略可以极大的提高内部系统的安全,由于静态包过滤规则的简单、高效,直至目前,它仍然得到应用。
2) 动态包过滤技术
动态包过滤(Dynamic Packet Filter)技术除了含有静态包过滤的过滤检查技术之外,还会动态的检查每一个有效连接的状态,所以通常也称为状态包过滤(Stateful Packet Filters)技术。
状态包过滤(SPFs)克服了第一代包过滤(静态包过滤)技术的不足,如信息分析只基于头信息、过滤规则的不足可能会导致安全漏洞、对于大型网络的管理能力不足等等。
SPFs对于包处理的规则是动态的,采用SPFs技术的防火墙正如在安全网络上加了一道动态的门,即使是对于同一个服务端口,它也可能根据状态检测结果适时的打开或关闭。它监视每一个有效连接的状态,并把当前数据包及其状态信息与前一时刻的数据包及状态信息进行比较,即经过一系列严密的算法分析,根据分析结果实施相应的操作,如允许数据包通过、拒绝通过、认证连接、加密数据等。 SPFs技术不仅支持TCP,同时也支持UDP等无连接的应用,SPFs防火墙对基于UDP应用安全的实现是通过在UDP通信之上保持一个虚拟连接来实现的。防火墙保存通过网关的每一个连接的状态信息,允许通过防火墙的UDP请求包被记录。当UDP包在相反方向上通过时,防火墙依据连接状态表确定该UDP 包是否被授权,若已被授权,则通过,否则拒绝。如果在指定的一段时间内响应数据包没有到达,即连接超时,则该连接被阻塞。采取这种原理可以阻塞所有的攻击,从而实现UDP应用的安全性。
在Check Point公司的产品中,SPFs技术被称之为Stateful Inspection,其核心技术已取得专利并被植入OS内核,其工作模块位于数据链路层和网络层之间,保证了防火墙对于原始数据包的截取和检查,事实上,Check Point 公司的产品也混合使用了应用代理服务,Fore公司甚至直接购买Stateful Inspection的专利形成ASIC芯片直接植入其高端交换机设备中,NetGuard产品也采用了类似的技术。
2 应用代理技术
应用代理防火墙(有时也称为应用网关)的工作方式和以包过滤技术为主的防火墙的工作方式稍有不同。它是基于软件的;当某远程用户想和一个运行应用网关的网络建立联系时,此应用网关会阻塞这个远程联接,然后对联接请求的各个域(包括应用层协议、用户帐号等等)进行检查。如果此联接请求符合预定的规则,应用代理网关即可向外部发出连接请求、建立连接,而同时内部主机仅仅是与网关主机有着连接,也就是说,应用代理网关此时充当了访问的中介。一个典型的应用代理网关不将IP数据报转发给内部网络,而是自己作为转换器和解释器完成整个访问过程。
应用级代理防火墙模式提供了十分先进的安全控制。因为它通过在协议栈的最高层检查每一个东西而提供了足够的应用级连接的信息。因为在应用层中它有足够的能见度,应用级代理防火墙能很容易看见前面提及的每一个连接的细节从而实现安全策略。例如这种防火墙能很容易运用适当的策略区分重要的应用程序命令,象 ftp的“put”和“get”。这种方式被称之为man-in-the-middle configuration。
应用级代理防火墙也具有内建代理功能的特性,即在防火墙处终止客户连接并初始化一个新的连接到受保护的内部网络。这一内建代理机制提供额外的安全,这是因为它将内部和外部系统隔离开来,使系统外部的黑客在防火墙内部系统上进行探测变得更困难。同时一般它们都有完整的系统日志。然而所有的这些优点都是通过牺牲速度换取的,因为每次联接请求和所有发往内部网的报文在网关上经历接受、分析、转换和再转发等几个过程,完成这些过程所需时间显然比包过滤防火墙的时间长得多。应用网关另一个不足之处是,必须为每个网络服务创建一个应用代理。
3 防火墙领域的前沿技术
1) 自适应的代理服务防火墙
“自适应代理”是最近一代防火墙设计。基本安全检测仍在安全应用层进行,但一旦安全检测后包能重新直接通过网络层,则能够动态“适应”传送中的分组流量,从而明显改善了防火墙性能。因此自适应防火墙基本上和标准代理服务防火墙一样安全,但是却显著的提高了它的速度。
2) 桥式接口防火墙
通常的包过滤过程通常在TCP/IP协议栈的IP层,而交换式接口防火墙对于数据包的截取却是在数据链路层,它利用在链路层截取到的包直接分析其IP层信息,从而进行相应的信息安全检查,合法的包再根据其链路层地址进行端口转发。
这种防火墙在许多场合极具优势,如管理简单、客户端设置无须变更、处理速度快等等,目前国外与国内均有此类产品。
3) 混合型防火墙
事实上,现在的防火墙产品大多是集成包过滤以及应用代理技术为一体,用户在使用时,可以有多种选择,以提高其安全性。 当然,混合型防火墙不仅包含了多种防火墙技术,它也可能包含了其它与信息安全直接相关的技术,如VPN、入侵检测等等。
但是,无论拥有什么先进的安全技术与产品,我们都不能认为自己的系统是绝对安全的,网络攻击与安全防范永远是一对矛盾,它最终会导致现有整个网络体系的完善与进步。