沙箱技术和用户实例
诸如Adobe和PayPal之类的公司引入沙箱程序,这会使他们的软件更安全吗?还是只是带来了一个潜在的受攻击层?在IT安全领域,深度防御(defense-in-depth)的目标在于分层次使用不同的安全防护方法,努力提高整体的安全现状。然而,在这种情况下,增加一个应用层意味着加入了另一个可渗透的层,可能导致恶意软件和黑客穿透沙箱并进入宿主计算机系统。
沙箱的潜在漏洞
沙箱可主要分成三个部分:核心语音解释器、标准函数库以及不受信任的应用程序代码。在这三部分中,标准函数库包含了执行路径——如网络通信和密码系统的路径——是最容易受到攻击的部分。这是使用Java或C#编写这些库直接导致的,使得标准库继承了这些语言的固有缺陷,如堆栈溢出漏洞。实际上,C#将部分代码标记为不安全的不仅会弱化系统的安全性,还会轻易允许对主机系统本地库的访问。
许多人会把沙箱和虚拟机(VM)混淆,这可能是因为许多公司将虚拟机当做沙箱来使用。在典型的家用计算机上,这么做可能是适宜的,可以增加Web浏览时的安全性;但不建议在保存有敏感数据的系统上测试可疑程序。
由于在个人电脑上使用越来越广泛,虚拟机常被用于产生蜜罐或被当做常用的网络安全手段,黑帽黑客们正在编写新的恶意代码。这种恶意代码可通过寻找虚拟机在系统内存、正在运行的进程、注册表和文件系统中留下的典型特征来检测是否有虚拟机正在运行。它甚至会寻找虚拟机硬件和处理指令。因此,使用虚拟机作为沙箱(或其他安全用途)要冒极大的风险,只能吓走低级的——或机会主义的——黑客。这些黑客往往不具备相应的能力或工具来检测是否有虚拟机在运行。
最后,安全沙箱程序不是万能的。沙箱的设计目的在于分隔代码和主机系统;然而,如上所述,沙箱会在无意中带来各种安全漏洞和问题。因此,正如对待其他安全措施那样,在决定使用何种安全功能时,风险评估和风险减低是至关重要的。沙箱技术的发展不仅能寻找到新的应用场景和提供多种多样的好处,也可能导致自满和系统已经完全安全的错觉。尽管深度防御是个好的策略,但同时我们需要谨记,每增加一个应用层,可利用的漏洞也会增加。
各种新式的安全措施都有意想不到的后果,沙箱也一样。因此,单独依靠沙箱来保证程序的完整性将是一个严重的错误。正确的应用程序安全措施要求多层次的安全防护,这些措施一起工作才能提供坚固的、多方面的应用程序防御体系。
沙箱正确地使用能够带来好处,但是要意识到危险的存在,否则,那些有效的应用程序,可能会像昔日童年的沙砾那样,从你的指尖滑落到地。
【编辑推荐】
- 预防交换机漏洞攻击防护
- 留意数据泄露的七种主要途径
- 漏洞扫描工具选择技巧大揭秘
- 从堵住系统漏洞开始 保护Linux系统安全 续
- 浅析漏洞攻击与恶意程序植入的合作关系 续
- 安全沙箱程序:深度防御还是分层漏洞?(1)