资源描述:
《基于静态分析的安全代码检测-毕业论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、摘要基于静态分析的安全代码检测【摘要】随着软件应用规模的日益扩大和软件应用环境的日益复杂,保障软件质量是一个必不可少的系统活动,贯穿整个软件开发过程;它的一个重要原则就是缺陷发现的时间越早越好,缺陷被遗漏到下一阶段将使得修复缺陷的成本扩大到原来的5~10倍,甚至造成无法修复的局面。根据静态分析的创始者M.E.Fagan的统计,在设计和编码阶段的软件静态分析可以发现软件30﹪~70﹪的缺陷。随着计算机辅助技术的发展,手工静态分析开始向计算机自动静态分析发展。论文首先介绍了安全代码检测的两种方法:动态分析
2、和静态分析;接着详细分析了静态分析的所需的技术,如模型建立和分析算法,并举例说明静态分析的手工检测过程;最后论文在研究现有静态分析技术与理论的基础上,针对Java面向对象语言的特性,利用JavaCC解析器生成源代码的抽象语法树,给出了以抽象语法树为基础的软件静态分析模型,阐述了该工具中各个模块的设计与实现方法,从而提高软件质量和评审效率。【关键字】安全代码静态分析JavaCC抽象语法树规则库47摘要SecureCodeTestBasedonStaticAnalysis[Abstract]Asthesc
3、aleofsoftwareapplicationsgrowsincreasingly,meanwhiletheapplicationssituationbecomesmorecomplex,protectingsoftwarequalityisanindispensablesystemactivity,whichisthroughthewholesoftwaredevelopmentprocess.Oneofmostimportantprincipleisthattheearlierthefaults
4、aredetectedthebettertheresultwillbe,foradjustingcostwillextendtofiveto10timesasmuchasformerifrectifyingisdelayedtonextphase,what'sworse,itwillinduceanunablerecoversituation.Accordingtothestatisticsprovidedbythefounderofstaticanalysis,M.E.Fagan,30percent
5、to70percentoffaultsaredetectedinthedesignandcodingphase.Withthedevelopmentofcomputer-assistedtechnology,computerautomaticstaticanalysisarereplacingmanualstaticanalysisstepbystep.Thisdissertationisaboutstaticanalysis.Firstofall,itintroducestheconceptofse
6、curecodeandtheprinciplesofwritingsecurecodeaswellastwomethodsdetectingsecurecode:staticanalysisanddynamicanalysis.Secondly,itdeeplyanalyzesthetechniquesthatstaticanalysisneeds,forexampleconstructingmodelsandanalysisalgorithms.Thenillustratesthemanualsta
7、tictestprocess.What'smore,basedontheresearchofstaticanalysistechniquesandtheory,andaccordingtothejavalanguage'sobject-orientedcharacter,byusingabstractsyntaxtreeproducingbyJavaCC,itproposesastaticanalysismodelbasingonAST,andimplementationmethodofsomecru
8、cialmodules,improvingsoftwarequalityandefficiencyassessment.[Keyword]SecureCodeStaticAnalysisJavaCCAbstractSyntaxTreeRulesets47目录目录第一章绪论11.1选题背景和研究意义11.2研究现状21.3论文的研究内容和组织结构2第二章安全代码的简介42.1编写安全代码的原则52.2安全缺陷的分类62.3安全代码检测的方法62.3.1静态