打印本文 打印本文  关闭窗口 关闭窗口  
泥客百科:沙箱技术
时间:2015-12-6 19:43:17

Sandboxie(又叫沙箱、沙盘)即是一个虚拟系统程序,允许你在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。

沙箱是一种按照安全策略限制程序行为的执行环境。早期主要用于测试可疑软件等,比如黑客们为了试用某种病毒或者不安全产品,往往可以将它们在沙箱环境中运行。

经典的沙箱系统的实现途径一般是通过拦截系统调用,监视程序行为,然后依据用户定义的策略来控制和限制程序对计算机资源的使用,比如改写注册表,读写磁盘等。

访问方式

近年来,随着网络安全问题的日益突出,人们更多的将沙箱技术应用于网上冲浪方面。从技术实现角度而言,就是从原有的阻止可疑程序对系统访问,转变成将可疑程序对磁盘、注册表等的访问重定向到指定沙箱文件夹下,从而消除对系统的危害。

GreenBorder为IE和firefox构建了一个安全的虚拟执行环境。用户通过浏览器所作的任何写磁盘操作,都将重定向到一个特定的临时文件夹中。这样,即使网页中包含病毒,木马,广告等恶意程序,被强行安装后,也只是安装到了临时文件夹中,不会对用户pc造成危害。GreenBorder 公司成立于2001年,2007年5月被Google收购,并在其随后发布的Google Chrome浏览器中得以运用。目前其网址不可访问,所以没有相关测试报告。关于该产品的情况可以到维基百科上了解。

与GreenBorder功能相似的ForceField是近期推出的,目前还是Beta版。它是由知名的网络防火墙公司ZoneAlarm开发的。主要支持Windows xp以及vista,其Beta版可以下载。下图是安装后试用的图片。从外观上看firefox和原有的基本没有差别。

在测试过程中,使用了某病毒网站测试,以前访问该网站时,可能存在类似“机器狗”的病毒,通过修改机器时间的方式使卡巴斯基失效,然后马上下载偷盗游戏帐号和密码的木马。使用ForceField后,它报告该网站可疑,且阻挡了该可疑攻击,卡巴斯基没有异常。只是其后,在每次运行程序的时候,卡巴斯基都会报告类似“已检测:风险软件Invader 运行进程: D:\downloads\jpskb\极品时刻表\JPSKB.exe”的警报,可能是ForceField的原因。

网络沙箱

沙箱(SandBox) 无论何时加载远程网站上代码并在本地执行,安全都是至关重要的问题。点击一个链接可以启动Java Web Start 应用程序。访问一个网页时,其中的所有Applet也会自动地启动。如果再点击一个链接,或者访问一个网页时,在用户的机器上能够安装任意的代码,那么犯罪分子就可能在此时窃听机密信息、读取财务数据或者接管用户机器来发送广告。

为了确保Java技术不会被邪恶目的所利用,SUN公司在设计Java的时候,设计了一套精密的安全模型;即安全管理器(Security Manager)将检查有权使用的所有系统资源。在默认的情况下,只允许那些无害的操作,要想允许执行其他操作,代码需得到数字签名,用户必须得到数字认证。

在所有的平台上,远程代码可以做什么呢?它可以显示图像、播放音乐、获得用户的键盘输入和鼠标点击,以及将用户的输入送回加载代码所在的主机。这些功能足以能够显示信息和图片,或者获得用户为订单所输入的信息。这种受限制的执行环境称为沙箱(sandbox)。在沙箱中运行的代码不能够修改或查看用户系统。

特别是,在沙箱中的程序有下列限制:

不能运行任何本地的的可执行程序。

不能从本地计算机文件系统中读取任何信息,也不能往本地计算机文件系统中写入任何信息。

不能查看除Java版本信息和少数几个无害的操作系统详细信息外的任何有关本地计算机的信息。特别是,在沙箱中的代码不能查看用户名、E-mail地址等信息。

远程加载的程序不能与除下载程序所在的服务器之外的任何主机通信,这个服务器被称为源主机(originating host)。这条规则通常称为“远程代码只能与家人通话”这条规则将会确保用户不会被代码探查到内部网络资源(在Java SE 6 中,Java Web Start 应用程序可以与其他网络连接,但必须得到用户的同意)。

所有弹出式窗口都会带一个警告消息。这条消息起到了安全的作用,以确保用户不会为本地应用程序弄错窗口。令人担心的是,一个可信赖的用户可以访问网页,并被蒙骗运行远程代码,然后输入密码和信用卡号,这些信息将被送回服务器。在早期JDK版本中,有个消息会令人害怕的:“Untrusted Java Applet Window ”(不可信赖的Java Applet Window)。后来的JDK版本将这个警告消息的口气缓和了一些“Unauthenticated Java Applet Window”(未获认证的Java Applet Window)。随后是“Warning :Java Applet Window ”(警告:Java Applet Window )。现在只是“Java Applet Window” 或“Java Appliation Window”。