(信号与信息处理专业论文)windows危急级漏洞挖掘及分析技术研究.pdf_第1页
(信号与信息处理专业论文)windows危急级漏洞挖掘及分析技术研究.pdf_第2页
(信号与信息处理专业论文)windows危急级漏洞挖掘及分析技术研究.pdf_第3页
(信号与信息处理专业论文)windows危急级漏洞挖掘及分析技术研究.pdf_第4页
(信号与信息处理专业论文)windows危急级漏洞挖掘及分析技术研究.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

四川大学硕士学位论文w i n d o w s 危急级漏洞挖掘及分析技术研究 w i n d o w s 危急级漏洞挖掘及分析技术研究 信号与信息处理专业 研究生曹军指导教师刘嘉勇教授 摘要 近年来,信息安全技术及相关产品在其很多分支领域都已经取得突破性发 展,但是软件漏洞研究技术的发展仍然相对被动与滞后。与此同时,随着w i n d o w s 操作系统在全球范围内的流行,基于该系统的软件漏洞层出不穷,其中以危急 级漏洞造成的影响最为严重。因此,牢固掌握w i n d o w s 危急级漏洞研究技术, 正逐步进入安全研究者们的视野。 危急级漏洞是指软件中由数据处理引起、无需用户激活便可引发蠕虫传播 的一类安全漏洞。微软的安全公告严重性分级系统为每个漏洞指定了对应的严 重等级,而“危急”代表最严重级别。如果入侵者成功利用这些漏洞,则可以 在用户未察觉的情况下发起攻击,并且以当前登录用户权限控制操作系统。 危急级漏洞研究技术包括漏洞挖掘与漏洞分析。漏洞挖掘技术是指对未知 漏洞的探索,应用各种技术和工具,尽可能地找出软件中的潜在漏洞;漏洞分 析技术是指对已发现漏洞的细节进行深入分析,为漏洞利用、补救等处理措施 作铺垫。灵活掌握危急级漏洞研究技术,我们就能对这些漏洞采取更加主动合 理的处理方式。 然而,传统漏洞研究技术并未体现出其应有的价值和潜力。针对具体漏洞 的挖掘或分析,安全研究者所进行的工作中存在大量的重复内容,同时在研究 效率、效果上也存在相当的缺陷。本文分析了传统漏洞研究技术的基本原理及 存在的缺陷,有针对性地提出了一种新的漏洞挖掘及分析技术,以及该技术在 w i n d o w s 2 0 0 0 x p 2 0 0 3 平台上工程实现的设计方案,从而较大地提高了漏洞研究 技术的实际应用价值。 四川大学硕士学位论文w i n d o w s 危急级漏洞挖掘及分析技术研究 本文首先从w i n d o w s 危急级漏洞研究的本质出发,全面分析了传统技术的 基本原理之后,总结出漏洞研究的技术难点的及存在的缺陷。然后沿着提出问 题、并解决问题的思路,从研究效率和效果两方面出发,分别提出对传统漏洞 挖掘及分析技术的拓展方法。本文一方面分析了t c p i p 网络通信共性以及漏洞 挖掘核心技术,深入研究了基于协议屏蔽的漏洞挖掘技术,并给出了相应的漏 洞挖掘器在w i n d o w s 2 0 0 0 ,v 2 0 0 3 平台上设计方案;另一方面分析了w i n d o w s p e 文件结构,同时将图形化思想与漏洞分析相结合,深入研究了基于模式比较 的漏洞分析技术,同时也给出了相应的漏洞分析器在m n d o w s 2 0 0 ( p 2 0 0 3 平 台上的设计方案。基于协议屏蔽的漏洞挖掘和基于模式比较的漏洞分析技术的 提出,使得漏洞研究效率和效果得到较大提高,增强了技术的实际应用价值。 本文提出的技术及相应的工程实现设计方案为w i n d o w s 危急级漏洞研究技 术的发展提供了新思路,同时在国家某涉密项目的研发过程中发挥了重要作用。 目前,技术正进一步的研究中,并将对未来的综合应用起更大的推动作用。 关键词:漏洞挖掘、漏洞分析、协议屏蔽、模式比较 四川大学硕士学位论文w i n d o w s 危急级漏洞挖掘及分析技术研究 r e s e a r c ho fm i n i n ga n d a n a l y z i n gt e c h n o l o g yo f w i n d o w sc r i t i c a l 沥l n e r a b f l i t i e s f i e l d :s i g n a ia n di n f o r m a t i o np r o c e s s i n g p o s t g r a d u a t e :c a oj u n t u t o r i a l :l 1 uj i a - y o n gp r o f e s s o r a b s t r a c t i nr e c e n ty e a r s ,s o m ei n f o r m a t i o ns e c u r i t yt e c h n o l o g i e sa n dr e l e v a n tp r o d u c t s h a v ea l r e a d yo b t a i n e db r e a k t h r o u g hd e v e l o p m e n t , b u tr e s e a r c ho ft e c h n o l o g yi n s o r w a r ev u l n e r a b i l i t i e sr e r n a l n sp a s s i v ea n dl a g g a r d m e a n w h i l e ,w i t ht h eg l o b a l p r e v a i lo fw i n d o w so p e r a t i o ns y s t e m ( o s ) ,v u l n e r a b i l i t i e sb a s e do nt h i so sa r e e m e r g i n gi ne n d l e s s l y , a n dt h ee f f e c tc a u s e db yc r i t i c a lv u l n e r a b i l i f i e si st h em o s t s e r i o u s t h e r e f o r e ,r e s e a r c h i n gt e c h n o l o g yo fw i n d o w sc r i t i c a lv u l n e r a b i l i t yi s g 翰d u a j l yc o m i n gi n t o t h ee y e s h o to f 也es e c u r i t yr e s e a r c h e r s ac r i t i c a lv u l n e r a b i l i t ym e a n si t se x p l o i t a t i o nc o u l da l l o wt h ep r o p a g a t i o no fa n i n t e m e tw o r mw i t h o u tu s e ra c t i o n , a n di ti sc a u s e dd a t ap r o c e s s i n ga r r o ri nas o f t w a r e t h em i c r o s o rs e v e r i t yr a t i n gs y s t e mp r o v i d e sas i n g l er a t i n gf o ra n yv u l n e r a b i l i t y , a n dt h ew o r d c r i t i c a l d e s c r i b e st h em o s ts 翻妣r a t i n g i fh a c k e r si s l e1 l s eo ft h i s v u l n e r a b i l i t ys u c c e s s f u l l y , t h e yc a nt a k ea na t t a c kw i t h o u tt h es y s t e mu s c l j sa t t e n t i o n , a n dc o n t r o lt h eo sw i t ht h ec u r r e n tu s e r sp e r m i s s i o n t h er e s e a r c h i n gt e c h n o l o g yo fc r i t i c a lv u l n e r a b i l i t yi n c l u d e sv u l n e r a b i l i t y m i n i n ga n dv u l n e r a b i l i t ya n a l y z i n g v u l n e r a b i l i t ym i n i n gt e c l m o l o g ym e a n ss e e k i n g f o ru n k n o w nv u l n e r a b i l i t i e s ,a p p l y i n gv a r i o u sk i n d so ft e c h n o l o g i e sa n dt o o l sf o r p o t e n t i a lv u l n e r a b i l i t i c si ns o r w a r e v u l n e r a b i l i t ya n a l y z i n gt e c h n o l o g ym e a n sd e 印 a n a l y s i so nt h ev u i n e r a b i l i t i e sd i s c o v e r e d , m a k i n ga9 0 0 db a s ef o rt h em a n a g e m e n to f t h ev u l n c r a b i l i t i e s m a s t e r i n gt h er e s e a r c h i n gt e c h n o l o g yo fc r i t i c a l v u l n c r a b i l i t y 3 四川大学硕士学位论文 w i n d o w s 危急级漏洞挖掘及分析技术研究 n e a t l y , w ec a nt a k em o r ea c t i v ea n dr e a s o n a b l em 哉l s u r e 5o nt h e s ev u l n e r a b i l i t i e s h o w e v e r , t r a d i t i o n a lv u l n e r a b i l i t yr e s e a r c h i n gt e c h n o l o g i e s h a v e n ts h o w n e n o u g hv a l u ea n dp o t e n t i a l a b o u tas i n g l ev u l n e r a b i l i t y , t h ew o r kd o n eb ys e c u r i t y r e s e a r c h e r se x i s t sm u c hr e p e a tc o n t e n t , a n dt h ee f f i c i e n c yo re f f e c ta l s oh a ss o m e l i m i t a t i o n s t h i st e x ta n a l y z e st h eb a s i cp r i n c i p l e sa n dt h el i m i t a t i o n so ft r a d i t i o n a l v u l n e r a b i l i t yr e s e a r c h i n gt e c h n o l o g i e s ,p u t sf o r w a r da n c w v u l n e r a b i l i t ym i n i n ga n da n e wa n a l y z i n gt e c h n o l o g y , a n da l s og i v e st h ed e s i g n i n go ft h et e c h n o l o g i e so n w i n d o w s 2 0 0 0 x p 2 0 0 3p l a t f o r m t h i sh a sg r e a t l yi m p r o v e dt h ea c t u a lu s i n gv a l u eo f v u l n e r a b i l i t yr e s e a r c h i n gt e c h n o l o g i e s t h i st e x ts e t so u tf r o mt h ec s s e n c eo fs t u d y i n gw i n d o w sc r i t i c a lv u l n e r a b i l i t y , a f t e rd e 印a n a l y s i so f t h eb a s i cp r i n c i p l e so f t r a d i t i o n a lt e c h n o l o g i e s ,h a ss u m m a r i z e d t e c h n o l o g i cd i f f i c u l tp o i n t sa n dl i m i t a t i o ne x i s t i n g i nt h el i n ew i t ht h eq u e s t i o no f p u t t i n gf o r w a r da f t e r w a r d s ,s o l v i n gt h et h i n k i n go ft h eq u e s t i o n , h a sr e s p e c t i v e l y p r o p o s e da ne x p a n s i o nm e t h o do ft r a d i t i o n a lv u l n e r a b i l i t ym i n i n ga n da n a l y z i n g t e c h n o l o g y o no n eh a n dt h i st e x ta n a l y z e st h ec o i n n l o n i l e s so f c o m m u n i c a t i o nb a s e d o nt c p f i p , h a sd e e p l yr e s e a r c h e dt h ev u l n e r a b i l i t ym i n i n gt e c h n o l o g yb a s e do n p r o t o c o ls h i e l d i n g ,a n dg i v e nt h ed e s i g n i n go f t h ec o r r e s p o n d i n gv u l n e r a b i l i t ym i n i n g a p p a r a t u so nw m d o w s 2 0 0 0 x p 2 0 0 3 s t u d y i n gt h es t r u c t u r eo fw i n d o w s p eo nt h e o t h e rh a n d , c o m b i n e sg r a p h i ct h i n k i n gw i t hv u l n e r a b i l i t ya n a l y s i s ,h a sd e e p l y r e s e a r c h e dt h ev u l n e r a b i l i t ya n a l y z i n gt e c h n o l o g yb a s e do np a t t e r nc o m p a r i n g ,a n d a l s og i v e nt h ed e s i g n i n go ft h ec o r r e s p o n d i n gv u l n e r a b i l i t ya n a l y z i n ga p p a r a t u so n w i n d o w s 2 0 0 0 x p 2 0 0 3 t h et e c h n o l o g i e sp r o p o s e da b o v eh a v eg r e a t l yi m p r o v e d t h ee f f i c i e n c y , e f f e c t ,a n dt h ea c t u a lu s i n gv a l u eo fv u l n e r a b i l i t yr e s e a r c h i n g t e c h n o l o g i e s t h et e c h n o l o g i e sa n dt h ec o r r e s p o n d i n gd e s i g n i n gp r o v i d el l e wi d e a s f o r r e s e a r c ho fw i n d o w sc r i t i c a lv u l n e r a b i l i t y , a n dh a v ep l a y e da i li m p o r t a n tp a r ti ns o m e n a t i o n a ls e c u r i t yp r o j e c t s t h e ya r cb e e nf u r t h e rr e s e a r c h e da tp r e s e n t ,a n dw i l lp l a ya m o r ei m p o r t a n tr o l ei n t h ef u t u r ea p p l i c a t i o n s k e y w o r d s :v u l n e r a b i l i t ym i n i n g 、v u l n e r a b i l i t ya n a l y z i n g 、p r o t o c o ls h i e l d i n g 、 p a t t e r nc o m p a r i n g 4 四川大学硕士学位论文w i n d o w s 危急缓漏洞挖掘及分析技术研究 第1 章概述 1 1 引言 进入2 l 世纪之后,网络蠕虫逐渐成为人们在计算机网络安全领域中的热门 话题,它意味着计算机安全的一大威胁。蠕虫就是能在网络中自我复制传播, 利用操作系统及其支持的软件中存在的各种漏洞,植入计算机并执行的程序。 近几年针对w m d o w s 系统的蠕虫层出不穷,造成的影响十分严重,其中的典型 代表是2 0 0 3 年8 月爆发的两次“冲击波”蠕虫,以及2 0 0 4 年5 月爆发的“震 荡波”蠕虫。其中,“冲击波”蠕虫在高峰时期每小时可感染3 万多个w 协d o w s 系统,估计全球有上百万台计算机受到感染,导致了巨大的经济损失【1 1 类似的 蠕虫攻击事件几乎每天都会发生,只是造成的影响程度有轻重之分。 蠕虫盛行的主要原因在于软件漏洞被黑客所利用。根据美国c e r t 的统计, 从2 0 0 0 年到2 0 0 6 年,每年都新增大量的漏洞报告。2 0 0 3 年漏洞报告总数为3 7 8 4 , 2 0 0 4 年为3 7 8 0 ,2 0 0 5 年为5 9 9 0 ,而2 0 0 6 年第l 季度也已经达到了1 5 9 7 1 2 j 。在 国内,绿盟科技维护着国内最大、最全面的安全漏洞库,几乎每天都更新着最 近的8 0 0 0 多条漏洞信息。黑客往往在极短时间内就能成功利用这些漏洞,当人 们意识到应该增强安全意识的时候,由这些漏洞产生的蠕虫及其变种早已泛滥。 蠕虫传播的形式也从原来的主动感染,扩展到兼有网页、电子邮件的多种被动 感染形式。 除了利用已知漏洞,有的黑客也善于挖掘并利用一些尚未公布的漏洞,他 们的目的不是将漏洞信息报告给软件开发商,而是发起一些防不胜防病毒攻击, 或者试图以高额的价格将漏洞资料出售,来满足一定的经济目的。0 6 年初发现 的w m f 漏洞,就是在公众毫不知情的情况下展开攻击的,这个漏洞的资料据说 被卖到了4 0 0 0 美元【3 l 。甚至像i d e f e n s e 和3 c o m 这样的公司也愿意从这些黑客 手中购买包括q q 、m s n 、i e 等几方面未公开发布的漏洞信息。 相比于黑客,安全研究者们在漏洞研究工作的影响方面显得被动和滞后 很多情况下,我们都通过拦截并分析特定的蠕虫及其变种,进而解黑客的采用 漏洞利用技术。因此,我们应该加大对漏洞的研究力度,以便对各类漏洞采取 更为主动合理的处理方式。 为此,国家高技术发展计划( 8 6 3 ) 的信息安全技术主题主要研究信息安全 核心、关键和共性技术,以形成自主的信息安全防护能力、隐患发现能力、应 急反映能力以及信息对抗能力,为建立国家信息安全保障体系提供技术支撑。 四川大学硕士学位论文w i n d o w s 危急级漏洞挖掘及分析技术研究 作为隐患发现技术之一的漏洞研究技术,理应受到重视。其研究的内容包括: 1 ) 漏洞挖掘技术;2 ) 漏洞分析技术。 现在软件漏洞种类众多,但不论从漏洞影响程度,还是从操作系统普及的 角度,w i n d o w s 危急级漏洞都具有很高的研究价值。本论文的选题就是在该类 漏洞研究技术与国家某涉密项目研发相结合的基础上提出的。 1 2 w i n d o w s 危急级漏洞介绍 1 2 1 漏洞概念 w i n d o w s 危急级漏洞是指软件中由数据处理引起、无需用户激活便可引发蠕 虫传播的一类安全漏洞( 如图1 1 所示) ,这里的软件包括w i n d o w s 的系统组件 以及该系统支持的非开源应用软件。微软安全公告严重性分级系统为每个漏洞 指定了对应的严重等级,主要包括“低等”、“中等“重要“危急”等4 个 等级。而“危急”代表最严重级n t 4 1 如果入侵者成功利用这些漏洞,则可以在 系统用户未察觉的情况下发起攻击,并且以当前登录用户权限控制操作系统。 数据输入 , 其它漏洞危急级漏洞正确结果 图i - i 危急级漏洞的产生 危急级漏洞包括堆栈溢出、堆溢出以及文件数据执行漏洞等3 类。其中, 第一次“冲击波”、“震荡波”等蠕虫病毒都是由堆栈溢出漏洞引起;第二次“冲 击波”是堆溢出漏洞引起的:而今年出现的w m f 漏洞则属于第3 类。 如不加特别说明,下文中涉及的漏洞,均表示w i n d o w s 危急级漏洞。 1 2 2 漏洞研究价值 危急级漏洞由于极广的影响范围而具有很高的研究价值。 安全防御价值 2 四川大学硕士学位论文w i n d o w s 危急级漏洞挖掘及分析技术研究 漏洞研究最直接的价值就是安全防御。如果挖掘出未知漏洞,则可以及时 通知软件开发商发布相应的补丁;对于已知漏洞,深入分析了漏洞细节,我们 就能对针对该漏洞做出除安装补丁以外更加详细的防御策略,如防火墙的高级 配置、特定的系统设置等。 技术积累价值 技术积累价值是针对安全研究者而言的。在具体漏洞研究过程中,可能涉 及到大量操作系统底层技术的分析和掌握,以及各类通信协议、文件格式等知 识的研究。因此,每一个成功的漏洞研究过程,都是安全研究技术上的宝贵积 累。 特殊执法价值 在我国,漏洞研究还有一个重要的应用价值,就是将漏洞研究成果与国家 安全部门的涉密项目相结合,以丰富安全部门的网络执法手段。作者参与国家 某涉密项目就是其中一个典型例子 1 2 3 漏洞研究现状 漏洞的研究分为挖掘与分析两部分。漏洞挖掘技术是指对未知漏洞的探索, 综合应用各种技术和工具,尽可能地找出软件中的潜在漏洞;漏洞分析技术是 指对已发现漏洞的细节进行深入分析,为漏洞利用、补救等处理措施作铺垫。 灵活掌握危急级漏洞研究技术,我们就能对这些漏洞采取更加主动、合理的处 理方式。 除了黑客以外,国内外多个安全组织及个人也都从事漏洞的研究。国外 e e y e 、l s d 、w 0 0 w 0 0 等组织对最新的漏洞进行及时跟踪分析,并给出相应的 漏洞解决方案。绿盟科技、启明星辰等单位是国内安全研究组织的代表。绿盟 科技是发布自主研究安全漏洞最多的国内安全公司,已经完成对r p c 、s m b 、 s 等多类漏洞的研究,并取得了不错的成绩【5 】。 然而,从现有的资料上可以看出,这些组织公布的都是一些传统的漏洞研 究技术,而这些技术并没有体现出应有的价值和潜力针对具体漏洞,安全研 究者进行的工作往往存在大量的重复内容,研究效率和效果上也有相当的局限 性。因此,研究高效、实用的漏洞挖掘与分析技术是本文的重点。 1 3 论文组织结构 研究高效、实用的漏洞挖掘与分析技术是本文的核心内容。其中,第2 章 描述了传统漏洞挖掘与分析技术的基本原理;第3 章提出了基于协议屏蔽的漏 四川大学硕士学位论文 w i n d o w s 危急级漏洞挖掘及分析技术研究 洞挖掘技术;第4 章提出了基于协议屏蔽的漏洞挖掘器在w i n d o w s 2 0 0 0 x p 2 0 0 3 平台上的设计方案,以及挖掘器的应用;第5 章提出了基于模式比较的漏洞分 析技术:第6 章提出了基于模式比较的漏洞分析器在眦w s 2 0 0 0 ) ( p 2 0 0 3 平 台上的设计方案,以及分析器的应用;第7 章对本文做了总结,并对未来做了 展望。 4 四大学面十学位论文w i n d o w s 危急级漏橱挖掘及分析技术研究 第2 章漏洞挖掘及分析技术原理 漏洞的成功研究,实际上是依靠一系列基础的漏洞挖掘及分析技术的综合支 持和运用。而新技术的产生,也就是对这些基础技术提出新的要求。在3 2 位 w m d o w s 平台上,非开源软件在软件种类、数量以及漏洞的影响等几方面都占绝 对优势,因此,本文只针对这类软件进行分析,开源软件的漏洞研究技术将不作 讨论。 2 13 2 位w i n d o w s 体系结构 在w i n d o w s 平台上进行漏洞研究,将涉及到大量的操作系统相关知识。因 此,了解w i n d o w s 体系结构是很有必要的。图2 1 显示了w i n d o w s 2 0 0 0 ,2 0 0 3 体系结构简图: ( r i n 9 3 ) 核心态( r i n g , 0 ) 图2 - iw i n d o w s 体系结构简图 由图2 1 可知,保护模式下3 2 位w i n d o w s 体系结构分为用户态与核心态。 其中,用户态的权限级别为最低的p d n 9 3 级,运行着w m 3 2 子系统、服务进程 以及其它应用程序:核心态权限级别为最高的p d n 9 0 级,操作系统核心层和设备 驱动程序都运行在这里嘲。 我们进行漏洞研究,对象基本针对运行在用户态的服务进程和应用程序。例 如,t c l n c t 服务,s 服务,以及o f f i c e 、i e ,杀毒工具等都属于这一范畴。 四川大学硕士学位论文w i n d o w s 危急缓漏嗣挖掘硬分析技术研究 2 2 漏洞挖掘技术原理 2 2 1 漏洞挖掘技术模型 研究漏洞挖掘技术的主要目的是尽可能地找出软件中潜在的漏洞,以进行下 一步的漏洞分析。传统的漏洞挖掘技术模型如图2 2 所示: 图2 - 2 漏洞挖掘技术模型 由图2 2 可知,传统的漏洞挖掘技术分为静态分析和动态分析两大类m 。其 中,静态分析技术主要包括:有向图分析、污点数据传播分析、i d c 脚本分析和 整数限制分析;动态分析技术主要包括:格式分析、黑盒测试和虚拟堆栈分析刖。 2 2 2 静态分析 静态分析技术是指在程序非运行情况下,对软件汇编代码进行分析,以发现 一些潜在的漏洞。目前主要的静态分析技术包括有向图分析、污点数据传播分析、 i d c 脚本分析和整数限制分析等。这些技术的应用都有一个共同前提,就是逆向 工程。需要通过特定的逆向平台对软件程序进行反汇编,得到相应的反汇编文本。 实际工作中,常用的反汇编工具包括i d a p r o 、w 3 2 d a s 、h v 正w 等。其中,i d a p r o 是目前功能最强大的、具有图形交互界面的反汇编工具,它能自动识别各种 处理器和编译器,分析软件的隐藏功能以及识别无符号的库调用。i d a p r o 更加 详细的介绍参考【9 】,图2 - 2 显示了d a p r o 得到的部分反汇编文本。 1 ) 有向图分析 有向图分析是最直接的一种静态分析技术,实现思路是也很简单。利用i d a p r o 得到软件的反汇编文本,搜索汇编代码中的c a l l 、r e t 指令,即搜索所有的 函数调用与定义。搜索算法既可以采用广度优先搜索算法,也可以采用深度优先 搜索算法【1 0 l 。然后,按照软件逻辑流程构造出函数调用关系图,也就是有向图, 6 甲 明川大学碗十学位论文晰m d o w s 危台缓漏嗣挖掘及分析技术伊究 t e x t :蛐d 皓晖6 p u s h 2 8 h t e x t :4 a d 9 5 0 5 8 p u s h o f f s e td w o r d 耳n d 0 5 1 7 8 t e x t :上1 日d 0 5 日5 dc a l l s u bj 1 a d 0 1 6 2 f t e x t :4 冉d 巧0 6 2x o r e d i e d i t e x t :i i a p 峤酾j p u s h e d i :l p h o d u l e h t e x t :4 a d l l 5 0 6 5c a l l d s :g e t h o d u l e h a n d l e a t e x t :4 冉d 钙0 6 b c m p w o r dp t rr e a x 】s a s h t e x t :4 n d 峤日7 i i j f l l z l o c4 a d 0 5 1 6 9 t e x t :k n b 0 5 0 7 6 舶u e c x 【e a x + 3 c h t e x t :4 a d 盱0 7 9a d d e c x e a x t e x t :4 a d 0 5 0 7 bc e l l ) d w o r dp t pr e c x l | 5 s o h 图2 - 3i d a p r o 反汇编文本 图2 4 显示了一个简单的有向图。每个函数调用,包括那些可疑的字符串操作函 数( 如s v c w 、s p r l n f f 等) ,都作为有向图的一个节点。每个节点记录着函数入口 地址、分配的堆栈大小,局部变量使用情况、调用者传递的参数、返回地址等信 息。 m i _ n 图2 - 4 有向图示例 生成有向图后,对于那些容易引发漏洞的函数调用,判断在调用之前是否进 行了参数边界检测。例如,在s t r c p y 调用之前,判断是否调用了s t r l e n 等函数来 检查字符串参数的长度。 有向图分析的难点源于编译器的优化。诸如s u c p y 、s p r t n t f 等字符串操作函 数的调用在v c 6 0 及以上版本编译器编译的时候都被硬编码到了软件程序中。 要在汇编代码中找到这些函数调用,必须对函数相关指令进行特征匹配。以s t r c p y 函数为例,对于v c 6 0 编译器编译生成的汇编代码,必须在代码中以e c x 为核 心同时对三条字符串操作指令进行匹配搜索;而v c 7 0 及以上版本的编译器由 于硬编码代码中使用了相对基址变址寻址方式,简单提取s t r c p y 的固定特征指令 比较困难,必须结合指令语义进行分析,构造函数的特征码,进行深一步的分析。 2 ) 污点数据传播分析 污点数据传播分析是挖掘漏洞的另一种静态分析技术,来源于p e r l 中的 7 四川大学硕士学位论文 w i n d o w s 危急级漏洞挖掘及分扩技术研究 “t a i n t i n g ”的机制1 1 0 1 。与有向图法注重检查可疑函数的调用不同,污点数据传 播分析的思想在于监控所谓的“不可信数据”,即污点数据的传播轨迹。污点数 据通常来源于用户输入,包括命令行参数、图形界面交互数据、文件数据、网络 通信数据以及系统环境变量等几种类型。污点数据传播轨迹并非在软件运行时对 动态数据流的监控,而是在i d a p r o 逆向得到的反汇编文本基础上,静态分析处 理用户输入的那部分汇编代码。将污点数据标记为“t a i n t e d ”,“t a i n t e d ”数据通 过程序语句进行传播,任何对“t a i n t e d ”数据的操作( 如添加,合并,插入等) , 其结果值也是“t a i n t e d ”。 针对非开源软件,污点数据传播分析又称为双向数据流分析。所谓双向,一 是从污点数据输入开始,自上而下形成一棵传播树( p r o p a g a t i o nt r e e ) ;二是从 反汇编文本中搜索s t r c p y 、s p r i n t f 等可疑函数的调用,然后从这些函数调用的地方 开始向上回溯,找到两者相交的位置( 可能不存在交点) ,从而产生污染流路径 ( t a i n t e df l o wp a t h ) 。分析交点处指令,判断是否进行了污点数据的长度检查, 进而判断漏洞是否存在。当然,双向数据流相交的位置可能不止一处,那么将产 生多条污染流路径。双向数据流分析如图2 5 所示: 图2 5 污点数据传播分析 显然,由于存在字符串操作函数的搜索,污点数据传播分析仍然受到编译器 优化的影响。另一个难点是完整污点数据传播树的构造。从确定污点数据输入处 开始,到理清所有相关处理代码之间的逻辑关系,加上大量的分支指令,构造传 播树是一个相当复杂的过程。多数情况下,需要人工辅助分析的介入。 星 四川大学碗十学位论文w i n d o w s 危急缀漏嗣挖掘及分析技术研究 3 ) i d c 脚本分析 同样是基于i d a p r o 的静态分析技术,i d c 脚本分析在挖掘漏洞,尤其是缓冲 区溢出漏洞方面相比前两种技术更有效。i d a p r o 除了具有极强的反汇编和图形 交互界面外,还提供了i d c 自动化脚本功能,使得用户可以编写特定目的的自动 话脚本对反汇编数据库内的内容进行处理。 i d c 足简单的脚本语言,语法与c 语言类似。i d c 中变量和类型无关,均使 用a u t o 关键字进行定义。变量使用之前必须定义,所有的c 和c + + 关键字均保留, 不能用作变量名。条件判断语句如i f 、循环控制语句如f o r 等也都和c 语言类似。 i d c 内置了很多函数和预定义的宏,编写i d c 脚本的时候通常需要在文件开始处 加上# i n c l u d e 。常用的内置函数有b e g i n e a ( 获取程序起始地址) 和 f i n d t e x t ( 查找文本) 等。可以在反汇编完成之后运行i d c 脚本,加载i d c 脚本时 i d ap r o 会自动从脚本中的m a i n i 承i 数开始运行【1 l 】。 m c 漏洞挖掘脚本的编写思想并不复杂。通过f i n d t e x t 函数搜索汇编代码中 的数据输入函数( 如r e a d f i l e 、r e c v 等) 调用,在这些代码地址后面一段小范围 内搜索诸如s t r e p y 、s p r i n t f 等数据操作函数调用。如果找到,则记录调用者地址, 并检查在数据输入函数与字符串操作函数调用之间是否进行了数据长度检测。如 果没有则说明可能存在漏洞。 i d c 脚本分析在理论上可以发现不少简单的漏洞。h a l v a rf l a k e 开发了基于 i d c 的漏洞挖掘脚本工具b u g s e a m 、b u g s e a n ,但受到目前反汇编技术的影响, 这些工具只能找出一些简单错误引发的漏洞。一个改进的方法是加入更多的可以 匹配的模式,以及在反汇编技术允许的范围内完善确定缓冲区大小的算法。 h a l v a rf l a k e 认为静态分析如果想更有效的话,需要一个更为强大的逆向工程平 台,现在i d a p r o 是远远不够的【“】。 4 ) 整数限制分析 整数范围限制是另一种静态分析技术,是指将漏洞挖掘抽象为整数范围分析 的问题 1 3 1 。针对非开源软件,整数范围限制的发掘模型包括汇编代码分析和建 立数学模型。首先是对i d a p r o 得到的汇编代码进行分析,产生整数范围限制, 最后对产生的限制进行分析从而筛选出存在安全漏洞的代码【1 4 1 。这里的整数范 围,包括数据缓冲区的分配范围和实际数据的长度范围。 定义数据s 的缓冲区分配长度a ( s ) 的范围为b 】,实际数据的长度范围l ( s ) 为 c ,d 】。那么就会出现三种可能的情况: ( 1 ) 如果b c ,可以判断不存在溢出漏洞; ( 2 ) 如果a d ,判断存在溢出漏洞; ( 3 ) 如果两个范围重叠在一起d b e a ,就不能得出肯定的判断,需要进 9 四川大学硕士学位论文w i n d o w s 危急级漏湔挖掘及分扩技术研究 一步分析。 整数限制分析难点在于整数范围对的分析。如果足简单的数据使用引起的漏 洞,是比较容易挖掘的;但很多漏洞往往是由一个错综复杂的关系而产生的,因 此容易出现由不精确的范围分析引起的误报。但作为一个自动化的软件漏洞静态 分析技术,它已经不错了,毕竟可以减轻人员审计的大量时间和精力。 综合上述四种静态分析技术,它们的实现形式尽管有所不同,但效果却大致 相当,并共同存在几点缺陷。 准确率不高 由于针对汇编文本进行静态分析,缺乏必要的运行时信息,因此在分析过程 中容易出现误报和漏报,这几乎是不可避免的。 时间复杂度较高 汇编文本来源于i d a p r o ,这就必然会产生大量的无用信息,对这些无用信 息的分析将消耗大量的时间。如果软件体积很大的话,例如在5 0 0 k b y r e 以上, 则可能根本无法保证能在相应的多项式时间内【1 5 1 完成漏洞挖掘工作。要进一步 改进的话,必须引进更加强大的反汇编工具,但现在尚未出现。 在实际的工作中,静态分析技术往往只作为漏洞挖掘的辅助手段,我们更多 的还是采用动态分析技术。 2 2 3 动态分析 动态分析技术是指在软件程序运行状态下,通过测试、调试等手段来挖掘软 件中潜在的漏洞。传统的动态分析技术主要包括:格式分析、黑盒测试和虚拟堆 栈分析等。 1 ) 格式分析 本文将常规漏洞定义为两种类型:协议格式解析漏洞与文件格式解析漏洞。 如果漏洞是软件在处理网络通信数据时引发的,则称为协议格式解析漏洞, 这类漏洞涉及的协议特指各t c p i p 应用层协议;如果漏洞是软件解析本地文件格 式时引发的,则称为文件格式解析漏洞。挖掘具体的漏洞,有必要先掌握该漏洞 涉及的协议或文件的格式,然后进行动态分析。 ( 1 ) 协议格式 本文中协议特指各t c p i p 应用层协议,如h t t p 、r p c 、t e l n e t 、f t p 、s m t p 、 p o p 3 等几类。协议格式分析目的是根据协议格式的标准定义,充分了解其中各 字段的含义、尺寸等信息。软件之间通信时,程序将从整个数据包中对协议所有 字段一一解析。解析某些字段( 如哪协议的应用数据部分) 时,会涉及到对 字符串等数据的操作,而漏洞也就是在这些操作过程中引发的。总的来说,t c p i p 1 0 四川大学硕士学位论文w i n d o w s 危急缓漏嗣挖掘及分扩技术研究 应用层协议的格式比较统一且不复杂,分析起来相对容易。 实际工作中,要研究协议格式,除了参考相应的r f c 文档外,对通信数据包 的分析也是很有必要的。通信数据包分析通过一些网络协议分析工具来实现,典 型的网络协议分析工具包括e t h c r o a 1 6 l 、s r d f f c rp r o 、l d s 等,它们都需要v n m p c a p 驱动来支持。这些网络协议分析工具不仅能有效地截获通信数据包,还能对不同 的字段进行详细解析。图2 6 显示了e 也e r e a l 截获h r r p 协议数据包后的部分解 析内容。 日f r a m e1 2 ( 3 3 7b y t 已so r 州r e 3 3 7b y t e sc a p t u r e d ) a 广r v a lt m e :a p t5 2 0 0 40 1 _ :3 4 :4 6 4 3 35 b5 0 0 0 t 4 m ed e l t af r 册口r e v to u sp a c k e r r :0 0 0 0 5 0 3 0 0 0s e c o n d s t 1 m es i r c er e f e r e n c eo rf i r s tf r a j i l e :0 9 7 0 8 9 6 0 0 0s e c o n d s f r a m en u m b e r :3 2 p a c k e tl e n q t h :3 3 7b y t e s c a p l ;u r el e n g t h :3 3 7b y t e s 田e l :h e r n e l :i 工5 r c :5 2 :5 4 :a 4 :d d :2 a :5 0 。d s c :0 0 :1 1 :9 5 :c d :b 0 :4 a 田t r a n s m i s s i d nc o n t r 0 1p r 优o c o l 。5 r cp g r z :3 4 3 0 ( 3 4 3 0 ) d s tp 图2 - 6e t h e r e a l 协议分析功能 ( 2 ) 文件格式 本文涉及的文件格式泛指w r m d o w s 支持的各种文件格式,如d o c 、p c 氓j p g 等,统称它们为客户端文件格式【”l 。与协议格式不同,文件格式往往比较复杂, 而且最新版本的文件格式开发商一般都不会及时公布,因

温馨提示

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

评论

0/150

提交评论