什么是“沙箱”技术?沙箱技术原理与实现

4747 5498 2022-12-05

本文讲了什么是“沙箱”技术?沙箱技术原理与实现。

什么是“沙箱”技术?沙箱技术原理与实现

所谓的沙箱技术,其实就是Sandboxie,360仅仅是挂名,这项核心技术并不是360自主研发的。更加不是首创,因为Sandboxie自带一个快捷方式,就是在沙盘中运行IE。 

Sandboxie是一款专业的虚拟类软件,它的工作软件:通过重定向技术,把程序生成和修改的文件,定向到自身文件夹中。当然,这些数据的变更,包括注册表和一些系统的核心数据。通过加载自身的驱动来保护底层数据,属于驱动级别的保护。我个人是用Sandboxie来测试病毒的,在里面运行病毒可以说也是安全操作。 
在360浏览器的文件夹中(桌面快捷方式的目标的上一级路径,除了浏览器程序之外还有一个文件夹),你可以找到Sandboxie的安全程序,以及调出它的程序控制台SbieCtrl.exe。版本是英文的,但官方有中文版。 
360浏览器为什么安全?不是因为它是360的产品,也不是因为它的浏览器程序是The World,也不是什么扫描检查。是因为Sandoxie这个软件。
其他回答
2009-01-14 12:23:13  58.61.65.*
概述沙箱处理是一个通用安全性术语,它适用于所有降低某应用程序运行特权的环境。它对于从 Internet -的沙箱应用程序尤为重要,因为这些应用程序往往来源不明或不可信。
    本节概述了为“Web 浏览器应用程序”所创建的 Windows Presentation Foundation 沙箱。 代码访问安全性WPF 沙箱是使用“代码访问安全性 (CAS)”技术构建而成的,它是 .NET Framework 安全的一项基本技术。此安全模型将权限集和部署区域结合使用,从而确定应用程序的特权。有关 CAS 的详细信息,请参阅 MSDN 代码访问安全性主题(英文)。
    请求权限“代码访问安全性”的一个关键概念就是代码可能需要某个级别的特权。在高级别特权下,当代码要执行特权检查时,它明确请求所需权限。以 API 执行磁盘访问为例。创建文件的代码将调用 FileIOPermission.Demand()。此请求将触发 .NET 运行时组件执行一个堆栈审核,以确定是否有调用方具备所需权限。 
    对于 CAS 堆栈审核,还有许多错综复杂的问题。有关详细信息,请参阅 MSDN 文章代码访问安全性(英文)。安全异常如果代码不具备所需权限,则请求失败,同时 .NET Framework 运行时组件会引发 SecurityException。如果创建“Web 浏览器应用程序”的开发人员试图使用沙箱中未提供的功能,则会在开发过程中遇到 SecurityException。 沙箱和部分信任沙箱处理是一个通用安全术语,指的是限制特权的应用程序执行环境。部分信任“代码访问安全”的安全沙箱。所有从 Internet 部署的 WBA 文件和“可扩展应用程序标记语言 (XAML)”文件均在部分信任环境中运行。
     在本文中,部分信任一词与“适用于从 Internet 部署的 WBA 的沙箱”同义。由于 CAS 是一个基于分区的安全框架,因此 Intranet 应用程序可以请求一个比可供 Internet 应用程序使用的沙箱更大的沙箱。但由于 Internet 沙箱是一个限制性更强的环境,并且映射到大量方案,故本文将专门讨论在 Internet 沙箱内运行的各功能。
 
 
2009-01-14 12:23:24  58.39.189.*
沙箱英文名sandbox把它可看作是一种容器,所谓容器,也就是通过某种保护层之类的东西与外界隔离开,在軍事上,常用于地形模拟非常方便,不用了可将沙子推倒重来。
   现在在计算机安全防御中得以运用,是比较新的技术。具体来说沙箱是一种安全软件,可以将一个程序放入沙箱运行,这样它所创建修改删除的所有文件和注册表都会被虚拟化重定向,也就是说所有操作都是虚拟的,真实的文件和注册表不会被改动,这样可以确保病毒无法对系统关键部位进行改动破坏系统。但是当用户想真正的改变系统设置,以及保存文件时,虚拟系统是无法实现真正的操作,所以这种技术至今可以应用的层面仍然很少。
   近来,360安全浏览器的超强安全模式里运用了这项技术,我试用了一下,感觉还可以,当你-文件,不确定该文件是否安全时,在360提供的沙箱中试运行一下,看有没有不确定因素,然后决定是否正常安装在真实的系统当中。目前看来,能较有效的抵御一些病毒的危害。

   可以说,沙箱技术是安全厂商在防毒这一领域中的一项技术突破,现在只是刚刚开始,还有许多需要完善的地方。

可能很多人都听过所谓「沙盒(或沙箱)」(Sandbox)的概念,简单来说,这是一种安全机制,为执行中的程式提供一个完全隔离的环境,以避免对使用的作业系统造成危害。沙盒通常会严格限制程式所能存取的资源,包括磁盘及内存空间。当然这也属于虚拟化的一种方法,就如同透过虚拟机器建立电脑一样。

沙箱模型技术其实就是浏览器和其他应用程序中保护安全的一种组件关系设计模式,最初发明人为GreenBorder公司。2007年5月,谷歌公司收购了该公司,也将此项专利应用于chrome浏览器的研发中。

一、什么是沙箱(Sandbox)

沙箱是一种隔离对象/线程/进程的机制,控制浏览器访问系统资源的权限,从而达到保护用户的系统不被网页上的恶意软件侵入、保护用户系统的输入事件(键盘/鼠标)不被监视、保护用户系统中的文件不被偷取等目的。最初的浏览器沙箱是基于Hook实现的,后来的Chrome沙箱是利用操作系统提供的一些安全机制实现的。

沙箱很多情况下都是实现在虚拟机(VM)中,比如Java的虚拟机JVM、Javascript的虚拟机V8引擎、Android中的虚拟机Dalvik/ART,以及以太坊的虚拟机EVM等等。具体的实现方式各有不同,本文重点分析一下JVM和EVM的沙箱机制实现。

二、为什么需要沙箱

默认情况下,一个应用程序是可以访问机器上的所有资源的,比如CPU、内存、文件系统、网络等等。但是这是不安全的,如果随意操作资源,有可能破坏其他应用程序正在使用的资源,或者造成数据泄漏。为了解决这个问题,一般有下面两种解决方案:

(1) 为程序分配一个限定权限的账号:利用操作系统的权限管理机制进行限制
(2) 为程序提供一个受限的运行环境:这就是沙箱机制

三、沙箱原理

因为沙箱模型严重依赖操作系统提供的技术,而不同操作系统提供的安全技术是不一样的,所以不同操作系统上的实现是不一致的。不管是 LInux、Windows、还是其他平台, 以Chromium为例,它是在进程的粒度下来实现沙箱模型,也就是说需要运行在沙箱下的操作都在一个单独的进程中。所以,对于使用沙箱模型至少需要两个进程。如下图。

代理进程是需要负责创建目标进程并为目标进程设置各种安全策略,同时建立 IPC 连接【附1】,接受目标进程的各种请求,因为目标进程是不能访问过多资源的。

“沙盒”技术与主动防御技术原理截然不同。主动防御是发现程序有可疑行为时立即拦截并终止运行。“沙盒”技术则是发现可疑行为后让程序继续运行,当发现的确是病毒时才会终止。“沙盒”技术的实践运用流程是:让疑似病毒文件的可疑行为在虚拟的“沙盒”里充分表演,“沙盒”会记下它的每一个动作;当疑似病毒充分暴露了其病毒属性后,“沙盒”就会执行“回滚”机制:将病毒的痕迹和动作抹去,恢复系统到正常状态。

沙箱其实就是一个硬盘过滤文件驱动,具体来说,就是你把要写的东西写到了硬盘上,但实际上并没有写到硬盘,而是到了一个转存处,读取内容需要判断是沙箱开启之前就存在的内容还是开沙箱之后写入的内容,要分别从不同的地方读取内容,重启之后把转存的地方清零。

文件过滤的驱动编写和加载方法(网上找到的,关键词是bitmap):就是一小块一小块的扇区,bitmap每一位对应磁盘上的一个扇区,N位就有N个扇区,这个位如果为0,就认为这个扇区的数据没有被存储到其他地方,如果为1就是存到了其他地方,写的时候把bitmap置1,读的时候就从bitmap为1的扇区从转存的地方读回来,如果为0就还是从原设备读取数据,重启后bitmap恢复为全0。

四、沙箱安全策略

  1. 不能运行任何本地的的可执行程序。

  2. 不能从本地计算机文件系统中读取任何信息,也不能往本地计算机文件系统中写入任何信息。

  3. 不能查看除Java版本信息和少数几个无害的操作系统详细信息外的任何有关本地计算机的信息。特别是,在沙箱中的代码不能查看用户名、E-mail地址等信息。

  4. 远程加载的程序不能与除-程序所在的服务器之外的任何主机通信,这个服务器被称为源主机(originating host)。这条规则通常称为“远程代码只能与家人通话”这条规则将会确保用户不会被代码探查到内部网络资源(在Java SE 6 中,Java Web Start 应用程序可以与其他网络连接,但必须得到用户的同意)。

总结下来就是不能写,不能读,不给看。

五、沙箱安全策略的限制

  1. 它主要防护恶意代码对系统的破坏,对其它类型的安全问题办法不多。比如:恶意代码可以从主进程获得所有的cookie,并通过主进程发送出去。

  2. 如果操作系统API本身存在漏洞而被攻破,多进程浏览器的sandbox也自然被攻破。

  3. plugin进程不受sandbox保护,所以利用plugin漏洞的恶意代码在多进程浏览器上都能发作。

总结

沙箱模型则是利用了 Chromium 实现的,利用代理进程 来创建独立的环境让 目标进程在当中安全运行。沙箱机制极大地降低了网页中各种破坏操作系统的潜在风险,将网页执行置于一个孤立(Isolated)和受限制(Strict)的环境中。

附:

  1. IPC(Internet Process Connection)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC是NT/2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT/2000在提供了ipc功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c,d,e……)和系统目录winnt或windows(admin)共享。所有的这些,微软的初衷都是为了方便管理员的管理,但在有意无意中,导致了系统安全性的降低。

上文就是小编为大家整理的什么是“沙箱”技术?沙箱技术原理与实现。

国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)Finclip软件分析、比较及推荐。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:云计算,拼的就是运维,数据安全沙箱
下一篇:「干货」全程就一趟,“一网通办”申请居转户指南→一网通办注册
相关文章

 发表评论

暂时没有评论,来抢沙发吧~