基于形式化方法的软件代码安全性验证技术
致谢 | 第5-6页 |
摘要 | 第6-7页 |
ABSTRACT | 第7-8页 |
1 引言 | 第11-15页 |
1.1 研究背景 | 第11-12页 |
1.2 研究现状 | 第12-13页 |
1.3 本文结构 | 第13-15页 |
2 相关工作 | 第15-27页 |
2.1 形式化验证 | 第15-17页 |
2.1.1 形式化方法 | 第15-16页 |
2.1.2 形式规范 | 第16页 |
2.1.3 形式化验证 | 第16-17页 |
2.2 模型检测 | 第17-27页 |
2.2.1 时序逻辑 | 第18-22页 |
2.2.2 模型检测过程 | 第22-23页 |
2.2.3 模型检测主要问题 | 第23-24页 |
2.2.4 有界模型检测 | 第24-25页 |
2.2.5 可满足性 | 第25页 |
2.2.6 模型检测工具分类 | 第25-27页 |
3 模型检测工具LLBMC | 第27-37页 |
3.1 LLBMC工作原理 | 第27页 |
3.2 关键技术 | 第27-33页 |
3.2.1 LLVM | 第27-28页 |
3.2.2 Clang编译器 | 第28-29页 |
3.2.3 LLVM-IR | 第29-33页 |
3.3 LLBMC工作流程 | 第33-35页 |
3.4 检测报告 | 第35-37页 |
4 基于形式化的软件代码安全性验证方法 | 第37-55页 |
4.1 以存储为中心的模块分析 | 第37-38页 |
4.2 状态可达性判断方法 | 第38-41页 |
4.3 模型检测时空关系研究 | 第41-47页 |
4.3.1 状态空间与深度的关系 | 第41-42页 |
4.3.2 模型检测时间与深度的关系 | 第42-44页 |
4.3.3 状态空间与广度的关系 | 第44-45页 |
4.3.4 模型检测时间与广度的关系 | 第45-47页 |
4.4 状态空间缩减 | 第47-52页 |
4.4.1 广度优先剪枝法 | 第48-50页 |
4.4.2 实验验证 | 第50-52页 |
4.5 平衡性 | 第52-55页 |
5 方法验证与分析 | 第55-71页 |
5.1 LLBMC内置验证 | 第55-61页 |
5.1.1 LLBMC基本报告验证 | 第55-56页 |
5.1.2 LLBMC内置检测验证 | 第56-61页 |
5.2 状态可达性判断方法验证 | 第61-64页 |
5.2.1 数据池构件分析 | 第61页 |
5.2.2 方法验证 | 第61-64页 |
5.3 广度优先剪枝法验证 | 第64-68页 |
5.3.1 数据流传递构件分析 | 第64-65页 |
5.3.2 方法验证 | 第65-68页 |
5.4 平衡性验证 | 第68-71页 |
6 总结展望 | 第71-73页 |
6.1 本文总结 | 第71-72页 |
6.2 未来展望 | 第72-73页 |
参考文献 | 第73-77页 |
作者简历及攻读硕士学位期间取得的研究成果 | 第77-81页 |
学位论文数据集 | 第81页 |