10年前最具潜力的沙盒不再是铜墙铁壁
2021-11-10
来源:祺印说信安
沙盒成为人们关注的焦点已经是 10 年前的事了,当时它的出现成为安全行业的救世主。但是黑客们不可能坐视不理,现在已经出现了各种破坏沙盒的方法。是时候该重新考虑沙盒的安全性问题了。
前言
曾几何时,沙盒技术是安全行业最受期待的一项技术成果。今天,它被安全研究人员广泛使用,嵌入到端点检测和响应(EDR)和下一代防病毒(NGAV)等现代安全解决方案中,用作软件开发工作流程的一部分,并被许多用户用来测试未知或安全环境中不受信任的软件。据预测,沙盒的市场规模将从 2016 年的 29 亿美元增长到2022 年的 90 亿美元。
然而,如果您仔细想想,其实沙盒技术并没有兑现其最初的承诺。沙盒技术的承诺是什么?那就是揭开未知的真面目——将未知变为已知。但是,有一些威胁即使使用今天的沙盒技术也无法检测到,因此,有许多企业或组织因为盲目相信安全沙盒而被打得头破血流。我们可以在多大程度上依赖于沙盒呢?成为一个值得讨论的话题。
在本文中,我将重点讨论安全沙盒的故事——什么是沙盒,它的作用是什么?沙盒的种类有哪些?沙盒存在哪些问题?以及为什么我们今天不应该依赖沙盒作为唯一可行的安全解决方案。
什么是沙盒,它的作用是什么?
沙盒(英语:sandbox,又译为沙箱)是计算机安全领域中的一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。
沙盒通常严格控制其中的程序所能访问的资源,比如,沙盒可以提供用后即回收的磁盘及内存空间。在沙盒中,网络访问、对真实系统的访问、对输入设备的读取通常被禁止或是严格限制。从这个角度来说,沙盒属于虚拟化的一种。
沙盒中的所有改动对操作系统不会造成任何损失。通常,这种技术被计算机技术人员广泛用于测试可能带毒的程序或是其他的恶意代码。
综上所述,沙盒的作用是阻止应用软件访问所有系统资源和用户数据。因此,它成为主动进行恶意软件分析和检测的基础。就像在安全设施中进行炸弹威力测试一样。沙盒测试在安全隔离的环境中执行或引爆代码,在该环境中可以安全地观察代码和输出活动的行为。另外,最近推出的沙盒甚至具备探测和消除威胁的功能,可以检测其他工具遗漏的威胁,并帮助管理员快速从生产环境中删除这些威胁。
沙盒的种类
一是从沙盒的创建方法上可分为:
全系统仿真:模拟主机物理硬件的沙盒,包括内存和 CPU。
操作系统仿真:模拟最终用户操作系统的沙盒。它不模拟机器硬件。
虚拟化:基于虚拟机(VM)的沙盒,包含并检查可疑程序。
二是从沙盒的安全解决方案上可分为:
浏览器沙盒,例如Google Chrome、Firefox 和 Safari 中内置的沙盒。
浏览器端点检测与响应(EDR),它可以让安全团队了解端点浏览器上遭受的攻击,并使用沙盒隔离威胁。
VirtualBox等通用虚拟机(VM),也可用于隔离可疑的恶意软件。
安全沙盒“不再安全”的五大原因
10年前,沙盒以绚丽的光芒出现在整个安全行业面前,它被公认为是可以彻底解决所有安全问题的神奇魔法。然而,就像世界上所有的安全解决方案都会受到攻击者的研究分析一样,沙盒也开始逐渐成为攻击者关注的焦点。现在,沙盒同其它安全软件一样,沦落为可以被攻掠的安全解决方案之一。
从目前的情况来看,无条件地盲目相信和信任沙盒是非常不安全的。也就是说,现在仅凭沙盒无法解决所有安全问题。以下是沙盒不再安全且无法在企业环境中用作有效安全控制的五个原因:
其一,在调查和分析过程中使用沙盒仍然是一种不错选择。但是,在威胁检测方面,沙盒并不可靠。在沙盒中进行检测需要一定的时间,这是因为必须要实际运行恶意软件,才能真正触发恶性行为。因此,在当今这个恶意软件和可疑程序层出不穷、亟待分析的时代,使用沙盒作为检测工具是低效的。沙盒只能用于已知或可疑性比较大的恶意软件的调查和分析——这意味着必须有一个预先检测机制。
其二,对于当前的攻击者来说,逃离沙盒并不是一件难事。现有的可实现权限提升的漏洞不计其数,其中大部分都与 Windows 内核有关。如果获得内核权限,就可以逃离沙盒。对于攻击者来说,在暗网上寻找并购买提升权限的漏洞是件非常简单的事情。
其三,沙盒容易受到社会工程攻击的影响。几乎所有的沙盒环境都是在特定用户的权限下管理的。也就是说,如果怂恿或欺骗负责管理的用户,以某种方式阻止特定软件通过沙盒,那么再强大的沙盒也会失效。这种行为可以通过社交工程攻击实现,而网络攻击者往往十分擅长社会工程攻击。
其四,沙盒的界面并不完美。无论是第一次接触沙盒环境的人,还是因过于熟悉沙盒环境而失去更多警惕性的用户,只要不小心点击一下,都足以将沙盒中的各种恶意软件释放到生产环境中。
其五,最新推出的恶意软件基本都具备规避检测和迂回技术。多年来,攻击者一直致力于沙盒规避技术的研究。许多类型的恶意软件使用诸如延迟执行、鼠标和键盘输入模式分析、硬件环境评估和其他检查等技术来识别恶意软件是在沙盒中还是在真实用户环境中。如果发现是在沙盒环境中,恶意软件会立即停止工作,还可以避开沙盒环境直接渗透到主机环境中。有些攻击者甚至能够利用虚拟机软件的安全漏洞来发动攻击,对虚拟机造成损坏。
基于上述原因,我们可以得出结论:只依赖于沙盒作为唯一的安全防护措施是不行的,是不安全的。
更高级的沙盒可以解决这些问题吗?
答案是悲观的。在攻击者和沙盒开发者之间正在进行的“军备竞赛”中,一方开发更复杂的技术来逃避或逃离沙盒,而另一方则改进检测和遏制此类攻击的措施。但是,沙盒技术研发人员在这场“竞赛”中处于劣势。
恶意软件技术每提升一次,理论上就可以使用任意数量的资源来规避或破坏沙盒。但是,由于沙盒需要进行大量的扫描,因此必须非常高效。然而,随着沙盒变得越来越复杂,它们也变得更加繁琐、更占用资源——这使得沙盒在生产活动中的实用性也变得越来越低。
即便如此,我们也并不主张废除沙盒,不能说沙盒是无用之物。只是强调沙盒技术也摆脱不了黑客和安全行业之间的“军备竞赛”。安全行业应该始终领先于黑客一步,但以现在的状态,沙盒技术无法做到这一点,现在黑客技术比现有的沙盒技术更高一筹。“道高一尺魔高一丈”,我们要想站得更高,就要解决刚才提到的五个问题。
在此之前,所有将沙盒作为其防御系统基本框架的组织都应该清醒地认识到“沙盒是当今不安全的技术”。基于这个事实,我们应该构建一个新的防御架构。即使现在的沙盒技术比黑客领先一步,时间也不会太长。因为黑客们会通过一次又一次的研究不断地改进攻击策略。因此,我们必须要有长远的眼光来完善和保护我们的沙盒,或者开始评估其他安全措施,以取代或补充曾经久负盛名的安全沙盒。
结语
沙盒技术是运行风险应用程序或者访问潜在危险网站的尝试性技术,有很多方法可以创建沙盒环境。但首先,我们需要考虑与沙盒技术有关的所有因素和所有风险问题。安全防护永远都应该是多层次多方面的,所以我们不能仅仅依赖于沙盒环境来提供全面的保护。