Safe-ish: BEAM沙箱实验项目概述

需积分: 8 0 下载量 176 浏览量 更新于2024-12-09 收藏 36KB ZIP 举报
资源摘要信息:"safeish是一个实验性的沙箱工具,主要用于BEAM(Erlang虚拟机)模块的安全性实验。其主要目的是在加载BEAM字节码之前进行检查,拒绝包含可能引起副作用的指令,如生成进程、发送和接收消息、文件系统访问、网络接入、汇编操作、系统级内省和诊断以及运行时动态创建原子等。这些指令在生产环境中可能会带来安全风险,因此safeish被设计为不用于生产用途。 safeish提供了白名单机制,允许用户指定哪些模块、函数和语言特性是允许加载和调用的。这种机制不仅适用于调用,也适用于函数文字,因为后者可以在束汇编中被用来构造调用,而无需使用apply()函数。这种设计使得safeish能够精确控制哪些功能是被允许的,从而提高沙箱的安全性。 safeish提供了两个主要的API函数:Safeish.check(bytecode)和Safeish.load_bytecode(bytecode)。Safeish.check(bytecode)函数用于在不加载模块的情况下检查二进制字节码,而Safeish.load_bytecode(bytecode)函数则在检查字节码无误后加载模块。此外,Safeish.load_file(path)函数可以从指定路径读取字节码并进行检查。 总的来说,safeish是一个为BEAM模块提供最小限度沙箱环境的工具,通过白名单机制和严格的字节码检查,以确保在非生产环境中的安全性。尽管其名为'safe-ish',暗示着并非完全安全,但其设计理念和实现方式为BEAM模块的安全性测试提供了新的思路。"