[发明专利]隔离沙箱加载方法有效
申请号: | 201911065973.2 | 申请日: | 2019-11-04 |
公开(公告)号: | CN110968361B | 公开(公告)日: | 2021-11-23 |
发明(设计)人: | 余天依;杜东;夏虞斌 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F21/53 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 胡晶 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 隔离 加载 方法 | ||
本发明提供了一种隔离沙箱加载方法,基于多线程沙箱安全内存复用技术,包括如下步骤:步骤1、开发人员完成在隔离沙箱中运行的程序代码开发;步骤2、运行一个模板沙箱,运行开发人员开发和配置好的程序,等待用户发送程序运行请求;步骤3、用户发送函数调用请求,模板沙箱收到请求后通过内存复用,产生一个用于执行用户请求的实例沙箱;步骤4、实例沙箱对模板沙箱运行过程中执行系统调用造成的系统状态改变进行再处理,保证沙箱执行的正确性和安全性;步骤5、实例沙箱继续执行程序,直至执行完毕,将请求结果返回给用户或发送给用户指定的第三方,实例沙箱销毁。
技术领域
本发明涉及云计算、软件安全领域,具体地,涉及一种隔离沙箱加载方法,尤其涉及采用多线程沙箱安全写时复制技术提供在高并发、多租户的云计算环境下快速加载隔离沙箱的方法和系统。
背景技术
隔离沙箱技术:云计算场景下通常会采用隔离沙箱技术来保证云计算平台上不同租户的安全性。容器隔离沙箱通过cgroup和namespace(命名空间)对容器中所运行的程序可以使用的资源和访问的系统状态范围进行限制从而实现一定的隔离,但由于同一系统上的所有容器共享内核,容器隔离沙箱只能提供较弱的隔离性。虚拟机隔离沙箱提供完整的硬件抽象,提供强隔离性,但虚拟机方案相比轻量级的容器方案会带来更大的启动和运行时开销。另外,以谷歌推出的gVisor为代表的轻量级虚拟化方案同样采用了硬件虚拟化技术来实现强隔离性,且提供比传统虚拟机方案更小的性能开销。然而其加载时间通常在几百毫秒,不能满足目前云计算应用中一些低延迟的场景需求。
快照及恢复(Snapshot and Restore)技术:目前主流的虚拟机和容器解决方案都提供了快照及恢复技术,如VMware虚拟机的shapshot和Docker容器的CRIU。其核心技术在于将正在运行的系统状态以快照文件形式写入持久化存储,在恢复时从持久化存储中的快照文件进行快照时的系统状态,从而实现从快照状态开始继续执行。在云计算场景下,用于保证同平台运行的多租户计算安全的隔离沙箱通常会经过高度相同且耗时的加载和初始化过程。采取在对完成加载初始化的隔离沙箱进行快照,当用户请求到达时从快照恢复已初始化的状态继续完成用户请求计算的方法,可以避免耗时的隔离沙箱加载初始化操作开销。但快照及恢复方法会由于读写快照文件、将序列化的快照文件恢复为内存中可以使用的系统状态数据结构而带来额外开销,且这些开销在采用具有强隔离性的隔离沙箱时会更加显著。
内存复用技术:操作系统提供安全的进程间内存复用机制。比如在以Unix为基础的操作系统中,用于产生新进程的fork系统调用,产生一个拥有执行该系统调用的进程(父进程)所有内存段的子进程。为做到高效的内存复用,并保证不同进程对自己私有地址空间的专属访问,可采用写时复制(Copy-on-Write)方法,在内存复用操作发生时不进行物理内存的复制,而是使子进程的虚拟内存页指向物理内存的同一个页,并设置写时复制标记,当子进程发生写操作时才复制物理内存页。类似快照及恢复技术,对已初始化的隔离沙箱采用内存复用方法产生函数实例有机会消除传统隔离沙箱加载方案中重复耗时的初始化工作。此外,内存复用操作更加高效,操作耗时通常小于1毫秒,相比快照与恢复技术不存在读写快照文件和反序列化带来的额外开销,且对多种隔离沙箱都能提供稳定的快速加载。
然而现有的进程间安全内存复用机制局限于单线程的程序,而绝大多数的隔离沙箱都有多个工作线程。例如,用Golang编程语言编写的隔离沙箱(Docker,gVisor等)同时运行着执行沙箱程序逻辑的调度线程(scheduling thread)、提供Golang运行时基本功能如垃圾回收的运行时线程(runtime thread)、以及处理阻塞请求的阻塞执行线程(blockingthread)。此外,内存复用机制造成进程间的文件描述符等内存中系统状态共享,可能破坏隔离沙箱之间的隔离性保证。内存复用机制造成部分系统状态的改变(如程序id)可能会带来系统状态不一致的问题,对沙箱运行的正确性产生影响。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种隔离沙箱加载方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911065973.2/2.html,转载请声明来源钻瓜专利网。