Sandbox
用于安全的运行程序的机制
Sandbox(沙箱)是指一种技术,在这种技术中,软件运行在操作系统受限制的环境中。由于该软件在受限制的环境中运行,即使一个闯入该软件的入侵者也不能无限制访问操作系统提供设施;获得该软件控制权的黑客造成的损失也是有限的。此外,如果攻击者要获得对操作系统的完全控制,他们就不得不攻克沙箱限制。Sandbox也提供深度防御,许多PaaS系统都提供了一个实时运行环境,它的核心就是一个沙箱应用程序,如Azu re和Google App Engine。
简介
在计算机安全领域,沙箱是一种用于安全的运行程序的机制。它常常用来执行那些非可信的程序。非可信程序中的恶意代码对系统的影响将会被限制在沙箱内而不会影响到系统的其它部分。沙箱技术按照一定的安全策略,通过严格限制非可信程序对系统资源的使用来实现隔离。沙箱技术在实际应用中已经有多种实现方案。例如Janus,Chakravyuha,BlueBox,Cerb等系统采用拦截系统调用的方式实现。通过拦截系统调用来限制沙箱中的程序对某些重要资源的使用。这些资源是指那些对系统安全起关键作用的资源,一旦被非法使用,便会对系统安全造成严重影响。Strata系统通过一种称之为软件动态转换(Software Dynamic Translation)的技术实现沙箱。与拦截系统调用一样,软件动态转换的目的也是通过动态转换来完成对沙箱中程序的资源使用进行限制。
沙箱技术按照安全策略来限制程序对系统资源的使用,进而防止其对系统进行破坏,其有效性依赖于所使用的安全策略的有效性。由于沙箱技术是通过限制非可信程序对某些资源的访问来防止非可信程序对系统进行破坏的,因此,如果安全策略过于严格,对非可信进程的行为限制过多,则会影响到非可信进程的运行。如果安全策略过于简单,则又无法有效地防范攻击。
维护沙箱安全
以Java为例。从安全角度考虑,小应用程序对系统的利用是有范围限制的,一般通俗地称之为“沙箱”。意译过来是指小应用程序不能做某些事情,因为Java不允许它们做。以下是Java小应用程序不能做到的:
1、除了它们的出处外,建立与其它主机的连接(使它们不能连接其它系统获取或发送未授权代码)。
2、阅读所有系统特性(不允许它们进入可能产生危险或受到限制的区域)。
3、定义本身方式或调用库(使它们在运行时间不能更改自身代码)。
4、在运行它们的主机卜读写文件(使它们不能传递病毒、特洛伊木马和间谍程序)。
这些限制是防止小应用程序危害系统安全和数据的完整性。这种设计最初是为了防止代码破译者为达到自己罪恶的目的,使用Java基本功能将代码从一台计算机转移到另一台计算机。
示例内容
通过在受限操作系统环境中执行软件来实现沙箱,从而控制进程可以使用的资源(例如,文件描述符,存储器,文件系统空间等)。
Sandbox实现的示例包括以下内容:
Sandbox的一些用例包括以下内容:
参考资料
最新修订时间:2024-06-11 21:29
目录
概述
简介
参考资料