(计算机应用技术专业论文)软件源代码静态分析缺陷分类的研究.pdf_第1页
(计算机应用技术专业论文)软件源代码静态分析缺陷分类的研究.pdf_第2页
(计算机应用技术专业论文)软件源代码静态分析缺陷分类的研究.pdf_第3页
(计算机应用技术专业论文)软件源代码静态分析缺陷分类的研究.pdf_第4页
(计算机应用技术专业论文)软件源代码静态分析缺陷分类的研究.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

r e s e a r c ho nt h ed e f e c tc l a s s i f i c a t i o no fs o f t w a r es o u r c e c o d es t a t i ca n a l y s i s at h e s i ss u b m i t t e df o rt h ed e g r e eo fm a s t e r c a n d i d a t e :z e n g j i a n s u p e r v i s o r :p r o f w a n gs h i h u i h u b e iu n i v e r s i t y w u h a n ,c h i n a 8川09m 6m 3 7, iiiily 湖北大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取 得的研究成果。除了文中特j j i i d n 以标注引用的内容外,本论文不包含任何其 他个人或集体己经发表或撰写的成果作品。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果 由本人承担。 论文作者签名:被 日期:刃f 矿年莎月弓日 学位论文使用授权说明 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 按照学校要求提交学位论文的印刷本和电子版本;学校有权保存并向国 家有关部门或机构送交论文的复印件和电子版,并提供目录检索与阅览服务; 学校可以允许采用影印、缩印、数字化或其它复制手段保存学位论文;在不 以赢利为目的的前提下,学校可以公开学位论文的部分或全部内容。( 保密论 文在解密后遵守此规定) 作者签名: 俊 指导撕签名:删贪 日期:纠啤铘日 醐训嘈p 国 摘要 伴随着基于计算机应用的不断发展而现存的计算机安全问题,大部分是由于 应用软件本身的安全缺陷引起的,而应用软件本身的安全问题大部分是由软件的 源代码缺陷所造成的,基于源代码的缺陷分类是构建源代码静态检测系统的基础 和灵魂,故如何运用源代码缺陷分类构建源代码分析系统去检测软件的安全性已 经成为信息科学技术领域迫切需要解决的问题。 软件源代码静态分析缺陷是指用静态检测方法即不运行被测程序本 身,仅通过分析或检查源程序的语法、过程、结构、接口等来检查程序的 正确性的方法所分析得出的软件源代码缺陷。 本文分析了大量源代码静态缺陷分类数据,如分析了c w e 缺陷分类,f i n d b u g s 缺陷分类,某商业软件缺陷分类;对以上三种缺陷分类进行了仔细全面的分析综 合,以以上三种缺陷分类的内容作为分类基础,根据源代码静态缺陷产生的根源 从词法、语法、语义三个层次分析源代码造成的缺陷类别作为依据,以正交缺陷 分类度量方法作为缺陷分类的分类方法,总结得出源代码静态分析缺陷分类。 以正交缺陷分类度量方法得出的缺陷分类分为9 个大类,2 0 3 个子类,4 7 3 个 细类,每个类别之间相互正交,每个作为终极分类的子类和每个细类都有1 0 个 属性,分别为缺陷类雯j l j i d ,缺陷类型,缺陷名称,缺陷严重等级,缺陷优先级, 语言类型,详细描述,修复建议,参考c w e ,缺陷样本。 该源代码静态缺陷分类既可以弥补传统缺陷分类方法中的不足,又达到传统 缺陷分类无法实现的某些特定目标,如缺陷样本。该分类对每一个缺陷分类都有 详尽的缺陷样本,更详尽的对各种语言都有对应的样本代码,并附上对样本的解 释和修复建议,方便测试人员对照分析比对。采用以上三种方法技术结合实现的 缺陷分类系业内最全面,最仔细( 源代码静态缺陷分类覆盖面广,几乎覆盖了所 有源代码中出现的缺陷类别) ,最详尽( 分类包含内容齐全,不仅包含缺陷分类 的类别,严重程度,详细描述,还包含目前许多同类缺陷分类所没有的修复建议, 缺陷样本) 的源代码静态缺陷分类。源代码静态安全缺陷分类同时在扩展性( 与 c w e 缺陷分类关联,其他种类划分的缺陷分类只要与c w e 能对应或者能在c w e 中 找到与之相关的都可与源代码静态分析缺陷分类对应起来) 、完备性( 不仅包含 其他分类的优点,更能体现出其他分类所不能体现的优点) 、兼容性( 能与各源 代码检测工具的结果进行比对,殊途同归) 等缺陷检测和缺陷管理等方面都取得 了很好的效果。 本文的主要成果如下: ( 1 ) 分析了传统的源代码静态安全缺陷分类方法,总结其优缺点,提出构建 完整缺陷分类的重要性。 ( 2 ) 介绍当前软件代码的风险分类,分析各种类型风险的成因,讨论了几种 常见缺陷分类方法,如c w e 缺陷分类,f i n d b u g s 缺陷分类,某商业软件缺陷分类 等方法,在大量缺陷分类数据的基础上总结出完善的源代码静态分析缺陷分类。 ( 3 ) 结合现在成熟的词法分析、语法分析、结构流、数据流、控制流技术, 从源代码缺陷的理论根源上出发,并运用正交缺陷分类方法作为度量方法和手 段,从源代码入手,根据词法、语法与语义层次结构,分析程序的结构与关键特 征,从而获得程序的源代码静态缺陷分类,并总结形成新的缺陷分类。 ( 4 ) 该缺陷分类结合了各缺陷分类的优点,能把各种源代码静态检测的结 果进行比对统一,各源代码静态检测工具结果更能用该缺陷分类作为参考依据, 体现了改缺陷分类的兼容性强的特点。 关键词:信息安全;静态检测;静态缺陷分类;c w e ;软件测试 c o m p u t e rs e c u r i t yi s s u e s ,m o s to fw h i c ha r ec a u s e do fi n n e rs e c u r i t yd e f e c t s t h e s e c u r i t yi s s u e so fa p p l i c a t i o ns o f t w a r ea r em o s tc a u s e do f t h es o u r c ec o d ed e f e c t s t h e d e f e c tc l a s s i f i c a t i o nb a s e d0 1 1t h es o u r c ec o d ei st h eb a s ea n ds o u lt ob u i l das t a t i c d e t e c t i o ns y s t e mo fs o u r c ec o d e b u i l d i n gt h es o u r c ec o d ea n a l y s i ss y s t e mt ot e s tt h e s a f e t yo fs o f t w a r ew i t ht h es o u r c ec o d ed e f e c tc l a s s i f i c a t i o nh a sb e c o m ea nu r g e n t p r o b l e mf o ri n f o r m a t i o ns c i e n c ea n dt e c h n o l o g y s o f t w a r es o u r c ec o d es t a t i ca n a l y s i sd e f e c td e t e c t i o nm e t h o di st ou s eas t a t i c p r o c e s st h a td o e sn o tr u ni t s e l fm e a s u r e do n l yb ya n a l y z i n gt h es o u r c ec o d eo rc h e c k t h es y n t a x ,p r o c e s s ,s t r u c t u r e ,i n t e r f a c et oc h e c kt h ec 0 1 t e c t n e s so fp r o g r a ma n a l y s i s m e t h o d sa r ed e r i v e dd e f e c t sc l a s s i f i c a t i o n t h i sa r t i c a la n a l y z st h es o u r c ec o d eo fal a r g en u m b e ro fd i s a g g r e g a t e dd a t ao l l t h eb a s i so fs t a t i cd e f e c t s ,s u c ha sd e f e c tc l a s s i f i c a t i o na n a l y s i so fe w e ,d e f e c t c l a s s i f i c a t i o na n a l y s i so ff i n d b u g s ,c o m b i n e dw i t hac o m m e r c i a ls o f l r w a r ed e f e c t c l a s s i f i c a t i o n ;o i lt h ec l a s s i f i c a t i o no ft h e s et h r e ed e f e c t sw e r ec a r e f u l l yr o u n dt ot h e a n a l y s i so ft h ec o n t e n t so ft h e s et h r e ed e f e c t sc l a s s i f i e da sac a t e g o r yb a s i s ,a c c o r d i n g t ot h es o u r c ec o d ef o ras t a t i cs o u r c eo fd e f e c t sf r o mm o r p h o l o g y , s y n t a x ,s e m a n t i c a n a l y s i so ft h et h r e el e v e l so ft h ed e f e c t sc a u s e db yt y p eo fs o u r c ec o d ea sab a s i s , o r t h o g o n a ld e f e c tc l a s s i f i c a t i o nm e t h o d 嬲am e a s u r et h ec l a s s i f i c a t i o no fd e f e c t c l a s s i f i c a t i o n , c o n c l u s i o ni sd r a w nt h a t t h es o u r c ec o d es t a t i c a n a l y s i sd e f e c t c l a s s i f i c a t i o n b e c a u s et h ep r o c e s sb yt h es y m b o ls e q u e n c ec o m p o s i t i o n ,a n dt h e r e f o r e t h e s o u r c ec o d es t a t i ca n a l y s i sd e f e c tc l a s s i f i c a t i o nd e f e c tf r o mt h el e x i c a la n a l y s i so ft h e b e g i n n i n g ,t h a tf i r s ts y m b o ls e q u e n c ei nt h ec o m p o s i t i o no fi n s p e c t i o np r o c e d u r e s p r o b l e m st h a tm a yo c c u r ;i ft h ec o m p o s i t i o np r o c e s sc a nb ef u r t h e ra st h es y m b o l s e q u e n c eo f s t a t e m e n t sa n dd e c l a r a t i o n si nt h ec o u r s eo fa l a r g e ru n i t ,s u c ha ss y m b o l s t h a tm a ya p p e a ri n c o m p a t i b l ew i t ht h ep r o g r a m m i n gl a n g u a g eg r a m m a rr u l e s ,t h a t g r a m m a rd e f e c t ;e v e np r o g r a m m e dt oa v o i dt h ea b o v ec a t e g o r y2d e f e c t s ,p r o c e d u r e s , i i i a n dt h ep r o g r a m m e rm a ys t i l lw a n tt oe x p r e s st h er e a lm e a n i n go f i n c o n s i s t e n c yt h a t g e n e r a t es e m a n t i cd e f e c t ,t h i st i m eu n d e rt h ep r i n c i p l eo fk n o w l e d g ec o m p i l e d g r a m m a rp a r s i n gt h es o u r c ec o d e ,t h e nr e s o l v et ot h es t a n d a r ds y n t a xt r e e ,a s t ,a n d t h e nt h ed a t af l o wa n a l y z e r ,c o n t r o lf l o wa n a l y z e r , t h es t r u c t u r eo ft h es y n t a xt r e ef o r s e m a n t i cp a r s e rl e v e lo fd e f e c t sa n a l y s i s ;f r o mt h el e x i c a l ,g r a m m a t i c a la n ds e m a n t i c p o i n to fv i e wt h es o u r c ec o d eo ft h r e es t a t i ca n a l y s i s ,t h i sa n a l y s i si st h r e el a y e r so f t h ep r o g r e s s i v e m e a s u r e m e n tm e t h o d st od r a w o r t h o g o n a l d e f e c tc l a s s i f i c a t i o nd e f e c t c l a s s i f i c a t i o ni sd i v i d e di n t on i n ec a t e g o r i e sa n d2 0 3s u b - c l a s s ,4 7 3s m a l lc l a s s e s , o r t h o g o n a la m o n ge a c hc a t e g o r y , e a c hs u b - c a t e g o r ya st h eu l t i m a t es m a l lc l a s s e sa n d e a c hc l a s sh a s1 1a t t r i b u t e s ,n a m e l yd e f e c tt y p ei d ,d e f e c tt y p e ,d e f e c tn a m e s ,d e f e c t s e v e r i t y , d e f e c tp r i o r i t y , l a n g u a g et y p e ,d e t a i l e dd e s c r i p t i o n so ft h ee f f e c t s ,r e p a i r r e c o m m e n d a t i o n s ,r e f e r e n c ec w e ,d e f e c ts a m p l e s ,n 把s o u r c ec o d ef o rb o t ht h es t a t i cd e f e c tc l a s s i f i c a t i o nc a nm a k eu pf o r d e f i c i e n c i e so ft r a d i t i o n a lc l a s s i f i c a t i o no ft h ed e f i c i e n c y , b u ta l s ot ot h et r a d i t i o n a l c l a s s i f i c a t i o no fd e f e c t sc a nn o tb ea c h i e v e dc e r t a i ng o a l s ,s u c ha sd e f e c t si nt h e s a m p l e t h ed e f e c tc l a s s i f i c a t i o nf o re a c hc a t e g o r ya r ed e t a i l e dd e f e c ts a m p l ea n d m o r ed e t a i l e dt h ev a r i o u sl a n g u a g e sh a v ec o r r e s p o n d i n gs a m p l ec o d e ,t o g e t h e rw i m t h ei n t e r p r e t a t i o no ft h es a m p l ea n dr e p a i rr e c o m m e n d a t i o n st of a c i l i t a t et h ec o n t r o lo f t h et e s t e rt h a nt h er i g h t a p p l y i n gt h ea b o v et h r e em e t h o d sc o m b i n e dw i t hd e f e c t c l a s s i f i c a t i o ns y s t e mt oa c h i e v et h ei n d u s t r y ;s m o s tc o m p r e h e n s i v ea n dm o s tc a r e f u l l y ( t h es o u r c ec o d es t a t i cd e f e c tc l a s s i f i c a t i o nc o v e r a g e ,c o v e t i n ga l m o s ta l lt h ed e f e c t s a p p e a ri nt h es o u r c ec o d ec a t e g o r y ) ,t h em o s td e t a i l e d ( c a t e g o r yc o n t a i n st h ec o n t e n t i sc o m p l e t e ,c o n t a i n sn o to n l yt h et y p eo fd e f e c tc l a s s i f i c a t i o n , s e v e r i t y , d e t a i l e d d e s c r i p t i o n ,b u ta l s oi n c l u d e sm a n yc u r r e n tc l a s s i f i c a t i o nd o e sn o th a v et h es a m e d e f e c t r e p a i rr e c o m m e n d a t i o n s ,d e f e c ts a m p l e s ) o fs o u r c e c o d es t a t i cd e f e c t c l a s s i f i c a t i o n s o u r c ec o d es t a t i cs e c u r i t yd e f e c tc l a s s i f i c a t i o na tt h es a m et i m e s c a l a b i l i t y ( e w e d e f e c tc l a s s i f i c a t i o na s s o c i a t e dw i t ho t h e r t y p e o fd e f e c t c l a s s i f i c a t i o n ,o ra sl o n ga sc o r r e s p o n d i n gw i t ht h ec w 色c a nb e f o u n di nc w ec a nb e a s s o c i a t e d 、) l ,i t ht h es o u r c ec o d es t a t i ca n a l y s i sd e f e c tc l a s s i f i c a t i o nc o r r e s p o n d st ou p ) , i v c o m p l e t e n e s s ( i n c l u d i n gn o to n l y t h ea d v a n t a g e so ft h eo t h e rc a t e g o r i e s ,o t h e r c a t e g o r i e st ob e t t e rr e f l e c tt h em e r i t so fw h i c hc a nn o tb er e f l e c t e d ) ,c o m p a t i b i l i t y ( w i t ht h es o u r c ec o d et e s t i n gt o o l st oc o m p a r er e s u l t so fd i f f e r e n tk i n d s ) a n do t h e r d e f e c td e t e c t i o na n dd e f e c tm a n a g e m e n t ,h a v ea c h i e v e dg o o dr e s u l t s t h em a i nr e s u l t so ft h i sp a p e ri sa sf o l l o w s : ( 1 ) t oa n a l y z et h es o u r c ec o d eo f t h et r a d i t i o n a ls t a t i cs e c u r i t yd e f e c tc l a s s i f i c a t i o n m e t h o d s ,s u m m a r i z et h es t r e n g t h sa n dw e a k n e s s e s ,m a k et h ei m p o r t a n c eo fb u i l d i n ga c o m p l e t ed e f e c tc l a s s i f i c a t i o n ( 2 ) t od e s c r i b et h ec u r r e n tr i s kc l a s s i f i c a t i o ns o f t w a r ec o d et oa n a l y z et h ec a u s e s o fv a r i o u st y p e so fr i s k , d i s c u s s e dt h ec l a s s i f i c a t i o no fs o m ec o m m o nd e f e c t s ,s u c ha s t h ee w ed e f e c tc l a s s i f i c a t i o n ,f i n d b u g sd e f e c tc l a s s i f i c a t i o n , ab u s i n e s s s o f t w a r e d e f e c tc l a s s i f i c a t i o nm e t h o d ,c l a s s i f i c a t i o no fd a t ai nal a r g en u m b e ro fd e f e c t s c o n c l u d e do nt h eb a s i so fas o u n ds o u r c ec o d eo nb e h a l fo fss t a t i cd e f e c t c l a s s i f i c a t i o n ( 3 ) c o m b i n e dw i t hm o d e r ns o p h i s t i c a t e d l e x i c a la n a l y s i s ,g r a m m a ra n a l y s i s , s t r u c t u r a lf l o w ,d a t af l o w ,c o n t r o lf l o wt e c h n o l o g y , t h es o u r c ec o d e f r o mt h et h e o r yo f t h er o o tc a u s e so fd e f e c t si nt h ea n g l ea n do r t h o g o n a ld e f e c tc l a s s i f i c a t i o nm e t h o d s a n dt o o l s f o rm e a s u r e m e n t ,s t a r t i n gf r o mt h es o u r c ec o d e ,a c c o r d i n gt ol e x i c a l , g r a m m a t i c a la n ds e m a n t i ca n a l y s i so ft h ek e yf e a t u r e so f t h es t r u c t u r ea n dp r o c e d u r e s t oo b t a i nt h es o u r c ec o d es t a t i cd e f e c tc l a s s i f i c a t i o n , a n dt h ef o r m a t i o no fn e wd e f e c t c l a s s i f i c a t i o n ( 4 ) t h ed e f e c tc l a s s i f i c a t i o nc o m b i n e st h ea d v a n t a g e so f e a c hd e f e c tc l a s s i f i c a t i o n , c a nd e t e c tav a r i e t yo fs t a t i cs o u r c ec o d et oc o m p a r et h er e s u l t so fu n i f i c a t i o n ,t h e s o u r c ec o d et ob e t t e ru s et h er e s u l t so fs t a t i ct e s t i n gt o o l sa sar e f e r e n c et ot h ed e f e c t c l a s s i f i c a t i o n ,d e f e c tr e f l e c t st h ec h a n g ec l a s s i f i c a t i o no fc o m p a t i b i l i t yf e a t u r e s k e y w o r d s :i n f o r m a t i o ns e c u r i t y ;s t a t i c t e s t i n g ;s t a t i cd e f e c tc l a s s i f i c a t i o n ;c w e ; s o f t w a r et e s t i n g v 目录 摘要i a b s t r a c t i i i 第一章绪论1 1 1 背景介绍1 1 1 1 软件源代码缺陷的概述1 1 1 2 软件源代码缺陷分类的发展现状1 1 1 3 研究软件源代码缺陷分类的意义2 1 2 本论文研究的主要内容和主要方法2 1 3 论文组织结构3 第二章软件源代码缺陷分类概述4 2 1 软件测试的意义4 2 2 软件源代码缺陷检测方法一4 2 2 1 静态检测方法4 2 2 2 动态检测方法5 2 3 已有软件缺陷分类方法一6 2 3 1p u t n a m 缺陷分类方法6 2 3 2t h a y e r 软件错误分类方法6 2 3 3m m 缺陷预防方案7 2 3 4i e e e 软件异常分类标准7 2 3 5m m 正交缺陷分类方法7 2 4 几种缺陷分类方案的比较8 第三章软件源代码缺陷分类分析9 3 1 缺陷分类的数据基础9 3 1 1 某商业软件的源代码缺陷分类方法9 3 1 2c o m m o nw e a k n e s se n u m e r a t i o n ( c 、e ) 分类划分9 3 1 3f i n d b u g s 的分类方法1 0 3 2 正交缺陷分类技术的深入分析1 1 3 2 1 正交缺陷分类的基本概念和特点1 l 3 2 2 正交缺陷分类检测分布图1 l 3 2 3 选取正交缺陷分类方法作为缺陷分类及缺陷度量的基础1 2 3 3 源代码静态分析技术研究1 3 3 3 1 代码解析器检测能力分析1 3 3 3 2 代码语义分析检测能力分析1 5 3 4 引擎检测能力分析缺陷与正交缺陷度量的结合2 1 第四章缺陷分类的设计2 3 4 1 缺陷分类解决方案概述2 3 4 1 1 缺陷分类原则2 3 4 1 2 缺陷分类与其他缺陷分类的关系2 3 4 2 缺陷分类的设计2 4 4 2 1 缺陷属性2 4 4 2 2 缺陷类型2 5 4 2 3 缺陷严重等级3 0 v i 4 2 4 缺陷优先级3 2 4 2 5 缺陷语言类型3 2 4 2 6 缺陷样本3 3 4 3 缺陷分类的优势3 3 4 3 1 与国际上缺陷分类标准接轨3 3 4 3 2 兼容性、扩展性强3 4 4 3 3 缺陷分类的其他优点3 5 4 4 缺陷分类的典型例子3 6 4 4 1 值从未被读取3 6 4 4 2o f f - b y - o n e 3 9 4 4 3 内存泄露。4 1 第五章缺陷分类在源代码静态缺陷分析系统中的应用4 4 5 1 源代码静态缺陷分析系统4 4 5 1 1 源代码静态缺陷分析系统开发的目的4 4 5 1 2 源代码静态缺陷分析系统的功能设计。4 4 5 2 源代码静态缺陷分析系统的开发4 5 5 。2 1 源代码静态缺陷分析系统开发环境4 5 5 2 2 源代码静态缺陷分析系统分析处理流程4 6 第六章总结与展望4 8 参考文献4 9 致谢5 l 攻读研究生期间所发表论文及参加项目5 2 攻读硕士学位期间发表的学术论文。5 2 攻读硕士学位期间参加的研究项目。5 2 v i i 第一章绪论 1 1 背景介绍 第一章绪论 1 1 1 软件源代码缺陷的概述 软件逐渐成为人们社会经济活动和日常生不可或缺的元素,所有计算机应用 领域对软件质量都提出了全方位的要求。同时,我们正面临着软件质量问题的严 重挑战,包括软件源代码缺陷问题引发的系统事故屡见不鲜。软件源代码缺陷是 指源代码中存在各种不希望出现的问题,如语法错误、拼写错误、标点错误,或 者是一个冗余的、不正确的程序语句或有缺陷的代码段等。源代码缺陷造成的软 件缺陷不仅影响用户使用,而且是软件产品费用超支和产品延期的主要原因,对 系统造成或大或小的影响。要获得高质量的软件,必须有效的管理源代码缺陷, 对源代码缺陷进行预防、检测并主动清除。解决好软件源代码缺陷引发的软件缺 陷是软件产品成熟的一个关键问题。 1 1 2 软件源代码缺陷分类的发展现状 近年来,随着软件产口的发展,人们逐渐的认识到,想要开发出高质量的软 件产品,必须对软件的产品质量进行改善。软件源代码安全性缺陷排除是软件产 品质量改进的一项重要措施,在软件源代码开发过程中难免会有一些静态缺陷存 在,每一个软件组织都知道必须妥善处理软件中的静态缺陷,这是关系到软件组 织生存、发展的关键瞳1 。 早在上世纪的6 0 年代,国外机构就认识到软件源代码静态缺陷分类是研 究软件产品缺陷预防的基础,然而软件源代码静态缺陷分类是一项非常难的工 作。目前的源代码静态缺陷分类方定义重叠、繁杂,以及对错误的原因、故障症 状分析都比较浅显口1 。 国外的一些研究机构在近些年提出了5 种具有影响力的软件安全性缺陷 分类的方案,分别是p u t n a m 缺陷分类方法、t h a y e r 软件错误分类方法、i e e e 软件异常分类标准、i b m 缺陷预防方案和i b m 正交缺陷分类( o r t h o g o n a l d e t e c tc l a s s i f i c a t i o n ,简称o d c ) 方法口1 。 国内目前在源代码静态分析领域还暂没有成熟的成果。 湖北大学硕士学位论文 1 1 3 研究软件源代码缺陷分类的意义 软件源代码缺陷分类的关键是要分析缺陷,将缺陷进行分类。不同的软件缺 陷会产生不同的后果,必须区别对待各类缺陷,分析产生各类缺陷的原因,总结 在软件开发过程中不同软件缺陷出现的频度,根据组织自身的开发对象和环境进 行缺陷分类。通过分类,可以迅速找出哪一类问题最大,然后集中精力预防和排 除此类缺陷。把精力集中到最容易引起问题的几类缺陷上,一旦这几类缺陷得到 控制,再进一步找到新的容易引起问题的几类缺陷上。及早发现并修复缺陷,会 极大地促进软件生产。 因此,对软件源代码缺陷分类的研究将促进软件产品质量的提高,提升软件 企业的竞争力。 在中国信息安全测评中心重点项目源代码缺陷静态检测平台中,需 要对多种源代码检测工具( 目前支持四种主流源代码检测工具) 结果进行 整合,并能实现实现对c 、c + + 、c j 等源代码的缺陷检测功能,同时提供对 软件源代码缺陷的风险评估以及源代码缺陷审核功能。而该平台的基础就是源 代码静态分析缺陷分类,故需建立一种仔细全面,兼容性强的缺陷分类去 给该平台作为缺陷整合,检测,风险评估,缺陷审核的依据。 1 2 本论文研究的主要内容和主要方法 这篇文章主要研究如下内容i 介绍了本论文的选题背景、研究内容、主要方 法和组织结构:详细阐述源代码静态检测技术及源代码静态分析缺陷分类研究; 源代码静态缺陷分类在源代码缺陷静态检测平台中的应用研究;阐述了形成本文 中心思想的源代码静态分析缺陷分类;介绍了源代码静态缺陷分类的设计思想和 研究方法;详细介绍了源代码缺陷静态检测平台源代码分析思想。 研究的主要方法g 先对源代码静态缺陷分类进行基本的理论研究,在词法、 语法、语义理论研究的基础上,同时在研究大量缺陷分类数据基础上,运用正交 缺陷度量方法,提出一种全新的源代码静态分析缺陷分类。实践证明,运用以上 理论研究与实践结合的方法对完成源代码静态缺陷分类的形成是完全可行的,也 是非常成功的。 2 1 3 论文组织结构 本论文分为六章。主要讲述源代码缺陷分类的概述,发展现状,基本理论, 源代码缺陷分类方法,从理论上着重研究了源代码缺陷分类方法,并以此为理论 依据,详细深入的研究源代码缺陷分类的分析和源代码静态缺陷分类的形成。 第一章绪论。主要介绍了论文的选题背景、选题研究内容、主要方法以及 本文的组织结构。 第二章软件源代码缺陷分类概述。介绍源代码缺陷分类的基本知识,软件 测试的意义,软件源代码缺陷检测方法,国际上已有的软件缺陷分类方法,并 对几种缺陷分类方法进行了比较。 第三章软件源代码缺陷分类分析。介绍某商业软件的源代缺陷分类方法, 传统软件缺陷分类方法分析,正交缺陷分类的详细分析,源代码分析技术引擎检 测能力,引擎检能力缺陷与正交缺陷分类的结合。 第四章缺陷分类的设计。主要研究缺陷分类解决方案概述,缺陷分类的设 计,介绍了缺陷分类的特点。 第五章缺陷分类在源代码缺陷静态检测平台中的应用。先介绍了源代码静 态缺陷分析系统,然后介绍源代码静态缺陷分析系统的开发。 第六章总结和展望。主要是对本论文的内容进行总结并对缺陷分类的未来发 展进行展望。 湖北大学硕士学位论文 第二章软件源代码缺陷分类概述 2 1 软件测试的意义 软件源代码测试是保证软件质量和可靠性的重要手段,是软件测试是保证软 件质量的重要活动,是软件项目实施的不可缺少的环节,软件测试的直接目的是 发现软件中存在的缺陷。软件测试的主要职责是对软件产品的源代码进行测试和 检验,保证质量能满足客户需求,通过必要测试,软件缺陷数可至少降低7 5 , 而软件的投资回报率能达到3 5 0 ,软件测试带来的产业效益正逐渐引起国内 相关企业的关注。 2 2 软件源代码缺陷检测方法 2 2 1 静态检测方法 静态测试方法是指不运行被测程序本身,仅通过分析或检查源程序的语 法、过程、结构、接口等来检查程序的正确性。主要是通过对软件系统的 源代码进行安全扫描,根据程序中数据流,控制流,语义等信息与其特有 软件安全规则库进行匹对,从中找出代码中潜在的安全缺陷。静态的源代 码安全测试是非常有用的方法,它可以在编码阶段找出所有可能存在安全 风险的代码,这样开发人员可以在早期解决潜在的安全问题。静态测试结 果可用于进一步的查错,并为测试用例选取提供指导。静态分析方法,能 够非常快( 通常只要几秒钟) 就完成对源代码的检查,并且检查者不需要了 解程序的实现方式,不需要掌握运行和部署情况,故非常适合自动化的对 源程序进行检查。而正因为如此,静态代码测试比较适用于早期的代码开 发阶段,而不是测试阶段。同时,由于关系到开发部门,测试部门,管理部 门等多个部门的工作,在实际的贯彻实施工作上有一定的难度。 静态分析方法具有以下特点: ( 1 ) 高效传

温馨提示

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

评论

0/150

提交评论