哪个视频网站做视频赚钱,想开发个网站,个人怎么样做网站,咸阳市建设局网站Java语言是最为流行的面向对象编程语言之一#xff0c; Java运行时环境#xff08;JRE#xff09;拥有着非常大的用户群#xff0c;其安全问题十分重要。近年来#xff0c;由JRE漏洞引发的JVM逃逸攻击事件不断增多#xff0c;对个人计算机安全造成了极大的威胁。研究JRE安… Java语言是最为流行的面向对象编程语言之一 Java运行时环境JRE拥有着非常大的用户群其安全问题十分重要。近年来由JRE漏洞引发的JVM逃逸攻击事件不断增多对个人计算机安全造成了极大的威胁。研究JRE安全机制、JRE漏洞及其挖掘、JVM逃逸攻防技术逐渐成为软件安全领域的热门研究方向。 针对Java层API与原生层API, JRE安全机制分别包括JRE沙箱与JVM 类型安全机制。本文针对JRE沙箱组件及其工作原理进行剖析总结其脆弱点分析调研JVM安全机制提出其脆弱点在于Java原生层漏洞为JRE漏洞挖掘工作提供理论基础。 对于JRE漏洞本文进行漏洞分类研究提取Java API设计缺陷、Java原生层漏洞两种JRE漏洞类型的典型漏洞进行分析总结漏洞特征为漏洞挖掘工作建立漏洞模型。 根据JRE漏洞分析中建立的漏洞模型本文采用源代码审计的方法开展Java API设计缺陷类型的漏洞挖掘工作发现了数个Oracle JRE、OpenJDK和Apple JRE 的 Java API 设计缺陷问题。在 Java原生层漏洞挖掘工作中出于Java原生层漏洞的特殊性本文基于程序分析领域的符号执行技术提出一种寄存器符号化监控方法选取开源符号执行平台S2E作为漏洞挖掘工具并且基于其实现了针对JRE原生层漏洞挖掘的辅助插件 SymJava 和 SymRegMonitor基于 OpenJDK 和 Oracle JRE逆向代码进行源代码白盒审计并构建了用于进行漏洞挖掘的 Java 测试用例最后对36个调用Java原生层API的Java测试用例进行实际测试发现了共计6 个 JRE原生层安全隐患其中2 个可被攻击者恶意利用并给出漏洞分析和 PoC。 针对 JVM 逃逸攻防问题本文分别从攻击和防御角度提出 JVM逃逸攻击的5 个关键元素针对每个元素进行攻防技术研究并通过绕过杀毒软件静态检测的实验证明了本文提出的 JVM 逃逸攻击技术。最后本文从多角度给出JVM逃逸攻击的防御策略。 目录
1 绪论
1.1 背景介绍
1.2 研究意义
1.3 研究现状
1.4 本文所做工作
1.5 文章结构 1 绪论
在互联网技术飞速发展的现代社会互联网的规模正在快速增长接入互联网的计算机也越来越多。对于个人计算机用户乃至企业、政府计算机用户其信息安全问题也逐渐成为计算机互联网领域中的研究热点。浏览器作为接入互联网的窗口应用其本身安全问题及其插件安全问题也备受重视。Java Applet作为浏览器的一种插件在丰富浏览器功能、提升用户体验的同时也引入了一些值得关注的安全问题。本文着眼于JRE漏洞引发的安全攻防问题针对几种特定类型的JRE漏洞展开分析、研究与挖掘。本章内容将简要介绍JVM逃逸技术 JRE漏洞研究背景、意义、现状文章组织结构等等。
1.1 背景介绍
Java语言是世界上最为流行的面向对象编程语言之一被广泛应用于Web开发、嵌入式设备、手机应用如BlackBerry和Android、个人计算机乃至大型服务器之中。作为Java开发人员会经常接触到JDK、JRE和JVM等概念。JDK是Java Development Kit的缩写意为Java语言开发工具作为Java程序的开发人员是必须安装这个软件包的。而作为仅需要运行Java程序的用户只需安装JRE 即Java Runtime Environment, Java运行时环境 JVM Java Virtual Machine代表 Java 虚拟机是 JRE 的重要组成部件主要用于解释和执行 Java字节码文件。JDK以及JRE几经变迁目前的主流版本是由Oracle公司提供的。除了官方提供的之外还有开源的OpenJDK项目1以及Apple、 IBM等公司基于官方JRE开发的一些JRE程序。由于Java语言优越的跨平台特性Windows、Linux/Unix、 Mac OS等几乎所有主流操作系统都可以找到适合的JRE版本。
在HTML语言中有一个applet标签2用于指定所要运行的Java Applet小程序现在几乎所有常见的浏览器都会支持这个标签。Applet由Java语言编写其main class需要继承java.applet.Applet类。由于Java语言功能上的丰富性所编写的Java Applet程序可以极大地丰富Web页面的功能提供更好的用户体验。不过在Web技术飞速发展的现代 Adobe Flash, Microsoft Sliverlight等技术的出现逐渐替代了Java Applet技术在Web页面中的应用。但大多数浏览器仍然支持 Java Applet扩展在 html文件中写入如下代码
applet code”MyApplet.class”/applet
用户访问这个页面的时候会将Java Applet程序MyApplet.class下载到本地由本地的 JVM 加载并执行。
这样以来对于攻击者而言便产生了一个攻击面Attack Surface攻击者利用JRE漏洞编写恶意的Java Applet挂载到Web页面中将URL发送给受害者若安装了JRE的受害者访问了恶意页面便执行了Applet触发本地JRE漏洞发起了逃逸出本地JVM而针对操作系统的攻击从而使受害者的计算机被恶意控制造成远程代码执行、隐私信息泄露等安全问题。本文将这样一个过程称为“JVM逃逸”其中利用的漏洞为“JRE漏洞”。
1.2 研究意义
近年来以浏览器及其插件作为攻击面的安全事件不断增多典型的安全问题包括Internet Explorer, FireFox等浏览器本身的漏洞如处理JavaSeript代码不当而产生的Use-After-Free漏洞21、Adobe Flash的解析漏洞、JRE漏洞等等。在众多安全事件中利用JRE漏洞发起的 Java Applet 攻击事件近年来占据了重要地位。2011年的调查数据显示 37%的Windows操作系统攻击事件是由JRE漏洞引起的如图1-1所示。 这些漏洞在利用手段上有着较大的相似性然而在利用技术门槛上却有所不同。为了对抗漏洞利用技术现如今的操作系统如Windows 7、 Windows 8都开启了ASLR和DEP等防御功能3.如图1-2所示攻击者在挖掘到浏览器或其插件的漏洞之后还需编写exploit代码绕过安全防护机制这样就大大提升了攻击技术的门槛。
JRE中包含的原生API包括用Java语言编写的Java API和使用C/C编写的原生层API 作为编译好的动态链接库而存在于JRE中。对应的 JRE漏洞可分为Java API设计缺陷和Java原生层漏洞其中Java API设计缺陷较其他类型漏洞更易于利用利用代码更容易变种同时可以绕过ASLR和DEP等底层防护手段。这就很好地解释了图1-1中出现的现象也从侧面反映了JRE漏洞的分析与研究在近几年成为研究热点。
由上述内容可知 JRE漏洞由于其特殊的利用特性成为无论攻击者还是安全研究人员所关注的热点问题。研究JRE漏洞的成因、特点 JVM逃逸技术中的攻防手段以及从安全角度出发的JRE漏洞挖掘技术显得十分有研究价值。 1.3 研究现状
在本课题领域国内外的研究方向更偏向于 JVM 逃逸手段也就是 JRE 漏洞的利用技术例如2013年9月份的Syscan360安全会议上的议题【6】就主要介绍了利用Java语言的特性配合JRE漏洞绕过Windows 7下ASLR以及DEP的一些方法。而对于JRE漏洞挖掘的研究多集中于Java API设计缺陷的挖掘。波兰安全公司SE曾发布一份技术白皮书【7】系统地介绍了JRE安全机制与Java API设计缺陷挖掘与利用技术。而Java原生层漏洞相对来说原理复杂较难分析利用一直是国内外Java安全研究的难点。再者传统的JRE漏洞挖掘方法多采用静态源代码审计的白盒测试方法颇费人力。对于Java原生层漏洞挖掘一直缺乏一种自动化的挖掘方法。 针对上述研究现状本文针对两种不同类型的JRE漏洞分别制定漏洞挖掘方案在针对Java原生层漏洞的挖掘工作中本文引入符号执行技术旨在提高漏洞挖掘的自动化程度尽可能减少安全人员的分析工作提高漏洞挖掘效率。在JVM逃逸手段的研究上本文将集中于杀毒软件等防御工程的脆弱性诸如ASLR和DEP这类操作系统级别的安全防护则不是本文讨论范围内的重点。
1.4 本文所做工作
本文的主要研究内容包括 Java安全机制探究 JRE漏洞分析 JRE漏洞挖掘技术与实现JRE 漏洞的利用与防范。本文所做的研究工作如下
1.探究Java安全机制 JRE沙箱组成部件总结各关键组件特性挖掘其潜在脆弱点。
2.总结现有JRE漏洞类型并作分类对每种分类中具备代表性的漏洞基于公开的PoC源代码进行分析与调研。
3.针对不同类型的JRE漏洞制定漏洞挖掘方案选择对应的漏洞挖掘技术结合源代码审计与基于符号执行的灰盒测试技术进行漏洞挖掘工作最终发现数个JRE安全问题并给出成果展示。
4.分别从攻击者和防御者两种视角分析并总结现有的JVM逃逸攻击与防御手段研究并发现主流杀毒软件的脆弱性并给出多维防御方案。
1.5 文章结构
本文共分为六章各章标题及内容概要如下所示
第一章绪论。简要介绍本文内容相关的基本知识背景解释JVM逃逸与JRE漏洞概念给出JRE漏洞问题的研究意义与研究现状并简要概括本文所做工作。
第二章Java安全机制研究。根据Java安全机制的几大重要模块分别深入剖析其安全逻辑设计的特点以及潜在安全问题为后续内容提供知识背景。
第三章JRE漏洞分析。针对第二章中的内容总结出JRE的潜在缺陷点结合现有已知的JRE漏洞作分类研究从Java API设计缺陷、Java原生层漏洞、类型混淆以及自签名问题等角度深入分析对应漏洞类型的PoC代码并分别总结其漏洞特征。
第四章JRE漏洞挖掘研究。基于第三章的工作展开JRE漏洞挖掘工作针对Java API设计缺陷型漏洞和Java原生层漏洞分别给出不同的漏洞挖掘解决方案并通过白盒审计与灰盒测试实验发现数个JRE安全问题最终给出分析。
第五章JVM逃逸的利用与防范。分别从攻击者和防御者的角度结合漏洞挖掘工作中的研究指出当前杀毒软件防御策略的薄弱环节总结漏洞利用技巧。最后分析和比对各软件厂商的防范措施总结其优劣并提出防御策略。
第六章总结与展望。总结本文出现的关键内容根据当前研究形势提出未来的研究方向和策略。