摘要 本文较全面地介绍了存在于计算机 网络中的各种安全 漏洞,描述了 黑客攻击 网络的步骤与方法,试图通过分析利用 网络漏洞进行 网络攻击的原理,发现有效的 网络安全防护措施。
四年前,病毒开始攻击 网络漏洞,并逐渐成为现今 网络上最可怕的安全威胁。引发 网络攻击的一个最重要的原因就是在计算机中存着大大小小,花样百出的 漏洞,它们很容易被人利用来进行 网络的攻击。2003年由《资源》杂志评选出的危害最大的,包括冲击波、恶邮差在内的10种病毒,均是利用 网络的 漏洞进行攻击。从 技术上讲,我们很难彻底清除这些 漏洞,也无法杜绝发生在 网络中各种各样的攻击行为。但可以通过对 网络漏洞的分析,找出有效的防护措施,提高 网络的安全,减少 网络漏洞带来的危害。那么 漏洞究竟是什么呢?究竟有哪些 漏洞,利用它们进行攻击的原理是什么?如何才能消除其危害?下面将就这些问题进行讨论。
关于 网络漏洞,目前还没有一个准确统一的定义。有学者从访问控制的角度出发,认为:当对系统的各种操作与系统的安全策略发生冲突时,就产生了安全 漏洞。也有专家认为:计算机系统是由若干描述实体配置的当前状态所组成,可分为授权状态和非授权状态、易受攻击状态和不易受攻击状态, 漏洞就是状态转变过程中能导致系统受损的易受攻击状态的特征。以上两种观点,都是从各自的专业角度对 网络漏洞进行描述,并没有给出一个全面的准确的定义。一个较为通俗的 网络漏洞的描述性定义是:存在于计算机 网络系统中的、可能对系统中的组成和 数据造成损害的一切因素。
网络漏洞的种类数不胜数,人们多根据其产生的原因、存在的位置和利用 漏洞攻击的原理来进行分类。分类情况可见表1:
网络中有许多的 漏洞都是由于设计人员和程序员的疏忽或失误及对 网络环境的不熟悉造成的。进行 网络开发时,许多设计开发者并不重视 网络的安全情况,也不完全了解程序的内部工作机理,致使程序不能适应所有的 网络环境,造成 网络功能与安全策略发生冲突,最终导致 漏洞的产生。另有一部分 漏洞则是 网络用户刻意为之的。 网络管理员为了更好地监管和控制 网络,往往预留秘密通道,以保证对 网络的绝对控制。而部分 网络用户或 黑客也许会出于好奇而在 网络中秘密种下木马、逻辑炸弹或是陷门。
网络中的 漏洞可以存在于硬件和软件中,但更多还是以软件 漏洞的形式存在。无论是 网络应用软件,还是单机应用软件,都广泛隐藏有 漏洞。 网络中的 聊天软件如QQ,文件传输软件如FlashFXP、CuteFTP,浏览器软件如IE,单机中的办公软件如MS Word,这些应用软件中都存在着可导致泄密和招致 网络攻击的 漏洞。在各种操作系统中也同样存在着大量 漏洞,如:Windows系统中存在RPC远程任意代码执行 漏洞等,RedHat中存在可通过远程溢出获得root权限的 漏洞等,各种版本的Unix系统中同样存在着大量可导致缓冲器溢出的 漏洞等。在Internet中提供 服务的各种 服务器中, 漏洞存在的情况和招致的危害更是严重。无论是Web 服务器、FTP 服务器、邮件 服务器,还是 数据库 服务器和流媒体 服务器都存在着可导致 网络攻击的安全 漏洞。脚本语言的设计缺陷和使用不规范,更是令因特网的安全状况雪上加霜。
拒绝 服务攻击(DoS:Denail of Service)是一种针对TCP/IP协议 漏洞的一种 网络攻击手段,其原理是利用DoS工具向目标主机发送海量的 数据包,消耗 网络的带宽和目标主机的资源,造成目标主机网段阻塞,致使 网络或系统负荷过载而停止向用户提供 服务。常见的拒绝 服务攻击方法有SYN Flood攻击、Smurf、UDP洪水、Land攻击、死亡之Ping、电子邮件炸弹等。目前影响最大、危害最深的是分布式DoS攻击。它利用多台已被攻击者控制的计算机对某一台计算机进行攻击,很容易导致被攻击主机系统瘫痪。对DoS攻击的防护措施主要是设置防火墙,关闭外部路由器和防火墙的广播地址,利用防火墙过滤掉UDP应答消息和丢弃ICMP包,尽量关闭不必要的TCP/IP 服务。
3.2缓冲区溢出攻击原理
简单地说,缓冲区溢出的原因是向一个有限的缓冲区复制了超长的字符串,结果覆盖了相邻的存储单元。这种覆盖往往会导致程序运行的失败,甚至是死机或是系统的重启。另外, 黑客利用这样的 漏洞可以执行任意的指令,掌握系统的操作权。缓冲区溢出 漏洞广泛存在于应用软件和操作系统中,其危害是非常巨大的,但一直以来并没有引起系统和软件开发者足够的重视。要防止缓冲区溢出攻击,首要的是堵住 漏洞的源头,在程序设计和测试时对程序进行缓冲区边界检查和溢出检测。而对于 网络管理员,必须做到及时发现 漏洞,并对系统进行补丁修补。有条件的话,还应对系统进行定期的升级。
3.3欺骗类攻击的原理
欺骗类攻击主要是利用TCP/IP协议自身的缺陷发动攻击。在 网络中,如果使用伪装的身份和地址与被攻击的主机进行通信,向其发送假报文,往往会导致主机出现错误操作,甚至对攻击主机做出信任判断。这时,攻击者可冒充被信任的主机进入系统,并有机会预留后门供以后使用。根据假冒方式的不同,这种攻击可分为:IP欺骗、DNS欺骗、电子邮件欺骗、原路由欺骗等。下面以IP欺骗攻击为例分析欺骗攻击的过程。在这种攻击中,发动攻击的计算机使用一个伪装的IP地址向目标计算机主机发送 网络请求;当主机收到请求后,会使用系统资源提供 网络连接 服务,并回复确认信息;但由于IP地址是假的,主机不可能得到回应,这种情况下,主机将会继续重复发送确认信息。尽管操作系统规定了回复的次数和超时的时间,但完成多次回复仍要占用主机资源较长时间,严重降低主机的工作效率。例如WindowsNT系统在缺省回复次数下,从建立连接到资源的释放大约用时190秒。对于解决欺骗类攻击的方法,最好是充分了解主机的系统状况,只启用必用的应用程序和只开放提供 服务所用到的端口。
3.4程序错误攻击原理
在 网络的主机中存在着许多 服务程序错误和 网络协议错误。换句话说就是, 服务程序和 网络协议无法处理所有的 网络通信中所面临的问题。人们利用这些错误,故意向主机发送一些错误的 数据包。对于主机来说,往往不能正确处理这些 数据包,这会导致主机的CPU资源全部被占用或是死机。 服务程序存在错误的情况很多,多种操作系统的 服务程序都存在。例如WinNT系统中的RPC 服务就存在着多种 漏洞,其中危害最大的要数RPC接口远程任意代码可执行 漏洞,非常流行的冲击波病毒就是利用这个 漏洞编制的。对付这类 漏洞的方法是尽快安装 漏洞的补丁程序,在没有找到补丁之前,应先安装防火墙,视情况切断主机应用层 服务,即禁止从主机的所有端口发出和接收 数据包。
3.5后门攻击原理
通常 网络攻击者在获得一台主机的控制权后,会在主机上建立后门,以便下一次入侵时使用。后门的种类很多,有登陆后门、 服务后门、库后门、口令破解后门等。这些后门多数存在于Unix系统中。目前,建立后门常用的方法是在主机中安装木马程序。攻击者利用欺骗的手段,通过向主机发送电子邮件或是文件,并诱使主机的操作员打开或运行藏有木马程序的邮件或文件;或者是攻击者获得控制权后,自己安装木马程序。对付后门攻击的方法是经常检测系统的程序运行情况,及时发现在运行中的不明程序,并用木马专杀工具进行查杀木马。
前面对利用 网络漏洞进行攻击的基本原理作了简单的介绍。但 网络攻击的方法千变万化,尽管可以对 网络攻击从原理上进行分类,但在 网络攻击的具体实例中,有时又很难简单地将其归于某一类的攻击。例如,利用ping命令向一台主机发送超过65535的Echo Request 数据包,目标主机就会因缓冲区溢出而拒绝继续提供 服务,既可以将这种攻击看作是拒绝 服务攻击,也可以视为缓冲区溢出攻击。正是由于 网络漏洞种类繁多,攻击方法也多种多样,很难对 网络攻击的具体实例进行一一分析,所以下面将以DoS攻击为例,对 网络攻击的步骤和方法作进一步的介绍。
Dos攻击是 网络攻击中常见的,也是危害比较大的一种,其攻击的手法多样。在拒绝 服务攻击中,利用Windows操作系统中的RPC 服务漏洞进行攻击是一种常见的拒绝 服务攻击。 漏洞存在于Windows系统的DCE-RPC堆栈中,远程攻击者可以连接TCP135端口,向其发送畸形 数据,可导致RPC 服务的关闭,进而引起系统停止对新的RPC请求进行响应,产生拒绝 服务。由于系统的许多 服务都依赖于RPC 服务,这就使得系统变得极不稳定,许多正常的操作无法进行,甚至造成系统的频繁重新启动。
实现这种攻击的方法较为容易,也不需要太多的专业知识,但造成的危害却不小。一般情况下,攻击者会利用stan、nMap、X-scan等工具扫描 网络中的计算机,获得被攻击主机的IP地址和相关端口信息,有的攻击者甚至不利用扫描工具,直接猜测一个IP地址发动攻击。获得相应信息后,攻击者会利用dcom.exe程序进行攻击。在DOS状态下,输入dcom.exe IP地址,然后确认。这时攻击主机没有任何提示,但被攻击主机如果存在这一 漏洞,将出现一个系统对话框提示svchost.exe程序错误,继而出现关机对话框,关机消息为Remote Procedure Cal(RPC) 服务意外终止,60秒后系统重新启动。这样对方主机只要利用RPC 服务,系统就会重新启动,也就无法使用 网络资源。
若遭受RPC 服务DoS攻击,应首先断开 网络并采用手工的防范措施。依次打开计算机“控制面板”—“管理工具”—“计算机管理”图标,展开管理界面左侧的“ 服务和应用程序”项中的“ 服务”选项,从界面右侧找到Remote Procedure Call(RPC) 服务,单击鼠标右键,选择“属性”,打开属性面板,选择其中的“恢复”标签,将失败后计算机反应选项全部改为“不操作”,如图1所示。虽然经过手工设置之后,计算机不再重新启动,但主机的一些正常功能也被破坏,因此还需要给系统打上微软提供的安全补丁才行。
图1
通过对RPC 服务DoS攻击的分析,可大体了解 网络攻击的步骤。事实上,尽管 网络攻击的方法和原理各不相同,但其发动攻击的步骤是基本一致的,通常都是采用以下4个步骤:
1) 确定攻击目标的位置;
2) 利用公开协议和工具通过端口扫描、 网络监听收集目标的系统类型、提供的 服务等信息;
3) 利用自编入侵程序或公开的工具扫描分析系统的安全 漏洞;
通过对 网络漏洞攻击原理和攻击步骤的分析,可以知道:要防止或减少 网络漏洞的攻击,最好的方法是尽力避免主机端口被扫描和监听,先于攻击者发现 网络漏洞,并采取有效措施。提高 网络系统安全的方法主要有:
1) 在安装操作系统和应用软件之后及时安装补丁程序,并密切关注国内外著名的安全站点,及时获得最新的 网络漏洞信息。在使用 网络系统时,要设置和保管好账号、密码和系统中的日志文件,并尽可能的做好备份工作。
2) 及时安装防火墙,建立安全屏障。防火墙可以尽可能屏蔽内部 网络的信息和结构,降低来自外部 网络的攻击。对个人用户而言,现在的个人防火墙还有探测扫描、攻击,并 自动防御和追踪的功能。例如金山毒霸和瑞星防火墙就具有扫描 网络漏洞的功能,而蓝盾防火墙则设计了 自动反扫描的机制,外部的扫描将找不到任何端口。
3) 利用系统工具和专用工具防止端口扫描。要利用 网络漏洞攻击,必须通过主机开放的端口。因此, 黑客常利用Satan、Netbrute、SuperScan等工具进行端口扫描。防止端口扫描的方法:一是在系统中将特定的端口关闭,如利用Win系统中的TCP/IP属性设置功能,在“高级TCP/IP设置”的“选项”面板中,关闭TCP/IP协议使用的端口;二是利用PortMapping等专用软件,对端口进行限制或是转向。
4) 通过加密、 网络分段、划分虚拟局域网等 技术防止 网络监听。
5) 利用密罐 技术,使 网络攻击的目标转移到预设的虚假对象,从而保护系统的安全。
5 小结
随着计算机和 网络技术在各个领域的迅速普及与广泛应用, 网络漏洞的种类越来越层出不穷。文中对 网络漏洞的描述难以完全概括 网络中存在的 漏洞,对 网络漏洞的分析也有不完善和不准确之处。另外,文中介绍的防止 网络攻击的方法尽管简单,但在实践中还是很有用处的,希望对大家有所帮助。
参考文献:
[1] 单国栋等.计算机 漏洞分类研究.计算机工程[J],2002.10,第28卷(第10期):第3页
[2] 濮青.基于 网络拒绝 服务攻击的 技术分析与安全策略.计算机应用研究[J],2003年第三期:第71页
[3] 蒋卫华等.缓冲区溢出攻击:原理,防御及检测.计算机工程[J],2003年6月,第29卷(第10期):第5页
[4] 冯文波.Internet上的 网络漏洞及安全维护技巧.计算机与数学工程[J],第31卷(2003)第2期:第57页
[5] 杨义先等. 网络安全理论与 技术[M].北京:人民邮电出版社,2003年10月
[6] 金山毒霸网站:http://db.kingsoft.com/ |