一种基于二进制插桩的沙箱、内存隔离方法及存储介质技术

技术编号:36532978 阅读:14 留言:0更新日期:2023-02-01 16:16
本发明专利技术提出了一种基于二进制插桩的沙盒、内存隔离方法及存储介质,应用于以AOT编译的方式进行WASM字节码编码时的内存隔离,所述沙盒通过动态插桩工具从WASM虚拟机中提取出代码段信息和WASI函数信息;分析AOT编译运行时接收到的各条分支指令,确认各条分支指令所访问的内存处于AOT编译所对应内存内或各条分支指令的调用者在预设白名单上,最后执行AOT编译完成后得到的WASM本地代码,以实现对来自不受信任的AOT代码的托管。本实施例提供的沙盒及其内存隔离方法在WASM运行过程中对AOT模块进行动态检测,提取运行时的内存布局和AOT模块的保存地址和线性内存范围,限制了控制流和数据访问,从而提供了内存安全属性,因此具有很高的实用性。很高的实用性。很高的实用性。

【技术实现步骤摘要】
一种基于二进制插桩的沙箱、内存隔离方法及存储介质


[0001]本专利技术涉及无服务器计算
,尤其涉及一种基于二进制插桩的沙盒、内存隔离方法及存储介质。

技术介绍

[0002]WebAssembly,简称WASM,是一个虚拟指令集体系架构,用于编译多种在网络浏览器中运行的高级语言,提供了一种可移植的二进制指令格式和强大的内存安全。
[0003]WASM字节码可以通过时间提前(AOT)编译的方式编译成本地代码。WASM代码的内存安全来自于运行时环境强制执行的沙盒,它限制了WASM的内存访问、解释器的WASM内存访问或编译器辅助的软件故障隔离(SFI)。在功能即服务云的情况下,客户被允许在云中使用AOT代码,而这些代码来自不受信任的各方,但是目前WASM的AOT编译器没有统一的规则来处理AOT文件的规则,他们的加载方法也不同,因此无法满足程序的正常安全运行。
[0004]因此,现有技术有待于进一步的改进。

技术实现思路

[0005]鉴于现有技术的不足,本专利技术目的在于提供一种基于二进制插桩的沙盒、内存隔离方法及存储介质,克服现有技术中针对不受信任的AOT二进制文件未有统一的托管方法,导致WASM执行时程序运行安全性低的缺陷。
[0006]本专利技术的技术方案如下:
[0007]第一方面,本实施例公开了一种基于二进制插桩的沙盒,其中,应用于以AOT编译的方式进行WASM字节码编码时的内存隔离,所述沙盒包括:分析仪器模块、检查指令模块和执行模块;
[0008]分析仪器模块,用于通过动态插桩工具从WASM虚拟机中提取出代码段信息和WASI函数信息;
[0009]所述检查指令模块,用于分析AOT编译运行时接收到的各条分支指令,确认各条分支指令所访问的内存处于AOT编译所对应内存内或各条分支指令的调用者在预设白名单上;
[0010]所述执行模块,用于执行AOT编译完成后得到的WASM本地代码。
[0011]可选的,所述分析仪器模块包括:代码段信息提取单元和函数信息提取单元;
[0012]所述代码段信息提取单元,用于通过动态插桩工具从WASM虚拟机中提取出代码段信息;其中,代码段信息为:WASM虚拟机分配加载AOT编译的WASM内存空间;
[0013]所述函数信息提取单元,用于提取WASI相关函数信息;其中,WASI相关函数信息为WASI系统调用的函数入口。
[0014]可选的,所述代码段信息提取单元还包括:图像水平仪器子单元;
[0015]所述图像水平仪器子单元,用于在图像层检测AOT实例函数的输入和输出的信息,以获取到代码段信息和所述代码段信息的线性内存边界。
[0016]可选的,所述检查指令模块包括:单条跳转指令检查单元、调用指令检查单元和返回指令检查单元;
[0017]所述单条跳转指令检查单元,用于判定接收到的单条跳转指令的目标地址是否在代码段内,若不在,则判断所述单条跳转指令的目标地址是否为与WASI相关的函数,若不是,则判定为所述单条跳转指令为非法指令;
[0018]所述调用指令检查单元,用于判断接收到的调用指令是否在预设白名单内,若不在,则为非法调用指令;
[0019]所述返回指令检查单元,用于控制返回地址在AOT编译所对应内存边界内,以及判断返回指令的地址是否与下一条返回指令的地址一致。
[0020]可选的,所述检查指令模块还包括:内存访问判断单元;
[0021]所述内存访问判断单元,用于对接收到的内存访问是否符合合法条件进行判断;所述符合合法条件包括:内存访问的目标为堆栈内存、内存访问的目标为AOT编译对应的线性内存段和内存访问的目标地址处于预设名单内。
[0022]可选的,所述沙盒还包括:寻找AOT模块;
[0023]所述寻找AOT模块,用于当AOT编译完成的WASM本地代码在虚拟机中加载完成之后,对保存WASM本地代码的内存块进行检测,以获取AOT编译的WASM本地代码在虚拟机内存中的地址信息。
[0024]可选的,所述执行模块,还用于执行引擎和执行仪器化的代码。
[0025]第二方面,本实施例还公开了一种沙盒的内存隔离方法,其中,利用所述的沙盒实现以AOT编译的方式进行WASM字节码编码时的内存隔离,所述方法包括:
[0026]通过动态插桩工具从WASM虚拟机中提取出代码段信息和WASI函数信息;
[0027]分析AOT编译运行时接收到的各条分支指令,确认各条分支指令所访问的内存处于AOT编译所对应内存内或各条分支指令的调用者在预设白名单上;
[0028]执行AOT编译完成后得到的WASM本地代码。
[0029]可选的,所述方法还包括:
[0030]当AOT编译完成的WASM本地代码在虚拟机中加载完成之后,对保存WASM本地代码的内存块进行检测,以获取AOT编译的WASM本地代码在虚拟机内存中的地址信息。
[0031]第三方面,本实施例还公开了一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的内存隔离方法的步骤。
[0032]有益效果:本专利技术提出了一种基于二进制插桩的沙盒、内存隔离方法及存储介质,应用于以AOT编译的方式进行WASM字节码编码时的内存隔离,所述沙盒通过动态插桩工具从WASM虚拟机中提取出代码段信息和WASI函数信息;分析AOT编译运行时接收到的各条分支指令,确认各条分支指令所访问的内存处于AOT编译所对应内存内或各条分支指令的调用者在预设白名单上,最后执行AOT编译完成后得到的WASM本地代码,以实现对来自不受信任的AOT代码的托管。本实施例提供的沙盒及其内存隔离方法在WASM运行过程中对AOT模块进行动态检测,提取运行时的内存布局和AOT模块的保存地址和线性内存范围,限制了控制流和数据访问,从而提供了内存安全属性,因此具有很高的实用性。
附图说明
[0033]图1是本专利技术所述一种基于二进制插桩的沙盒的结构原理示意图;
[0034]图2是本专利技术实施例中分析仪器模块的结构原理示意图;
[0035]图3是本专利技术实施例中检查指令模块的结构原理示意图;
[0036]图4是本专利技术所述内存隔离方法的步骤流程图;
[0037]图5是本专利技术所述基于二进制插桩的沙盒中数据的存储原理示意图。
具体实施方式
[0038]为使本专利技术的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本专利技术,并不用于限定本专利技术。
[0039]本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本专利技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于二进制插桩的沙盒,其特征在于,应用于以AOT编译的方式进行WASM字节码编码时的内存隔离,所述沙盒包括:分析仪器模块、检查指令模块和执行模块;分析仪器模块,用于通过动态插桩工具从WASM虚拟机中提取出代码段信息和WASI函数信息;所述检查指令模块,用于分析AOT编译运行时接收到的各条分支指令,确认各条分支指令所访问的内存处于AOT编译所对应内存内或各条分支指令的调用者在预设白名单上;所述执行模块,用于执行AOT编译完成后得到的WASM本地代码。2.根据权利要求1所述的沙盒,其特征在于,所述分析仪器模块包括:代码段信息提取单元和函数信息提取单元;所述代码段信息提取单元,用于通过动态插桩工具从WASM虚拟机中提取出代码段信息;其中,代码段信息为:WASM虚拟机分配加载AOT编译的WASM内存空间;所述函数信息提取单元,用于提取WASI相关函数信息;其中,WASI相关函数信息为WASI系统调用的函数入口。3.根据权利要求2所述的沙盒,其特征在于,所述代码段信息提取单元还包括:图像水平仪器子单元;所述图像水平仪器子单元,用于在图像层检测AOT实例函数的输入和输出的信息,以获取到代码段信息和所述代码段信息的线性内存边界。4.根据权利要求2所述的沙盒,其特征在于,所述检查指令模块包括:单条跳转指令检查单元、调用指令检查单元和返回指令检查单元;所述单条跳转指令检查单元,用于判定接收到的单条跳转指令的目标地址是否在代码段内,若不在,则判断所述单条跳转指令的目标地址是否为与WASI相关的函数,若不是,则判定为所述单条跳转指令为非法指令;所述调用指令检查单元,用于判断接收到的调用指令是否在预设白名单内,若不在,则为非法调用指令;所述返回指令检查单元,用于控制返回地址在AOT编译所对应内存边界内,以及判断返回指令的地址是否与下一...

【专利技术属性】
技术研发人员:张殷乾彭维王伟力肖兆祺刘晟淇
申请(专利权)人:南方科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1