您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页沙盒安全技术的发展研究2009-08-061

沙盒安全技术的发展研究2009-08-061

来源:五一七教育网
第8卷%第8期

软件导刊

2009年8月SoftwareGuide

Vol.8No.8Aug.2009

沙盒安全技术的发展研究

洋,王

(四川大学计算机学院,四川成都610207)

要:近年来,随着计算机安全威胁的日益增多,传统的安全防御技术已经显得力不从心,沙盒技术作为一种新的

应用于安全防护方面的技术,引起了人们越来越多的关注和重视。介绍了沙盒模型的基本架构,以及其在信息安全方面的各种应用。

关键词:沙盒模型;JDK;类载入器;安全管理器;信息安全;浏览器;操作系统中图分类号:TP309.2

文献标识码:A

文章编号:1672-7800(2009)08-0152-02

0引言

近年来,随着计算机互联网络规模的飞速增长,计算机安

才终止。

2沙盒安全模型的演化

最初的沙盒安全模型是由Java在JDK1.0.2中提供的一种

全受到的威胁也日益严重。传统的基于特征的反病毒技术并不能及时对最新出现的病毒做出有效的反应,主动防御技术的产生在节省定期系统扫描的开销,无需升级特征码,对新病毒的查杀率高等方面取得了一些进步,但是其缺点也日益明显,那就是行为识别的难度很大。目前国际上尚无一个统一的标准,要识别病毒的行为,就要允许病毒运行,但是如何在病毒造成危害前阻断病毒继续运行,这就是一个大问题,让病毒真正在系统上运行本身就有很高的风险,在这个问题上,主动防御就显得有点被动了。还有一个问题就是如果行为识别的规则设置得过为苛刻,那么频繁的可疑程序的报告无疑会对用户目前运行的程序造成一定程度的影响,从而影响用户正常的工作以及一些程序的使用,这都是我们在设计安全防御技术时不得不考虑的。

安全模型,对于在公共网络上获得的不被信任的程序,沙盒模型为其提供了极其有约束性的运行环境。沙盒模型的本质,总体来说就是已经建立起信任关系的本地代码可以获得所有系统重要资源的访问权限,而下载的不受信任的远程代码只能在受到保护的沙盒空间中有地访问一些有限的资源。

这种沙盒模型在JDK的整个1.0.x版本中都被普遍采用,并且在使用JDK开发的应用程序中也被普遍地配置,包括能够运行Java程序的浏览器。这种模型所采用的思想,一是在运行时只有被认为合法的语言才会被编译或者解释执行,二是定义一个本地的命名空间,确保不受信的应用程序无法干扰和破环运行中的受信的Java程序。最重要的,就是在访问重要的系统资源的时候,是由Java虚拟机直接来执行的,并且在执行之前,要由SecurityManager类来检查,以此来进行对不信任代码的行为的最大限度的。

在JDK的1.1.x版中,对沙盒模型进行了改进,引入了标记的应用程序的概念。这样做的一项明显的改进,就是降低了对远程代码的性,允许一部分数字签名合法的远程代码获得和本地代码同样的信任,从而提高其运行权限,保障其顺利运行。这对于用户在访问信任的站点或者运行信任的站点提供的程序的时候,能够获得更好的访问速度和更令人满意的响应时间,而对于那些没有通过签名验证或者没有有效的签名的远程代码,仍然只能在一个受到的沙盒环境中执行,这对于前一个版本的模型来说,无疑是一个非常有意义的改进。

1沙盒技术的原理

沙盒技术为可能的不安全的代码提供一个运行的空间,当

然这个运行空间不是我们真正的操作系统,而是利用虚拟技术提供一个与实际环境类似的操作空间,或者直接提供一个我们实际运行浏览器的镜像,让网络上的程序可以在这个空间里随意地运行,如果运行时的行为表明正在运行的程序是病毒或者恶意程序,那么在标志其特征后,系统将执行回滚操作,使一切都回到程序运行之前一样,也就是说,无论病毒或者恶意程序如何运行,都无法对实际的系统造成损害和威胁。沙盒技术的特点是发现可疑行为而让程序继续运行,当发现的确是病毒时

作者简介:王洋(19-),女,黑龙江哈尔滨人,四川大学计算机学院本科生,研究方向为计算机科学与技术;王钦(1986-),女,四川乐山人,四川大

学计算机学院本科生,研究方向为计算机科学与技术。

第8期王洋,王钦:沙盒安全技术的发展研究·153·

在沙盒内部,而不会超越沙盒的边界。而在JDK1.2中定义的这个沙盒模型,比之前版本更为完善,灵活,同时对用户的更小,而这个版本的沙盒模型,也基本上是我们沿用至今的JDK的沙盒模型。

3

图1

沙盒技术的应用与展望

目前,沙盒技术已经在信息安全的多个领域上得到了应

JDK1.2版本中定义的沙盒安全模型用。在浏览器安全方面,可以使每一个标签页都成为一个小的“沙盒”,从而使用户在浏览网页时下载恶意程序和运行恶意代码的概率大大降低。在服务器的访问控制上,沙盒技术可以防范一些针对服务器权限的攻击。另外,在操作系统领域,为了保证系统的内核和关键组件不会被病毒、恶意程序、或者程序开发过程中发生的失误或者意外所破坏,为了让机器能够始终在稳定的情况下运行,引入沙盒技术也是必要的,这样可以极大地降低系统所面临的风险。沙盒技术在信息安全尤其是网络安全领域的崭露头角,给这个行业带来了一种新的思维,也带来了一股清新的空气,我们有理由相信,在信息安全领域,沙盒技术能够得到进一步的发展和完善,同时,也将有更大的施展拳脚的空间。

参考文献:[1]

当JDK发展到1.2版本的时候,安全的沙盒模型架构又得到了进一步的发展,如图3所示的那样,首先就是添加了类载入器的机构,同时取消了之前版本中“受信任代码”的概念,对于应用程序,无论是本地的代码还是远程的代码,无论是否有正确的签名,都先由类文件校验器检查类文件是否正确组成、内部是否一致、是否遵循Java编程语言的、含有的字节码是否能由JVM安全执行。接下来由类载入器将代码分放在多个命名空间中,并在不同命名空间的代码之间设置“屏障”。类载入器结构是通过命名空间来防止不安全代码访问、破坏安全代码。命名空间在载入到不同命名空间中的类之间设置了一个“屏障”。在JVM中,同一命名空间中的类可以直接相互作用,不同命名空间中的类甚至不能检测到对方的存在,除非程序允许它们相互作用。这样做的目的是防止不安全代码访问甚至破坏安全代码。此外,类载入器还有一个重要的作用就是防止不安全代码冒充安全的类。其实现机制是如果类载入器载入一个类,这个类用它的名字来冒充是JavaAPI的一部分(例如,类名为java.lang.virus),类载入器就传递请求给原始类载入器,如果原始类载入器不能载入这个类,类载入器就抛出安全例外,并拒绝载入这个类。此外,在这个沙盒体系中,还设置了安全管理器来定义沙盒的外部边界,安全管理器是类java.lang.

LiGong,MarianneMueller,HemmaPrafullchandra,RolandSchemers.GoingBeyondtheSandbox:AnOverviewoftheNewSecurityArchitectureintheJavaevelopmentKit1.2.1997

[2][3][4]

S.Ritchie.SystemsProgramminginJava.IEEEMicro,17(3):30-50,May/June1997.

MichaelNordho.BrowserSecurityModel.2008.

孙瑞嘉,叶小龄,张颖超,等.为Web服务访问控制构建沙盒模型[J].微计算机信息,2006(6).

(责任编辑:杜能钢)

SecurityManager的子类,当JavaAPI在采取一些行动的时候,

安全管理器会检查这些行动是否安全,从而使JavaAPI不会执行任何安全管理器规则中所禁止执行的动作,保证类的活动只

ResearchonSandboxSecurityTechnology

Abstract:Inrecentyears,withgrowingsecuritythreatsonourpersonalcomputer,traditionalsecurityanddefensetechnologyhasap-pearedtobeinadequate.Sandboxasanewtechnologyappliedtocomputersecurity,hasarousedmoreandmoreattention.Thispaperin-troducesthebasicsandboxmodelarchitecture,aswellasitsapplicationsininformationsecurity.KeyWords:SandboxModle;JDK;ClassLoader;SecurityManager;InformationSecurity;Browser

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务