扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 2007年8月11日
关键字:
在本页阅读全文(共2页)
二、不同角度看待漏洞利用
如果一个缺陷不能被利用来干“原本”不能干的事(安全相关的),那么就不能被称为安全漏洞,所以安全漏洞必然和漏洞利用紧密联系在一起。
漏洞利用的视角有:
●数据视角:访问本来不可访问的数据,包括读和写。这一条通常是攻击者的核心目的,而且可造成非常严重的灾难(如银行数据可被人写)。
●权限视角:主要为权限绕过或权限提升。通常权限提升都是为了获得期望的数据操作能力。
●可用性视角:获得对系统某些服务的控制权限,这可能导致某些重要服务被攻击者停止而导致拒绝服务攻击。
●认证绕过:通常利用认证系统的漏洞而不用受权就能进入系统。通常认证绕过都是为权限提升或直接的数据访问服务的。
●代码执行角度:主要是让程序将输入的内容作为代码来执行,从而获得远程系统的访问权限或本地系统的更高权限。这个角度是SQL注入、内存指针游戏类漏洞(缓冲区溢出、格式串、整形溢出等等)等的主要驱动。这个角度通常为绕过系统认证、权限提升、数据读取作准备的。
三、漏洞发掘方法
首先必须清除安全漏洞是软件BUG的一个子集,一切软件测试的手段都对安全漏洞发掘实用。现在”黑客“用的各种漏洞发掘手段里有模式可循的有:
●fuzz测试(黑盒测试),通过构造可能导致程序出现问题的方式构造输入数据进行自动测试。
●源码审计(白盒测试),现在有了一系列的工具都能协助发现程序中的安全BUG,最简单的就是你手上最新版本的C语言编译器。
●IDA反汇编审计(灰盒测试),这和上面的源码审计非常类似,唯一不同的是很多时候你能获得软件,但你无法拿到源码来审计,但IDA是一个非常强大的反汇编平台,能让你基于汇编码(其实也是源码的等价物)进行安全审计。
●动态跟踪分析,就是记录程序在不同条件下执行的全部和安全问题相关的操作(如文件操作),然后分析这些操作序列是否存在问题,这是竞争条件类漏洞发现的主要途径之一,其他的污点传播跟踪也属于这类。
●补丁比较,厂商的软件出了问题通常都会在补丁中解决,通过对比补丁前后文件的源码(或反汇编码)就能了解到漏洞的具体细节。
以上手段中无论是用哪种都涉及到一个关键点:需要通过人工分析来找到全面的流程覆盖路径。分析手法多种多样,有分析设计文档、分析源码、分析反汇编代码、动态调试程序等。
四、漏洞等级评定
考察漏洞的危害性应该紧密的和利用该漏洞带来的危害相关,并不是通常大家认识的所有缓冲区溢出漏洞都是高危漏洞。以远程漏洞为例,比较好的划分方法为:
1 可远程获取OS、应用程序版本信息。
2 开放了不必要或危险得服务,可远程获取系统敏感信息。
3 可远程进行受限的文件、数据读取。
4 可远程进行重要或不受限文件、数据读取。
5 可远程进行受限文件、数据修改。
6 可远程进行受限重要文件、数据修改。
7 可远程进行不受限得重要文件、数据修改,或对普通服务进行拒绝服务攻击。
8 可远程以普通用户身份执行命令或进行系统、网络级的拒绝服务攻击。
9 可远程以管理用户身份执行命令(受限、不太容易利用)。
10 可远程以管理用户身份执行命令(不受限、容易利用)。
本地漏洞几乎都是导致代码执行,归入上面的10分制可以为:
远程主动触发代码执行(如IE的漏洞)。
远程被动触发代码执行(如Word漏洞/看图软件漏洞)。
五、DEMO
一个防火墙隔离(只允许运维部的人访问)的网络里运行一台Unix服务器;操作系统中只有root用户和oracle用户可登陆,操作系统中运行了Apache(nobody权限)、Oracle(oracle用户权限)等服务。
一个攻击者的目的是修改Oracle数据库中的帐单表的数据。
其可能的攻击步骤为:
●1.接入运维部的网络,获得一个运维部的IP地址从而能通过防火墙访问被保护的Unix服务器。
●2.利用Apache服务的某远程缓冲区溢出漏洞直接获得一个nobody权限的shell访问。
●3.利用操作系统某suid程序的漏洞将自己的权限提升到root权限。
●4.用Oracle的sysdba登陆进入数据库(本地登陆不需要密码)。
●5.修改目标表的数据。
以上5个过程分析下来为:
●第1步:认证绕过
●第2步:远程漏洞、代码执行(机器码)、认证绕过
●第3步:权限提升、认证绕过
●第4步:认证绕过
●第5步:数据写
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。