学位论文 > 优秀研究生学位论文题录展示

基于规则的C/C++代码静态检测方法研究

作 者: 刘春燕
导 师: 周宽久
学 校: 大连理工大学
专 业: 计算机应用技术
关键词: 软件安全 静态检测 关系语法树 XML
分类号: TP311.52
类 型: 硕士论文
年 份: 2010年
下 载: 105次
引 用: 0次
阅 读: 论文下载
 

内容摘要


软件系统的可靠性越来越被人们重视,尤其在安全性要求苛刻的场合,如航天飞行器、汽车和某些工业控制系统。软件安全分析是可靠性保证的重要手段之一,静态检测技术不需要执行程序并能从中发现早期的安全漏洞而受到广泛的关注,在软件安全分析中发挥着重要作用。由于软件规模不断扩大,静态检测使用人工走查已经越来越不现实。一个可信的自动化静态检测工具具有十分高的使用价值和前景。首先,本文介绍了软件测试技术及其发展状况,着重针对当前静态检测的方法及工具进行了概述。接着,介绍了基于安全规则的静态检测技术,并指出传统的从GCC编译生成的AST (Abstract Syntax Tree)文本中提取静态信息的方法需要处理大量的冗余信息,降低了信息提取的准确性和效率。本文提出了一种基于关系存储模式的关系语法树模型,有效的减少了信息冗余度,并重新设计了具有可拓展性的XML (eXtensible Markup Language)的中间数据存储模型,将关系语法树转换为更适于静态检测操作的XML模型。在此方法基础上,设计并实现了C/C++代码自动检测系统CIS (Code Inspection System),支持《GJB 5369-2005航天型号软件C语言安全子集》所有规则,并具备良好的可扩展性。CIS支持包括词法、语法、浅层与深层语义分析在内的多层次分析,从而能以可信方式检测安全漏洞;无需在源程序中添加注释说明,降低了对用户的要求;支持全局多文件分析,可以检测出关联文件检测才能引发的安全漏洞,实现对分布在不同文件中的关联代码的检查。

全文目录


摘要  4-5
Abstract  5-8
1 绪论  8-11
  1.1 研究背景及意义  8-9
  1.2 本文的工作  9-10
  1.3 论文结构  10-11
2 软件测试技术概述  11-19
  2.1 软件测试概念与发展  11-13
  2.2 软件测试技术分类  13-15
  2.3 静态测试技术  15-17
    2.3.1 基于规则检查  15
    2.3.2 模型检测  15
    2.3.3 抽象解释  15-16
    2.3.4 定理证明  16
    2.3.5 类型推导  16-17
  2.4 静态检测工具的研究现状  17-18
  2.5 本章小结  18-19
3 CIS系统理论知识与语言工具  19-26
  3.1 编译器概述  19-21
    3.1.1 词法分析  19-20
    3.1.2 语法分析  20-21
  3.2 Lex与Yacc工具  21-23
  3.3 C/C++安全编程规则  23-25
  3.4 本章小结  25-26
4 CIS系统的核心技术与算法  26-41
  4.1 引言  26-27
  4.2 基于关系存储模式的关系语法树  27-31
    4.2.1 关系存储模式  27-28
    4.2.2 符号约定与定义  28
    4.2.3 语法树的构造算法  28-30
    4.2.4 算法分析  30-31
  4.3 符号表组织  31-33
  4.4 内存管理机制  33-34
  4.5 XML中间模型  34-40
    4.5.1 安全属性提取  35-36
    4.5.2 XML文件模型  36-37
    4.5.3 XML语句模型  37
    4.5.4 XML标识符模型  37-39
    4.5.5 XML模型在面向对象语言的拓展  39-40
  4.6 本章小结  40-41
5 CIS系统设计与实现  41-53
  5.1 CIS系统功能需求分析  41-42
  5.2 CIS的系统架构设计  42-43
  5.3 词法分析设计  43-45
  5.4 语法分析设计  45-50
    5.4.1 符号及类型设计  46-48
    5.4.2 函数与函数指针声明  48-49
    5.4.3 条件选择与循环  49-50
  5.5 漏洞检测  50-51
  5.6 实验分析  51-52
  5.7 本章小结  52-53
结论  53-55
参考文献  55-57
攻读硕士学位期间发表学术论文情况  57-58
致谢  58-60

相似论文

  1. 基因调控网络模型描述语言研究,Q78
  2. 支持XML数据查询的F&B索引结构的研究,TP311.13
  3. LXI自动测试系统集成技术研究,TP274
  4. 基于网络的服装款式设计系统的研究与实现,TS941.2
  5. 基于MDA的界面自动生成方法的研究,TP311.5
  6. C++代码缺陷检测系统的研究与设计,TP311.53
  7. C++静态代码检测语法树构建方法研究,TP311.53
  8. 基于Web的科学计算遗留应用共享技术研究,TP393.09
  9. 基于XML的异构数据交换系统的设计与实现,TP311.52
  10. 电子公文传输管理系统在电大系统中的设计与实现,TP311.52
  11. 概率XML数据上关键字检索算法的研究与实现,TP391.3
  12. 行政审批电子监察系统数据交换的设计与实现,TP311.52
  13. 概率XML文档中Holistic Twig查询处理算法的研究与实现,TP311.13
  14. 保留语义约束的XML与关系数据库双向转换技术研究,TP311.13
  15. SOA架构在高校信息化系统中整合技术的应用,TP311.52
  16. 基于银行综合前置平台的金融服务支付系统的设计与实现,TP311.52
  17. 基于观察者模式的银行主动服务系统的设计与实现,TP311.52
  18. 江北区企业信用信息系统设计与实现,TP311.52
  19. 物联网业务模型描述语言的研究与实现,TN929.5
  20. 基于服务总线的模具企业信息集成系统,TP311.52
  21. 基于语言转换的嵌入式软PLC系统的研究与设计,TP273

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件开发
© 2012 www.xueweilunwen.com