sandbox文献综述报告Word文档格式.docx
- 文档编号:458289
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:10
- 大小:70.71KB
sandbox文献综述报告Word文档格式.docx
《sandbox文献综述报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《sandbox文献综述报告Word文档格式.docx(10页珍藏版)》请在冰点文库上搜索。
沙盒也叫沙箱,英文sandbox。
是近年来在信息安全领域应用较为广泛的技术之一。
GoogleChrome浏览器、MSOffice2010中都应用了一些沙盒技术来提升其安全性。
目前的IT领域中,应用沙盒技术比较广泛的是杀毒软件行业,比如用于病毒实验甚至是用户应用中的各种“沙盒”安全模式。
那么,究竟什么是沙盒技术呢?
简单来说,沙盒是一种“环境”,就是为一些来源不可信、具备破坏力或无法判定程序意图的程序,提供试验环境。
然而,沙盒中的所有改动对操作系统不会造成任何损失。
具体来说,沙盒就是在计算机领域指一种虚拟技术,且多用于计算机安全技术。
其原理是通过重定向技术,把程序生成和修改的文件定向到自身文件夹中。
当某个程序试图发挥作用时,安全软件可以先让它在沙盒中运行,如果含有恶意行为,则禁止程序的进一步运行,而这不会对系统造成任何危害。
沙盒是在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授予应用程序的代码访问权限。
例如,下载到InternetExplorer的控件使用Internet权限集运行。
驻留在局域网共享上的应用程序在计算机上使用LocalIntranet限集运行。
可以使用沙盒运行下载到计算机上的部分受信任的应用程序。
也可以使用沙盒测试将分发的、将在部分受信任的环境(例如Intranet)中运行的应用程序。
3、沙盒技术的原理
沙盒技术为可能的不安全的代码提供一个运行的空间,当然这个运行空间不是我们真正的操作系统,而是利用虚拟技术提供一个与实际环境类似的操作空间,或者直接提供一个我们实际运行浏览器的镜像,让网络上的程序可以在这个空间里随意地运行,如果运行时的行为表明正在运行的程序是病毒或者恶意程序,那么在标志其特征后,系统将执行回滚操作,使一切都回到程序运行之前一样,也就是说,无论病毒或者恶意程序如何运行,都无法对实际的系统造成损害和威胁。
沙盒技术的特点是发现可疑行为而让程序继续运行,当发现的确是病毒时才终止。
在隔离区域或限定区域中运行沙盒就好像在一个模拟的网络环境中一样,只不过它没有真正联网。
可疑程序和应用被转移到真实服务器之前,我们可在这个隔离区域中对它们进行下载,解压和测试等操作,从而达到拦截恶意程序的目的。
沙盒最初设计的意图就是用于程序开发与测试,而现在它已经演化为一种安全工具,可以将现用程序和进程与主系统或本地桌面隔离开。
因此,安全沙盒已经成为保障系统安全,使其免受未授权程序侵害的有效方法。
4、沙盒安全模型的演化
最初的沙盒安全模型是由Java在JDK1.0.2中提供的一种安全模型,对于在公共网络上获得的不被信任的程序,沙盒模型为其提供了极其有约束性的运行环境。
沙盒模型的本质,总体来说就是已经建立起信任关系的本地代码可以获得所有系统重要资源的访问权限,而下载的不受信任的远程代码只能在受到保护的沙盒空间中有限制地访问一些有限的资源。
这种沙盒模型在JDK的整个1.0.x版本中都被普遍采用,并且在使用JDK开发的应用程序中也被普遍地配置,包括能够运行Java程序的浏览器。
这种模型所采用的思想,一是在运行时只有被认为合法的语言才会被编译或者解释执行,二是定义一个本地的命名空间,确保不受信的应用程序无法干扰和破环运行中的受信的Java程序。
最重要的,就是在访问重要的系统资源的时候,是由Java虚拟机直接来执行的,并且在执行之前,要由SecurityManager类来检查,以此来进行对不信任代码的行为的最大限度的限制。
在JDK的1.1.x版中,对沙盒模型进行了改进,引入了标记的应用程序的概念。
这样做的一项明显的改进,就是降低了对远程代码的限制性,允许一部分数字签名合法的远程代码获得和本地代码同样的信任,从而提高其运行权限,保障其顺利运行。
这对于用户在访问信任的站点或者运行信任的站点提供的程序的时候,能够获得更好的访问速度和更令人满意的响应,而对那些没有通过签名验证或者没有有效的签名的远程代码,仍然只能在一个受到限制的沙盒环中执行,这对于前一个版本的模型来说,无疑是一个非常有意义的改进。
当JDK发展到1.2版本的时候,安全的沙盒模型架构又得到了进一步的发展,首先就是添加了类载入器的机构,同时取消了之前版本中“受信任代码”的概念,对于应用程序,无论是本地的代码还是远程的代码,无论是否有正确的签名,都先由类文件校验器检查类文件是否正确组成、内部是否一致、是否遵循Java编程语言的限制、含有的字节码是否能由JVM安全执行。
接下来由类载入器将代码分放在多个命名空间中,并在不同命名空间的代码之间设置“屏障”。
类载入器结构是通过命名空间来防止不安全代码访问、破坏安全代码。
命名空间在载入到不同命名空间中的类之间设置了一个“屏障”。
在JVM中,同一命名空间中的类可以直接相互作用,不同命名空间中的类甚至不能检测到对方的存在,除非程序允许它们相互作用。
这样做的目的是防止不安全代码访问甚至破坏安全代码。
此外,类载入器还有一个重要的作用就是防止不安全代码冒充安全的类。
其实现机制是如果类载入器载入一个类,这个类用它的名字来冒充是JavaAPI的一部分(例如,类名为java.lang.virus),类载入器就传递请求给原始类载入器,如果原始类载入器不能载入这个类,类载入器就抛出安全例外,并拒绝载入这个类。
此外,在这个沙盒体系中,还设置了安全管理器来定义沙盒的外部边界,安全管理器是类java.lang.SecurityManager的子类,当JavaAPI在采取一些行动的时候,安全管理器会检查这些行动是否安全,从而使JavaAPI不会执行任何安全管理器规则中所禁止执行的动作,保证类的活动只在沙盒内部,而不会超越沙盒的边界。
而在JDK1.2中定义的这个沙盒模型,比之前版本更为完善,灵活,同时对用户的限制更小,而这个版本的沙盒模型,也基本上是我们沿用至今的JDK的沙盒模型。
五、沙盒技术在终端安全防护中的应用
将沙盒技术用于创建安全桌面访问重要业务系统,以消除来自终端的失泄密风险。
当用户登陆VPN访问重要资源时,将启用安全桌面,此时,客户端自动使用虚拟技术生成一个封闭式虚拟的工作环境——安全桌面,所有操作全部虚拟化,安全桌面内的进程和安全桌面外的进程是隔离的。
在安全桌面中进行的操作、临时使用或者接收到的数据都被重定向(虚拟化),并且进行高强度加密,其效果类似NC系统的瘦客户机——全部数据集中存储于服务器,客户端不留存,从而有效防止了由于移动存储介质不当使用和来自网络攻击与木马程序等带来的安全风险。
安全桌面主要针对以下方面(有可能泄露数据的操作)进行拦截或者重定向:
1、禁止使用外设拷贝输出:
包括USB、打印机、COM、CD-RW等,防止将重要数据通过外设泄漏。
2、虚拟文件操作:
安全桌面内的进程对文件和系统的修改,全部被重定向,并且加密。
注销退出VPN和安全桌面后,重定向文件全部被删除,即所有在安全桌面下进行的文件操作对于原桌面没有任何改变也不会留下任何痕迹。
3、保护注册表操作:
对HKEY_CURRENT_USER分支下的注册表操作进行重定向,其他分支下的注册表键和项只允许读,不允许修改。
4、限制网络通讯:
在安全桌面中,向外的通讯连接被严格控制,只能访问VPN网络,防止用户把通过VPN下载的资料泄露出去。
包括:
(1)禁止与本计算机通讯:
禁止安全桌面与物理桌面通信,防止将重要数据保存在本地主机上。
(2)禁止与本地网络通讯:
安全桌面内禁止与内网内其他计算机通信,防止将重要数据通过局域网里传输转存。
(3)禁止与外网通讯:
安全桌面内禁止使用网络应用或将数据通过网络通信泄漏,防止将重要数据通过网络传输外泄到外网。
5、IPC(内部进程通讯)过滤:
IPC过滤主要针对剪切板和消息。
安全桌面内的进程,不允许发送消息到安全桌面外的进程。
6、痕迹清除:
注销退出安全桌面后,会强制清除所有的痕迹,将安全桌面中所有的操作全部还原。
即使是断电导致的安全桌面崩溃,在下一次启动时,安装桌面会自动检测之前的遗留痕迹并进行清除。
由于安全桌面(沙盒)技术专门用于保护对重要资源的访问,并不影响终端用户原有使用习惯,最终用户无需增加任何设备或安装任何软件,就可以在一如既往地访问专网内其他资源的同时,安全、方便地访问内部重要资源(如:
内部办公系统),而不用担心自身操作不当造成的失泄密,也不用担心存储于本机的个人信息(如私人通信簿、个人照片等)被搜集,得到了建设者和最终用户的普遍欢迎。
六、基于虚拟化的硬件组件沙盒架构
1、关键问题与目标
现代应用程序包括多个组件,如浏览器的插件,往往是未知的来源和未知的质量。
统计显示,高比例的软件故障的来源于这样的组件帐户。
因此,启用这种细粒度组件的隔离必要增加安全关键和安全关键计算机系统的鲁棒性和韧性。
在本文中,我们评估是否这种细粒度组件可以通过使用可在现代的英特尔和AMD处理器的硬件虚拟化支持沙箱。
我们比较前两个基于软件的方法这种方法的性能和功能。
结果表明,硬件隔离最大限度地减少与基于软件的方法中遇到的困难,同时也降低了可信计算库的大小,从而提高解决方案的正确性的信心。
我们还将显示我们相对简单的实现等效的运行时性能,小于34%的开销,不需要自定义工具链,并提供增强的功能,通过软件方法,确认硬件虚拟化技术是一种可行的机制罚款细粒度组件隔离。
2、关键术语概念
计算机软件:
计算机软件(ComputerSoftware,也称软件,软体)是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述。
信息安全:
信息安全本身包括的范围很大。
大到国家军事政治等机密安全,小到如防范商业企业机密泄露、防范青少年对不良信息的浏览、个人信息的泄露等。
网络环境下的信息安全体系是保证信息安全的关键,包括计算机安全操作系统、各种安全协议、安全机制(数字签名、信息认证、数据加密等),直至安全系统,其中任何一个安全漏洞便可以威胁全局安全。
系统调用:
由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口。
虚拟化:
虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。
虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。
3、设计思路
在现代社会,形成组合性的主要手段操作系统和应用程序。
因此,使在DLL/SO级别的组件隔离是一个非常创建更强大的应用程序所需的步骤。
已采取了解决这一问题的几个方法的问题。
概括地说,它们可以分为硬件支持的保护,基于软件的保护。
在过去的研究中,我们扩大分类成更细粒度的分析当前最先进的,而确定的优势和不同方法的弱点。
我们提出了一种新的解决问题的办法的基础上引入的硬件虚拟化支持Intel和AMD都在他们最近的微处理器。
我们介绍一个组件隔离架构执行每一个最小的组成部分,硬件支持的虚拟机,从而强烈隔离每个其含主机的组件。
形成对比重量级的,完整的虚拟机,要求仿真的设备,只需要元件隔离处理器和存储器的虚拟化。
我们的技术只需要一个小的可信计算基(TCB),降低复杂性,提高在该解决方案的正确性的信心。
该本文的其余部分提供了一个描述了我们方法和其实际执行情况,比较与以前的技术,并且评价的整体该方法的有效性在两种运行时间性能和功能。
4、主要方法技术
如何隔离容器使用由主机应用程序执行中的组件约束环境。
我们在这个隔离容器的虚拟化技术(VT集装箱集装箱)。
这是一个最小的虚拟机它采用了部分宿主应用程序的地址虚拟机的空间,自己的内存和漏洞硬件虚拟化功能,安全执行组件。
图1显示了一个组件内执行主机应用程序。
主机应用程序最初可能不受信任的组件加载到其请求地址空间。
这样的请求都由我们的VT集装箱,它分配一个内存块组成部分主机的地址空间内和地图,把它的分量。
然后主机调用在执行的过程中的组件。
该组件调用导致执行切换到我们的VT集装箱,这将安全地执行该组件。
如果组件试图执行一个潜在的不安全指令,如操作系统调用,它被困住了容器和陷阱处理程序决定是否指令是允许继续进行,或必须中止。
如果没有不安全的指令时,该组件的执行正常结束时,控制返回透明主机应用程序。
硬件虚拟化允许VT集装箱保留选择性地控制处理器资源,物理内存,中断管理和I/O。
特殊效用是能够捕获在执行敏感指示,允许细粒度控制这些试图执行潜在的组件危险的代码。
其开销是最小的,因为硬件总是进行必要的检查。
7、公共恶意软件执行程序中的漏洞沙盒分析系统
近年来,由于恶意软件,如电脑病毒,蠕虫,僵尸网络,特洛伊木马和间谍软件的存在,严重威胁网络的安全,影响我们的生活。
随着网络安全问题的日益突出,人们更多的将沙箱技术应用于网上冲浪方面。
从技术实现角度而言,就是从原有的阻止可疑程序对系统访问,转变成将可疑程序对磁盘、注册表等的访问重定向到指定文件夹下,从而消除对系统的危害。
恶意软件沙箱分析被认为是一种能有效测试一个未知的可执行文件(涉及到恶意软件)的方法,被称为一个沙箱来观察和分析行为。
随着日益普及的恶意软件“沙箱”分析,也有一些系统,任意用户可使用一个公共接口来接受网上输入样品,自动分析并使用沙箱检测,然后返回给用户分析报告。
我们把这样的恶意软件一个公共接口分析系统作为公共恶意软件沙盒分析系统(MSAS),并且配备了一个私人MSAS接口。
沙箱的恶意软件分析,可以是孤立或因特网连接。
正如它的名字所暗示的,隔离的沙盒没有连接到互联网,而因此,利用仿真网络服务可以分析样本安全。
然而,其缺点是,它不能完全观察样品的通信和状态,例如在互联网中的远程主机和恶意软件下载服务器,分析他们可以得到有用的信息。
连接到Internet的沙箱与此相反,可以观察到这样的通讯虽然有风险,从攻击执行样本可能避开沙箱并攻击在互联网中的其他主机。
由于恶意软件分析技术成为众所周知的的技术,恶意软件攻击者开始利用反分析技术,其中包括反虚拟化和反调试,检测和干扰分析。
也有报道某些恶意软件尝试连接到知名网页网站,如隔离沙箱检测系统。
所以本文描述了一种新的攻击方式,被称为诱饵样品注入(DSI)的可执行程序,分析在测试环境中执行它们自己的行为(即有一个沙箱),并返回给用户发送分析报告。
在这样的系统,沙箱分析通常连接到Internet的现代恶意软件,由于种种原因(如与远程主机进行通信接收命令与控制的消息和文件更新)。
使得沙箱连接到这些主机时会产生一种风险,即被攻击者利用或控制,可检测和分析活动存在不安全因素。
8、沙盒技术的漏洞
沙盒可以分割成三个基本的隔离区间,包括核心语言注释器,标准库和不受信任应用的代码。
在这三个区间之中,标准库包含了要执行的例行步骤,如网络连接和密码使用方法,是最容易受侵害的。
它与那些用Java或C#编库的常见操作以及这些语言的内在缺陷,如堆栈溢出漏洞,有着直接关联。
事实上,C#不仅安全性不佳,而且还不会允许对主系统上本地库的访问。
许多个人用户可能对带有虚拟机的沙盒感到困惑;
这可能是因为许多企业都将虚拟机当做沙盒。
这或许和在家用电脑上的Web浏览器中添加的安全性能一样,不过不推荐大家测试可疑程序或在保存有敏感数据的系统上使用。
随着虚拟机在个人电脑上的普及,黑客现在可以编写出一种能试探虚拟机是否通过运行进程,注册表和文件系统等运行虚拟机。
它或许还会寻找虚拟机硬件以及处理指令。
因此,将虚拟机作为沙盒使用是非常危险的操作。
使用操作系统虚拟软件创建沙盒环境的问题在于某些恶意软件可以检测出其是否在虚拟系统中运行。
那些编写恶意代码的攻击者开发了虚拟机检测技术来寻找内存、文件系统、注册表货运行程序中的VME信息,或者搜寻VME虚拟硬件和处理器指令。
在某些情况下,虚拟环境的检测只会让恶意软件关闭其恶意功能,这样恶意软件就不能在虚拟环境中被正确分析。
当然,如果你使用虚拟机创建沙盒是不错的选择,因为这意味着恶意软件或多或少会禁用其本身,因而不会对虚拟操作系统造成损害。
然而,有些攻击者还能够利用虚拟机检测来发动利用虚拟机软件的安全漏洞的攻击,对虚拟机造成损坏。
基于这些原因,我们不能依赖于虚拟机的隔离功能作为唯一的保护。
虚拟机中的操作系统需要即使更新安全补丁,也需要像主机操作系统一样运行防病毒和防恶意软件程序。
为了最好地保护生产网络,需要将虚拟机连接到非生产网络。
定期更换虚拟机图像也是个不错的安全保护措施。
最后,我们要指出安全沙盒并非万能药。
沙盒技术是用来将代码从主系统分离的;
不过,不同的安全漏洞还是不经意间出现。
所以,和其他安全措施一样,风险评估和降低风险也是非常重要的安全措施。
沙盒技术不仅会带来多种效益,还可能使使用该技术的人沾沾自喜。
虽然深层防御是一种很好的策略,但是我们仍然要记住:
每增加一个安全层级,可利用的漏洞数量也在上升。
各种形式的安全都会产生不经意的影响,沙盒技术亦是如此。
所以,仅仅依靠沙盒技术来保障应用的完整性本身就是一个错误。
合适的应用安全需要不同层级的安全部署,这些层级协作起来才能提供一个健全的,多层级的应用防御态势。
沙盒技术应用得当当然是具有潜力的,不过我们也要意识到它的危险性;
否则,就可能危急应用。
九、沙盒技术的应用与展望
目前,沙盒技术已经在信息安全的多个领域上得到了应用。
在浏览器安全方面,可以使每一个标签页都成为一个小的“沙盒”,从而使用户在浏览网页时下载恶意程序和运行恶意代码的概率大大降低。
在服务器的访问控制上,沙盒技术可以防范一些针对服务器权限的攻击。
另外,在操作系统领域,为了保证系统的内核和关键组件不会被病毒、恶意程序、或者程序开发过程中发生的失误或者意外所破坏,为了让机器能够始终在稳定的情况下运行,引入沙盒技术也是必要的,这样可以极大地降低系统所面临的风险。
沙盒技术在信息安全尤其是网络安全领域的崭露头角,给这个行业带来了一种新的思维,也带来了一股清新的空气,我们有理由相信,在信息安全领域,沙盒技术能够得到进一步的发展和完善,同时,也将有更大的施展拳脚的空间。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sandbox 文献 综述 报告