当前位置:文档之家 > 第6章 网络安全

第6章 网络安全

第6章网络安全

6.3 漏洞扫描与网络隔离技术

随着计算机技术和互联网的迅速发展,来自网络的攻击每年呈几何级数增多。这些攻击中的大多数是利用计算机操作系统或其他软件系统的漏洞(vulnerability)而实施的。针对层出不穷的系统安全漏洞,微软等软件厂商都会定期发布漏洞报告并提供补丁,但由于用户群的数量巨大,分布很广,很多情况下不能及时对系统进行更新,使得攻击者有可乘之机。

而随着操作系统、数据库等软件系统的越来越复杂,出现漏洞的数量逐年增多,频率也比以前大大增加了。下表是来自美国卡内基梅隆大学计算机应急响应小组(CERT/CC)的统计数字,显示了1998年以来该组织收到的计算机漏洞报告的数量。

表6-3 CERT/CC历年漏洞报告数量统计

从表中可以看出,2000年以后,每年新发现的漏洞数量已经数以百计,远远高于2000年以前的情况。而这还只是官方的统计,还有很多漏洞在民间发现后未报告给官方组织,也没有相应的安全补丁。

随着攻击技术的发展,漏洞不但数量上呈爆发式增加,而且每个漏洞被首次发现和此漏洞被成功利用形成攻击的时间间隔也越来越短,从几个月、几周缩小到几天,甚至出现了所谓“零日攻击”,即漏洞公开和攻击形成之间几乎没有以“天”计算的时间间隔。例如,2004年3月份出现的维迪(Worm_Witty.A)病毒,利用美国ISS公司产品的安全漏洞感染破坏使用运行该公司产品的主机,该病毒是在漏洞公布的第二天就出现了,几近于“零日攻击”。这给信息系统的安全带来了十分严峻的挑战。

本节将从漏洞介绍人手,首先介绍漏洞的概念和漏洞的分类,然后在简要描述漏洞扫描技术的基础上,对目前流行的几种商用和非商用漏洞扫描器产品给予介绍,最后介绍网络隔离技术。

6.3.1 漏洞及其分类

1. 漏洞的概念

漏洞,也叫脆弱点,英文叫做vulnerability,是指在计算机硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。例如,在Intel Pentium芯片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS

协议中认证方式上的弱点,在Windows 2000中的DCOM缓冲区溢出问题,在UNIX系统管理员设置匿名rtp服务时配置不当的问题等都是漏洞,它们可能被攻击者利用进而威胁到系统的安全。

2. 漏洞的时间与空间特性

漏洞会在很大范围内对各种软硬件设备的安全产生影响,包括操作系统本身及其支撑软件,网络客户和服务器软件,网络路由器和安全防火墙等。简而言之,任何软硬件设备中都可能存在漏洞,在同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。

漏洞问题是与时间紧密相关的。一个系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些被逐步发现的漏洞也会由系统供应商发布的补丁所修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中的漏洞的同时。也会引入一些新的漏洞和错误。因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现,漏洞问题也会长期存在。

对漏洞问题的研究必须要跟踪当前最新的计算机系统及其安全问题的发展动态,这一点同对计算机病毒发展问题的研究相似。如果在工作中不能保持对新技术的跟踪,就没有谈论系统安全漏洞问题的发言权,即使是以前所做的工作也会逐渐失去价值。

3. 漏洞的分类

漏洞的分类方法很多,也没有统一的标准。事实上各种分类方式都是为了采取措施的方便,按照所能够采用的措施来分别对付各类漏洞。传统上习惯于按照形成漏洞的原因来分类,但有时候也是很难明确界定的,因为对漏洞研究的不同抽象层次,会对同一个漏洞做出不同的分类。因而,事实上至今也不存在完美分类方案。下面按照漏洞的形成原因,粗略划分了几个类别。

(1)输入验证错误

大多数的缓冲区溢出漏洞和脚本注入、SQL注入类漏洞都是由于未对用户提供的输入数据的合法性做适当的检查而导致的。这类漏洞在目前来看是攻击者最感兴趣的,许多恶意代码程序就是利用了此类漏洞达成攻击目的。

(2)访问验证错误

漏洞的产生是由于程序代码的某些部分存在可利用的逻辑错误,使绕过访问控制成为可能。分析下面的伪代码:

Switch (职位)

{

case“员工”:

Employee();

break;

case“部门经理”:

Manager();

case“总经理”:

JeneralManager();

break;

}

在“部门经理”的分支中,由于漏掉了中断语句“break”,使得只有总经理才能执行的JeneralManager函数得以执行,这就为攻击者提供了一个机会,使得以低级别职员的身份就可以执行只有高级别职员才能执行的操作。这就是—个典型的访问验证类逻辑错误。

(3) 同步问题

这类漏洞源于程序处理各种系统对象时在同步方面存在问题,处理的过程中可能存在一个时机,使攻击者能够施加外来的影响。例如,早期的Solaris系统的查看进程状态的命令ps 就存在这种类型的漏洞。“ps”在执行的时候会在/tmp产生一个临时文件,然后把使用修改文件所有者的“chown”命令改为root。这样,就导致了非root用户可以产生root拥有的文件。有经验的攻击者可以以这个文件为突破口获得root权限。

(4) 异常处理的疏漏

这类漏洞的产生在于程序在它的实现逻辑中没有考虑到一些意外情况。例如,基于数据库的Web程序当出现数据库错误时,将错误信息返回客户端并显示在页面上,这样会给攻击者提供一些信息,使其可以找到入侵系统的办法。

(5) 配置错误

这类漏洞是由于系统和应用的配置有误。例如,软件安装在错误的地方、采用了不合理的配置参数、在访问权限的控制上不够严格或者系统的安全策略存在问题。

(6) 由系统环境引发的问题

一些系统的环境变量发生变化时,可能会给攻击者提供可乘之机。例如,攻击者可能通过重置shell的内部分界符IFS,shell的转义字符,或其他环境变量,导致有问题的特权程序去执行攻击者指定的程序。RedHat Linux的dump程序漏洞就是这种类型。

(7) 其他错误

不属于以上类型的其他漏洞。

6.3.2 网络扫描技术

我们一般所说的网络漏洞扫描,实际上是对网络安全扫描技术的一个俗称。事实上安全扫描技术分为两类:

(1) 主机安全扫描技术。主机安全扫描技术的原理很简单,就是采用各种攻击脚本对主机操作系统、应用程序和各种服务进行模拟攻击探测,以发现不当配置和已知漏洞。主机安全扫描技术一般是在主机上本地进行的,大部分情况下需要有主机的管理员权限。

(2) 网络安全扫描技术。网络安全扫描技术则是一种基于网络的扫描,通过网络远程检测目标网络或主机的安全性脆弱点。通过网络安全扫描,能够发现网络中各设备的TCP/IP端口的分配使用情况、开放服务的情况、操作系统软件版本等,最终可以综合得到这些设备及软件在网络上呈现出的安全漏洞。网络安全扫描技术利用一系列的脚本对网络发起模拟攻击,分析结果并判断网络是否有可能被攻击崩溃。下面内容将着重介绍网络安全扫描技术。

1. 网络安全扫描的功能

网络安全扫描不仅仅能够扫描并检测是否存在已知漏洞,还可以发现一些可疑情况和不当配置,如不明端口、弱口令等。网络安全扫描技术与防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。通过对网络的扫描,可以了解网络的配置是否得当以及正在运行的应用程序和服务是否安全。如果说防火墙和网络监控系统是被动的防御手段,那么网络安全扫描就是一种主动的防范措施,可以在遭受攻击之前就发现可能遭受的攻击,从而采取措施。

网络安全扫描技术提供的信息可以用在多种场合。例如,网络管理员可以根据扫描的结果更正网络安全漏洞和系统中的错误配置,在黑客攻击前进行防范;而系统安全评估组织则可以根据扫描的结论判断当前网络的安全态势,从而为评定系统的安全等级提供重要依据。

2. 网络安全扫描的原理

一次完整的网络安全扫描分为三个阶段:

第一阶段:发现目标主机或网络。这一阶段的主要技术是ping探测,通过发送ICMP报文帮助识别系统是否处于活动状态。

第二阶段:发现目标后进一步搜集目标信息,包括操作系统类型、开放的端口、运行的服务以及服务软件的版本等。如果目标是一个网络,还可以进一步发现该网络的拓扑结构、路由设备以及各主机的信息。这其中涉及到操作系统识别技术、TCP/IP栈指纹技术等。

第三阶段:根据搜集到的信息判断或者进一步测试系统是否存在安全漏洞。

网络安全扫描主要用到的技术手段是端口扫描技术和漏洞扫描技术。端口扫描技术和漏洞扫描技术是网络安全扫描技术中的两种核心技术,且在当前较成熟的网络扫描器中被广泛应用。

(1) 端口扫描技术及其原理

一个端口就是一个潜在的通信通道,也是一个潜在的人侵通道。对目标计算机进行端口扫描,能得到许多有用的信息,它使系统用户了解系统目前向外界提供了哪些服务,从而为系统用户管理网络提供了一种手段。

端口扫描的原理很容易理解,就是向目标设备的TCP/IP服务端口发送探测数据包,并记录目标设备的响应。通过分析响应来判断端口是打开还是关闭,也可以综合分析主机的响应报文,得知端口提供的服务或信息。

端口扫描的经典方法是TCP全连接扫描,其他的方法还有TCP半连接扫描、代理扫描、FTP跳跃扫描、TCP反转标识扫描和秘密(Steahh)扫描等。本书以前二者为例介绍端口扫描的一般原理,对于更为复杂的扫描方法感兴趣的读者可以自行查阅相关文献。

全连接扫描。全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCP connect 扫描和TCP反向ident扫描等。其中TCP connect扫描的实现原理如下所述:扫描主机通过。TCP/IP协议的三次握手与目标设备的指定端口建立一次完整的连接。连接由执行扫描的主机调用connect开始,如果被扫描端口开放,则连接将建立成功;否则,若返回-l则表示该端口关闭。建立连接成功时,目标设备回应一个SYN/ACK数据包,这一响应表明目标设备的目标端口处于监听(打开)状态;建立连接失败时,目标设备会向扫描主机发送RST的响应,表明该目标端口处于关闭状态。

半连接(SYN)扫描。若端口扫描没有完成一个完整的TCP连接,在扫描主机和目标设备的指定端口建立连接时只完成了前两次握手,在第三步时扫描主机中断了本次连接,使连接没有完全建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。现有的半连接扫描有TCP SYN扫描和IP ID头dumb扫描等。

SYN扫描的优点在于,即使目标设备日志中对扫描有所记录,也会比全扫描少得多。缺点是在大部分操作系统下,扫描主机需要构造适用于这种扫描的IP包。通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。

(2) 漏洞扫描技术及其原理

漏洞扫描主要通过以下两种方法来检查目标设备是否存在漏洞:

漏洞库匹配方法。端口扫描后可以知道目标设备开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库进行匹配,查看是否有满足匹配条件的漏洞存在。基于网络系统漏洞库,.漏洞扫描大体包括CGI漏洞扫描、POP3漏洞扫描、FTP 漏洞扫描、SSH漏洞扫描、HTTP漏洞扫描等。这些漏洞扫描是基于网络系统漏洞库,将扫描结果与网络系统漏洞库相关数据匹配比较得到漏洞信息。

漏洞库匹配方法的关键部分就是它所使用的漏洞库。通过采用基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员对网络系统安全配置的实际经验,可以形成一套标准的网络系统漏洞库,然后在此基础之上构成相应的匹配规则,由扫描程序自动地进行漏洞扫描的工作。

漏洞库信息的完整性和有效性决定了漏洞扫描系统的性能,漏洞库的修订和更新的性能也会影响漏洞扫描系统运行的时间。因此,漏洞库的编制不仅要对每个存在安全隐患的网络服务建立对应的漏洞库文件,而且应当能满足前面所提出的性能要求。

目前,有一些国内外的组织维护有大规模的漏洞库,这些漏洞库有专人维护,一旦有新的漏洞出现,就会立即更新漏洞库,保证漏洞库数据的全面和有效。比较著名的漏洞库有美国的国家漏洞数据库(National Vulnerability Database)、CVE(Common Vulnerabilities and Exposures)漏洞库、我国的国家计算机网络应急技术处理协调中心漏洞库等。

插件技术(功能模块技术)。对于没有相应漏洞库的各种扫描,如Unicode遍历目录漏洞探测、FTP弱势密码探测、OPENRelay邮件转发漏洞探测等,这些扫描通过使用插件技术(功能模块技术)进行模拟攻击,测试出目标主机的漏洞信息。

插件是由脚本语言编写的子程序,扫描程序可以通过调用它来执行漏洞扫描,检测出系统中存在的一个或多个漏洞。添加新的插件就可以使漏洞扫描软件增加新的功能,扫描出更多的漏洞。插件编写规范化后,甚至用户自己都可以用ped、c或自行设计的脚本语言编写的插件来扩充漏洞扫描软件的功能。这种技术使漏洞扫描软件的升级维护变得相对简单,而专用脚本语言的使用也简化了编写新插件的编程工作,使漏洞扫描软件具有很强的扩展性。6.3.3 漏洞扫描器介绍

针对层出不穷的网络漏洞,任何系统管理员都不可能依靠人工排查的方法去逐一检查信息系统是否存在漏洞。与病毒防范一样,由于漏洞的数量非常庞大,涉及的范围也非常广,检查系统漏洞的工作量已经远远超出了人工操作的处理能力。在这种情况下,使用自动化的工具对系统进行扫描,发现漏洞并采取措施,是必然的趋势。目前,在安全领域已经出现了许多安全漏洞扫描器,能够协助系统管理员检查网络中各种设备的漏洞,并为修复漏洞提供指导。

1. 漏洞扫描器的种类

对漏洞扫描器分类也是非常困难的。事实上,如果只能对某一小类漏洞进行扫描,那这个扫描器将不具备实用价值。目前,实用的漏洞扫描器产品一般会尽量照顾到各种类型的系统漏洞,发现它们并给出报告。

根据前述的安全扫描技术分类,现在流行的漏洞扫描工具,根据其使用场合一般分为两大类:基于网络的漏洞扫描器和基于主机的漏洞扫描器。

(1) 基于网络的漏洞扫描器

基于网络的漏洞扫描器,就是通过网络来扫描远程计算机中的漏洞。比如,利用低版本的DNS Bind漏洞,攻击者能够获取root权限侵入系统或者攻击者能够在远程计算机中执行恶意代码。使用基于网络的漏洞扫描工具,能够监测到这些低版本的DNS Bind是否在运行。

一般来说,可以将基于网络的漏洞扫描工具看做一种漏洞信息收集工具,它根据漏洞的不同特性,构造网络数据包,发给网络中的一个或多个目标服务器,以判断某个特定的漏洞是否存在。

基于网络的漏洞扫描器包含网络映射(Network Mapping)和端口扫描功能,一般由以下几个部分组成:

漏洞数据库模块。漏洞数据库包含了各种操作系统的各种漏洞信息,以及如何检测漏洞的指令。由于新的漏洞会不断出现,该数据库需要经常更新,以便能够检测到新发现的漏洞。

用户配置控制台模块。用户配置控制台提供了与安全管理员进行交互的接口,用来设置要扫描的目标设备,以及扫描哪些漏洞。

●扫描引擎模块。扫描引擎是扫描器的主要部件。根据用户配置控制台中的相关设置,扫描引擎组装好相应的数据包,发送到目标设备,将接收到的目标设备的应答数据包,与漏洞数据库中的漏洞特征进行比较,来判断所选择的漏洞是否存在。

?当前活动的扫描知识库模块。通过查看扫描主机内存中的配置信息,该模块监控当前活动的扫描,将待扫描的漏洞的相关信息提供给扫描引擎,同时,还接收扫描引擎返回的扫描结果。

?结果存储器和报告生成工具。报告生成工具利用当前活动扫描知识库中存储的扫描结果,生成扫描报告。扫描报告将告诉用户配置控制台设置了哪些选项,根据这些设置,扫描结束后,在哪些目标设备上发现了哪些漏洞。

(2) 基于主机的漏洞扫描器

基于主机的漏洞扫描器扫描目标设备漏洞的原理与基于网络的漏洞扫描器的原理类似,但是,两者的体系结构不一样。基于主机的漏洞扫描器通常在目标设备上安装了一个代理(Agent)或者是服务(Services),以便能够访问所有的文件与进程,这也使得基于主机的漏洞扫描器能够扫描更多的漏洞。为了能够扫描这些文件和进程,基于主机的漏洞扫描器必须有所在主机的管理员权限,这也与基于网络的漏洞扫描器不同。

主机型漏洞扫描器一般采用客户机/服务器架构,最主要是针对操作系统内部问题做深人扫描,它可以弥补网络型漏洞扫描器只能从外面通过网络检查系统安全的不足。

主机型漏洞扫描器一般具有如下功能:

重要资料锁定。利用安全的校验和机制来监控重要的主机资料或程序的完整性。

弱口令检查。采用结合系统信息、字典和词汇组合等的规则来检查弱口令。

●系统日志和文本文件分析。针对系统日志档案,如UNIX的syslogs及NT的事件日志(EyentLog),以及其他文本文件的内容做分析。

?动态告警。当遇到违反扫描策略或发现已知安全漏洞时,提供及时的告警。告警可以采取多种方式,可以是声音、弹出窗口、电子邮件甚至手机短信等。

?分析报告。产生分析报告,并告诉管理员如何弥补漏洞。

?漏洞库更新。主机型漏洞总是不断地出现,厂商的漏洞报告甚至都跟不上其出现的速度。这种情况下,主机型漏洞扫描器必须有漏洞库更新的功能,以便能够反应最新的已知漏洞情况,而且更新应该是自动进行的。

2. 两类漏洞扫描器的对比

基于网络的漏洞扫描器有如下优点:

(1) 价格方面。基于网络的漏洞扫描器的价格相对来说比较便宜,甚至有许多此类扫描器都是可以免费下载到的。

(2) 基于网络的漏洞扫描器在操作过程中,不需要涉及到目标设备的管理员,并且在检测过程中不需要在目标设备上安装任何东西。

(3) 维护简便。当网络部署发生变化时,只要扫描器所在的网络节点仍然能够扫描到网络中的全部目标设备,基于网络的漏洞扫描器就不需要进行调整。

基于网络的漏洞扫描器的不足之处:

基于网络的漏洞扫描器不能直接访问目标设备的文件系统,不能检测相关的一些漏洞。比如,一些用户程序的数据库在连接的时候,要求提供Windows 2000操作系统的密码,这种情况下,基于网络的漏洞扫描器就不能对其进行弱口令检测了。另外,UNIX系统中有些程序带有SetUID和SetGID功能,这种情况下,涉及到UNIX系统文件的权限许可问题也无法检测。

基于网络的漏洞扫描器不易穿过防火墙。只要防火墙不开放相关端口,扫描就不能进行。

基于主机的漏洞扫描器有如下优点:

(1) 扫描的漏洞数量多。由于通常在目标设备上安装了一个代理(Agent)或者是服务(Services),因而能够访问所有的文件与进程,这也使得基于主机的漏洞扫描器能够扫描更多的漏洞。

(2) 集中化管理。基于主机的漏洞扫描器通常都会配置一个集中服务器作为扫描服务器,所有扫描的指令均从服务器进行控制,这一点与基于网络的漏洞扫描器类似。服务器下载到最新的代理程序后,再分发给各个代理。这种集中化管理模式,使得基于主机的漏洞扫描器的部署能够快速实现。

(3) 网络流量负载小。由于扫描服务器与主机代理之间只有通讯的数据包,漏洞扫描部分都有主机代理单独完成,这就大大减少了网络的流量负载。

基于主机的漏洞扫描器的不足之处:

(1) 价格方面。基于主机的漏洞扫描器的价格,通常由一个扫描服务器的许可证价格加上目标设备的数量来决定,当一个网络中的目标主机较多时,扫描工具的价格就非常高。通常只有实力强大的公司和政府部门才有能力购买这种漏洞扫描工具。

(2) 基于主机的漏洞扫描工具,需要在目标主机上安装一个代理或服务,而从管理员的角度来说,并不希望在重要的机器上安装自己不确定的软件。

(3) 随着扫描网络范围的扩大,部署基于主机的漏洞扫描工具的代理软件时,需要与每个目标设备的用户打交道,必然延长了首次部署的工作周期。

在检测目标设备中是否存在漏洞方面,基于网络的漏洞扫描工具和基于主机的漏洞扫描工具都是非常有用的。事实上,在二者之间也不存在泾渭分明的界限,有些功能较为强大的网络扫描器产品,已经兼有基于网络和基于主机两种扫描器的特点。但有一点要强调,任何扫描器都必须要保持漏洞数据库的更新,才能保证漏洞扫描工具能够真正发挥作用,尤其对于主机型漏洞扫描器。另外,漏洞扫描工具只是检测当时目标设备是否存在漏洞,当目标设

备的配置、运行的软件发生变换时,需要重新进行评估。基于网络的漏洞扫描工具和基于主机的漏洞扫描工具各自具有自己的特点,也都有不足之处。安全管理员在选择扫描工具时,可以根据实际需要选择最适合的产品。

6.3.4 网络隔离技术

随着互联网上病毒泛滥、计算机犯罪等威胁日益严重,在政府、军队、企业等领域,由于核心部门的信息安全关系着国家安全、社会稳定,因此,迫切需要高可靠性的安全技术对网络加以防护。

网络隔离技术就是在这种情况下诞生的。网络隔离技术的目标是确保把有害的攻击隔离在可信网络之外,并在保证可信网络内部信息不外泄的前提下,完成可信网与外部网络的网间数据安全交换。

从广义上讲,网络隔离可以采用逻辑隔离和物理隔离两种方式。在逻辑隔离中,被隔离的两个网络在物理上还是连通的,位于隔离边界的设备工作在OSI七层模型的第二层(数据链路层)以上,通过设置各种规则来限制双方的通信。对于不符合规则的通信数据,则不予转发。防火墙就是一种典型的逻辑隔离设备。而物理隔离则是在任何时刻,通信双方之间都不存在物理连接,数据交换是通过隔离设备代为“转交”的。

传统上的逻辑隔离产品多被称为“××防火墙”或“××网关”,而名为“网络隔离设备”的产品,如网闸,一般采用的都是物理隔离技术。因而,在狭义上将网络隔离技术限定在物理隔离的范畴。本节下面所讲的网络隔离,如未注明,则特指物理隔离。

1. 网络隔离技术的原理

网络隔离,英文名为Network Isolation,主要是指把两个或两个以上的网络通过物理设备隔离开来,使得在任何时刻、任何两个网络之间都不会存在物理连接。

网络隔离的关键在于系统对通信数据的控制,即通过隔离设备在网络之间不存在物理连接的前提下,完成网间的数据交换。由于物理连接不存在,所以双方的数据交换不是直接的,而是要通过第三方“转交”。很明显,这样将会大大降低数据交换的速度。因此,隔离的关键点就是要尽量提高网间数据交换的速度,并且对应用能够透明支持。

2. 网络隔离技术的发展阶段

根据比较公认的说法,网络隔离技术发展至今经历了五个阶段:

第一代隔离技术:完全的物理隔离。此方法使得网络处于信息孤岛状态,做到了完全的物理隔离,但是需要至少两套独立网络和系统,一套专门用于敏感的内部网络,一套用于外部网络。物理隔离能够获得比采用防火墙等产品进行逻辑隔离更好的安全性,但是会造成信息交流不便,网络维护成本提高。

第二代隔离技术:硬件卡隔离。此方法是利用一个专用的硬件卡,实现两个网络的隔离。在隔离边界的主机上增加一块硬件卡,边界主机的硬盘或其他存储设备首先连接到该卡,然后再转接到主板上。通过该卡能控制客户端硬盘或其他存储设备。在选择不同的硬盘时,同

时选择了该卡上不同的网络接口连接到不同的网络。但是,这种隔离产品有的仍然需要网络布线为双网线结构,所以产品存在着较大的安全隐患。

第三代隔离技术:数据转播隔离。利用转播系统分时复制文件的途径来实现隔离,即隔离设备首先与一端连通,将流人的数据复制并缓存,然后切断该端连通另一端,将数据发送出去。这种切换常常耗时较久,甚至需要手工完成,不仅明显地减缓了访问速度,更不支持常见的网络应用,从而失去了网络存在的意义。

第四代隔离技术:空气开关隔离。此方法通过使用单刀双掷开关,使得内外部网络分时访问临时缓存器来完成数据交换。这与第三代隔离技术没有本质不同,即在某一时刻只有一端能够访问共享的临时缓存器,只是使用空气开关后切换的频率加快了,从而使得数据交换速度有所提高。

第五代隔离技术:安全通道隔离。此技术通过专用通信硬件和专有安全协议等安全机制,来实现内外部网络的隔离和数据交换。专用交换通道(Private Exchange runnel,简称PET)技术的采用使得内外网的数据交换速度大大提高,已经基本能够透明支持多种网络应用。

需要注意的是,虽然专用PET技术能够支持快速的数据交换,但这仍然是物理隔离,任何时刻专用通道两边的网络之间都不会有物理连接。

有关隔离技术和PET的详细细节,可以参考《网络隔离与网闸》一书。

6.3.5 隔离网闸

隔离网闸,它的英文名称是GAP,源于英文的Air Gap(空气开关),它是一种实现上述网络隔离技术的设备。最早出现在美国、以色列等国家的军方,用以解决涉密网络与公共网络连接时的安全。在当前国内的信息网络建设中也会遇到以信息涉密程度划分网络空间的情况,这些涉密程度不同的网络空间通常被称为安全域。主要的安全域有三类:涉密域、非涉密域和公共服务域。涉密域就是涉及国家秘密的网络空间;非涉密域就是不涉及国家秘密,但是涉及到本单位、本部门或者本系统的工作秘密的网络空间;公共服务域则不涉及国家秘密也不涉及工作秘密,是一个向互联网络完全开放的公共信息交换空间。在国家电子政务建设中,有关文件就严格规定,政务的内网和政务的外网要实行严格的物理隔离;政务的外网和互联网络要实行逻辑隔离。按照安全域的划分,政府的内网就是涉密域,政府的外网就是非涉密域,互联网就是公共服务域。

1. 网闸的概念

网闸,也被称为安全隔离与信息交换系统,是使用带有多种控制功能的固态开关读写介质,连接两个独立网络的信息安全设备。隔离网闸所连接的两个独立网络之间不存在通信曲物理连接、逻辑连接、信息传输命令、信息传输协议,不存在依据协议的信息包转发,只誓数据文件的无协议“摆渡”,且对固态存储介质只有“读”和“写”两个命令。所以,隔离网闸从物理上隔离和阻断了具有潜在攻击可能的一切连接,使得黑客难以入侵、攻击和破坏,实现了高程度的安全。

网闸技术是一种通过专用硬件使两个或者两个以上的网络在不连通的情况下,实现安全数据传输和资源共享的技术。网闸技术的基本原理是:切断网络之间的通用协议连接;将数据包进行分解或重组为静态数据;对静态数据进行安全审查,包括网络协议检查和代码扫描等;确认后的安全数据流人内部单元;内部用户通过严格的身份认证机制获取所需数据。

第一代网闸采用了上述的第四代网络隔离技术,即空气开关隔离。其原理很简单,就是利用单刀双掷开关使得内外网的处理单元分时存取共享存储设备来完成数据交换,实现了在物理隔离情况下的数据交换,安全原理是通过应用层数据提取与安全审查达到杜绝基于协议层的攻击和增强应用层安全的效果。

第二代网闸则充分体现了第五代隔离技术的特点。在吸取了第一代网闸优点的基础上,利用全新理念的专用交换通道PET技术,在不降低安全性的前提下,能够完成内外网之间高速的数据交换。第二代网闸的安全数据交换过程是通过专用硬件通信卡、私有通信协议和加密签名机制来实现的,虽然仍是通过应用层数据提取与安全审查达到杜绝基于协议层的攻击和增强应用层安全效果,但却提供了比第一代网闸更多的网络应用支持,并且由于其采用的是专用高速硬件通信卡,使得处理能力大大提高。

总的说来,网闸技术是在保证两个网络安全隔离的基础上实现安全信息交换和资源共享的技术。它采用独特的硬件设计并集成多种软件防护策略,能够抵御各种已知和未知的攻击,明显提高内网的安全强度。

网闸一般由三部分构成,即内网处理单元、外网处理单元和专用隔离硬件交换单元。内网处理单元连接内部网,外网处理单元连接外部网,专用隔离硬件交换单元在任一时刻仅连接内网处理单元或外网处理单元,与两者间的连接受硬件电路控制高速切换。这种独特设计保证了专用隔离硬件交换单元在任一时刻仅连通内部网或者外部网,既满足了内部网与外部网网络物理隔离的要求,又能实现数据的动态交换。网闸的嵌入式软件系统里一般都内置有协议分析引擎、内容安全引擎和病毒查杀引擎等多种安全机制,可以根据用户需求实现复杂的安全策略。

第6章 网络安全

图6-13隔离网闸原理示意图

综上所述,网闸是一种采用物理隔离方式的安全防护技术。网闸技术会提供比防火墙更高的安全性,但是应用了网闸技术之后,应用的便利性不可避免地大大折扣。而且,网闸的部署成本较高,并非对所有的组织都适用。对于只有一般安全要求的组织,传统的防火墙已经可以满足其安全要求。

网闸的应用一般定位在如下几个方面:

(1) 涉密网与非涉密网之间。

(2) 局域网与互联网之间(内网与外网之间)。有些局域网,特别是政府办公网,涉及政府敏感信息,有时需要与互联网在物理上断开,应用物理隔离网闸是一个常用的办法。

(3) 办公网与业务网之间。由于办公网与业务网的信息敏感程度不同,如银行的办公网和业务网就是很典型的信息敏感程度不同的两类网络,为了提高工作效率,办公网有时需要与业务网络交换信息。为解决业务网络的安全,比较好的办法就是在办公网络与业务网络之间使用物理隔离网闸,实现两类网络的物理隔离。

(4) 电子政务的内网与专网之间。在电子政务系统建设中要求政府内网与外网之间用逻辑隔离,在政府内网与专网之间用物理隔离。现在常用的方法是用物理隔离网闸来实现。

(5) 业务网与互联网之间。电子商务网络一边连接着业务网服务器,一边通过互联网连接着大量用户。为了保障业务网服务器的安全,在业务网与互联网之间应实现物理隔离。

4. 网闸的应用领域

目前,国产的隔离网闸产品可以满足可信网络用户与外部的文件交换、收发邮件、单向浏览、数据库交换等功能,同时已在电子政务中,如政府内部的领导决策支持系统、政务应用系统(0A系统、专用业务处理系统)和公共信息处理系统(信息采集系统、信息交换系统、信息发布系统等)得到应用,网闸很好地解决了安全隔离下的信息可控交换等问题,从而推动了电子政务走向使用。

由于网闸可以实现两个物理层上断开的网络间的信息“摆渡”,构建信息可控交换“安全岛”,所以在政府、军队、电力等领域具有极为广阔的应用前景。网闸能够突破电子政务外网与内网之间数据交换的“瓶颈”,并消除政府部门之间因安全造成的“信息孤岛效应”。

目前,网闸大都提供了文件交换、收发邮件、浏览网页等基本功能。此外,网闸产品在负载均衡、冗余备份、硬件密码加速、易集成管理等方面需要进一步改进完善,同时,更好地集成人侵检测和加密通道、数字证书等技术也成为新一代网闸产品发展的趋势。

从当前应用情况来看,国内目前网闸市场也已经具备一定规模,用户主要集中在政府、公安、军队、电力等对安全性要求很高的重要部门。总之,安全网闸适用于政府、军队、公安、银行、工商、航空、电力和电子商务等有高安全级别需求的网络环境。

6.4 拒绝服务攻击检测与防御

6.4.1 DoS/DDoS攻击技术

由于网络开放的结构,各种攻击也不断威胁着网络服务系统的可用性,其中以拒绝服务(Denial 0f Service,简称DoS)攻击危害最大,也最难以控制,而又最容易发起,因为任何人都可以非常容易地在网上的某个地方下载自动的:DoS攻击工具。

拒绝服务攻击对于网络服务的可用性造成了致命性打击,它通常可以在短时间内造成被攻击主机或者网络的拥塞,使合法用户的正常服务请求无法到达服务网络中的关键服务器。此时,即使服务网络察觉到了来自网络流量的巨大压力,但是由于缺乏有效的防御措施,网络服务器也只能切断网络连接重新启动,等待攻击结束。

现实中,即使几个小时的网络服务中断,对于某些商业和重要的政府部门来说也是不能容忍的。产品提供商可能因此信誉下降失去大量的客户;政府的新闻网站、政策发布网站、政府提供一站式服务的网站也会因此降低在公众中的信誉度;银行等金融服务还可能因此而产生信息的丢失或者错误,不仅信誉受损还会承担很大的经济风险;交通和运输服务系统的瘫痪可能还会造成整个城市和地区的恐慌。

1. 基本原理

拒绝服务攻击的目的是利用各种攻击技术使服务器或者主机等拒绝为合法用户提供服务。来自网绍的拒绝服务攻击可以分为两类:停止服务和消耗资源。停止服务意味着毁坏或者关闭用户想访问的特定的服务;消耗资源,是指服务进程本身正在运行,但攻击者消耗了计算机和网络的资源,阻止了合法用户的正常访问。

停止服务最普遍的方法是发送恶意的数据包。攻击者会利用目标主机。TCP/IP协议栈错误给其发送一种或多种非正常格式的数据包,如果目标主机对于恶意数据包非常脆弱就会崩溃,具体表现为可能会关闭一个特定的进程和所有的网络通信,甚至引起操作系统停止工作。攻击者依靠各种各样的技术来建立数据包,这些数据包的结构是TCP/IP协议栈的开发者所没有预料到的,每一种攻击方式给目标主机发送一种数据包或一种慢的数据包流,以引起主机瘫痪。有的攻击者会使用一些异常的或非法的数据包碎片(如teardrop、NewTera、Bonk攻击等),有的攻击者会发送一些大容量的数据包(如ping of death攻击),有的攻击者会用无法预料的端口号发送假数据包(1and攻击),有的攻击者向主机的开放端口发送一些垃圾数据(如winnuke攻击)。

资源消耗是目前最流行的拒绝服务攻击方式,这种技术占用目标主机的资源,特别是通信链路的带宽。攻击者会利用数据包洪泛来消耗目标的网络处理能力,这类拒绝服务攻击通常被称为数据包洪泛攻击,如SYN洪泛、Smurf攻击和UDP洪泛等。

拒绝服务攻击中的90%是SYN洪泛攻击,它利用了TCP协议的特点。TCP连接的建立需要三次握手过程,如下图所示:

第6章 网络安全

图6-14 SYN洪泛攻击原理

TCP连接建立的三次握手过程如下:一个客户程序给服务器打开的端口发送一个含SYN 位的数据包,当服务器收到SYN数据包时,它会记住来自客户端的初始序列号,并生成一个SYN/ACK响应数据包,为了记住这个序列号,服务器的TCP/IP协议栈会在它的连接队列里开辟出一小块内存来存储这些正在进行的连接。这种连接队列是一种简单的数据结构,在三次握手期间用来记忆连接信息。

一个SYN洪泛攻击试图通过向服务器发送大量的数据包来破坏这种机制。在SYN洪泛攻击过程中,攻击者向服务器发送大量的SYN数据包,当服务器收到过多的SYN数据包时,无法及时处理,这样合法的网络信息就无法到达服务器。有以下两种方式可以通过SYN洪泛消耗服务器的通信资源:

第一种方式是用未完成的连接去填充服务器的连接队列,一旦服务器收到SYN数据包并发回SYN/ACK响应,然后就等待三次握手的最后一个过程,通常设置一分钟为等待时间溢出值。服务器指定一些资源给连接队列,用于记录每个输入的SYN数据包。当服务器正在处理那些未完成的连接时,攻击者可以将连接队列塞满。攻击者通过发送SYN数据包占满所有的用于连接队列的通道,新的合法用户的连接请求就不能够被响应。为了确保能够塞满服务器的连接队列,许多SYN洪泛工具发送含有互联网中不存在的IP地址的SYN数据包。

第二种方式是在连接队列之外进行的,如攻击者给服务器发送大量的SYN数据包,SYN 洪泛就会填满服务器的通信链路,挤掉合法用户发送数据包的信道。为了能够做到这一点,攻击者必须有比服务器更大的带宽,这样才能生成更多的SYN数据包来填满服务器的通信带宽。

2. 攻击模式

拒绝服务攻击的原理很简单,它充分利用合理的TCP协议来完成攻击的目的,目前主要有三种攻击模式:

(1) 拒绝服务攻击(DoS)

最经典的拒绝服务攻击方式是点到点方式,攻击者使用处理能力较强的机器直接向处理

能力较弱或带宽较窄的网络发送数据包,以达到耗尽资源和拥塞网络的目的。目前,攻击者

者已经很少采用这种攻击方式了。一方面,由于现在的服务器的处理能力相比从前大大提高了。另一方面,如果直接攻击很容易暴露攻击者的位置等信息。

(2) 分布式拒绝服务攻击(Distributed Denial 0f Service,简称DDoS)

DDoS攻击是洪泛式拒绝服务攻击中一种更具威胁的演化版本,它利用互联网分布式连接的特点,通过控制分布在互联网上的计算机,共同产生大规模的数据包洪泛,对目标计算机或者网络进行攻击,如mstream,Stacheldraht,TFN2K攻击等。DDoS攻击的原理是Master(Master的英文原意是主人,在拒绝服务攻击中指代那些控制其他主机的主机,称为攻击控制主机)事先通过网络控制大量的主机,通常称为Zombie(Zombie的英文原意是行尸走肉,在拒绝服务攻击中指代那些被控制的主机,称为僵尸主机),之后再发起命令控制多个Zombie 同时攻击目标,其攻击原理如下图所示:

第6章 网络安全

图6-15 DDoS攻击原理

一方面,大量的Zombie使攻击效能大大放大,如大量低处理能力的主机向高处理能力的服务器发起攻击或者从窄带网络向宽带网络攻击;另一方面,攻击者有Zombie屏蔽,不易被发现,从而很难定位真正的攻击者。

(3) 分布式反射拒绝服务攻击(Distributed Reflection Denial of Service,简称DRDoS)

DRDoS的攻击原理如下图所示:

第6章 网络安全

图6-16 DRDoS攻击原理

DRDoS的攻击原理是利用了边界网关协议(Border Gateway Protocol,简称BGP)协议,该协议是中问路由器之间用来交换路由表的协议。不必关心这个协议的细节,实际上互联网上所有组织良好的中间路由器都会接受179端口的TCP连接请求,也就是说,互联网上的路由器只要在179端口上收到TCP连接请求,该路由器就会响应SYN/ACK数据包。恶意攻击者并不需要攻破大量的中间路由器——实际上也不可行,攻击者只要假冒被攻击目标向大量路由器的179端口发出SYN请求,这些路由器必然会发出响应,大量的SYN/ACK数据包会堵塞被攻击的路由器。

(4) 应用层拒绝服务攻击

另一种比较具有威胁的拒绝服务攻击是应用层拒绝服务攻击,这类攻击向目标发送虚假的应用协议数据如HTI'P请求,从而消耗目标应用的计算资源,进而阻止它们处理合法用户的请求。HTTP half-open和HTTP error就是其中的两类。

3. 攻击特点分析

拒绝服务攻击为了最大程度地降低被检测到的可能性,规避现有的检测和防御手段,在攻击数据包构造、攻击速率以及攻击范围等方面不断进行变化,其特点主要包括:

(1) 多源性、特征多变性

智能的拒绝服务攻击工具可以实现多对一或者多对多的攻击方式,而且往往采用不断改变攻击数据包属性的方法来迷惑拒绝服务攻击检测和防御系统,通常拒绝服务攻击数据包中会经常改变的属性包括:

源IP地址。改变数据包的源IP地址也称为IP欺骗。IP欺骗可以隐蔽攻击的真正发起者,而且不断地改变源IP地址使拒绝服务攻击防御程序无法进行有效的防御。

源/目的端口。很多拒绝服务攻击防御措施是基于目的端口过滤,当攻击者利用不断

变化的源/目的端口的数据包时,这种防御措施就没有什么效果了。

其他IP头参数。智能的攻击工具使几乎所有的IP头的属性随机化,只保留如目的IP 地址这样的参数不变。

攻击者只需要在一个系统中拥有足够的权限就可以利用工具恶意篡改IP数据包的包头。例如,在Windows和Linux操作系统中,可以利用Raw Socket来构造虚假的IP数据包头。拒绝服务攻击特征变化很快,如果直接利用这些低层次特征进行检测是不可行的。

(2) 频率和范围

拒绝服务攻击是一种网络群体行为,根据CAIDA~技术统计表明拒绝服务攻击中:90%持续时间为1小时或者更短;90%是基于TCP;40%攻击速率达到500pps;高峰流量达到500 000pps。

4. 僵尸网络(Botnet)

拒绝服务攻击原理简单、实施容易,但是却难以防范,特别是与Botnet网络结合后,其攻击能力大大提高。例如,2004年6月互联网基础设施提供商Akamai的一台关键域名服务器受到Botnet发动的DDoS攻击,结果导致Google、Microsoft、Yahoo!和Apple等著名网站不能提供正常服务。

那么究竟什么是Botnt网络呢?Botnet在国内大都被翻译为了僵尸网络。我们来分析一下Botnet这个英文单词,Bot来自robot,后者是机器人的意思,而bots通常是机器人复数的简写;net是网络的意思;Bot和net合起来就是机器人组成的网络。但是Botnet并没有翻译为机器人网络,机器人的一层含义是受控制的一些程序,这些程序等待控制者的命令,并在接受命令之后,不折不挠地去执行这些命令,而并不关心这些命令的含义。相对应的,这让我们想到DDoS攻击中,那些被攻击者控制的Zombie,显然机器人和Zombie是一样的含义。

目前来说,没有关于Botnt的公认定义,有时Botnet也常常被认为是一种后门工具或者蠕虫。Botnet的显著特征是大量主机在用户不知情的情况下,被植入了控制程序,并且有一个地位特殊的主机或者服务器能够通过信道来控制其他的主机,这些被控制的主机就像僵尸一样听从主控者的命令。Botnet的网络组成方式如下图所示:

第6章 网络安全

图6-17 Botnet网络组成方式

Botnet的构建是需要一个过程的。攻击者首先会收集大量的主机作为Zombie,收集过程多半都会采用自动化的病毒感染方式(如蠕虫、病毒、特洛伊木马等),之后Zombie就处于待命状态,当Zombie收到命令后就会进入攻击阶段。我们从http://www.doczj.com/doc/b35dd67a4afe04a1b071dea2.html发布的文件中截取了如下的一小段数据,它记录了2004年11月至2005年1月这段时间内关于Botnet 组织DDoS攻击的相关信息:

第6章 网络安全

图6-18利用Botnet组织DDoS攻击的通信记录

Botnet泛滥的一个直接结果就是它可以被用来发起超大规模的DDoS攻击,而且Botnet 已经在网上被公开销售或者租用。例如,由4000台计算机组成的Botnet的网上售价也就是200美元。僵尸工具实现的DDoS攻击,大部分是TCP SYN和UDP洪泛攻击。

利用Botnet发动DDoS攻击,给DDoS攻击的检测和防御带来了更大的挑战。首先,Botnet 使发起攻击变得更加容易,攻击者不必费心地去寻找可用的Zombie,购买和租用Botnet的代价低得多;其次,Botnet控制的Zombie遍布在互联网上,甚至不是在攻击发生的本地互联网网络范围之内,这使得去追寻这些机器变得基本是不可行的,也没有办法将其诉诸法律;攻击者通过使用Botnet将自己很好地掩藏起来。

除了被用于组织,DDoS攻击,Botnet还可以被用来传播垃圾邮件、窃取用户数据、监听网络和恶意病毒扩散等。Botnet已经成为了互联网的重大威胁。

6.4.2 检测技术与防御策略

1. 检测与防御困难

拒绝服务攻击可能是目前网络攻击中最令安全专家和用户头疼的问题了,最主要的原因是拒绝服务攻击没有很明显的数据包级的特征。无论是哪种拒绝服务攻击模式,从单个数据包的角度,产生这样的数据都是合理的。而且,除了应用层拒绝服务攻击外,其他拒绝服务

攻击根本就没有建立起TCP连接,数据包中也没有任何有用的内容。由于没有什么特征,那么基于特征的入侵检测方法对于检测拒绝服务攻击基本上是没有帮助的。

即使发生了拒绝服务攻击,也没有十分有效的方法可以抵制控制。拒绝服务攻击容易发起,而且快速的拒绝服务攻击可以说是立竿见影,被攻击的目标或者网络很快就会瘫痪。此时,即使发现了拒绝服务攻击,目前来说也没有什么很有效的方法可以抵抗,因而我们并不知道谁在发起攻击,大量的数据包依然向服务器和网络涌来,如果只是简单的丢弃这些数据包,那么正常用户的服务请求也会被丢弃,拒绝服务攻击的目的也就达到了。

2. 检测技术分类

目前,很多产品中都声称可以检测和抵御拒绝服务攻击,它们大多采用下面介绍的一些方法,这些方法虽然不能完全解决拒绝服务攻击问题,但是可以在某种程度上检测或者减轻攻击的危害,最大限度地保证在攻击发生时,还能够为部分用户提供服务。

(1) TCP SYN Cookie

TCP SYN Cookie的工作原理是由专门的代理服务器代替受保护的服务器与请求的用户建立连接,即发送“第二次握手”的SYN/ACK报文等待得到用户的ACK应答之后,代理服务器再将连接交给受保护的服务器,那些没有确认的虚假连接将被抛弃。由于大多数的拒绝服务攻击都采用了IP欺骗的方式,即它们不可能发回SYN/ACK数据包,也不会建立真正的TCP连接。

TCP SYN Cookie技术没有使用TCP连接队列这个有限的资源,而用一个Cookie代替,这样服务器就不会因为连接队列被攻击数据包占满而拒绝服务。但是这种技术也存在缺陷,首先,它只能够防范SYN洪泛攻击,对UDP、ICMP洪泛以及应用层拒绝服务攻击没有效果。其次,这种技术只适用于防范小规模的拒绝服务攻击,在超大规模攻击发生时,由于这种技术需要占用大量的CPU资源和存储资源,所以很容易成为性能上的“瓶颈”,甚至导致自身崩溃。

(2) TCP状态检测

TCP状态检测与上面的TCP SYN Cookie方式类似,不同的是代理服务器并不等待用户的SYN/ACK报文,而是主动向请求用户发送一个ACK报文。根据TCP三次握手协议,用户端期待的是一个SYN/ACK报文,当收到了ACK报文后,自然会认为是出错了,正常情况下用户端会返回一个TCP/RST报文。如果代理服务器等待超时,也就说明用户并没有对这个报文做出响应,此时就判断该用户请求是SYN洪泛攻击,将丢弃该连接。

(3) HTTP重定向

HTTP重定向技术是针对Web服务器的保护,它的原理也是使用一个代理服务器与用户之间建立TCP连接。如果TCP连接可以建立,就向用户发送一个HTI'P重定向的报文,用户根据该HTrP重定向报文中的内容重新建立新的TCP连接;如果连接建立失败,该用户的请求就被丢弃。HTrP重定向的缺点也很明显,因为通过攻击代理服务器一样可以达到拒绝服务的目的。

下载Word文档免费下载:

第6章 网络安全下载

(共22页)