用于检测从基于字节码的沙箱环境逃逸的尝试的方法、设备和系统技术方案

技术编号:11590346 阅读:148 留言:0更新日期:2015-06-10 23:05
通过将字节码注入到沙箱环境的预定方法中,可以检测使用利用来尝试从沙箱环境逃逸的应用,而无需知晓应用或用于尝试从沙箱环境逃逸的利用。在指示应用从沙箱逃逸后,可以结束应用,或可以报告逃逸,允许进一步对应用进行监视。

【技术实现步骤摘要】

此处所描述的实施例一般涉及计算机安全领域,具体而言,涉及用于检测从沙箱环境逃逸的应用的技术。背景沙箱是一种受限的环境,其中不受信任的软件可能以如下方式执行:限制不受信任的软件执行可能被恶意软件利用的动作的能力。沙箱可以被用作开发环境,限制可能会损坏未受保护环境的错误的影响。类似地,沙箱可以用于测试不受信任的软件,诸如从不受信任的源获取的软件。基本上,程序员必须编写只在沙箱内“活动”的代码,如同儿童被允许在现实沙箱的约束限制内做他们希望做的事情,但是不允许独立地从沙箱逃逸。某些编程环境,诸如Oracle America公司所提供的平台,提供沙箱环境,作为它们的开发环境的一部分。(“JAVA”是Oracle America公司的注册商标)。在JAVA开发环境中,沙箱是建立规则集合的安全措施,例如,当创建在其作为网页的一部分发送时防止特定功能的小程序时,使用该组规则。当浏览器请求带有小程序的网页时,自动地发送小程序,一旦页面到达浏览器,小程序就可以执行。如果小程序被允许对存储器和操作系统资源进行无限的访问,则如果小程序是恶意软件,它会带来危害。沙箱创建一种环境,在该环境中,对小程序可以请求或访问哪些系统资源有严格的限制。除规则之外,JAVA语言还提供代码检测器以保证遵守沙箱的限制。然而,如在每个安全性环境中,一旦被发现从沙箱逃逸并访问处于沙箱中的软件不应该能够访问的资源,安全性环境中的弱点或瑕疵可能会被利用。入侵预防系统尝试防止操作系统、应用或开发环境中的允许这样的利用(exploit)成功的漏洞。通常,这样的入侵预防系统使用定制沙箱或虚拟机来监视利用行为和对沙箱利用的基于签名的检测,类似于传统的防恶意软件的软件。然而,入侵预防系统常常不能检测利用,诸如还没有被分析的利用(常常被称为0日利用)。或者,某些常规方法产生假阳性指示,将不是利用的某种东西称为利用。更好的方法将有所帮助。附图简述图1是示出了根据一个实施例的提供沙箱环境的可编程设备的框图。图2是示出了根据一个实施例的用于插桩(instrument)沙箱的技术的流程图。图3是示出了根据一个实施例的用于插桩JAVA沙箱的技术的流程图。图4是示出了根据一个实施例的用于插桩JAVA沙箱的技术的框图。图5是示出了根据一个实施例的与本文所描述的技术一起使用的可编程设备的框图。图6是示出了根据另一实施例的与本文所描述的技术一起使用的可编程设备的框图。图7是其中可以实现本文所描述的技术的可编程设备的网络的框图。具体实施方式在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本专利技术的透彻理解。然而,对本领域技术人员将显而易见的是,本专利技术可以在没有这些具体细节的情况下实施。在其他情况下,以框图形式示出结构和设备,以便不至于使本专利技术变得模糊。对没有下标或后缀的标号的引用被理解为引用对应于所引用标号的全部下标和后缀实例。此外,本公开中所使用的语言主要用于可读性和指导目的,可能并非用于描绘或限定专利技术的主题,而是借助于确定专利技术主题所必需的权利要求。说明书中对“一个实施例”、“实施例”的引用意味着结合该实施例所描述的特定特征、结构或特性被包括本专利技术的至少一个实施例中,对“一个实施例”或“实施例”的多个引用不应该被理解为一定都引用同一个实施例。如此处所使用的,术语“可编程设备”可以是指单个可编程设备或一起协作以执行描述为在可编程设备上执行或由可编程设备执行的功能的多个可编程设备。虽然下面是就JAVA沙箱环境描述的,但是,下面所描述的技术不仅限于这样的实施例,而是可以用于任何沙箱环境中,其中通用沙箱可以在运行时被修改,以检测对操纵允许在该环境中从沙箱逃逸的某些沙箱功能的尝试。尽管下面的描述是就由JAVA沙箱所提供的JAVA SecurityManager()方法和EXEC()方法而言给出的,但是,也可以插桩可以被确定为可能被尝试从沙箱逃逸的利用所使用的其他方法,以提供对利用的附加检测。下面的有关的利用是尝试逃逸由沙箱环境施加的限制的利用。还可以使用类似的技术来检测可能利用沙箱环境的其他弱点但是不尝试从沙箱逃逸的恶意软件,不管利用的本质如何,在该技术中,沙箱实现大多数这样的利用会使用的功能。然而,不管用于逃逸尝试的技术如何,寻求从沙箱逃逸的恶意软件都可能需要利用特许的方法来在沙箱之外运行代码。因此,下面所描述的技术插桩恶意软件所使用的方法,以获取由沙箱限制的特权,并被证明在检测并允许结束所有这样的逃逸尝试方面是有效的。沙箱通常是用于保护在其上实现沙箱的系统的资源的规则集合。沙箱可以实现不同级别的保护,其中不同级别允许访问不同资源集合。最小的沙箱允许刚刚够程序运行的资源,而开放的沙箱可能允许访问主机系统通常可以访问的所有资源。典型的沙箱可能允许在沙箱中运行的程序访问处理器、其自己的存储器,并访问该程序加载而来的web服务器。应用可以使用此处被称为利用(exploit)的技术,以获得或修改被给予应用的权限或特权,或者修改、关闭、或禁用其他安全控制。沙箱使用权限、特权以及安全控制来控制对资源的访问,并且通常限制对在沙箱中运行的应用可用的权限、特权以及安全控制。利用通常利用沙箱环境中的弱点或瑕疵。获得或修改权限、特权或安全控制是利用的一部分。从沙箱逃逸的尝试被定义为如下尝试:使用那些权限、特权或安全控制来执行被沙箱环境阻止的动作。当应用执行动作成功时,诸如在沙箱环境之外执行代码,实际的逃逸发生。下面所描述的技术提供了检测从沙箱环境逃逸的尝试的方式,允许沙箱环境防止那些动作被执行。图1是示出了根据一个实施例的在移动设备100上运行的JAVA环境的框图,其中下面所描述的监视技术被用来检测和防止JAVA程序从沙箱逃逸。JAVA虚拟机(JVM)140提供运行时环境,其中可以执行JAVA字节码。JVM 140通常与JAVA类库一起分布,JAVA类库是实现JAVA应用编程接口(API)152的标准类库集合(以JAVA字节码表示)。这些库,与JVM 140绑定,形成JAVA运行时环境(JRE)150。打算在JVM上运行的源代码文件110中的JAVA源代码程序,以标准化可移植二进制格式(通常采用.class文件的形式(JAVA类文件))被编译为Java字节码文件120。程序可以在不同的文件中包括许多类。为了更加容易分发大型程序,多个类文件可以以.ja本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN104700026.html" title="用于检测从基于字节码的沙箱环境逃逸的尝试的方法、设备和系统原文来自X技术">用于检测从基于字节码的沙箱环境逃逸的尝试的方法、设备和系统</a>

【技术保护点】
一种可编程设备,包括:处理元件,被配置成提供沙箱环境;存储器,耦合到所述处理元件,在其上存储了指令,所述指令在由所述处理元件执行时使所述处理元件:在所述可编程设备上实例化所述沙箱环境;以及将代码注入到所述沙箱环境中,所述代码包括指令,所述指令在由所述处理元件执行时插桩所述沙箱的方法以使所述处理元件独立于应用检测所述应用从所述沙箱环境逃逸的尝试。

【技术特征摘要】
2013.12.05 US 14/098,2991.一种可编程设备,包括:
处理元件,被配置成提供沙箱环境;
存储器,耦合到所述处理元件,在其上存储了指令,所述指令在由所述处
理元件执行时使所述处理元件:
在所述可编程设备上实例化所述沙箱环境;以及
将代码注入到所述沙箱环境中,所述代码包括指令,所述指令在由
所述处理元件执行时插桩所述沙箱的方法以使所述处理元件独立于应用
检测所述应用从所述沙箱环境逃逸的尝试。
2.如权利要求1所述的可编程设备,其特征在于,所述方法是提供对安全
性管理器对象的引用的方法。
3.如权利要求2所述的可编程设备,其特征在于,所述指令在被执行时插
桩所述沙箱的方法以使所述可编程设备独立于应用检测所述应用从所述沙箱
环境逃逸的尝试,包括在被执行时使所述沙箱的所述方法执行下列各项的指
令:
响应于对所述方法的调用返回指示不存在安全性管理器对象的值,指示发
生了逃逸尝试。
4.如权利要求2所述的可编程设备,其特征在于,所述指令,在被执行时
插桩所述沙箱的方法以使所述可编程设备独立于应用检测所述应用从所述沙
箱环境逃逸的尝试,包括在被执行时使所述沙箱的所述方法执行下列各项的指
令:
如果对所述方法的调用返回指示所述安全性管理器对象已经被禁用的值,
则指示发生了逃逸尝试。
5.如权利要求1所述的可编程设备,其特征在于,所述方法是在所述可编
程设备上的单独进程中执行指定命令的方法。
6.如权利要求5所述的可编程设备,其特征在于,所述指令在被执行时插
桩所述沙箱的方法以使所述可编程设备独立于应用检测所述应用从所述沙箱

\t环境逃逸的尝试,包括在被执行时使所述沙箱的所述方法执行下列各项的指
令:
检查所述应用的权限状态;以及
响应于所述应用具有预定的权限集合,指示逃逸尝试。
7.如权利要求5所述的可编程设备,其特征在于,所述指令在被执行时插
桩所述沙箱的方法以使所述可编程设备独立于应用检测所述应用从所述沙箱
环境逃逸的尝试,包括在被执行时使所述沙箱的所述方法执行下列各项的指
令:
检查所述应用的权限状态;以及
响应于所述应用具有预定的权限,指示逃逸尝试。
8.如权利求1-7中的任何一项所述的可编程设备,其特征在于,在由所述
可编程设备执行时使所述可编程设备将代码注入到所述沙箱环境中的所述指
令包括在执行时使所述可编程设备在所述沙箱环境启动之后将代码注入到所
述沙箱环境的指令。
9.如权利要求1-7中的任何一项所述的可编程设备,其特征在于,所述指
令还包括在执行时使所述可编程设备结束尝试从所述沙箱环境逃逸的应用的
指令。
10.如权利要求1-7中的任何一项所述的可编程设备,其特征在于,所
述指令还包括在执行时使所述可编程设备报告尝试从所述沙箱环境逃逸的应
用的指令。
11.一种检测从可编程设备的基于字节码的沙箱环境逃逸的尝试的方
法,包括:
在所述可编程设备上实例化所述沙箱环境;以及
将字节码注入到所述沙箱环境的预定方法;
在由应用调用所述方法时,执行所述预定方法中的所述字节码;以及
指示所述应用从所述沙箱逃逸的尝试,而无需依赖于知晓所述应用尝试从
所述沙箱逃逸所使用的利用。<...

【专利技术属性】
技术研发人员:B·孙X·陈C·徐H·约瑟夫
申请(专利权)人:迈克菲股份有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1