沙箱的存在是因为玩沙很有趣,但我们不希望在整个校园和房屋中都跟踪沙。如果您曾经在海滩上度过任何时间,那么就会知道沙子的渗透性和清除的难度。不知不觉中,走廊里有沙子,洗衣房里有沙子,淋浴间里有沙子.
在计算机世界中,程序存在着几乎相同的问题。在计算机上运行的程序共享该计算机的资源。您的所有程序都使用相同的静态存储,例如磁盘驱动器,相同的内存和相同的中央处理器(CPU)。当共享这样的公共资源时,您可能会遇到沙子问题。程序最终会遍及整个计算机,因为它会将数据写入磁盘的所有部分,从内存的所有区域访问内存,并将请求与其他所有程序一起发送给CPU。我们将沙粒保留在沙箱中的原因与沙箱计算机程序的原因相同:将沙粒(或程序)包含在可管理的范围内.
基本的计算机设计有助于这种资源共享。通过允许程序共享资源,计算机看似可以执行多任务,并且似乎可以一次完成很多事情。多年来,正是我们对计算机,手机,平板电脑和手表提出的要求,但是这些功能可能会导致不良的副作用。程序可能表现不佳并崩溃,或导致其他程序崩溃;他们可能依赖于计算机上与其他程序的需求冲突的其他应用程序;并且越来越多的程序是恶意的,并试图访问越界区域以做坏事.
浏览器沙箱
万维网(www)于1989年成立,第一个真正流行的浏览器Mosaic将互联网推向了流行文化。网络旨在共享文档。它从未被设计为支持我们现在拥有的:基于互联网的交付系统,其中软件在云中运行。设计和实际使用之间的鸿沟为恶意分子提供了无数机会,可将网络浏览器用作其恶意软件的传递机制.
物理台式计算机结束和互联网开始的那条线非常模糊。我们今天运行的大多数程序都部分或完全取决于实时互联网连接的功能。随着不断的互联网连接在后台嗡嗡作响,很明显,非常有吸引力的攻击媒介是我们用来访问互联网的程序。该列表的顶部是古老的Web浏览器。实际上,2016年,互联网安全公司Sucuri在30天的时间内就针对网站和浏览器记录了超过10亿个恶意请求(其中十亿代表B).
由于浏览器功能强大且始终保持运行状态,因此值得特别注意。当今许多浏览器的设计目的都是自动运行在自己的沙箱中,而无需用户进行任何设置.
Google Chrome从一开始就被沙盒化.
Mozilla Firefox花费了更长的时间来实现沙箱,但现在几乎100%.
Internet Explorer在2006年通过IE 7引入了一定程度的沙箱功能,而Microsoft Edge沙箱现在将所有进程.
苹果的Safari浏览器也以单独的流程运行网站.
如果您运行的是异类浏览器,或者希望操作系统与浏览器之间有更大的分离,则可能需要查看下一部分中列出的手动沙箱选项.
手动沙箱
尽管浏览器在任何操作系统中都是一个非常重要的弱点,但绝不是唯一的弱点。任何应用程序都有可能被恶意攻击,因此可以通过使用沙箱来增强任何计算机的安全性。手动沙箱是故意将系统配置为对可能完全访问您的系统的应用程序进行沙箱处理的过程.
虚拟机
近年来,桌面虚拟化已经走了很长一段路,现在安装和使用虚拟机非常容易。听起来很像虚拟机:不是真实的“机器”。它实际上只是一个软件。虚拟机最常见的用法是将操作系统的副本安装到其中,然后在桌面上运行该虚拟机,就好像它是另一台物理机一样。这种类型的分离提供了很大的安全性,因为程序只能访问虚拟机内部的资源。如果恶意软件被感染并感染了您的系统,那么它只能感染虚拟机,从而限制了它可以造成的破坏。甚至可以在虚拟机中运行替代操作系统,例如在Windows PC上的虚拟机中运行Linux发行版.
有许多虚拟化应用程序,每个应用程序都针对特定类型的用例。普通用户通常可以使用的最流行和成熟的桌面虚拟化应用程序是VirtualBox和Parallels.
背景:虚拟化包含两个主要部分。期限 主办 指运行虚拟化软件的实际物理计算机。期限 客人 指在虚拟化应用程序中运行的操作系统.
虚拟盒子
VirtualBox由Oracle拥有,并拥有每个主要操作系统的客户。安装VirtualBox之后,可以使用“新建”按钮创建虚拟机。您需要提供操作系统安装媒体,因为VirtualBox并未附带该媒体。 Linux发行版很容易在Internet上找到-一个很好的列表是Distrowatch网站,对于Windows等专有操作系统,您需要随身携带安装CD.
平行线
Parallels与VirtualBox非常相似,但有一个明显的例外,它仅在macOS上运行,并且专门为在虚拟机中运行Windows而构建。如果您正在寻找这种组合-在macOS桌面上运行Windows–那么Parallels可能是您的最佳解决方案。 Parallels不是免费的,但是有30天的免费试用期.
沙盒
沙盒的座右铭是“不信任程序”。它仅在Windows上运行,并声称将正在运行的程序与基础操作系统分开。沙箱控制面板用于指定要在沙箱中运行的特定程序。构成最大威胁的最常见程序,例如浏览器和电子邮件程序,默认情况下被列为配置选项,并且可以根据需要添加其他应用程序.
关闭沙盒时,沙盒中的数据将被破坏,但是可以配置沙盒以使重要数据保持不变。包含电子邮件和Web浏览器书签的文件夹是可以在删除沙箱后保留的数据的示例.
Sandboxie是为家庭用户设计的,这反映在其便宜的价格中.
Qubes OS
QubesOS(发音为“ Cubes”)应特别提及虚拟化。 Qubes使用Xen虚拟机监控程序而不是VirtualBox。它启动多个来宾操作系统,并且每个操作系统彼此独立。这允许对单个应用程序进行沙箱处理,而每个应用程序都在其自己的虚拟机中,而不是对整个客户机操作系统进行沙箱处理。 QubesOS的与众不同之处在于Xen是其自己的操作系统。在其下没有任何“主机”操作系统运行。我在这里写了更多有关Qubes和其他以匿名为中心的Linux发行版的信息。.
花时间对系统进行沙箱测试可以为多种类型的恶意软件提供可靠的防御,并有助于软件开发。使用互联网时,健康的偏执狂是无法替代的,但是隔离更脆弱的应用程序可以有所帮助.
非沙盒程序可能导致的问题类型
程序相互崩溃
在计算的早期,CPU以先到先得的方式分配资源。当我们的计算机工作不多时,这种方法效果很好,但是如今,使用了更为复杂的资源分配方法。 CPU激烈地捍卫了已分配资源的边界,如果程序尝试访问未专门指定的资源,则该程序或其他程序可能会崩溃.
在沙箱中运行程序允许系统在程序请求任何内容之前预先分配资源,例如内存和磁盘空间。这样可以确保程序需要时可以为程序准备好这些资源,并确保没有其他程序可以使用这些资源。.
具有不同依赖项的程序
每个程序本身都有许多版本。几乎没有什么程序在最初启动时就各方面都有完美的表现,这就是为什么我们会不断经历无休止的升级周期的原因。我们的设备永远告诉我们需要应用更新或提供程序的新版本。请务必尽快进行这些更新,因为其中许多更新与安全性或性能问题有关。推迟升级通常会使设备的安全性降低,并且无法在理想状态下运行.
我们每天使用并与之交互的主要应用程序下面是一组帮助程序。这些程序可以帮助主应用程序正常运行。我们人类很少了解这些程序,但是没有它们,主程序将无法运行。这些帮助程序称为 依存关系 在开发人员看来。就像任何其他程序一样,这些依赖项会不断更新和更改,这会使事情变得棘手.
如果主程序使用了依赖项提供的特定功能,但是依赖项已升级并且突然不再具有该功能,则主应用程序将崩溃。主应用程序无法从该依赖项中获得预期结果。在许多情况下,依赖项错误非常出乎意料,以至于主应用程序会意外崩溃。可能不会事先警告主要应用程序开发人员有关依赖项的更改,因此可能难以说明这种情况并无法妥善处理.
大多数程序员尽力确保 向后兼容, 这意味着,即使他们的应用程序的较新版本没有过去的功能,它仍将优雅地处理对该功能的请求,以使依赖于该功能的其他应用程序不会崩溃。但是,由于在升级期间很难使用Java和Python之类的一些非常著名的异常而闻名。在Linux世界中,众所周知的短语“ dependency hell”是指大型系统更新所固有的问题。在某些情况下,依赖项程序具有其自己的依赖项,并且并非无法幸免于无法满足所有依赖项的升级情况。例如,如果我的Puppy Vet Tracker程序需要某些依赖程序的版本2.0,但是我的Daily Star Wars Quote程序需要同一依赖程序的版本1.0,则不可能同时满足这两个程序的要求.
开发人员经常会遇到这种类型的问题,沙盒处理是解决此问题的一种方法。创建一个沙箱并将其安装到我的Puppy Vet Tracker中,可以将依赖程序升级到2.0版。主计算机系统将保留有从属程序的版本1,因此我仍然可以获得每日的《星球大战》报价。双赢.
恶意程序
考虑一种情况,其中应用程序与所有其他正在运行的程序共享您的计算机。您的计算机上运行的某些程序可能包含敏感信息。也许您有法律文件,预算电子表格或密码管理器处于打开状态,而这些应用程序正在将某些数据存储在内存中。存在恶意程序,它们会在分配给其他程序的计算机区域中进行探测,以查看它们可以找到的内容。近年来,资源分配已经变得更好,因此程序很难访问未专门分配给它的区域中的数据,但是诸如试图读取超出分配给程序的内存之类的黑客技术仍可以工作.
成功泄露数据(从系统中删除数据)的技巧始终依赖于欺骗计算机用户安装恶意软件。这通常是通过社会工程学或网络钓鱼策略来完成的,并且可能会导致整个系统的全面破坏,在该系统中每个文件都可能被盗.
沙盒程序可以为恶意程序提供非常强大的防御。将程序正确放入沙箱后,它只能访问分配给它的内存和磁盘空间。因此,在沙箱中打开敏感文档通常会阻止恶意程序访问它们,因为该文档与恶意程序不在同一个内存空间中。话虽这么说,黑客们还是非常团结一致地努力渗透沙盒。这就是所谓的 逃避虚拟环境 并且被认为是一种非常严重的攻击,因此微软最近向白帽黑客团队支付了105,000美元的赏金,以证明使用Edge浏览器是可能的.