1 / 63
文档名称:

CC++程序安全检查工具前端的设计与实现.pdf

格式:pdf   页数:63
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

CC++程序安全检查工具前端的设计与实现.pdf

上传人:Horange 2014/2/11 文件大小:0 KB

下载得到文件列表

CC++程序安全检查工具前端的设计与实现.pdf

文档介绍

文档介绍:西安电子科技大学
硕士学位论文
C/C++程序安全检查工具前端的设计与实现
姓名:曹俊亮
申请学位级别:硕士
专业:计算机软件与理论
指导教师:刘坚
20070101
摘要本文在分析珻程序安全检查工具框架的基础上,根据安全检查的特殊需求,给出了一种基于分析器自动生成工具瞎乖霤/踩ḿ觳楣ぞ咔岸说方法,并将此方法应用于实际开发过程中。使用此方法构造的前端通过分析软件源代码为后端安全检查提供符号信息、抽象语法树和控制流图。本文使用纱史ǚ治銎鳌⒂锓ǚ治銎鳌⒊橄笥锓ㄊ骷捌浔槔蚣埽重点讨论了符号表的设计与实现、抽象语法树的设计与实现和控制流图的生成。实践表明,该前端能够满足工具安全检查的需要。关键词:安全检查符号表抽象语法树控制流图
疌舢筼鷗,苯衏胛鳬—骯琣仃弘鷏订柚阤鵶毋魊衜角餺羇璴璐:钾琣琾琣仃.,协琣仃阰餺.
醐争圳哆———’本人签名:莹熊盎嘧使勃日期藌:篫学位论文创新性声明关于论文使用授权的说明日期.,.本学位论文属于保密,在——年解密后适用本授权书。秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的申请学位论文与资料若有不实之处,本人承担一切的法律责任。本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全本人签名:材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中做了明确的说明并表示了谢意。业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。C艿穆畚在解密后遵守此规定导师签名:
第一章绪论溢出、资源泄露和指针非法引用掣【,这些安全问题严重影响了软件的可靠性和研究背景目前用于珻抖程序安全检查的工具已经很多,且大多数已经被广泛使用,增加了对兜陌踩ḿ觳椤鲥】疌语言从产生至今已近三十年,在不同领域的软件开发中得到了广泛应用。但在提供灵活控制能力的同时也带来了一些潜在的安全性问题,例如缓冲区稳定性。针对珻程序的安全问题,国内外对疌安全检查的研究已有相当长的历史,同时出现了多种程序安全检查方法,如代码验证徒馐豫等。但目前广泛应用于项目开发中的主要有两种方法:静态检查和动态检查。静态检查通过扫描源程序,在词法分析、语法分析和语义分析过程中找出能够导致程序错误的结构异常、控制流异常及数据流异常;而在动态检查过程中,需要设计一组或多组测试数据,并实际运行被测程序,检查不按预定要求终结的循环、不该执行而实际执行的语句及该执行而未执行的语句等程序错误,由于动态检查需运行被测程序,因此检查精度较高,但由于设计的测试数据很难覆盖程序的所有运行情况,导致某些漏洞无法被检测出来。目前提出了一种静态检查和动态检查相结合的方法【来进行程序的安全检查,此方法还仅处于研究阶段。其中具有代表性有;捌浜蠹滩范疾捎贸绦蛟笔止ぬ砑幼⑹偷姆椒ń芯蔡踩ḿ觳椤F渲和为开源的项目,只关注于镅缘陌踩ḿ觳椤6鳳I桃挡罚鬴及是一个自动化的静态安全检查工具,不需要程序员的手工干预。它采用前置条件和后置条件的概念定义安全条件,并使用该条件进行安全检查。也为的后继产品,其在的基础上提高了检查效率,可用性更好。和弧甲ㄗ⒂谔岣呒觳榫范取且桓隹T吹某绦蚣觳楣ぞ撸梢约觳槌绦蛑械哪诖嫘孤┖臀扌诖访问等漏洞。该工具为一个动态检查工具,通过运行被测程序检测程序中的漏洞。⒛P检查】及后继产品【亢蚉
本文来源于一个实际科研项目。此项目的目标是针对珻什程序设计语言在疌程序安全检查工具概述是一个针对镅缘木蔡觳楣ぞ撸畛趵醋栽谠1嘁牒湍P图觳榈领域的工作。该工具已经被应用于诤嗽创氚踩苑治觥采用扩展的镅岳嘈拖低常市碛没@嘈吞砑酉薅ㄐ畔ⅲ凑罩订的一系列推导规则进行推导,检查内存泄漏、内存非法地址访问等错误,并以动态检查为辅助方法来提高检查的精度。软件开发过程中可能引起的安全问题,研制一个基于静态分析的疌软件系统安全检查工具。疌程序安全检查工具的目标是利用静态分析技术,检查疌程序中的安全漏洞。该工具支持以完整的软件源代码为单位的安全检查和可扩展的安全规则,通过基于控制流和契约机制‘¨氖萘鞣治鎏岣呒觳榫ǘ取工具整体框架如图所示。绦虬踩ḿ觳楣ぞ哒蹇蚣源代码创肓斜琧程序安全检查工具前端的设计与实现图
本文工作及内容组织在疌抖程序安全检查工具的开发过程中,本文负责的主要工作是设计和实工具分为前端和后端两个部分。前端通过对软件源代码进行分析