摘要 | 第3-5页 |
ABSTRACT | 第5-6页 |
第一章 绪论 | 第12-16页 |
1.1 背景介绍 | 第12-13页 |
1.2 研究意义 | 第13-14页 |
1.3 研究现状 | 第14-15页 |
1.4 本文所做工作 | 第15页 |
1.5 文章结构 | 第15-16页 |
第二章 Java 安全机制研究 | 第16-33页 |
2.1 JRE 沙箱组件研究 | 第16-30页 |
2.1.1 类装载器 | 第18-21页 |
2.1.2 安全管理器 | 第21-22页 |
2.1.3 权限提升代码块 | 第22-24页 |
2.1.4 Java 反射机制 | 第24-28页 |
2.1.5 包访问限制 | 第28-30页 |
2.2 JVM 安全机制研究 | 第30-31页 |
2.3 本章小结 | 第31-33页 |
第三章 JRE 漏洞分析 | 第33-52页 |
3.1 JRE 漏洞分类研究 | 第33-40页 |
3.1.1 Java API 设计缺陷 | 第35-36页 |
3.1.2 Java 原生层漏洞 | 第36-37页 |
3.1.3 类型混淆 | 第37页 |
3.1.4 自签名问题 | 第37-40页 |
3.2 典型 JRE 漏洞分析 | 第40-51页 |
3.2.1 CVE-2012-4681 | 第40-43页 |
3.2.2 CVE-2012-5076 | 第43-47页 |
3.2.3 CVE-2013-2423 | 第47-50页 |
3.2.4 CVE-2013-1493 | 第50-51页 |
3.3 本章小结 | 第51-52页 |
第四章 JRE 漏洞挖掘研究 | 第52-69页 |
4.1 针对 Java API 设计缺陷的漏洞挖掘工作 | 第52-54页 |
4.2 针对 Java 原生层漏洞的漏洞挖掘工作 | 第54-61页 |
4.2.1 符号执行技术简介 | 第55-56页 |
4.2.2 寄存器符号化监测方法 | 第56页 |
4.2.3 SymJava 与 SymRegMonitor 设计与实现 | 第56-58页 |
4.2.4 源代码审计与 Java 测试用例构建 | 第58-60页 |
4.2.5 漏洞挖掘测试实验 | 第60-61页 |
4.3 漏洞挖掘研究成果展示与分析 | 第61-67页 |
4.3.1 SunToolkit 导致系统属性泄漏 | 第61-62页 |
4.3.2 SecuritySupport 导致系统属性泄漏 | 第62-64页 |
4.3.3 Mac OS X 本地文件探针漏洞 | 第64-65页 |
4.3.4 任意类对象获取漏洞 | 第65-66页 |
4.3.5 利用 JRE 原生层漏洞实现远程代码执行 | 第66-67页 |
4.3.6 其他 JRE 原生层安全问题 | 第67页 |
4.4 本章小结 | 第67-69页 |
第五章 JVM 逃逸的利用与防范 | 第69-80页 |
5.1 JVM 逃逸利用研究 | 第69-76页 |
5.1.1 字符串混淆 | 第71-72页 |
5.1.2 利用反射机制 | 第72-73页 |
5.1.3 杀毒软件静态检测绕过测试 | 第73-74页 |
5.1.4 序列化与反序列化 | 第74-75页 |
5.1.5 JRE Rootkit | 第75页 |
5.1.6 社会工程学 | 第75-76页 |
5.2 JVM 逃逸攻击的防范 | 第76-78页 |
5.2.1 杀毒软件厂商角度 | 第76-77页 |
5.2.2 浏览器厂商角度 | 第77-78页 |
5.2.3 JRE 提供商角度 | 第78页 |
5.2.4 用户角度 | 第78页 |
5.3 本章小结 | 第78-80页 |
第六章 总结与展望 | 第80-82页 |
6.1 本文总结 | 第80页 |
6.2 研究展望 | 第80-82页 |
参考文献 | 第82-85页 |
附录 1 | 第85-86页 |
附录 2 | 第86-87页 |
附录 3 | 第87-89页 |
致谢 | 第89-90页 |
攻读硕士学位期间已发表或录用的论文 | 第90-92页 |