name: sandbox-builder
description: “构建安全沙盒以隔离不可信代码执行。”
version: “1.0.0”
tags: [安全, 沙盒化, 隔离, oopsla]
difficulty: 高级
languages: [Rust, C, Python]
dependencies: [能力系统, FFI设计器]
沙盒构建器
沙盒化隔离不可信代码执行,防止其影响主机系统。这对于浏览器、插件系统和安全代码执行平台至关重要。
何时使用此技能
- 运行不可信代码
- 浏览器插件安全
- 无服务器函数隔离
- 插件架构
- 多租户系统
此技能的作用
- 隔离:将不可信代码与主机分离
- 资源限制:CPU、内存、时间约束
- 系统调用过滤:限制系统调用
- 文件系统命名空间:虚拟文件系统
- 网络隔离:限制网络访问
关键概念
| 概念 |
描述 |
| 隔离 |
分离执行环境 |
| 资源限制 |
CPU、内存、时间约束 |
| Seccomp |
Linux上的系统调用过滤 |
| 命名空间 |
Linux命名空间隔离 |
| Chroot |
更改根目录 |
| 虚拟化 |
完整VM隔离 |
提示
- 使用多层防御
- 使用恶意输入测试
- 记录所有违规
- 尽可能使用已建立的库
- 考虑操作系统特定功能
常见用例
- 浏览器沙盒
- 无服务器平台
- 在线代码执行
- 插件系统
- CI/CD流水线
相关技能
capability-system - 基于能力的安全
information-flow-analyzer - 跟踪信息流
ffi-designer - 安全的FFI边界
webassembly-runtime - WASM沙盒化
参考文献
| 参考 |
重要性 |
| Provos “Improving Host Security with System Call Policies” |
Systrace/seccomp |
| Yee et al. “Native Client” |
Chrome沙盒 |
| seL4文档 |
微内核能力 |
权衡与限制
方法权衡
| 方法 |
优点 |
缺点 |
| Seccomp |
轻量级 |
仅限Linux |
| 命名空间 |
强隔离 |
复杂 |
| 虚拟机 |
完全隔离 |
重 |
| WASM |
可移植 |
有限API |
何时不使用此技能
限制
评估标准
高质量的实现应具有:
| 标准 |
寻找什么 |
| 隔离 |
不可信代码无法逃逸 |
| 资源限制 |
强制执行限制 |
| 监控 |
检测并记录违规 |
| 性能 |
合理开销 |
质量指标
✅ 好:多层隔离,适当限制,全面日志记录
⚠️ 警告:基本隔离,缺少一些限制
❌ 坏:逃逸漏洞,无资源限制
研究工具与工件
沙盒实现:
| 工具 |
学习什么 |
| Native Client |
浏览器沙盒 |
| WebAssembly |
沙盒化执行 |
| gvisor |
容器沙盒 |
研究前沿
1. 机密计算
实现陷阱
| 陷阱 |
实际后果 |
解决方案 |
| 逃逸漏洞 |
安全绕过 |
深度防御 |