1、安全生产管理计算机网络系统安全漏洞分类研究 安全生产管理计算机网络系统安全漏洞分类研究计算机网络系统安全漏洞分类研究bystarduststardust1lfroot,可以直接以root身份登录到系统而无须提供口令。二本地管理员权限攻击者在已有一个本地账号能够登录到系统的情况下,通过攻击本地某些有缺陷的suid程序,竞争条件等手段,得到系统的管理员权限。典型漏洞:1RedHatLinux的restore是个suid程序,它的执行依靠一个中RSH的环境变量,通过设置环境变量PATH,可以使RSH变量中的可执行程序以root身份运行,从而获得系统的root权限。2Solaris7的Xsun程序有s
2、uid位,它对输入参数未做有效的边界检查,可以很容易地溢出它的缓冲区,以root身份运行我们指定的代码,从而获得管理员权限。3在windows2000下,攻击者就有机会让网络DDE(一种在不同的Windows机器上的应用程序之间动态共享数据的技术)代理在本地系统用户的安全上下文中执行其指定的代码,从而提升权限并完全控制本地机器。三普通用户访问权限攻击者利用服务器的漏洞,取得系统的普通用户存取权限,对UNIX类系统通常是shell访问权限,对Windows系统通常是的访问权限,能够以一般用户的身份执行程序,存取文件。攻击者通常攻击以非root身份运行的守护进程,有缺陷的cgi程序等手段获得这种访
3、问权限。典型漏洞:1UBB是个广泛运行于各种UNIX和Windows系统的论坛程序,用PERL实现,它的5.19以下版本存在输入验证问题,通过提交精心构造的表单内容,可以使UBB去执行shell命令,因为一般的web服务器以nobody身份运行,因此可以得到一个nobodyshell。比如提交这样的数据:topic=012345.ubb|mailhackerpasswd|,我们就可以得到系统的passwd文件。2RedHatLinux6.2带的innd2.2.2.3版新闻服务器,存在缓冲区溢出漏洞,通过一个精心构造的新闻信件可以使innd服务器以news身份运行我们指定的代码,得到一个innd
4、权限的shell。3WindowsIIS4.0-5.0存在Unicode解码漏洞,可以使攻击者利用以guest组的权限在系统上运行程序。相当于取得了普通用户的权限。四权限提升攻击者在本地通过攻击某些有缺陷的sgid程序,把自己的权限提升到某个非root用户的水平。获得管理员权限可以看做是一种特殊的权限提升,只是因为威胁的大小不同而把它独立出来。典型漏洞:1RedHatLinux6.1带的man程序为sgidman,它存在formatbug,通过对它的溢出攻击,可以使攻击者得到man组的用户权限。2Solaris7的write程序为sgidtty,它存在缓冲区溢出问题,通过对它的攻击可以攻击者得
5、到tty组的用户权限。3WindowsNT系统中,攻击者能够使系统中其他用户装入一个”特洛化”的porfile,使其他用户执行攻击者的恶意代码,有时甚至是管理员。五读取受限文件攻击者通过利用某些漏洞,读取系统中他应该没有权限的文件,这些文件通常是安全相关的。这些漏洞的存在可能是文件设置权限不正确,或者是特权进程对文件的不正确处理和意外dumpcore使受限文件的一部份dump到了core文件中。典型漏洞:1SunOS5.5的ftpd存在漏洞,一般用户可以引起ftpd出错而dump出一个全局可读的core文件,里面有shadow文件的片断,从而使一般用户能读到shadow的部分内容。2SuSE6
6、.2的suid程序pg,对它的配置文件处理存在问题,当把链接到特权文件,可以用pb读取那些文件的内容。3Oracle8.0.3EnterpriseEditionforNT4.0的日志文件全局可读而且为明文,它记录了连接的口令,很可能被攻击者读到。六远程拒绝服务攻击者利用这类漏洞,无须登录即可对系统发起拒绝服务攻击,使系统或相关的应用程序崩溃或失去响应能力。这类漏洞通常是系统本身或其守护进程有缺陷或设置不正确造成的。1早期的Linux和BSD的tcp/ip堆栈的ip片断重组模块存在缺陷,攻击通过向系统发出特殊的ip片断包可以使机器崩溃。2Windows2000带的Netmeeting3.01存在
7、缺陷,通过向它发送二进制数据流,可以使服务器的CPU占用达到100%。3通过发送一个带有超长参数的USER命令给AnalogXProxyServer4.04的ftp端口,可以使这个应用程序崩溃。七本地拒绝服务在攻击者登录到系统后,利用这类漏洞,可以使系统本身或应用程序崩溃。这种漏洞主要因为是程序对意外情况的处理失误,如写临时文件之前不检查文件是否存在,盲目跟随链接等。1BSDi3.x存在漏洞可以使一个本地用户用一些垃圾覆盖系统上的任何,这样会很容易地把系统搞成不可用。2RedHat6.1的tmpwatch程序存在缺陷,可以使系统fork()出许多进程,从而使系统失去响应能力。八远程非授权文件存
8、取利用这类漏洞,攻击可以不经授权地从远程存取系统的某些文件。这类漏洞主要是由一些有缺陷的cgi程序引起的,它们对用户输入没有做适当的合法性检查,使攻击者通过构造特别的输入获得对文件存取。典型漏洞:1Poll_It_SSI_v2.0.cgi存在漏洞可以使攻击者看到web目录外的所有有权限看的文件,发送如下的请求给服务器就能看到passwd文件,Poll_It_v2.0.cgi?data_dir=etcpasswd%002WindowsIIS5.0存在一个漏洞,通过向它发送一个特殊的head标记,可以得到asp源码,而不是经过解释执行后asp页面。3WindowsIE存在诸多漏洞允许恶意的web页
9、面读取浏览用户的本地的文件。九口令恢复因为采用了很弱的口令加密方式,使攻击者可以很容易的分析出口令的加密方法,从而使攻击者通过某种方法得到密码后还原出明文来。典型漏洞:1Windows下的PassWDv1.2用来管理系统中的各种口令,并和URL一起储存起来。但它加密储存的口令加密方式非常脆弱,经过简单的分析,就可以从加密后的口令还原出明文。2Pcanywhere9.0采用非常脆弱的加密方法来加密传输中的口令,只要窍听了传输中的数据很容易解码出明文口令。3Browsegate是一个Windows下的代理防火墙,它的2.80.2版本,在配置文件中储存了加密后的口令而且配置文件对所有用户是可读的,然
10、而加密方式极其脆弱,可以很容易地解码出明文。十欺骗利用这类漏洞,攻击者可以对目标系统实施某种形式的欺骗。这通常是由于系统的实现上存在某些缺陷。典型漏洞1WindowsIE曾经存在一个漏洞允许一个恶意网络在另一个风站的窗口内插入内容,从而欺骗用户输入敏感数据。2Linuxkernel2.0.35以下的tcp/ip堆栈存在漏洞,可以使攻击者进行ip地址欺骗非常容易实现。十一服务器信息泄露利用这类漏洞,攻击者可以收集到对于进一步攻击系统有用的信息。这类漏洞的产生主要是因为系统程序有缺陷,一般是对错误的不正确处理。典型漏洞:1WindowsIIS3.0-5.0存在漏洞,当向系统请求不存在的.idq,.
11、idq文件时,机器可能会返回出错信息,里面暴露了IIS的安装目录信息,比如请求/,服务器会返回Response:TheIDQfiled:httpcouldnotbefound。这些对攻击者进行攻击可能带来方便,比如广泛流行的msadc的攻击,需要知道系统的安装目录。2Linuxkernel2.1.53以下的tcp/ip堆栈开放和关闭的端口对特定的数据包有特定的回应,攻击者可以利用这个特性进行端口的秘密扫描。3某些cgi程序如DBMan()存在漏洞可以使攻击者看到一些系统的环境变量,使攻击者获得关于系统一些有用的信息。十二其它虽然以上的几种分类包括了绝大多数的漏洞情况,可还是有可能存在一些上面几
12、种类型无法描述的的漏洞,把它们归到这里。B按漏洞的成因对其分类,是对漏洞进行分类最另人头疼的一个方面,因为对漏洞研究的不同抽象层次,会对同一个漏洞做出不同的分类,对下面提到的ps竞争条件漏洞,从最低层次上来说是参数验证错误,因为相继的系统调用并没有检查他们所处理的是否为同一个对象,从高一些的层次看,这是一个同步或竞争条件错误,从更高的层次看,这则是一个逻辑错误,因为对象可能在使用过程中被删除。至今也没看到一个比较完美分类方案,包括securityfocus上的分类也不能让人满意,现大致分成以下几类:一输入验证错误大多数的缓冲区溢出漏洞和cgi类漏洞都是由于未对用户提供的输入数据的合法性作适当的
13、检查。二访问验证错误漏洞的产生是由于程序的访问验证部分存在某些可利用的逻辑错误,使绕过这种访问控制成为可能。上面提到的那个早期AIX的rlogin漏洞就是这种典型。三竞争条件漏洞的产生在于程序处理文件等实体时在时序和同步方面存在问题,这处理的过程中可能存在一个机会窗口使攻击者能够施以外来的影响。早期的Solaris系统的ps命令存在这种类型的漏洞,ps在执行的时候会在/tmp产生一个基于它pid的临时文件,然后把它chown为root,改名为ps_data。如果在ps运行时能够创建这个临时文件指向我们有兴趣的文件,这样ps执行以后,我们就可以对这个root拥有文件做任意的修改,这可以帮助我们获
14、得root权限。四意外情况处置错误漏洞的产生在于程序在它的实现逻辑中没有考虑到一些意外情况,而这些意外情况是应该被考虑到的。大多数的/tmp目录中的盲目跟随符号链接覆盖文件的漏洞属于这种类型。例子:ScoUNIXopenserver的sysadm.duserOsa存在盲目覆盖调试日志文件的问题,而文件的名字是固定的,通过把文件名指向某些特权文件,可以完全破坏系统。五设计错误这个类别是非常笼统的,严格来说,大多数的漏洞的存在都是设计错误,因此所有暂时无法放入到其他类别的漏洞,先放在这。六配置错误漏洞的产生在于系统和应用的配置有误,或是软件安装在错误的地方,或是错误的配置参数,或是错误的访问权限,
15、策略错误。七环境错误由一些环境变量的错误或恶意设置造成的漏洞。如攻击者可能通过重置shell的内部分界符IFS,shell的转义字符,或其它环境变量,导致有问题的特权程序去执行攻击者指定的程序。上面提到的RedHatLinux的dump程序漏洞就是这种类型。在漏洞的威胁类型和产生漏洞的错误类型之间存在一定的联系,有直接联系的威胁类型与错误类型用直线相连,可以看到如下的图示:远程管理员权限输入验证错误本地管理员权限访问验证错误普通用户访问权限竞争条件权限提升意外情况处置错误读取受限文件远程拒绝服务设计错误本地拒绝服务远程非授权文件存取配置错误口令恢复欺骗环境错误服务器信息泄露可以看到输入验证错误
16、几乎与所有的漏洞威胁有关,设计错误与错误的配置也会导致很多威胁。C.对漏洞严重性的分级一般来说漏洞的威胁类型基本上决定了它的严重性,我们可以把严重性分成高,中,低三个级别。远程和本地管理员权限大致对应为高,普通用户权限,权限提升,读取受限文件,远程和本地拒绝服务大致对应中级,远程非授权文件存取,口令恢复,欺骗,服务器信息泄露大致对应低级别。但这只是最一般的情况,很多时候需要具体情况具体分析,如一个涉及到针对流行系统本身的远程拒绝服务漏洞,就应该是高级别。同样一个被广泛使用的软件如果存在弱口令问题,有口令恢复漏洞,也应该归为中高级别。D对漏洞被利用方式的分类漏洞的存在是个客观事实,但漏洞只能以一
17、定的方式被利用,每个漏洞都要求攻击处于网络空间一个特定的位置,可能的攻击方式分为以下四类:一物理接触攻击者需要能够物理地接触目标系统才能利用这类漏洞,对系统的安全构成威胁。图示:攻击者主机二主机模式通常的漏洞利用方式。攻击方为客户机,被攻击方为目标主机。比如攻击者发现目标主机的某个守护进程存在一个远程溢出漏洞,攻击者可能因此取得主机的额外访问权。图示:攻击攻击机器主机三客户机模式当一个用户访问网络上的一个主机,他就可能遭到主机发送给自己恶意命令的袭击。客户机不应该过度信任主机。如web浏览器IE存在不少漏洞,可以使一些恶意的网站用标记通过那些漏洞在浏览的客户机中执行程序或读写文件。图示:攻击客
18、户机主机四中间人方式当攻击者位于一个可以观察或截获两个机器之间的通信的位置时,就可以认为攻击者处于中间人方式。因为很多时候主机之间以明文方式传输有价值的信息,因此攻击者可以很容易地攻入其他机器。对于某些公钥加密的实现,攻击者可以截获并取代密钥伪装成网络上的两个节点来绕过这种限制。图示:通信主机主机窍听或篡改攻击者本文对网络安全漏洞作了粗浅地分类,这远不是一个完美的方案,有兴趣的欢迎来信交流心得。一些我读过的参考资料:.vulnerabilities.vulnerabilities.vulnerabilitieslibrary/pvuln_当然还有:/query_你能在那找到文中所举的所有漏洞例子 多年企业管理咨询经验,专注为企业和个人提供精品管理方案,企业诊断方案,制度参考模板等欢迎您下载,均可自由编辑感谢阅读
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1