沙盒是因为玩沙子很有趣,但我们不希望它从院子到房子。如果你曾经在海滩上,你就会知道有多少沙子以及清除它的难度。然后,沙子在走廊里、洗衣房里和你的浴室里。
在计算机世界中,程序存在许多类似的问题。在您的计算机上运行的程序共享该计算机的资源。您的所有程序都使用与驱动器相同的静态存储介质、相同的内存和中央处理器 (CPU)。共享此类公共资源时,您可能会遇到问题。一个程序会占用您的整个计算机,因为它会将数据写入驱动器的所有部分,从所有区域访问内存并向 CPU 发送请求,以及所有其他程序。我们把沙子放在盒子里,就像我们对计算机程序进行沙盒一样:将程序置于管理范围内。
基本电脑设计有利于资源共享。通过允许程序共享资源,计算机似乎有很多任务并且同时在做很多工作。这正是多年来我们经常要求计算机、手机、平板电脑和智能手表具备的那种行为。但是这些功能可能会导致不必要的副作用。程序可能表现不佳并失败或导致其他程序失败。他们可以依赖计算机上的许多其他应用程序、与其他程序的需求发生冲突的应用程序,以及越来越多的恶意程序试图访问超出限制的区域来这样做。坏事。
什么是沙盒,它如何对程序进行沙盒处理?
- 浏览器沙盒
- 手动沙盒
- 虚拟机
- 虚拟盒子
- 平行
- 沙盒
- Qubes 操作系统
- 非沙盒程序可能会出现问题
- 程序相互冲突
- 具有不同依赖项的程序
- 恶意程序
浏览器沙盒
全球网络 (www) 于 1989 年推出,第一个真正流行的浏览器 Mosaic 将互联网带入了流行文化。 Web 旨在共享文档,而不是旨在支持我们现在拥有的东西:基于 Internet 的分发系统,软件在云上运行。设计和实际使用之间的冲突为坏人创造了许多机会,他们使用网络浏览器作为传播恶意软件的机制。
物理桌面的终点和互联网的起点之间的界限不明确。我们今天运行的大多数程序都部分或完全依赖 Internet 连接才能直接运行。随着互联网连接在后台不断运行,很明显,我们用于访问互联网的程序成为一个非常有吸引力的攻击目标。第一个目标是著名的网络浏览器。事实上,2016 年,互联网 Sucuri 安全公司在 30 天内消除了超过 50 亿次针对网站和浏览器的恶意请求。
因为浏览器如此丰富且始终处于开启状态,所以值得特别关注。当今的许多浏览器都设计为无需用户设置即可在自己的沙箱中自动运行。
- 谷歌浏览器从一开始就被沙盒化了。
- Mozilla Firefox 需要更长的时间来部署沙盒,但现在几乎 100% 完成了。
- Internet Explorer 在 2006 年引入了一些沙盒级别,IE 7 和 Microsoft Edge 沙盒所有当前进程。
- Apple 的 Safari 浏览器也在单独的进程中运行网页。
如果您正在运行一个奇怪的浏览器,或者想在您的操作系统和浏览器之间更加分离,您可以考虑下一节中列出的手动沙箱选项。
手动沙盒
虽然浏览器是任何操作系统的关键弱点,但这并不意味着它们是唯一的弱点。任何应用程序都有可能被毒化,因此任何计算机都可以通过使用沙盒来增强。手动沙箱是配置系统的过程,以便您的系统可以完全访问应用程序沙箱。
- 7 款适用于 Windows 10 的最佳沙盒应用
虚拟机
桌面虚拟化这几年已经有了长足的发展,现在虚拟机的安装和使用已经相当容易了。虚拟机顾名思义,是一个不切实际的“机器”。它真的只是一个软件。最常见的使用虚拟机就是在上面安装一个操作系统的副本,然后在你的计算机上运行那个虚拟机,就好像它是一台物理机一样。这种操作为安全提供了很多有用的东西,因为程序只能访问虚拟机内的资源。如果恶意软件感染了您的系统,它只能感染虚拟机。这限制了它可能造成的负面影响。您甚至可以在虚拟机中运行备用操作系统,例如运行 Linux在 Windows PC 上的虚拟机中分发。
有许多虚拟化应用程序,每个都针对特定的使用类型。用户可以处理的最好和最流行的桌面虚拟化应用程序是 VirtualBox 和 Parallels。
虚拟化由两个主要部分组成。 '主机' 一词是指运行虚拟化软件的实际物理计算机。 'guest' 一词是指在虚拟化应用程序中运行的操作系统。
虚拟盒子
VirtualBox 归 Oracle 所有,拥有适用于所有主要操作系统的客户端。安装 VirtualBox 后,您可以使用 New 按钮 创建虚拟机。 您需要提供安装操作系统的方法,因为 VirtualBox 不附带该方法。在 Internet 上很容易找到的 Linux 发行版(例如 distrowatch.com 和 Windows 等专有操作系统)需要一张 CD 以便于安装。
- 在 VirtualBox 中安装 Ubuntu 不需要 DVD 或 USB
平行
Parallels 与 VirtualBox 非常相似,但它只运行在 macOS 上,并且是专门为在虚拟机中运行 Windows 而构建的。如果您正在寻找这种组合(在 macOS 桌面上运行 Windows),Parallels 可能是您的最佳解决方案。 Parallels 不是免费的,但有 30 天免费试用包。
- 使用 Parallels Desktop 9 在 Mac 上安装 Windows
沙盒
Sandboxie 的座右铭是“Trust No Program”(不相信任何程序)。它仅在 Windows 上运行,并且要求程序与底层操作系统分开运行。 Sandboxie 控制面板用于指定在沙箱中运行的特定程序。默认情况下,最容易受到威胁的程序(例如浏览器和电子邮件程序)被列为配置选项,并且可以根据需要添加其他应用程序。
当一个沙箱关闭时,Sandboxie里面的数据会被销毁,但是Sandboxie可以配置为保持重要数据不变。包含 Web 浏览器的电子邮件和书签的文件夹是删除沙箱时可能存在的数据示例。
Sandboxie 是为家庭用户设计的,而且相当便宜。
Qubes 操作系统
QubesOS(读作“Cubes”)值得一个特殊的虚拟化候选者。 Qubes 使用 Xen 管理程序而不是 VirtualBox。它分别启动多个客户操作系统和每个操作系统。这允许单独的沙盒应用程序,每个应用程序都在自己的虚拟机中,而不必对整个客户操作系统进行沙盒处理。 QubesOS 的特别之处在于,Xen 播放自己的操作系统,它背后没有运行“宿主”操作系统。
花时间在您的系统沙箱中可以创建一个可靠的防御措施来抵御各种恶意软件,并在一定程度上帮助软软件开发。不可能有一个完全健康的互联网使用环境,但隔离易受攻击的应用程序可能会有所帮助。
非沙盒程序可能会出现问题
程序相互冲突
在第一天,CPU 以先到先得的方式分配资源。当我们的计算机不必做很多事情时,这很好,但是今天,使用了更复杂的资源分配方法。 CPU 极大地保护了它们分配的资源的边界,如果一个程序试图访问未指定的资源,程序或其他程序可能会失败。
在沙箱中运行程序允许系统在程序需要任何东西之前预先分配资源,例如内存和磁盘空间。这样可以确保程序在需要时随时可以使用资源,并确保没有其他程序可以使用这些资源。
依赖不同的程序
每个程序都有几个版本。很少有程序在首次发布时在各个方面都是完美的。这就是用户必须不断更新更新的原因。设备总是会通知用户需要应用更新或程序的新版本已经可用。尽快进行这些更新非常重要,因为其中许多更新都与安全或性能问题有关。关闭更新时的更新通常会降低您的设备安全性并在不太理想的状态下运行。
在每天使用和交互的主要应用程序下方是一组辅助程序。这些程序的存在是为了帮助主应用程序正常运行。我们人类很少意识到这些程序,但是没有它们主程序就无法运行。这些帮助程序称为开发人员依赖项。像任何其他程序一样,这些依赖项会不断更新和更改。这就是让事情变得如此复杂的原因。
如果主程序使用了依赖本身具有的特定功能,但是这个依赖升级后突然不再起作用,主应用程序将停止工作。主应用程序没有从该依赖项中获得预期的结果。在很多情况下,依赖错误是如此的出乎意料,以至于主应用程序会立即遇到意想不到的问题。主应用程序开发人员可能不会对依赖项的更改发出警报,因此很难对此类情况进行解释和熟练处理。
大多数程序员尽最大努力确保向后兼容,这意味着即使较新版本的应用程序过去没有功能,它仍然会处理对功能的请求。巧妙地,使其他应用程序不断依赖它。但是,一些例外情况值得注意,因为众所周知,Java 和 Python 在升级时很难处理。在 Linux 世界中,著名的“依赖地狱”指的是主要系统更新所固有的问题。在某些情况下,依赖程序有自己的依赖级别,在升级情况下,当它不能满足所有依赖时,它们并不是前所未有的。例如,如果 Puppy Vet Tracker 程序需要某些依赖程序的 2.0 版,但 Daily Star Wars Quote 程序需要相同依赖程序的 1.0 版,则它无法响应该请求。两个程序。
开发者经常会遇到这个问题,沙盒就是一种解决方法。创建沙箱并在其中安装 Puppy Vet Tracker 将允许依赖程序升级到 2.0 版。主计算机系统仍将使用 1.0 版的依赖程序,因此用户仍可以收到他们的每日星球大战报价。互惠互利。
恶意程序
考虑一个应用程序与所有其他正在运行的程序共享您的计算机的情况。在您的计算机上运行的某些程序可能包含敏感信息。也许您打开了法律文件、预算电子表格或密码管理器,而这些应用程序正在内存中存储一些数据。现有的恶意程序总是在其他程序处于活动状态的计算机区域周围进行探测,以查看是否可以找到任何漏洞。近年来,资源分配变得更好,因此程序不必访问特定指定区域的数据,而是使用黑客技术,例如尝试读取分配给章节提交的内存,仍然可以工作。
评论