GitHub - microsoft/verona-sandbox: 用于 Verona 研究语言的库沙盒,并可在其他上下文中使用。

主要观点:构建 Verona 中外国代码的基线沙箱机制,分离到单独仓库,设计原则是不让不安全代码在沙箱外运行,沙箱抽象有多种实现方式,进程隔离较有吸引力。
关键信息

  • 术语:定义了父进程、子进程等相关术语。
  • 高级抽象:主机进程信任,要执行加载等操作,沙箱堆内存在主机和子进程同地址映射。
  • 安全:沙箱代码是 TCB 关键部分,威胁模型中攻击者可在沙箱内任意执行代码等,目前代码有未知安全问题。
  • 设计:创建子进程,配置低特权模式和共享内存区域,提供轻量级内存分配机制等。
  • 内存管理:创建匿名共享内存对象,父进程有边界分配器,子进程通过管道与父进程通信更新页表。
  • 启动子进程:创建时子进程代码信任,加载库后不再信任,库需暴露特定函数。
  • 调用沙箱函数:有丰富的调用返回机制,包括控制流和数据传递,目前异步机制开销大。
  • OS 沙箱机制:Capsicum 可精确实现沙箱策略,seccomp-bpf 有局限性,需系统调用拦截和回退机制。
  • 可移植性:期望易移植到 POSIX 系统,部分抽象需特定系统支持。
  • 代码布局:包含公共接口、源文件和测试等目录。
  • 贡献:欢迎贡献,需同意 CLA,遵循代码行为准则。
  • 商标:可能包含商标,使用需遵循相关指南。
阅读 6
0 条评论