计算机与现代化

• 软件工程 • 上一篇    下一篇

基于对象的C程序边界安全检测改进技术

  

  1. (南京航空航天大学计算机科学与技术学院,江苏 南京 210016)
  • 收稿日期:2015-04-20 出版日期:2015-10-10 发布日期:2015-10-10
  • 作者简介:马银雪(1990-),女,江苏东海人,南京航空航天大学计算机科学与技术学院硕士研究生,研究方向:软件工程,软件验证; 李文明(1989-),男,湖南娄底人,硕士研究生,研究方向:软件工程,软件验证; 陈哲(1981-),男,副教授,博士,研究方向:软件验证,形式化方法。
  • 基金资助:
    国家自然科学基金资助项目(61100034)

Improved Object-based Approaches for Bounds Checking of C Programs

  1. (College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)
  • Received:2015-04-20 Online:2015-10-10 Published:2015-10-10

摘要: C语言对内存操作不进行边界安全检测,这使C程序具有高执行效率,但也产生各种安全问题,例如数组越界、指针访问越界、C库函数的非法操作等。基于对象的运行时验证技术能实时监测程序的运行行为,自动找出程序中存在的漏洞。在原有基于对象技术的基础上,改进多维数组和结构体变量的地址范围记录方式,用2次地址查询操作检测指针访问,用平衡二叉树优化存储结构。实验结果表明,改进的方法优于传统的基于对象技术。

关键词: 运行时验证, 基于对象技术, 边界检测

Abstract: C programs are efficient because it did not check memory bounds safety. However, it also brought a lot of security issues, such as out of bounds of arrays and pointers, illegal operations of C library functions. Object-based runtime verification approaches can monitor program running and find bugs automatically. We improved the traditional approaches by changing address range records of multidimensional arrays and structure variables, querying address two times to detect pointer access, and using AVL tree for storage structure of records. The experiment shows that our approach is better than traditional ones.

Key words: runtime verification, object-based approach, bounds checking

中图分类号: