面向C语言安全子集静态检测技术的研究
发布时间:2021-10-19 22:37
随着计算机科学的迅猛发展,计算机技术在航天、航空和无人驾驶等领域起着越来越重要的作用。由于航天等安全关键领域对嵌入式软件安全性、可靠性的特殊要求,促使了C语言安全子集静态检测技术的发展。目前Coverity、Checkmarx等商业公司也为安全子集提供了静态检测工具,但是由于大家针对安全子集的标准不同,所以国外的商业软件很难适应我国的航天领域的要求。而国内学者在GJB 5369-2005《航天型号软件C语言安全子集》的研究方面并不够全面,没有考虑到全局类规则在文件间检测方面的约束,致使检测工具不能对代码进行全面的检测。因此,对我国航天型号软件C语言安全子集的检测研究已成为一个重要的研究课题。针对这一课题,本文在GCC编译器前端预处理和词语法分析等技术的研究之上,提出了基于GCC编译器实现支持C语言安全子集的静态检测工具的设计方案。本文具体的研究工作如下:(1)研究基于GCC编译器的词语法分析等编译技术,并以GJB 5369-2005《航天型号软件C语言安全子集》为基础,对其定义的各类规则进行深入分析;在此基础上以GCC编译器为系统原型,针对每一类规则设计了具体的检测算法,实现了符合GJ...
【文章来源】:哈尔滨工程大学黑龙江省 211工程院校
【文章页数】:80 页
【学位级别】:硕士
【文章目录】:
摘要
abstract
第1章 绪论
1.1 研究背景与意义
1.2 国内外研究现状
1.2.1 C语言安全子集标准
1.2.2 安全子集检测工具
1.2.3 支持安全子集的编译器
1.3 研究内容
1.4 论文组织结构
第2章 C语言安全子集与GCC编译器相关技术分析
2.1 航天型号软件C语言安全子集分析
2.1.1 GJB5369-2005 标准概述
2.1.2 GJB5369-2005 对代码缺陷的理解
2.2 GCC编译流程和原理分析
2.2.1 编译整体流程
2.2.2 编译前端技术
2.2.3 重要节点结构
2.3 本章小结
第3章 C语言安全子集编译检测方法研究
3.1 C语言安全子集规则举例分析
3.1.1 表达式规范类安全规则
3.1.2 函数声明定义类安全规则
3.1.3 控制流规范类安全规则
3.2 C-Check检查器的系统设计与分析
3.2.1 三种编译器对安全子集的支持
3.2.2 C-Check系统设计原则
3.2.3 C-Check系统框架设计
3.2.4 C-Check的模块化实现
3.3 C语言安全子集检测算法设计
3.3.1 声明定义类相关规则
3.3.2 版面书写类相关规则
3.3.3 表达式和初始化相关规则
3.4 本章小结
第4章 针对全局类规则检测算法的研究
4.1 文件内检测缺陷分析
4.2 全局规则相关技术分析
4.3 全局类规则的检测算法设计
4.3.1 全局规则检测难点
4.3.2 全局规则检测算法主要步骤
4.4 本章小结
第5章 静态检测工具C-Check的实验分析
5.1 实验环境介绍
5.2 测试结果及分析
5.2.1 准确度测试
5.2.2 性能测试
5.3 本章小结
结论
参考文献
攻读硕士学位期间发表的论文和取得的科研成果
致谢
【参考文献】:
期刊论文
[1]航天软件需求可靠性与安全性分析验证技术及工程应用研究[J]. 孙肖,周新蕾,杨洁,董仁飞. 质量与可靠性. 2016(04)
[2]软件安全漏洞检测技术[J]. 李舟军,张俊贤,廖湘科,马金鑫. 计算机学报. 2015(04)
[3]嵌入式机载软件安全性分析标准、方法及工具研究综述[J]. 黄志球,徐丙凤,阚双龙,胡军,陈哲. 软件学报. 2014(02)
[4]一个C语言安全子集的可信编译器[J]. 王蕾,石刚,董渊,白晓颖,王生原. 计算机科学. 2013(09)
[5]基于G++前端的C++源代码分析系统的初步研究[J]. 彭四伟,辛丽娟. 计算机系统应用. 2010(05)
硕士论文
[1]控制流提取模型及软件可靠性评价应用研究[D]. 杨广.大连理工大学 2013
[2]航天C程序安全规则检查技术研究[D]. 李锋.国防科学技术大学 2010
本文编号:3445730
【文章来源】:哈尔滨工程大学黑龙江省 211工程院校
【文章页数】:80 页
【学位级别】:硕士
【文章目录】:
摘要
abstract
第1章 绪论
1.1 研究背景与意义
1.2 国内外研究现状
1.2.1 C语言安全子集标准
1.2.2 安全子集检测工具
1.2.3 支持安全子集的编译器
1.3 研究内容
1.4 论文组织结构
第2章 C语言安全子集与GCC编译器相关技术分析
2.1 航天型号软件C语言安全子集分析
2.1.1 GJB5369-2005 标准概述
2.1.2 GJB5369-2005 对代码缺陷的理解
2.2 GCC编译流程和原理分析
2.2.1 编译整体流程
2.2.2 编译前端技术
2.2.3 重要节点结构
2.3 本章小结
第3章 C语言安全子集编译检测方法研究
3.1 C语言安全子集规则举例分析
3.1.1 表达式规范类安全规则
3.1.2 函数声明定义类安全规则
3.1.3 控制流规范类安全规则
3.2 C-Check检查器的系统设计与分析
3.2.1 三种编译器对安全子集的支持
3.2.2 C-Check系统设计原则
3.2.3 C-Check系统框架设计
3.2.4 C-Check的模块化实现
3.3 C语言安全子集检测算法设计
3.3.1 声明定义类相关规则
3.3.2 版面书写类相关规则
3.3.3 表达式和初始化相关规则
3.4 本章小结
第4章 针对全局类规则检测算法的研究
4.1 文件内检测缺陷分析
4.2 全局规则相关技术分析
4.3 全局类规则的检测算法设计
4.3.1 全局规则检测难点
4.3.2 全局规则检测算法主要步骤
4.4 本章小结
第5章 静态检测工具C-Check的实验分析
5.1 实验环境介绍
5.2 测试结果及分析
5.2.1 准确度测试
5.2.2 性能测试
5.3 本章小结
结论
参考文献
攻读硕士学位期间发表的论文和取得的科研成果
致谢
【参考文献】:
期刊论文
[1]航天软件需求可靠性与安全性分析验证技术及工程应用研究[J]. 孙肖,周新蕾,杨洁,董仁飞. 质量与可靠性. 2016(04)
[2]软件安全漏洞检测技术[J]. 李舟军,张俊贤,廖湘科,马金鑫. 计算机学报. 2015(04)
[3]嵌入式机载软件安全性分析标准、方法及工具研究综述[J]. 黄志球,徐丙凤,阚双龙,胡军,陈哲. 软件学报. 2014(02)
[4]一个C语言安全子集的可信编译器[J]. 王蕾,石刚,董渊,白晓颖,王生原. 计算机科学. 2013(09)
[5]基于G++前端的C++源代码分析系统的初步研究[J]. 彭四伟,辛丽娟. 计算机系统应用. 2010(05)
硕士论文
[1]控制流提取模型及软件可靠性评价应用研究[D]. 杨广.大连理工大学 2013
[2]航天C程序安全规则检查技术研究[D]. 李锋.国防科学技术大学 2010
本文编号:3445730
本文链接:https://www.wllwen.com/kejilunwen/hangkongsky/3445730.html