`
逆天子军少
  • 浏览: 77773 次
  • 性别: Icon_minigender_1
  • 来自: 安庆
社区版块
存档分类
最新评论

沙箱安全模型

    博客分类:
  • java
阅读更多
沙箱模型成就了java的安全性,沙箱基本组件有:
类装载器结构
class文件检验器
jvm和java语言本身具有的安全特性
安全管理器和java API

不同的类装载器装载的类具有不同的命名空间,jvm维护这个命名空间,同一个命名空间里不可能有两个相同名字的类。同一个命名空间里的类可以直接进行交互,不同命名空间的则不行,除非显示提供允许他们交互的机制。
用户自定义的类装载器通常需要依赖其他装载器,至少要依赖jvm刚启动时创建的启动类装载器。类装载器请求另一个类装载器来装载类型,这个过程被叫做双亲委派模式。也就是说,出了启动类装载器,其他装载器都有一个“双亲”类装载器。当特定的装载器需要装载一个类型时,会默认将这个任务“委派”给它的双亲,委派的过程一直向上继续,直到启动类装载器(装载了核心的java API的class文件)。如果一个类装载器的双亲类装载器有能力装载这个类型,则双亲装载器返回这个类型,否则,这个类装载器自己装载。
还有一个运行时包的概念,指的是同一个类装载器装载,属于同一个包的多个类型的集合。比如,用户的类装载器装载了一个java.lang.Virus的类(假设是一个有害类)前面说到同一个命名空间的类可以直接进行交互,那这个类可以得到java.lang这个包的访问权限吗?肯定是不能的,因为他们不是一个运行时包。
我们也可以简单的通过拒绝装载特定的类型来保护被信任的类库(启动类装载器的java API)的边界。我们可以编写自己的装载器,让它做的第一件事就是确保这个类不是某个被禁止包的成员。这样的类如果请求被装载,我们的类转载器就会抛出安全异常,而不是向上委派。


class文件检验器通过进行四趟独立的扫描来完成任务。第一次是类被装载时进行的,主要检查内部结构,看是否能通过编译;第二和第三是在连接过程中进行,确定数据类型是否遵守java的语义,包括检查字节码的完整性;第四趟是在动态连接的过程中解析符号引用时进行,主要确认被引用的类,方法和字段确实存在。


jvm装载了一个类,并对他进行了三趟的class文件检验,这些字节码就可以运行了。除了对符号引用的检验,jvm还会进行一些其他的内在安全机制的操作。
*类型安全的引用转换
*结构化的内存访问
*自动垃圾收集
*数组边界检查
*空引用检查
这些jvm的特性都能保证java程序的健壮性。


安全管理器主要是保护jvm的外部资源不被内部运行的恶意或有漏洞的代码侵犯,定义了沙箱的外部边界,是用户可自定制的。安全管理器主要负责两个任务:说明一个安全策略以及执行这个策略。安全策略指明了哪种代码能执行哪种操作,由安全管理器中的‘check’方法定义。当他们被调用时,这个策略将被这个’check‘方法所实施。

另外,java安全模型很重要的一点是支持认证。认证功能加强了用户的能力,使用户能够通过一个沙箱建立多种安全策略,这个沙箱可以依赖于为这个代码提供担保的对象来改变。这样,能够一定程度上简化沙箱对代码的限制。
0
1
分享到:
评论

相关推荐

    腾讯哈勃沙箱白皮书(Linux版)

    哈勃沙箱是哈勃分析系统的核心模块,依靠深度沙箱中自研的动态分析模块、静态分析 模块以及稳定高效的任务调度框架,实现自动化、智能化、可定制化的样本分析,对文件具备准确的分析鉴定能力。可以得知样本的基本...

    P神-Java安全漫谈

    代码安全性:Java提供了强大的安全机制,如访问控制、类加载验证、沙箱模型等。这些机制确保代码在运行时不会执行恶意操作或访问未经授权的资源。 身份认证和访问控制:Java安全包括用户身份认证和授权机制,以确保...

    SDG沙箱:SDG沙箱在单个数字网关法规的筹备工作中为WP4产生的数据模型(数据语义,格式和质量)的审查提供了空间

    该空间使整个欧盟成员国的领域专家可以审查在跨境交换证据的背景下使用的数据模型。 可持续发展目标 OOP技术系统是一个生态系统,由分布在欧盟成员国之间并由EC支持的各种系统组成。 为了有效运行并允许成员国整合...

    基于改变网络沙箱状态的分析模型,设计一种防零日攻击的方法-研究论文

    所提出的信息系统状态模型可以分析和跟踪所有可能的状态,以及评估这些州的安全级别以及过渡到这些州的可能性。 因此,可以识别最危险的事件并跟踪导致相应更改的活动。 该模型与标准方法之间的根本区别在于权重系数...

    任寰:Chrome安全架构的演化

    Chrome浏览器的安全机制主要包括:渲染进程沙箱,扩展安全机制,GPU隔离,以及插件的安全防护。这份议题介绍了Chrome这些安全机制的设计思想,基本原理,及发展演变。并对其有效性进行了评估。

    android手机安全卫士

    1、通过0权限上传下载数据,重启手机等案例,深入讲解android沙箱,安全机制和权限模型。 2、通过分析恶意代码的提权漏洞,讲解如何维护系统的安全。 3、通过linux键盘驱动案例的讲解,分析盗号木马的原理及其实现...

    中国十大网络安全产品.doc

    第三是对新场景攻击的及时发现,天眼基于特性场景的安全分析技术,建立 覆盖全面的新场景和新威胁行为模型,从而及时有效发现新场景下的攻击行为。最 后是"天眼+安服"模式显著提升了威胁响应速度,依托超千人规模的...

    本科毕业设计-恶意代码检测分类平台

    本科毕业设计_恶意代码检测分类平台 ...- **沙箱环境**:搭建一个安全的沙箱环境,用于执行和分析恶意代码。 ### 3. 系统设计 - **数据库设计**:设计数据库模型,包括恶意代码样本、检测记录、用户等实体。

    服务计算与大数据是研究什么.docx

    强数据安全:MaxCompute已稳定支撑阿里全部数据仓库业务9年以上,提供多层沙箱防护、细粒度权限管理及监控。 低成本:与企业自建专有云相比,MaxCompute的计算存储更高效,可以降低30%~50%的采购成本。 免运维:...

    plone 4.2.1

    细粒度的、基于角色的安全模型,使您的内容更加安全可靠。Plone的权限沙箱架构确保您的系统有安全漏洞,入侵者将不可能访问您的服务器或者您的网络。 4) 信息聚合和分发 聪明的文件夹,聪明地更新内容。Plone自动地...

    SnatchBox(CVE-2020-27935)是一个沙盒逃逸漏洞和漏洞,影响到版本10.15.x以下的macOS。-Swift开发

    SnatchBox的最大影响是,它允许恶意发布者逃脱非可选的macOS App Store沙箱,并获得对所有用户文件的完全访问权限,从而破坏了macOS上App Store的安全模型。 漏洞与macOS(例如,iOS)相比,macOS中的用户空间任务是...

    SpanDex-_Secure_Password_Tracking_for_Android.pdf

    为了运行时应用这些技术系的同时不牺牲性能,SpanDex在一个数据流敏感的沙箱内运行不可信的代码,这个沙箱限制了应用程序可以对敏感数据做的操作的组合(mix of operations)?? 文章使用了50个流行的Android应用对...

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    第5-20章深入描述了java技术的内部细节,包括垃圾收集、java安全模型、java的连接模型和动态扩展机制、class文件、运算及流程控制等等,其中等6章和附录a-c完全可以作为class文件和指令含集的参考手册。本书还附带...

    security-manager:Java Security Manager的定制实现,旨在为Web应用程序提供额外的保护和保证

    背景默认的Java安全管理器实现被设计为用于不受信任的代码的通用沙箱。 典型案例是在网页上运行小程序。 为此,它检查调用堆栈上的每个类,要求它们都具有对任何潜在危险操作的许可。 当所有类都是Java API(受信任...

    深入java虚拟机第二版

    3.12 Java安全模型的不足和今后的发展 方向 3.13 和体系结构无关的安全性 3.14 资源页 第4章 网络移动性 4.1 为什么需要网络移动性 4.2 一种新的软件模式 4.3 Java体系结构对网络移动性的支持 4.4 applet:...

    深入JAVA虚拟机(第2版)

    3.12 Java安全模型的不足和今后的发展方向 3.13 和体系结构无关的安全性 3.14 资源页 第4章 网络移动性 4.1 为什么需要网络移动性 4.2 一种新的软件模式 4.3 Java体系结构对网络移动性的支持 4.4 ...

    深入Java虚拟机

    3.12 Java安全模型的不足和今后的发展 方向 3.13 和体系结构无关的安全性 3.14 资源页 第4章 网络移动性 4.1 为什么需要网络移动性 4.2 一种新的软件模式 4.3 Java体系结构对网络移动性的支持 4.4 ...

    Smashing_The_Browser:粉碎浏览器

    本部分将首先简要介绍现代浏览器的安全模型以及利用与缓解之间的斗争。 然后介绍各种堆管理机制及其缺陷,以及Google Chrome和IE 11的一些易于利用的数据结构。然后,分析这两种浏览器的先进利用技术,包括两种新的...

    ActionScript开发技术大全

    25.1.2安全沙箱模型 541 25.2系统管理员管控 543 25.2.1使用mms.cfg配置文件 543 25.2.2全局信任目录管控 548 25.3用户管控 548 25.3.1使用FlashPlayer设置对话框 549 22.3.2使用全局设置管理器 550 25.3.3用户受...

    Malcolm:Malcolm是功能强大且易于部署的网络流量分析工具套件,用于完整的数据包捕获工件(PCAP文件)和Zeek日志

    Arkime(以前称为Moloch),一种功能强大的工具,用于查找和识别包括可疑安全事件在内的网络会话。 简化的部署– Malcolm作为Docker容器的群集运行,这些隔离的沙箱分别充当系统的专用功能。 这种基于Docker的部署...

Global site tag (gtag.js) - Google Analytics