摘要 | 第1-13页 |
ABSTRACT | 第13-16页 |
第一章 绪论 | 第16-30页 |
·课题背景 | 第16-25页 |
·缓冲区溢出攻击的危害 | 第16-17页 |
·缓冲区溢出攻击的原理 | 第17-19页 |
·缓冲区溢出漏洞检测方法的分类及比较 | 第19-25页 |
·当前缓冲区溢出漏洞静态检测研究存在的问题 | 第25页 |
·本文的研究内容 | 第25-26页 |
·本文的主要工作及创新 | 第26-28页 |
·论文结构 | 第28-30页 |
第二章 缓冲区溢出漏洞的静态检测方法概述 | 第30-44页 |
·基本术语 | 第30-31页 |
·典型的缓冲区溢出漏洞静态检测方法 | 第31-42页 |
·采用约束分析的检测方法 | 第31-33页 |
·采用数据流分析的检测方法 | 第33-35页 |
·采用抽象解释的检测方法 | 第35-38页 |
·采用定理证明的检测方法 | 第38-40页 |
·采用类型推导的检测方法 | 第40-41页 |
·采用模型检验的检测方法 | 第41-42页 |
·本章小结 | 第42-44页 |
第三章 基于反向路径的循环分析方法 | 第44-60页 |
·加宽/收窄操作 | 第44-45页 |
·使用加宽/收窄操作的已有循环分析方法 | 第45-48页 |
·直接使用加宽/收窄操作的方法 | 第45-47页 |
·基于反赋值的方法 | 第47-48页 |
·基于加宽极限的方法 | 第48页 |
·基于反向路径的循环分析方法 | 第48-56页 |
·约束变量 | 第48-50页 |
·符号化的加宽/收窄操作 | 第50-51页 |
·双向数据流方程 | 第51-52页 |
·基于反向路径的循环分析算法 | 第52-55页 |
·算法分析 | 第55-56页 |
·实际分析中遇到的问题及其处理 | 第56-58页 |
·不等式的处理 | 第56-57页 |
·多重循环的处理 | 第57-58页 |
·本章小结 | 第58-60页 |
第四章 需求驱动的约束产生方法 | 第60-70页 |
·约束状态的定义 | 第60-61页 |
·穷尽的约束产生方法 | 第61-63页 |
·需求驱动的约束产生方法 | 第63-69页 |
·ud链信息的建立 | 第65页 |
·绝对控制条件的建立 | 第65-66页 |
·需求驱动的约束产生算法 | 第66-67页 |
·算法分析 | 第67-69页 |
·本章小结 | 第69-70页 |
第五章 基于线性规划的约束状态安全检查方法 | 第70-84页 |
·已有的约束状态检查方法 | 第70-71页 |
·线性规划 | 第71-73页 |
·利用范围依赖图处理无解范围约束的方法 | 第73-75页 |
·基于线性规划的约束状态安全检查方法 | 第75-82页 |
·简单的约束状态安全检查算法 | 第76-77页 |
·范围约束和控制约束相互改进的约束状态安全检查算法 | 第77-81页 |
·算法分析 | 第81-82页 |
·本章小结 | 第82-84页 |
第六章 基于反例的缓冲区溢出漏洞静态检测方法 | 第84-94页 |
·数据流分析结果和约束分析结果的结合 | 第84-86页 |
·上下文敏感、流敏感的快速检测 | 第86-88页 |
·过程内快速检测算法 | 第86-87页 |
·过程间快速检测算法 | 第87-88页 |
·反例驱动的精确检测 | 第88-93页 |
·过程内精确检测算法 | 第89-90页 |
·过程间精确检测算法 | 第90-93页 |
·本章小结 | 第93-94页 |
第七章 缓冲区溢出漏洞静态检测原型系统和实验结果 | 第94-116页 |
·实验环境 | 第94-100页 |
·LLVM编译器前端 | 第94-96页 |
·SIL中间语言 | 第96页 |
·底层支持库 | 第96-100页 |
·基于反例的缓冲区溢出漏洞静态检测器的设计 | 第100-103页 |
·评测工具 | 第103-105页 |
·测试结果 | 第105-115页 |
·原型系统的总体测试结果 | 第105-109页 |
·基于反向路径循环分析的测试结果 | 第109-112页 |
·需求驱动约束产生器的测试结果 | 第112-114页 |
·基于线性规划约束状态安全检查的测试结果 | 第114-115页 |
·本章小结 | 第115-116页 |
第八章 结束语 | 第116-118页 |
附录A SIL语言的语法 | 第118-120页 |
附录B SIL指令的语义 | 第120-122页 |
附录C 符号和缩写对照表 | 第122-124页 |
致谢 | 第124-126页 |
参考文献 | 第126-132页 |
攻读博士学位期间取得的研究成果 | 第132页 |