关于网路漏洞,目前还没有一个全面、準确统一的定义。一般可以理解为在硬体、软体和协定等的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。通俗描述性定义是存在于计算机网路系统中的、可能对系统中的组成和数据等造成损害的一切因素。具体举例来说:比如在IntelPentium晶片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS协定中认证方式上的弱点,在Unix系统管理员设定匿名Ftp服务时配置不当的问题都可能被攻击者使用,威胁到系统的安全。这些都可以认为是系统中存在的安全漏洞。
基本介绍
- 中文名:网路漏洞
- 特点:存在于计算机网路系统中的
- 后果:对系统中的组成和数据造成损害
- 属性:未授权的情况下
概述
关于网路漏洞,目前还没有一个準确统一的定义。有学者从访问控制的角度出发,认为:当对系统的各种操作与系统的安全策略发生冲突时,就产生了安全漏洞。
也有专家认为:计算机系统是由若干描述实体配置的当前状态所组成,可分为授权状态和非授权状态、易受攻击状态和不易受攻击状态,漏洞就是状态转变过程中能导致系统受损的易受攻击状态的特徵。
以上两种观点,都是从各自的专业角度对网路漏洞进行描述,并没有给出一个全面的準确的定义。
与具体系统环境之间的关係及其时间相关特性
网路漏洞会影响到很大範围的软硬体设备,包括作系统本身及其支撑软体,网路客户和伺服器软体,网路路由器和安全防火墙等。换而言之,在这些不同的软硬体设备中都可能存在不同的安全漏洞问题。在不同种类的软、硬体设备,同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设定条件下,都会存在各自不同的安全漏洞问题。
漏洞问题是与时间紧密相关的。一个系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商发布的补丁软体修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现。漏洞问题也会长期存在。
因而脱离具体的时间和具体的系统环境来讨论漏洞问题是毫无意义的。只能针对目标系统的作业系统版本、其上运行的软体版本以及服务运行设定等实际环境来具体谈论其中可能存在的漏洞及其可行的解决办法。
同时应该看到,对漏洞问题的研究必须要跟蹤当前最新的计算机系统及其安全问题的最新发展动态。这一点如同对计算机病毒发展问题的研究相似。如果在工作中不能保持对新技术的跟蹤,就没有谈论系统安全漏洞问题的发言权,即使是以前所作的工作也会逐渐失去价值。
与不同安全级别计算机系统之间的关係
目前计算机系统安全的分级标準一般都是依据“橘皮书”中的定义。橘皮书正式名称是“受信任计算机系统评量基準”(Trusted ComputerSystem EvaluationCriteria)。
橘皮书中对可信任系统的定义是这样的:一个由完整的硬体及软体所组成的系统,在不违反访问许可权的情况下,它能同时服务于不限定个数的用户,并处理从一般机密到最高机密等不同範围的信息。
橘皮书将一个计算机系统可接受的信任程度加以分级,凡符合某些安全条件、基準规则的系统即可归类为某种安全等级。橘皮书将计算机系统的安全性能由高而低划分为A、B、C、D四大等级。其中:
D级——最低保护(Minimal Protection),凡没有通过其他安全等级测试项目的系统即属于该级,如Dos,Windows个人计算机系统。
C级——自主访问控制(DiscretionaryProtection),该等级的安全特点在于系统的客体(如档案、目录)可由该系统主体(如系统管理员、用户、应用程式)自主定义访问权。例如:管理员可以决定系统中任意档案的许可权。当前Unix、Linux、Windows NT等作系统都为此安全等级。
B级——强制访问控制(MandatoryProtection),该等级的安全特点在于由系统强制对客体进行安全保护,在该级安全系统中,每个系统客体(如档案、目录等资源)及主体(如系统管理员、用户、应用程式)都有自己的安全标籤(Security Label),系统依据用户的安全等级赋予其对各个对象的访问许可权。
A级——可验证访问控制(Verified Protection),而其特点在于该等级的系统拥有正式的分析及数学式方法可完全证明该系统的安全策略及安全规格的完整性与一致性。 '
可见,根据定义,系统的安全级别越高,理论上该系统也越安全。可以说,系统安全级别是一种理论上的安全保证机制。是指在正常情况下,在某个系统根据理论得以正确实现时,系统应该可以达到的安全程度。
系统安全漏洞是指可以用来对系统安全造成危害,系统本身具有的,或设定上存在的缺陷。总之,漏洞是系统在具体实现中的错误。比如在建立安全机制中规划考虑上的缺陷,作系统和其他软体编程中的错误,以及在使用该系统提供的安全机制时人为的配置错误等。
安全漏洞的出现,是因为人们在对安全机制理论的具体实现中发生了错误,是意外出现的非正常情况。而在一切由人类实现的系统中都会不同程度的存在实现和设定上的各种潜在错误。因而在所有系统中必定存在某些安全漏洞,无论这些漏洞是否已被发现,也无论该系统的理论安全级别如何。
出现
在商业世界,漏洞主要是因为设计和实施中出现错误所致,造成信息完整性、可获得性和保密性受损。错误通常在软体中,也存在于各个信息系统层,从协定规格到设计到物理硬体。网路漏洞还可能是恶意用户或自动恶意代码故意为之。重要系统或网路中单个漏洞可能会严重破坏一个机构的安全态势。
美国国防部对“漏洞”一词的定义是易受攻击性或“利用信息安全系统设计、程式、实施或内部控制中的弱点不经授权获得信息或进入信息系统。”这里的关键字是“弱点”。任何系统或网路中的弱点都是可防的。
但是,系统或网路中的弱点表明解决方案是已知的,能够实施的。有许多系统和网路漏洞分析器,包括自动漏洞检测系统和TIGER系统。网路攻击向量是对某一或多个具体目标实施攻击的明确的路径。自动漏洞检测系统和TIGER系统利用模拟网路攻击分析网路的整个态势,常规失败机率很低。
网路专家利用的其他类似工具有安全管理员网路集成工具(SAINT)和网路映射器(NMAP)——基于漏洞的评估工具,既快又可靠。由于NMAP携带方便、操作简单,黑客也常常使用。它有用于Linux, UniX和微软Windows平台的多种版本,能轻鬆扫描包含成百上千个系统和伺服器的巨型网路。SAINT和NMAP能对网路的连线埠或服务系统进行扫描,显然也能被恶意和非恶意者利用。攻击特徵和地址性质决定了新的攻击或攻击向量能躲过大多数漏洞评估工具。
例如,如果连线埠21——档案传输协定(FTP)的默认连线埠正在运行的话,对网路伺服器进行快速漏洞检查能发现潜在的问题。传统的FTP程式不提供数据加密,用户认证级别很低,因此传输中相对容易窃取未加密数据。由于用户认证系统功能不强,黑客如果能诱骗系统认为他是FTP伺服器的合法用户,就能进入系统,这就出现了另外一个问题。解决这些漏洞就是套用加密技术。Secure-shell (SSH)FTP或SFTP通过加密保证数据的完整性和保密性。SFTP利用SSH进行可靠的数据连线保证远程文档安全传输。该协定使用连线埠22,系统管理员不用传统的FTP伺服器,因此不需要使用连线埠21.令人惊讶的是,当他们运行SFTP时,有几个管理员错误地忘记关掉FTP,这样为黑客留下可利用的后门。
漏洞评估工具是双向的。儘管它们提供管理员评估系统和网路状态非常需要的能力,但这些工具也为恶意黑客提供了扫描能力。任何连线埠扫面工具能远程刺探网路伺服器,决定哪个连线埠是对外部开发的。黑客还能发现这些开发的连线埠是否可以利用。
类型
网路漏洞的种类数不胜数,人们多根据其产生的原因、存在的位置和利用漏洞攻击的原理来进行分类。分类情况可见表:
网路漏洞的种类

网路中有许多的漏洞都是由于设计人员和程式设计师的疏忽或失误及对网路环境的不熟悉造成的。进行网路开发时,许多设计开发者并不重视网路的安全情况,也不完全了解程式的内部工作机理,致使程式不能适应所有的网路环境,造成网路功能与安全策略发生冲突,最终导致漏洞的产生。另有一部分漏洞则是网路用户刻意为之的。网路管理员为了更好地监管和控制网路,往往预留秘密通道,以保证对网路的绝对控制。而部分网路用户或黑客也许会出于好奇而在网路中秘密种下木马、逻辑炸弹或是陷门。网路中的漏洞可以存在于硬体和软体中,但更多还是以软体漏洞的形式存在。无论是网路套用软体,还是单机套用软体,都广泛隐藏有漏洞。网路中的聊天软体如QQ,档案传输软体如FlashFXP、CuteFTP,浏览器软体如IE,单机中的办公软体如MSWord,这些套用软体中都存在着可导致泄密和招致网路攻击的漏洞。在各种作业系统中也同样存在着大量漏洞,如:Windows系统中存在RPC远程任意代码执行漏洞等,RedHat中存在可通过远程溢出获得root许可权的漏洞等,各种版本的Unix系统中同样存在着大量可导致缓冲器溢出的漏洞等。在Internet中提供服务的各种伺服器中,漏洞存在的情况和招致的危害更是严重。无论是Web伺服器、FTP伺服器、邮件伺服器,还是资料库伺服器和流媒体伺服器都存在着可导致网路攻击的安全漏洞。脚本语言的设计缺陷和使用不规範,更是令网际网路的安全状况雪上加霜。
解析
网路漏洞的广泛存为网路攻击提供了机会,但在一般情况下,普通的网路用户不易受到恶意攻击。相比而言,由于网路伺服器在网路中的重要作用,而且其安装的软体和开放的连线埠更多,也就更容易招致网路攻击。但无论对于接受服务的个人用户还是提供服务的伺服器用户,都不能对网路中的漏洞掉以轻心,必须充分认识网路漏洞的危害,并对利用漏洞发动网路攻击的原理有一定的了解。下面将从网路攻击原理来对网路漏洞进行更深入的分析。
拒绝服务攻击原理
拒绝服务攻击(DoS:Denail ofService)是一种针对TCP/IP协定漏洞的一种网路攻击手段,其原理是利用DoS工具向目标主机传送海量的数据包,消耗网路的频宽和目标主机的资源,造成目标主机网段阻塞,致使网路或系统负荷过载而停止向用户提供服务。常见的拒绝服务攻击方法有SYNFlood攻击、Smurf、UDP洪水、Land攻击、死亡之Ping、电子邮件炸弹等。目前影响最大、危害最深的是分散式DoS攻击。它利用多台已被攻击者控制的计算机对某一台计算机进行攻击,很容易导致被攻击主机系统瘫痪。对DoS攻击的防护措施主要是设定防火墙,关闭外部路由器和防火墙的广播地址,利用防火墙过滤掉UDP应答讯息和丢弃ICMP包,儘量关闭不必要的TCP/IP服务。
缓冲区溢出攻击原理
简单地说,缓冲区溢出的原因是向一个有限的缓冲区複製了超长的字元串,结果覆盖了相邻的存储单元。这种覆盖往往会导致程式运行的失败,甚至是当机或是系统的重启。另外,黑客利用这样的漏洞可以执行任意的指令,掌握系统的操作权。缓冲区溢出漏洞广泛存在于套用软体和作业系统中,其危害是非常巨大的,但一直以来并没有引起系统和软体开发者足够的重视。要防止缓冲区溢出攻击,首要的是堵住漏洞的源头,在程式设计和测试时对程式进行缓冲区边界检查和溢出检测。而对于网路管理员,必须做到及时发现漏洞,并对系统进行补丁修补。有条件的话,还应对系统进行定期的升级。
欺骗类攻击的原理
欺骗类攻击主要是利用TCP/IP协定自身的缺陷发动攻击。在网路中,如果使用伪装的身份和地址与被攻击的主机进行通信,向其传送假报文,往往会导致主机出现错误操作,甚至对攻击主机做出信任判断。这时,攻击者可冒充被信任的主机进入系统,并有机会预留后门供以后使用。根据假冒方式的不同,这种攻击可分为:IP欺骗、DNS欺骗、电子邮件欺骗、原路由欺骗等。下面以IP欺骗攻击为例分析欺骗攻击的过程。在这种攻击中,发动攻击的计算机使用一个伪装的IP位址向目标计算机主机传送网路请求;当主机收到请求后,会使用系统资源提供网路连线服务,并回复确认信息;但由于IP位址是假的,主机不可能得到回应,这种情况下,主机将会继续重複传送确认信息。儘管作业系统规定了回复的次数和逾时的时间,但完成多次回复仍要占用主机资源较长时间,严重降低主机的工作效率。例如WindowsNT系统在预设回複次数下,从建立连线到资源的释放大约用时190秒。对于解决欺骗类攻击的方法,最好是充分了解主机的系统状况,只启用必用的应用程式和只开放提供服务所用到的连线埠。
程式错误攻击原理
在网路的主机中存在着许多服务程式错误和网路协定错误。换句话说就是,服务程式和网路协定无法处理所有的网路通信中所面临的问题。人们利用这些错误,故意向主机传送一些错误的数据包。对于主机来说,往往不能正确处理这些数据包,这会导致主机的CPU资源全部被占用或是当机。服务程式存在错误的情况很多,多种作业系统的服务程式都存在。例如WinNT系统中的RPC服务就存在着多种漏洞,其中危害最大的要数RPC接口远程任意代码可执行漏洞,非常流行的冲击波病毒就是利用这个漏洞编制的。对付这类漏洞的方法是儘快安装漏洞的补丁程式,在没有找到补丁之前,应先安装防火墙,视情况切断主机套用层服务,即禁止从主机的所有连线埠发出和接收数据包。
后门攻击原理
通常网路攻击者在获得一台主机的控制权后,会在主机上建立后门,以便下一次入侵时使用。后门的种类很多,有登入后门、服务后门、库后门、口令破解后门等。这些后门多数存在于Unix系统中。目前,建立后门常用的方法是在主机中安装木马程式。攻击者利用欺骗的手段,通过向主机传送电子邮件或是档案,并诱使主机的操作员打开或运行藏有木马程式的邮件或档案;或者是攻击者获得控制权后,自己安装木马程式。对付后门攻击的方法是经常检测系统的程式运行情况,及时发现在运行中的不明程式,并用木马专杀工具进行查杀木马。
但网路攻击的方法千变万化,儘管可以对网路攻击从原理上进行分类,但在网路攻击的具体实例中,有时又很难简单地将其归于某一类的攻击。例如,利用ping命令向一台主机传送超过65535的EchoRequest数据包,目标主机就会因缓冲区溢出而拒绝继续提供服务,既可以将这种攻击看作是拒绝服务攻击,也可以视为缓冲区溢出攻击。正是由于网路漏洞种类繁多,攻击方法也多种多样,很难对网路攻击的具体实例进行一一分析,所以下面将以DoS攻击为例,对网路攻击的步骤和方法作进一步的介绍。
漏洞解析与防护的具体实例
Dos攻击是网路攻击中常见的,也是危害比较大的一种,其攻击的手法多样。在拒绝服务攻击中,利用Windows作业系统中的RPC服务漏洞进行攻击是一种常见的拒绝服务攻击。漏洞存在于Windows系统的DCE-RPC堆叠中,远程攻击者可以连线TCP135连线埠,向其传送畸形数据,可导致RPC服务的关闭,进而引起系统停止对新的RPC请求进行回响,产生拒绝服务。由于系统的许多服务都依赖于RPC服务,这就使得系统变得极不稳定,许多正常的操作无法进行,甚至造成系统的频繁重新启动。实现这种攻击的方法较为容易,也不需要太多的专业知识,但造成的危害却不小。一般情况下,攻击者会利用stan、nMap、X-scan等工具扫描网路中的计算机,获得被攻击主机的IP位址和相关连线埠信息,有的攻击者甚至不利用扫描工具,直接猜测一个IP位址发动攻击。获得相应信息后,攻击者会利用dcom.exe程式进行攻击。在DOS状态下,输入dcom.exeIP位址,然后确认。这时攻击主机没有任何提示,但被攻击主机如果存在这一漏洞,将出现一个系统对话框提示svchost.exe程式错误,继而出现关机对话框,关机讯息为Remote ProcedureCal(RPC)服务意外终止,60秒后系统重新启动。这样对方主机只要利用RPC服务,系统就会重新启动,也就无法使用网路资源。
RPC服务漏洞进行攻击

若遭受RPC服务DoS攻击,应首先断开网路并採用手工的防範措施。依次打开计算机“控制台”—“管理工具”—“计算机管理”图示,展开管理界面左侧的“服务和应用程式”项中的“服务”选项,从界面右侧找到Remote ProcedureCall(RPC)服务,单击滑鼠右键,选择“属性”,打开属性面板,选择其中的“恢复”标籤,将失败后计算机反应选项全部改为“不操作”,如图1所示。虽然经过手工设定之后,计算机不再重新启动,但主机的一些正常功能也被破坏,因此还需要给系统打上微软提供的安全补丁才行。
通过对RPC服务DoS攻击的分析,可大体了解网路攻击的步骤。事实上,儘管网路攻击的方法和原理各不相同,但其发动攻击的步骤是基本一致的,通常都是採用以下4个步骤: 1) 确定攻击目标的位置;
2) 利用公开协定和工具通过连线埠扫描、网路监听收集目标的系统类型、提供的服务等信息;
3) 利用自编入侵程式或公开的工具扫描分析系统的安全漏洞;
4) 针对发现的网路漏洞展开攻击。
一般防护
通过对网路漏洞攻击原理和攻击步骤的分析,可以知道:要防止或减少网路漏洞的攻击,最好的方法是尽力避免主机连线埠被扫描和监听,先于攻击者发现网路漏洞,并採取有效措施。提高网路系统安全的方法主要有:
1) 在安装作业系统和套用软体之后及时安装补丁程式,并密切关注国内外着名的安全站点,及时获得最新的网路漏洞信息。在使用网路系统时,要设定和保管好账号、密码和系统中的日誌档案,并儘可能的做好备份工作。
2)及时安装防火墙,建立安全萤幕障。防火墙可以儘可能禁止内部网路的信息和结构,降低来自外部网路的攻击。对个人用户而言,现在的个人防火墙还有探测扫描、攻击,并自动防御和追蹤的功能。例如金山毒霸和瑞星防火墙就具有扫描网路漏洞的功能,而蓝盾防火墙则设计了自动反扫描的机制,外部的扫描将找不到任何连线埠。
3)利用系统工具和专用工具防止连线埠扫描。要利用网路漏洞攻击,必须通过主机开放的连线埠。因此,黑客常利用Satan、Netbrute、SuperScan等工具进行连线埠扫描。防止连线埠扫描的方法:一是在系统中将特定的连线埠关闭,如利用Win系统中的TCP/IP属性设定功能,在“高级TCP/IP设定”的“选项”面板中,关闭TCP/IP协定使用的连线埠;二是利用PortMapping等专用软体,对连线埠进行限制或是转向。
4) 通过加密、网路分段、划分虚拟区域网路等技术防止网路监听。
5) 利用密罐技术,使网路攻击的目标转移到预设的虚假对象,从而保护系统的安全。
随着计算机和网路技术在各个领域的迅速普及与广泛套用,网路漏洞的种类越来越层出不穷。
修补数据中心的网路漏洞
步骤一:设定捕获点
企业安全专家可能尝试的方法是,通过启用Wireshark捕获网路中两个不同点,来验证防火墙性能效率。首先,在直通模式设备的非军事区中,开启混合模式,并启动Wireshark进行抓包。这样能获取到所有试图通过网路的未过滤数据包。接着,立即在在防火墙后的某台设备上开启Wireshark。根据实际网路拓扑,可能需要配置一个监控点。在数据获取到一定量后,保存数据并开始分析。
步骤二:检查是否有入侵
对比步骤一中收集的两个数据包,对比依据为防火墙上设定的过滤规则,检查数据是否存在差异。例如,许多防火墙默认禁止所有TCP 23连线埠的Telnet流量。可以尝试从外部网路发起针对内部网路设备的telnet登录。检查Wireshark获取的数据内容,验证数据包是否有发往防火墙。接下来,需要见证防火墙后的Wireshark数据,通过过滤器塞选Telent流量,如果发现有任何Telnet记录,则说明防火墙配置存在严重问题了。
警觉的安全专家需要时刻意识到上述Telnet测试是最最基本的,对生产环境并不会有任何影响,因为当今最複杂的防火墙已经可以轻鬆拒绝传统非安全协定,如Telnet和FTP。儘管如此,既然已经着手测试,上述内容是一个不错的开始。所以,在我们通过Wireshark捕捉两台网路设备的数据包后,现在可以开始着手更深入的包检测方法。
步骤三:限制网路连线埠
在开启Wireshark一段时间后,停止捕捉并将档案保存为PCAP档案格式。如果两个捕捉点之间有任何网际网路信息数据传输,那幺数据包的数量将很快达到上千个。
大多数企业需要某种类型的网站展示,主要有两种可能性:业务需要Web伺服器,而且伺服器通常要开放TCP 80连线埠。由于通过80连线埠的HTTP流量无须任何验证,许多攻击者操作HTTP报文作为通过防火墙的方法,并以此窃取重要数据。简单来说。HTTP是大多数防火墙允许通过并直接放行的报文,所以攻击者会将攻击信息捎带在正常的数据报文中,作为获得某些授权的方式。