目标主机系统弱点_第1页
目标主机系统弱点_第2页
目标主机系统弱点_第3页
目标主机系统弱点_第4页
目标主机系统弱点_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二篇 网络攻击篇第第5 5章章 目标主机的系统弱点挖掘技术目标主机的系统弱点挖掘技术第第5章章 目标主机的系统弱点挖掘技术目标主机的系统弱点挖掘技术 o系统弱点指的是系统难以克服的错误或缺陷和系统弱点指的是系统难以克服的错误或缺陷和安全漏洞。安全漏洞。o漏洞则是指任意的允许非法用户未经授权获得漏洞则是指任意的允许非法用户未经授权获得访问或提高其访问层次的访问或提高其访问层次的硬件或软件特征。硬件或软件特征。o网络攻防都是通过搜集目标系统信息并从中挖网络攻防都是通过搜集目标系统信息并从中挖掘系统和应用服务程序的掘系统和应用服务程序的弱点弱点来实现的,网络来实现的,网络攻击主要利用了系统提供网络

2、服务中的脆弱性。攻击主要利用了系统提供网络服务中的脆弱性。第5章 目标主机的系统弱点挖掘技术o5.1 系统弱点可造成的危害系统弱点可造成的危害o5.2 系统弱点的分类系统弱点的分类o5.3 系统的主要漏洞分类系统的主要漏洞分类o5.4 几种常见漏洞的分析几种常见漏洞的分析o5.5 漏洞库及其使用漏洞库及其使用o5.6 弱点挖掘的过程与方法弱点挖掘的过程与方法o5.7 获取系统弱点的工具获取系统弱点的工具o5.8 实验:漏洞扫描实验:漏洞扫描5.1系统弱点可造成的危害系统弱点可造成的危害 1、系统的完整性、系统的完整性(integrity) 攻击者可以利用系统弱点入侵系统,攻击者可以利用系统弱点

3、入侵系统,对系统数据进行非法篡改,达到破坏数对系统数据进行非法篡改,达到破坏数据完整性的目的。据完整性的目的。 5.1系统弱点可造成的危害系统弱点可造成的危害 2、系统的可用性、系统的可用性(availability) 攻击者利用系统弱点破坏系统或者网攻击者利用系统弱点破坏系统或者网络的正常运行,导致信息或网络服务不络的正常运行,导致信息或网络服务不可用,可用,合法用户的正常服务合法用户的正常服务要求得不到要求得不到满足。满足。5.1系统弱点可造成的危害系统弱点可造成的危害3、系统的机密性、系统的机密性(confidentiality) 攻击者利用系统弱点给非授权的个人攻击者利用系统弱点给非授

4、权的个人和实体泄漏受保护信息。有些时候,机密和实体泄漏受保护信息。有些时候,机密性和完整性是交叠的。性和完整性是交叠的。5.1系统弱点可造成的危害系统弱点可造成的危害4、系统的可控性、系统的可控性(controllability) 攻击者利用系统弱点对授权机构控攻击者利用系统弱点对授权机构控制信息的完整控制权造成危害。制信息的完整控制权造成危害。5.1系统弱点可造成的危害系统弱点可造成的危害5、系统的可靠性、系统的可靠性(reliability) 攻击者利用系统弱点对用户认可的质攻击者利用系统弱点对用户认可的质量特性(信息传递的迅速性、准确性以及量特性(信息传递的迅速性、准确性以及连续地转移等

5、)造成危害。连续地转移等)造成危害。5.2 系统弱点的分类系统弱点的分类o5.2.1 设计上的缺陷设计上的缺陷o5.2.2 操作系统的弱点操作系统的弱点o5.2.3 软件的错误、缺陷和漏洞软件的错误、缺陷和漏洞o5.2.4 数据库的弱点数据库的弱点o5.2.5 网络安全产品的弱点网络安全产品的弱点o5.2.6 用户的管理的疏忽用户的管理的疏忽5.2.1 设计上的缺陷设计上的缺陷 在进行软硬件及协议、安全策略设计时,难在进行软硬件及协议、安全策略设计时,难免会有免会有考虑不周考虑不周的地方,这就使得软硬件和协议的地方,这就使得软硬件和协议在结构、功能等方面存在缺陷和疏漏;在结构、功能等方面存在缺

6、陷和疏漏; 即使有些软硬件和协议在设计时没有漏洞,即使有些软硬件和协议在设计时没有漏洞,随着随着新的需求新的需求不断增加,不断增加,使用场合使用场合不断变化,也不断变化,也很可能会出现不能适应新环境、新需求的缺陷和很可能会出现不能适应新环境、新需求的缺陷和漏洞。漏洞。 比如,比如,TCP/IP在设计时就没有太多地考虑在设计时就没有太多地考虑安全问题,使得现在它显得越来越脆弱。再比如安全问题,使得现在它显得越来越脆弱。再比如加密算法的设计加密算法的设计等等。等等。5.2.2 操作系统的弱点操作系统的弱点o现在的操作系统,无论是现在的操作系统,无论是Windows,还是,还是Unix、Linux,

7、都存在着漏洞。,都存在着漏洞。o这些漏洞,有的是因为设计时这些漏洞,有的是因为设计时考虑不周考虑不周,有的是因为代码,有的是因为代码的编写有的编写有Bug,还有的是因为在,还有的是因为在权限管理和系统保密权限管理和系统保密等方等方面不够完善。无论是哪一种,都对系统的安全构成很大威面不够完善。无论是哪一种,都对系统的安全构成很大威胁。胁。5.2.3 软件的错误、缺陷和漏洞软件的错误、缺陷和漏洞o软件在编写过程中,总难免有软件在编写过程中,总难免有Bug。比如在。比如在内内存分配、变量赋值、出错处理存分配、变量赋值、出错处理等方面,在正常等方面,在正常使用情况下,不会出问题,但若随意分配内存、使用

8、情况下,不会出问题,但若随意分配内存、任意赋值,系统就可能因任意赋值,系统就可能因资源耗尽、缓冲区溢资源耗尽、缓冲区溢出出等原因瘫痪或崩溃。等原因瘫痪或崩溃。5.2.3 软件的错误、缺陷和漏洞软件的错误、缺陷和漏洞 软件的弱点例如:软件的弱点例如:操作系统弱点操作系统弱点 缓冲区溢出漏洞、轻易泄露操作系统信息、默认的用户缓冲区溢出漏洞、轻易泄露操作系统信息、默认的用户名和口令或使用简单的口令、隐蔽通道,特洛伊木马;名和口令或使用简单的口令、隐蔽通道,特洛伊木马;系统服务弱点系统服务弱点 www服务弱点、服务弱点、RPC(远程过程调用远程过程调用)漏洞、漏洞、ftp服务漏服务漏洞、洞、TCP/I

9、P通信协议弱点、软件老化。通信协议弱点、软件老化。5.2.4 数据库的弱点数据库的弱点o数据库作为数据的存储和管理系统,在进数据库作为数据的存储和管理系统,在进行行数据库设计数据库设计时,在数据库系统进行时,在数据库系统进行代码代码实现实现时,在时,在用户对数据库进行配置和使用用户对数据库进行配置和使用时,都有可能出现疏漏和错误时,都有可能出现疏漏和错误.o而数据库系统存放的数据往往比计算机系而数据库系统存放的数据往往比计算机系统本身的价值大得多,因此,数据库的安统本身的价值大得多,因此,数据库的安全问题不容忽视。全问题不容忽视。5.2.4数据库的弱点数据库的弱点 数据库弱点举例数据库弱点举例

10、 现在多数数据库将原始数据以现在多数数据库将原始数据以明文明文形式存储形式存储于数据库中,这是不够安全的,于数据库中,这是不够安全的,如果是重要数据,应该考虑使用密文的如果是重要数据,应该考虑使用密文的形式存储。一些数据库缺乏这方面的考形式存储。一些数据库缺乏这方面的考虑,没有相应的安全机制。虑,没有相应的安全机制。 5.2.5 网络安全产品的弱点网络安全产品的弱点网络安全产品在很大程度上提高了网络系统的安全性,网络安全产品在很大程度上提高了网络系统的安全性,但不可否认这些安全产品中同样存在着弱点。但不可否认这些安全产品中同样存在着弱点。如果网络安全产品如果网络安全产品本身存在安全漏洞本身存在

11、安全漏洞,那么不仅不能,那么不仅不能保障网络安全,反而给人以安全的假象。保障网络安全,反而给人以安全的假象。系统管理员要了解网络安全产品的弱点,并针对其特系统管理员要了解网络安全产品的弱点,并针对其特点进行合理选择、正确配置才能发挥安全产品的有效点进行合理选择、正确配置才能发挥安全产品的有效作用。作用。5.2.6 用户的管理的疏忽用户的管理的疏忽 这是一种常见的情况。虽然这种情况的发生往往是这是一种常见的情况。虽然这种情况的发生往往是由于人为的原因,但这种疏漏却非常普遍。管理人员疏由于人为的原因,但这种疏漏却非常普遍。管理人员疏忽,安全防范意识不强,或管理人员能力低下,都可能忽,安全防范意识不

12、强,或管理人员能力低下,都可能成为管理上的漏洞。成为管理上的漏洞。 比如因管理人员疏忽大意,造成口令的泄漏、重要比如因管理人员疏忽大意,造成口令的泄漏、重要的资料被偷窃,或因管理人员水平较低,造成系统配置的资料被偷窃,或因管理人员水平较低,造成系统配置错误等。错误等。 大量攻击事件表明,一个网络系统被攻破,不是由于大量攻击事件表明,一个网络系统被攻破,不是由于技术原因,而是因为技术原因,而是因为管理上存在着弱点管理上存在着弱点。比如用户的安。比如用户的安全理念不强,或是员工蓄意破坏等。全理念不强,或是员工蓄意破坏等。5.3 系统的主要漏洞分类系统的主要漏洞分类o5.3.1 根据漏洞被攻击者利用

13、的方式根据漏洞被攻击者利用的方式 分类分类o5.3.2 根据漏洞所指目标分类根据漏洞所指目标分类o5.3.3 根据漏洞导致的直接威胁分类根据漏洞导致的直接威胁分类o5.3.4 根据漏洞对系统安全性造成的根据漏洞对系统安全性造成的 损害分类损害分类5.3系统的主要漏洞分类系统的主要漏洞分类 漏洞漏洞是指系统硬件、操作系统、软件、网络协是指系统硬件、操作系统、软件、网络协议、数据库等在设计上、实现上出现的可以被攻击议、数据库等在设计上、实现上出现的可以被攻击者利用的者利用的错误、缺陷和疏漏错误、缺陷和疏漏。 通俗一点说,漏洞就是可以被攻击者利用的通俗一点说,漏洞就是可以被攻击者利用的系系统弱点统弱

14、点。没有漏洞就不会有成功的入侵和攻击,但。没有漏洞就不会有成功的入侵和攻击,但没有漏洞的系统是不存在的。没有漏洞的系统是不存在的。 至少到现在为止,没有哪个操作系统和软件的至少到现在为止,没有哪个操作系统和软件的生产者敢说自己的产品没有漏洞,事实上,主要的生产者敢说自己的产品没有漏洞,事实上,主要的操作系统和软件都发现有漏洞,有的还很严重。操作系统和软件都发现有漏洞,有的还很严重。 5.3系统的主要漏洞分类系统的主要漏洞分类 漏洞形成的漏洞形成的主要原因分类主要原因分类:输入验:输入验证错误、缓冲区溢出、设计错误、意外证错误、缓冲区溢出、设计错误、意外情况处置错误、访问验证错误、配置错情况处置

15、错误、访问验证错误、配置错误、竞争条件、环境错误、其他等。误、竞争条件、环境错误、其他等。5.3.1根据漏洞被攻击者利用的方式分类根据漏洞被攻击者利用的方式分类本地(本地(local)攻击漏洞)攻击漏洞:要想利用此类漏洞,:要想利用此类漏洞,攻击者必须是系统的本地合法用户或已经通过攻击者必须是系统的本地合法用户或已经通过其他攻击方法获得了本地权限的非法用户。其他攻击方法获得了本地权限的非法用户。 远程(远程(remote)攻击漏洞)攻击漏洞:利用此类漏洞,:利用此类漏洞,攻击者可通过网络,对连接在网络上的远程主攻击者可通过网络,对连接在网络上的远程主机进行攻击。机进行攻击。5.3.2 根据漏洞

16、所指目标分类根据漏洞所指目标分类 漏洞所指目标漏洞所指目标或者说是漏洞存在的位置,比如是硬或者说是漏洞存在的位置,比如是硬件本身存在问题,还是操作系统或者某个应用服务存在件本身存在问题,还是操作系统或者某个应用服务存在问题。问题。 从这个角度可以分成:操作系统、网络协议栈、非服从这个角度可以分成:操作系统、网络协议栈、非服务器程序、服务器程序、硬件、通信协议、口令恢复和务器程序、服务器程序、硬件、通信协议、口令恢复和其他。其他。5.3.3 根据漏洞导致的直接威胁分类根据漏洞导致的直接威胁分类 漏洞导致的最直接的威胁是指攻击漏洞导致的最直接的威胁是指攻击者利用此类漏洞可以获得的最直接的者利用此类

17、漏洞可以获得的最直接的非非法权限或者攻击效果法权限或者攻击效果。据此,系统安全。据此,系统安全漏洞可以归为以下几类。漏洞可以归为以下几类。5.3.3 根据漏洞导致的直接威胁分类根据漏洞导致的直接威胁分类普通用户访问权限普通用户访问权限:攻击者可以获得系统的普:攻击者可以获得系统的普通用户存取权限,通常是利用服务器的某些漏通用户存取权限,通常是利用服务器的某些漏洞。洞。本地管理员权限本地管理员权限:已有本地用户权限的攻击者:已有本地用户权限的攻击者通过攻击本地某些有缺陷的通过攻击本地某些有缺陷的SUID程序,得到程序,得到系统管理员权限。系统管理员权限。远程管理员权限远程管理员权限:攻击者不需要

18、本地用户权限:攻击者不需要本地用户权限可直接获得远程系统的管理员权限,通常是通可直接获得远程系统的管理员权限,通常是通过以过以root身份执行有缺陷的系统守护进程而获身份执行有缺陷的系统守护进程而获得。得。5.3.3 根据漏洞导致的直接威胁分类根据漏洞导致的直接威胁分类权限提升权限提升:攻击者在本地通过攻击某些有缺陷:攻击者在本地通过攻击某些有缺陷的程序,把自己的普通权限提升为管理员权限。的程序,把自己的普通权限提升为管理员权限。本地拒绝服务本地拒绝服务:攻击者使系统本身或应用程序:攻击者使系统本身或应用程序不能正常运转或者正常提供服务。不能正常运转或者正常提供服务。远程拒绝服务远程拒绝服务:

19、攻击者利用此类漏洞对远程系:攻击者利用此类漏洞对远程系统发起拒绝服务攻击,使系统或相关的应用程统发起拒绝服务攻击,使系统或相关的应用程序崩溃或失去响应能力。序崩溃或失去响应能力。5.3.3 根据漏洞导致的直接威胁分类根据漏洞导致的直接威胁分类读取受限文件读取受限文件:攻击者通过利用某些漏洞,读:攻击者通过利用某些漏洞,读取系统中自己没有权限读取的文件。取系统中自己没有权限读取的文件。远程非授权文件存取远程非授权文件存取:攻击者可以不经授权地:攻击者可以不经授权地从远程存取系统的某些文件。从远程存取系统的某些文件。口令恢复口令恢复:攻击者很容易分析出口令的加密方:攻击者很容易分析出口令的加密方法

20、,从而通过某种方法得到密码,然后通过密法,从而通过某种方法得到密码,然后通过密码还原出明文。码还原出明文。5.3.3 根据漏洞导致的直接威胁分类根据漏洞导致的直接威胁分类欺骗欺骗:攻击者对目标系统实施某种形式的欺:攻击者对目标系统实施某种形式的欺骗。骗。信息泄露信息泄露: 攻击者收集有利于进一步攻击的攻击者收集有利于进一步攻击的目标系统信息。目标系统信息。 其他其他5.3.4根据漏洞对系统安全性造成的损害分类根据漏洞对系统安全性造成的损害分类 根据漏洞对系统的安全性造成的危害可分根据漏洞对系统的安全性造成的危害可分为有效性、隐密性、完整性、安全保护。为有效性、隐密性、完整性、安全保护。 其中安

21、全保护还可分为:获得超级用户权其中安全保护还可分为:获得超级用户权限、获得普通用户权限、获得其他用户权限。限、获得普通用户权限、获得其他用户权限。5.3.4 根据漏洞对系统安全性造成的损害分类根据漏洞对系统安全性造成的损害分类 系统安全漏洞根据其对系统造成的潜在威胁以及被利系统安全漏洞根据其对系统造成的潜在威胁以及被利用的可能性可将各种系统安全漏洞进行分级。用的可能性可将各种系统安全漏洞进行分级。高级别高级别:大部分远程和本地管理员权限漏洞属于:大部分远程和本地管理员权限漏洞属于“高高”级级别;别;中级别中级别:大部分普通用户权限、权限提升、读取受限文件、:大部分普通用户权限、权限提升、读取受

22、限文件、远程和本地拒绝服务漏洞属于远程和本地拒绝服务漏洞属于“中中”级别;级别;低级别低级别:大部分远程非授权文件存取、口令恢复、欺骗、:大部分远程非授权文件存取、口令恢复、欺骗、信息泄露漏洞属于信息泄露漏洞属于“低低”级别。但这只是一般情况,具体级别。但这只是一般情况,具体情况还需要具体分析。情况还需要具体分析。5.4 几种常见漏洞的分析几种常见漏洞的分析1. 缓冲区溢出缓冲区溢出2. 拒绝服务攻击漏洞拒绝服务攻击漏洞3. 权限提升漏洞权限提升漏洞4. 远程命令执行漏洞远程命令执行漏洞5. 文件泄漏、信息泄漏漏洞文件泄漏、信息泄漏漏洞6. 其他类型的漏洞其他类型的漏洞1. 缓冲区溢出 缓冲区

23、溢出漏洞缓冲区溢出漏洞是很典型的一类漏洞,现有的漏洞很多是很典型的一类漏洞,现有的漏洞很多都可以归为此类。对于存在此漏洞的系统,攻击者通过都可以归为此类。对于存在此漏洞的系统,攻击者通过往程往程序的缓冲区写超出其长度的内容序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。目的。 如如NSFOCUS安全小组发现微软安全小组发现微软FrontPage 2000 服务器扩展软件包中的一个程序存在一个缓冲区溢出漏洞。服务器扩展软件包中的一个程序存在一个缓冲区溢出漏洞。远

24、程攻击者可能利用这个漏洞执行任意代码。远程攻击者可能利用这个漏洞执行任意代码。缓冲区溢出o在当前网络与分布式系统安全中,被广泛利用的在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是以上都是缓冲区溢出,其中最著名的例子是1988年利年利用用fingerd漏洞的蠕虫。漏洞的蠕虫。o而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致让其跳转到任意地址,带来的危害一种是程序

25、崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到比如得到shell,然后为所欲为。,然后为所欲为。缓冲区溢出o如果把一加仑的水注入容量为一品脱的容量中,水会四如果把一加仑的水注入容量为一品脱的容量中,水会四处冒出,这时你就会充分理解溢出的含义。处冒出,这时你就会充分理解溢出的含义。o同样的道理,在计算机内部,如果你向一个容量有限的同样的道理,在计算机内部,如果你向一个容量有限的内存空间里存储过量数据,这时数据也会溢出存储空间。内存空间里存储过量数据,这时数据也会溢出存储空间。o输入数据通常被存放在一个临时空间内,输入数据通常被存放

26、在一个临时空间内,这个临时存放这个临时存放空间被称为缓冲区空间被称为缓冲区,缓冲区的长度事先已经被程序或者,缓冲区的长度事先已经被程序或者操作系统定义好了。操作系统定义好了。 缓冲区溢出o缓冲区溢出缓冲区溢出是指当计算机程序向缓冲区内填充的数据位是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。据上。o理想情况是,程序检查数据长度并且不允许输入超过缓理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配

27、的存储空间相匹配,这就为缓冲区溢出度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。埋下隐患。o操作系统所使用的缓冲区又被称为操作系统所使用的缓冲区又被称为堆栈堆栈,在各个操作进,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。冲区溢出。 缓冲区溢出o当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容

28、都被覆盖或者破坏掉。可见一小部分数据或者一套指令的内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。溢出就可能导致一个程序或者操作系统崩溃。 o缓冲区溢出是由编程错误引起的。如果缓冲区被写满,而程序没缓冲区溢出是由编程错误引起的。如果缓冲区被写满,而程序没有去检查缓冲区边界,也没有停止接收数据,这时缓冲区溢出就有去检查缓冲区边界,也没有停止接收数据,这时缓冲区溢出就会发生。缓冲区边界检查被认为是不会有收益的管理支出,计算会发生。缓冲区边界检查被认为是不会有收益的管理支出,计算机资源不够或者内存不足是编程者不编写缓冲区边界检查语句的机资源不够

29、或者内存不足是编程者不编写缓冲区边界检查语句的理由。理由。 缓冲区溢出o缓冲区溢出之所以泛滥,是由于开放源代码程序的本质决定的。缓冲区溢出之所以泛滥,是由于开放源代码程序的本质决定的。一些编程语言对于缓冲区溢出是具有免疫力的,例如一些编程语言对于缓冲区溢出是具有免疫力的,例如Perl能够自能够自动调节字节排列的大小,动调节字节排列的大小,Ada95能够检查和阻止缓冲区溢出。能够检查和阻止缓冲区溢出。o但是被广泛使用的但是被广泛使用的C语言却没有建立检测机制。标准语言却没有建立检测机制。标准C语言具有许语言具有许多复制和添加字符串的函数,这使得标准多复制和添加字符串的函数,这使得标准C语言很难进

30、行边界检查。语言很难进行边界检查。C略微好一些,但是仍然存在缓冲区溢出。一般情况下,覆盖略微好一些,但是仍然存在缓冲区溢出。一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误,但是,其他数据区的数据是没有意义的,最多造成应用程序错误,但是,如果输入的数据是经过如果输入的数据是经过“黑客黑客”或者病毒精心设计的,覆盖缓冲或者病毒精心设计的,覆盖缓冲区的数据恰恰是区的数据恰恰是“黑客黑客”或者病毒的入侵程序代码,一旦多余字或者病毒的入侵程序代码,一旦多余字节被编译执行,节被编译执行,“黑客黑客”或者病毒就有可能为所欲为,获取系统或者病毒就有可能为所欲为,获取系统的控制权。的控制权。

31、 缓冲区溢出o 尽管缓冲区溢出也会发生在非尽管缓冲区溢出也会发生在非C/C+语言上,但考语言上,但考虑到各种语言的运用程度,我们可以在某种程度上说,虑到各种语言的运用程度,我们可以在某种程度上说,缓冲区溢出是缓冲区溢出是C/C+的专利。的专利。o如果你在一个用如果你在一个用VB写的程序里面找溢出漏洞,你将会写的程序里面找溢出漏洞,你将会很出名。在很出名。在C/C+这两种使用非常广泛的语言里面,这两种使用非常广泛的语言里面,并没有边界来检查数组和指针的引用并没有边界来检查数组和指针的引用,这样做的目的是,这样做的目的是为了提高效率,而不幸的是,这也留下了严重的安全问为了提高效率,而不幸的是,这也

32、留下了严重的安全问题。先看下面一段简单的代码:题。先看下面一段简单的代码:缓冲区溢出o#includevoid main() char buf8; gets(buf);程序运行的时候,如果你输入程序运行的时候,如果你输入“Hello”,或者,或者“Kitty”,那么一切正常,但是如果输入,那么一切正常,但是如果输入“Today is a good day”,那么我得通知,那么我得通知你,程序发生溢出了。你,程序发生溢出了。缓冲区溢出缓冲区溢出o很显然,很显然,buf这个数组只申请到这个数组只申请到8个字节的内存个字节的内存空间,而输入的字符却超过了这个数目,于是,空间,而输入的字符却超过了这个

33、数目,于是,多余的字符将会占领程序中不属于自己的内存。多余的字符将会占领程序中不属于自己的内存。因为因为C/C+语言并不检查边界,于是,程序语言并不检查边界,于是,程序将看似正常继续运行。将看似正常继续运行。o如果被溢出部分占领的内存并不重要,或者是如果被溢出部分占领的内存并不重要,或者是一块没有使用的内存,那么,程序将会继续看一块没有使用的内存,那么,程序将会继续看似正常的运行到结束。但是,如果似正常的运行到结束。但是,如果溢出部分占溢出部分占领的正好的是存放了程序重要数据的内存领的正好的是存放了程序重要数据的内存,那,那么一切将会不堪设想。么一切将会不堪设想。 缓冲区溢出缓冲区溢出o缓冲区

34、溢出是病毒编写者和特洛伊木马编写者偏爱使用的一种攻击方法。攻击者或缓冲区溢出是病毒编写者和特洛伊木马编写者偏爱使用的一种攻击方法。攻击者或者病毒善于在系统当中发现容易产生缓冲区溢出之处,运行特别程序,获得优先级,者病毒善于在系统当中发现容易产生缓冲区溢出之处,运行特别程序,获得优先级,指示计算机破坏文件,改变数据,泄露敏感信息,产生后门访问点,感染或者攻击指示计算机破坏文件,改变数据,泄露敏感信息,产生后门访问点,感染或者攻击其他计算机。其他计算机。 2000年年7月,微软月,微软Outlook以及以及Outlook Express被发现存在漏洞能够使攻击被发现存在漏洞能够使攻击者仅通过发送邮

35、件就能危及目标主机安全,只要邮件头部程序被运行,就会产生缓者仅通过发送邮件就能危及目标主机安全,只要邮件头部程序被运行,就会产生缓冲区溢出,并且触发恶意代码。冲区溢出,并且触发恶意代码。2001年年8月,月,“红色代码红色代码”利用微软利用微软IIS漏洞产漏洞产生缓冲区存溢出,成为攻击企业网络的生缓冲区存溢出,成为攻击企业网络的“罪魁祸首罪魁祸首”。2003年年1月,月,Slammer蠕虫利用微软蠕虫利用微软SQL漏洞产生缓冲区溢出对全球互联网产生冲击。而在近几天,一漏洞产生缓冲区溢出对全球互联网产生冲击。而在近几天,一种名为种名为“冲击波冲击波”的蠕虫病毒利用微软的蠕虫病毒利用微软RPC远程

36、调用存在的缓冲区漏洞对远程调用存在的缓冲区漏洞对Windows 2000/XP、Windows Server 2003进行攻击,波及全球网络系进行攻击,波及全球网络系统。据统。据CERT安全小组称,安全小组称,*作系统中超过作系统中超过50%的安全漏洞都是由内存溢出引起的安全漏洞都是由内存溢出引起的,其中大多数与微软技术有关,这些与内存溢出相关的安全漏洞正在被越来越多的,其中大多数与微软技术有关,这些与内存溢出相关的安全漏洞正在被越来越多的蠕虫病毒所利用。的蠕虫病毒所利用。 缓冲区溢出缓冲区溢出o缓冲区溢出是目前导致缓冲区溢出是目前导致“黑客黑客”型病毒横行的型病毒横行的主要原因。从红色代码到

37、主要原因。从红色代码到Slammer,再到日前再到日前爆发的爆发的“冲击波冲击波”,都是利用缓冲区溢出漏洞,都是利用缓冲区溢出漏洞的典型。缓冲区溢出是一个编程问题,防止利的典型。缓冲区溢出是一个编程问题,防止利用缓冲区溢出发起的攻击,关键在于程序开发用缓冲区溢出发起的攻击,关键在于程序开发者在开发程序时仔细检查溢出情况,不允许数者在开发程序时仔细检查溢出情况,不允许数据溢出缓冲区。此外,用户需要经常登录据溢出缓冲区。此外,用户需要经常登录*作作系统和应用程序提供商的网站,跟踪公布的系系统和应用程序提供商的网站,跟踪公布的系统漏洞,及时下载补丁程序,弥补系统漏洞。统漏洞,及时下载补丁程序,弥补系

38、统漏洞。 Oracle远程缓冲区溢出漏洞远程缓冲区溢出漏洞o发布日期:发布日期:2003年年2月月16日日o受影响系统:受影响系统:Oracle9i Database Release 2Oracle9i Release 1Oracle8i, 8.1.7, 8.0.6详细描述:详细描述: Oracle数据库服务器存在远程缓冲区溢出漏洞。攻击者可以通过使用数据库服务器存在远程缓冲区溢出漏洞。攻击者可以通过使用超长的用户名登录导致基于栈的缓冲区溢出。攻击者可以利用这个漏洞获超长的用户名登录导致基于栈的缓冲区溢出。攻击者可以利用这个漏洞获得用户权限执行任意代码。此漏洞可能危及操作系统和数据库中的敏感数

39、得用户权限执行任意代码。此漏洞可能危及操作系统和数据库中的敏感数据。据。Oracle远程缓冲区溢出漏洞远程缓冲区溢出漏洞o解决方案:解决方案:o请到下列网址下载补丁程序或查阅详细信息。请到下列网址下载补丁程序或查阅详细信息。ohttp:/ 拒绝服务攻击漏洞 拒绝服务攻击漏洞也是一类典型的漏洞。攻击者利用此漏洞拒绝服务攻击漏洞也是一类典型的漏洞。攻击者利用此漏洞进行攻击主要是为了进行攻击主要是为了使服务器资源最终会被耗尽而无法对正常的服使服务器资源最终会被耗尽而无法对正常的服务作出响应。务作出响应。 Windows NT Service Pack 2之前的部分之前的部分Win32K函函数不正确检

40、查输入参数,远程攻击者可以利用这个漏洞对系统进行数不正确检查输入参数,远程攻击者可以利用这个漏洞对系统进行拒绝服务攻击。拒绝服务攻击。 Win32K.sys是是Windows设备驱动程序,用于处理设备驱动程序,用于处理GDI(图形设备接口图形设备接口)服务调用,但是服务调用,但是Service Pack 2之前的系之前的系统不是所有统不是所有Win32K函数对输入参数缺少充分检查,攻击者可以函数对输入参数缺少充分检查,攻击者可以写一程序传递非法参数可以导致写一程序传递非法参数可以导致Win32K函数并导致系统崩溃,函数并导致系统崩溃,也可以利用构建包含也可以利用构建包含ActivX的页面触发此

41、漏洞。的页面触发此漏洞。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段 o一、从一、从DoS到到DDoS 拒绝服务(拒绝服务(Denial of Service,DoS)由来已久。自从有了由来已久。自从有了Internet,就有了拒绝,就有了拒绝服务式攻击方法。由于过去没有大型网站或机服务式攻击方法。由于过去没有大型网站或机构受到过这种攻击,其劣性并不突出。构受到过这种攻击,其劣性并不突出。 直到直到2000年初,年初,Yahoo!、eBay及及Amazon等遭其暗算,它才露出庐山真面目等遭其暗算,它才露出庐山真面目 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o在典型

42、的在典型的Internet连接中,连接中,用户访问一个网站时用户访问一个网站时,客,客户端会先向网站服务器发送一条信息要求建立连接,只户端会先向网站服务器发送一条信息要求建立连接,只有当服务器确认该请求合法,并将访问许可返回给用户有当服务器确认该请求合法,并将访问许可返回给用户时,用户才可对该服务器进行访问。时,用户才可对该服务器进行访问。oDoS攻击的方法是,恶意用户会向服务器发送攻击的方法是,恶意用户会向服务器发送多个连多个连接请求接请求,使其呈满负载状态,并且将所有请求的返回地,使其呈满负载状态,并且将所有请求的返回地址进行址进行伪造伪造。这样,在服务器企图将认证结构返回给用。这样,在服

43、务器企图将认证结构返回给用户时,它将户时,它将无法找到这些用户无法找到这些用户。此时,服务器只好。此时,服务器只好等待等待,有时可能会等上有时可能会等上1分钟才关闭此连接。分钟才关闭此连接。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o可怕的是,可怕的是,在服务器关闭连接后在服务器关闭连接后,攻击者又会,攻击者又会发送新的一批虚假请求,重复上一次过程,直发送新的一批虚假请求,重复上一次过程,直到服务器因过载而拒绝提供服务。到服务器因过载而拒绝提供服务。o这些攻击事件并没有入侵网站,也没有篡改或这些攻击事件并没有入侵网站,也没有篡改或是破坏资料,只是是破坏资料,只是利用程序在瞬间产

44、生大量的利用程序在瞬间产生大量的网络封包网络封包,让对方的网络及主机瘫痪,使正常,让对方的网络及主机瘫痪,使正常使用者无法获得主机及时的服务。使用者无法获得主机及时的服务。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o然而,年初攻击然而,年初攻击Yahoo!的元凶还不是简单的的元凶还不是简单的DoS,虽然与,虽然与DoS攻击一样,也是向被攻击目攻击一样,也是向被攻击目标连续发送大量伪造的标连续发送大量伪造的IP包,以导致服务器不包,以导致服务器不能为合法用户提供正常服务(比如此次给能为合法用户提供正常服务(比如此次给Yahoo!站点路由器发出的无效请求高达站点路由器发出的无效请求

45、高达1GB/s).o但是它区别于但是它区别于DoS的的“绝妙绝妙”之处在于之处在于: 动员动员了大量了大量“无辜无辜”的计算机向目标共同发起进攻,的计算机向目标共同发起进攻,采用了采用了分布式拒绝服务分布式拒绝服务(Distributed Denial of Service,DDoS)攻击手段。)攻击手段。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段oDDoS把把DoS又向前发展了一步,又向前发展了一步,DDoS的行为更为的行为更为自动化,它可以方便地协调从自动化,它可以方便地协调从多台计算机上多台计算机上启动的进程,启动的进程,让一股让一股DoS洪流冲击网络,并使网络因过载而崩

46、溃。洪流冲击网络,并使网络因过载而崩溃。o确切地讲,确切地讲,DDoS攻击是指在不同的高带宽主机上安装攻击是指在不同的高带宽主机上安装大量的大量的DoS服务程序,它们等待来自服务程序,它们等待来自中央客户端中央客户端的命的命令,中央客户端随后通知令,中央客户端随后通知全体受控服务程序全体受控服务程序,并批示它,并批示它们对一个特定目标发送尽可能多的网络访问请求。们对一个特定目标发送尽可能多的网络访问请求。o作为攻击者,必须通过作为攻击者,必须通过telnet连接到他想利用的每一连接到他想利用的每一台远程主机上,并以用户身份登录,然后手工输入命令,台远程主机上,并以用户身份登录,然后手工输入命令

47、,启动每一台主机向攻击目标发送海量信息流。启动每一台主机向攻击目标发送海量信息流。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段oDDoS与与DoS的最大区别是的最大区别是人多力量大人多力量大。原来。原来的的DoS是一台机器攻击目标,现在的是一台机器攻击目标,现在的DDoS是是很多台机器利用他们的高带宽攻击目标,更容很多台机器利用他们的高带宽攻击目标,更容易将目标网站攻掉。易将目标网站攻掉。o除此之外,除此之外,DDoS攻击方式较为攻击方式较为自动化自动化,攻击,攻击者可以把他的程序安装到网络中的多台机器上,者可以把他的程序安装到网络中的多台机器上,所采用的攻击工具致使被攻击对象难

48、以察觉,所采用的攻击工具致使被攻击对象难以察觉,只要攻击者发下攻击命令,这些机器便发起进只要攻击者发下攻击命令,这些机器便发起进攻。攻。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o二、二、DoS的攻击方法的攻击方法 对对DoS而言,其攻击方式很多,主要使用的攻而言,其攻击方式很多,主要使用的攻击有击有3种,分别是种,分别是TCP-SYN flood、UDP flood和和ICMP flood。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o当用户进行一次标准的当用户进行一次标准的TCP连接时,会有一个连接时,会有一个3次握手次握手过程。首先是请求服务方发送一个过程。

49、首先是请求服务方发送一个SYN消息,服务方消息,服务方收到收到SYN后,会向请求方回送一个后,会向请求方回送一个SYN-ACK表示确表示确认,当请求方收到认,当请求方收到SYN-ACK后,再次向服务方发送一后,再次向服务方发送一个个ACK消息,这样,一次消息,这样,一次TCP连接建立成功。连接建立成功。o但是但是TCP-SYN flood在实现过程中只进行前在实现过程中只进行前2个步骤:个步骤:当服务方收到请求方的当服务方收到请求方的SYN-ACK确认消息后,请求方确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到由于采用源地址欺骗等手段使得服务方收不到ACK回回应,于是,服务方会在一

50、定时间处于等待接收请求方应,于是,服务方会在一定时间处于等待接收请求方ACK消息的状态。消息的状态。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o对于某台服务器来说,对于某台服务器来说,可用的可用的TCP连接是有限连接是有限的的,如果恶意攻击方快速连续地发送此类连接,如果恶意攻击方快速连续地发送此类连接请求,该服务器请求,该服务器可用的可用的TCP连接队列将很快被连接队列将很快被阻塞阻塞,系统可用资源急剧减少,网络可用带宽,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,迅速缩小,长此下去,网络将无法向用户提供网络将无法向用户提供正常的服务正常的服务。 分布式拒绝服务攻击与

51、防范手段分布式拒绝服务攻击与防范手段o三、三、DDoS的攻击方法的攻击方法 目前,我们知道的对网络进行目前,我们知道的对网络进行DDoS攻击所使用的工具有:攻击所使用的工具有:Trinoo、Tribe Flood Network(TFN)、TFN2k和和Stacheldraht等。它们的攻击思路基本相近。等。它们的攻击思路基本相近。 1Trinoo:它是基于:它是基于UDP flood的攻击软件,它向被攻击目标的攻击软件,它向被攻击目标主机的随机端口发出全零的主机的随机端口发出全零的4字节字节UDP包,在处理这些超出其处包,在处理这些超出其处理能力垃圾数据包的过程中,被攻击主机的网络性能不断下

52、降,理能力垃圾数据包的过程中,被攻击主机的网络性能不断下降,直到不能提供正常服务,乃至崩溃。它直到不能提供正常服务,乃至崩溃。它对对IP地址不做假地址不做假,此攻击,此攻击方法用得不多方法用得不多 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o2TFN:它是利用:它是利用ICMP给代理服务器下命令,其来给代理服务器下命令,其来源可以做假。它可以发动源可以做假。它可以发动SYN flood、UDP flood、ICMP flood及及Smurf(利用多台服务器发出海量数(利用多台服务器发出海量数据包,实施据包,实施DoS攻击)等攻击。攻击)等攻击。TFN的升级版的升级版TFN2k的特

53、点是:对命令数据包加密、更难查询命令内容、命的特点是:对命令数据包加密、更难查询命令内容、命令来源可以做假,还有一个后门控制代理服务器。令来源可以做假,还有一个后门控制代理服务器。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o3Stacheldraht:对命令来源做假,而且可以防范一些路由器:对命令来源做假,而且可以防范一些路由器用用RFC2267过滤。若检查出有过滤现象,它将只做假过滤。若检查出有过滤现象,它将只做假IP地址最地址最后后8位,从而让用户无法了解到底是哪几个网段的哪台机器被攻击。位,从而让用户无法了解到底是哪几个网段的哪台机器被攻击。此外,它还具有自动更新功能,可

54、随软件的更新而自动更新。此外,它还具有自动更新功能,可随软件的更新而自动更新。 值得一提的是,像值得一提的是,像Trinoo和和TFN等攻击软件都是可以从网上随意等攻击软件都是可以从网上随意找到的找到的公开软件公开软件,所以任何一个上网者都可能构成网络安全的潜,所以任何一个上网者都可能构成网络安全的潜在威胁。面对凶多吉少的在威胁。面对凶多吉少的DDoS险滩,我们该如何对付随时出现险滩,我们该如何对付随时出现的黑客攻击呢?那要看用户处于何种状态,是正身处被攻击的困的黑客攻击呢?那要看用户处于何种状态,是正身处被攻击的困围中,还是准备事先预防。围中,还是准备事先预防。 分布式拒绝服务攻击与防范手段

55、分布式拒绝服务攻击与防范手段o四、怎样对付正在进行的攻击四、怎样对付正在进行的攻击 如果用户正在遭受攻击,他所能做的抵御工作非常如果用户正在遭受攻击,他所能做的抵御工作非常有限。因为在原本没有准备好的情况下有大流量的灾难有限。因为在原本没有准备好的情况下有大流量的灾难性攻击冲向用户,很可能用户在还没回过神之际,网络性攻击冲向用户,很可能用户在还没回过神之际,网络已经瘫痪。但是,用户还是可以抓住机会寻求一线希望已经瘫痪。但是,用户还是可以抓住机会寻求一线希望的。的。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o首先首先,检查攻击来源,通常黑客会通过很多假的,检查攻击来源,通常黑客会

56、通过很多假的IP地址发起攻击,地址发起攻击,此时,用户若能够分辨出哪些是真此时,用户若能够分辨出哪些是真IP地址,哪些是假地址,哪些是假IP地址,然地址,然后了解这些后了解这些IP来自哪些网段,再找网段管理员把来自哪些网段,再找网段管理员把机器关掉,机器关掉,即可即可消除攻击。消除攻击。 其次其次,找出攻击者所经过的路由,把攻击屏蔽掉。比如黑客发射,找出攻击者所经过的路由,把攻击屏蔽掉。比如黑客发射SNP包,用户可把此包过滤掉。若黑客从某些端口发动攻击,用包,用户可把此包过滤掉。若黑客从某些端口发动攻击,用户可把这些户可把这些端口屏蔽端口屏蔽掉,以狙击入侵。掉,以狙击入侵。 最后最后一种比较折

57、衷的方法是在一种比较折衷的方法是在路由器上滤掉路由器上滤掉ICMP(Internet Control Message Protocol)和和UDP。ICMP用于提交错误用于提交错误和改变控制信息,常用来判断网络的连通性。和改变控制信息,常用来判断网络的连通性。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o五、如何事先预防攻击五、如何事先预防攻击 其实,很多攻击方法并不新,存在时间也很长了其实,很多攻击方法并不新,存在时间也很长了(就像(就像DoS),基本上人们对它们已经有所了解,只),基本上人们对它们已经有所了解,只是当它被有恶意的人利用,破坏网络安全,人们才意识是当它被有恶意的

58、人利用,破坏网络安全,人们才意识到问题的严重性。因此,人们应充分重视建立完善的安到问题的严重性。因此,人们应充分重视建立完善的安全系统,防患于未然。在具体工作中,我们不妨从以下全系统,防患于未然。在具体工作中,我们不妨从以下一些方面预防黑客攻击。一些方面预防黑客攻击。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o1用用足够的机器足够的机器承受黑客攻击。这是一种较承受黑客攻击。这是一种较为理想的应对策略。如果用户拥有足够的容量为理想的应对策略。如果用户拥有足够的容量和足够的资源给黑客攻击,在它不断访问用户、和足够的资源给黑客攻击,在它不断访问用户、夺取用户资源之时,自己的能量也在逐

59、渐耗失,夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支招儿。或许未等用户被攻死,黑客已无力支招儿。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o2充分利用网络设备保护网络资源充分利用网络设备保护网络资源。所谓网络设备是。所谓网络设备是指指路由器、防火墙路由器、防火墙等负载均衡设备,它们可将网络有效等负载均衡设备,它们可将网络有效地保护起来。地保护起来。o当当Yahoo!被攻击时最先死掉的是路由器,但其他机!被攻击时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很快,没

60、有什么损失。若其他服务器死掉,其动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程,中的数据会丢失,而且重启服务器又是一个漫长的过程,相信没有路由器这道屏障,相信没有路由器这道屏障,Yahoo!会受到无法估量!会受到无法估量的重创。的重创。 分布式拒绝服务攻击与防范手段分布式拒绝服务攻击与防范手段o3使用使用Inexpress、Express Forwarding过滤不必要的服过滤不必要的服务和端口,即在路由器上过滤假务和端口,即在路由器上过滤假IP。比如。比如Cisco公司的公司的CEF(Cisco Express Forwarding)可以针对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论