导言
沙盒旨在创造一个运行存在潜在安全风险的应用程序的隔离环境,有些互联网应用程序已经建立了自己的沙盒,不过大家也可以通过多种方法为任何应用 程序创建沙盒环境。本文将探讨流行的沙盒方法以及如何利用沙盒实现更好的安全性。
沙盒技术的历史
在计算机安全世界,沙盒可以作为一个虚拟容器,让不受信任的程序运行而不对主要操作系统和其他应用程序带来威胁。 卡内吉梅隆大学于70年代创建了Hydra操作系统,该系统的主题涉及理念就是,所有程序都受到保护且拥有自己的执行域。Sun公司则创建了称为动态系统 域的资源子集,随后推出Solaris Container,其中执行环境存在于Solaris的某“层”中, 随后在Solaris10(通常被成为信任容器)中则转变为“区”。
随后,沙盒技术得到越来越广泛的应用,从隔离某种系统调用到隔离整个应用程序等,虚拟化技术的普及也让沙盒技术变得更加容易实现。
沙盒与操作系统虚拟化软件
很显然,大多数主流沙盒技术都是基于某种类型的虚拟化技术。但为什么不使用虚拟软件(如Virtual PC、Vmware或者Hyper-V)来创建隔离环境呢?为什么这些虚拟解决方案都没有将沙盒技术作为其主打功能呢?实际上,我们可以利用虚拟软件来创 建沙盒,不过也有一些注意事项。
桌面整合
在过去,终端用户很难使用虚拟机,因为操作很复杂,首先需要打开一个虚拟程序,在使用安装在其中的应用程序之前,需要启动某个特定的虚拟机。而 现在,虚拟机与桌面整合后,如使用windows Virtural PC和XP模式或者Vmware Workstation的Unity功能,虚拟集中的应用程序就出现在操作系统的开始菜单中,可以像访问本地应用程序一样访问虚拟机中的程序。
微软涉及XP模式作为兼容解决办法,以允许用户在windows 7系统中运行windows XP旧版程序,这是windows 7专业版、企业版和中级班的免费插件。但即使你的用户不需要使用XP模式运行任何旧版程序,你也可以用它来创建沙盒环境。例如,当用户访问存在恶意软件或 者其他安全风险的网站时,他们可以使用安装在XP虚拟机中的浏览器进行访问。另外,你还可以设置主机windows 7中的浏览器,以限制浏览器只能访问安全网站,而给虚拟浏览器更多访问权限。这样的话,即使用户访问恶意网站,都不会对windows 7操作系统带来任何威胁。
如果你的用户仍然在使用XP或者Vista作为主要操作系统,则无法安装XP模式。你只能使用微软Virtural PC2007来创建沙盒环境,然后又会面临原来的问题,即无法将虚拟应用程序整合到主机操作系统中。然而,你可以使用VM Workstation及其桌面整合功能来完成同样的事情。不过与windows 7专业版的XP模式不同,Vmware Workstation不是免费的,当前版本(v7)售价为189美元。
在企业环境中,微软企业桌面虚拟化(MED-V)可以用于提供应用程序兼容性和提供运行潜在风险应用程序的环境,而不会对主机操作系统带来直接 威胁。MED-V提供了对部署在用户桌面的虚拟环境的更多中央控制。
使用操作系统虚拟技术创建沙盒环境的风险
使用操作系统虚拟软件创建沙盒环境的问题在于某些恶意软件可以检测出其是否在虚拟系统中运行。那些编写恶意代码的攻击者开发了虚拟机检测技术来 寻找内存、文件系统、注册表货运行程序中的VME信息,或者搜寻VME虚拟硬件和处理器指令。
在某些情况下,虚拟环境的检测只会让恶意软件关闭其恶意功能,这样恶意软件就不能在虚拟环境中被正确分析。当然,如果你使用虚拟机创建沙盒是不 错的选择,因为这意味着恶意软件或多或少会禁用其本身,因而不会对虚拟操作系统造成损害。
然而,有些攻击者还能够利用虚拟机检测来发动利用虚拟机软件的安全漏洞的攻击,对虚拟机造成损坏。
基于这些原因,我们不能依赖于虚拟机的隔离功能作为唯一的保护。虚拟机中的操作系统需要即使更新安全补丁,也需要像主机操作系统一样运行防病毒 和防恶意软件程序。为了最好地保护生产网络,需要将虚拟机连接到非生产网络。定期更换虚拟机图像也是个不错的安全保护措施。
总结
沙盒技术是运行风险应用程序或者访问潜在危险网站的尝试性的真正技术,有很多方法可以创建沙盒环境,但首先,你需要考虑与特定沙盒技术有关的所 有因素和所有风险问题。安全永远都应该是多层次多方面的,所以我们不能仅仅依赖于沙盒环境来提供完全的保护。