B.按漏洞的成因 对其分类,是对漏洞进行分类最另人头疼的一个方面,因为对漏洞研究的不同抽象层次,会对同一个漏洞做出不同的分类,对下面提到的ps竞争条件漏洞,从最低层次上来说是参数验证错误,因为相继的系统调用并没有检查他们所处理的是否为同一个对象,从高一些的层次看,这是一个同步或竞争条件错误,从更高的层次看,这则是一个逻辑错误,因为对象可能在使用过程中被删除。至今也没看到一个比较完美分类方案,包括securityfocus上的分类也不能让人满意,现大致分成以下几类:
一、输入验证错误 大多数的缓冲区溢出漏洞和cgi类漏洞都是由于未对用户提供的输入数据的合法性作适当的检查。
二、访问验证错误 漏洞的产生是由于程序的访问验证部分存在某些可利用的逻辑错误,使绕过这种访问控制成为可能。上面提到的那个早期AIX的rlogin漏洞就是这种典型。
三、竞争条件 漏洞的产生在于程序处理文件等实体时在时序和同步方面存在问题,这处理的过程中可能存在一个机会窗口使攻击者能够施以外来的影响。早期的Solaris系统的ps命令存在这种类型的漏洞,ps在执行的时候会在/tmp产生一个基于它pid的临时文件,然后把它chown为root,改名为ps_data。如果在ps运行时能够创建这个临时文件指向我们有兴趣的文件,这样ps执行以后,我们就可以对这个root拥有文件做任意的修改,这可以帮助我们获得root权限。
四、意外情况处置错误 漏洞的产生在于程序在它的实现逻辑中没有考虑到一些意外情况,而这些意外情况是应该被考虑到的。大多数的/tmp目录中的盲目跟随符号链接覆盖文件的漏洞属于这种类型。例子:Sco UNIX openserver的/etc/sysadm.d/bin/userOsa存在盲目覆盖调试日志文件的问题,而文件的名字是固定的,通过把文件名指向某些特权文件,可以完全破坏系统。
五、设计错误 这个类别是非常笼统的,严格来说,大多数的漏洞的存在都是设计错误,因此所有暂时无法放入到其他类别的漏洞,先放在这。
联系方式:QQ:6084884 email:agwcn@126.com
粤ICP备05055782号
本网站中发布的文章只代表发表人的个人观点,不代表安迪教程网网站的立场
copyright© 2000-2004 安迪教程网 All rights reserved agwcn.com