首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
just-bash威胁模型深度拆解:AI Agent沙盒的3类攻击者与5道信任边界
📅 2026/9/25 3:23:49
✍️ 爱科研究院
👁 阅读 3,247
just-bash威胁模型深度拆解AI Agent沙盒的3类攻击者与5道信任边界【免费下载链接】just-bashBash for Agents项目地址: https://gitcode.com/gh_mirrors/ju/just-bashjust-bash 是一个为 AI Agent 打造的沙盒 Bash 解释器——用 TypeScript 实现、内置内存虚拟文件系统让 AI 可以安全地执行 shell 命令而不触碰真实系统。它的 THREAT_MODEL.md 完整定义了这套 AI Agent 沙盒的威胁模型3 类攻击者、5 道信任边界以及层层设防的防御纵深。下面带你快速读懂这份安全设计。一、先认识 just-bash为什么 AI Agent 需要沙盒 Bash让 AI Agent 直接在你的机器上跑 bash 是危险的一条rm -rf /、一次意外的路径穿越就可能造成不可逆损失。just-bash 的思路很直接把 bash 整个虚拟化掉。它用 TypeScript 重写了解析器、解释器和约 79 个内置命令运行在一个只存在于内存中的 Unix 风格文件系统里默认提供/home/user、/bin、/tmp等目录结构整个代码库中没有任何一处导入child_process——也就是说不存在从脚本到宿主进程的路径。这一点可以从 THREAT_MODEL.md 的架构图直观看到沙盒与宿主之间的网络、文件系统、子进程通道全部被切断。核心入口在 packages/just-bash/src/Bash.ts安全相关的默认值如虚拟化的 pid/uid、资源上限也在这里注入。二、威胁模型第一步识别 3 类攻击者 官方威胁模型把攻击者划分为三类信任级别全部为零1️⃣ 不受信任的脚本作者主要攻击者这是最核心的威胁提交任意 bash 脚本的 AI Agent 或用户。它可以构造任何合法甚至非法的 bash 语法目标是逃逸沙盒、读取宿主文件、窃取密钥、执行任意代码或发起拒绝服务攻击。2️⃣ 恶意数据源攻击不一定来自脚本本身也可能来自脚本消费的数据——HTTP 响应、文件内容、stdin。这类数据会流经变量展开、变量赋值和命令参数可能被精心构造以触发原型链污染prototype pollution、IFS 注入、文件名路径穿越等漏洞。3️⃣ 被入侵的依赖供应链攻击者修改 npm 依赖的供应链攻击者可以在 import 时执行任意代码。威胁模型明确将其列为运行时防御之外的问题——它属于部署层面的关注点靠 lockfile、依赖审计等手段解决而非沙盒本身。这个三分法很实用它告诉你哪些要防、哪些要隔离、哪些要外包给供应链安全流程。三、5 道信任边界攻击者必须在哪儿过关卡 just-bash 把沙盒内部划分为 5 道关键信任边界详见 THREAT_MODEL.md#L81-L90每道边界都有明确的数据流和强制规则边界数据流攻击面核心防御TB1脚本输入 → 解析器词法炸弹、深层嵌套、超大脚本10 万 token 上限、解析深度 200、输入 1MB 封顶src/parser/types.tsTB2解释器 → 文件系统路径穿越、符号链接逃逸、写入宿主OverlayFs 内存写入、allowSymlinks默认拒绝、isPathWithinRoot()根目录校验TB3解释器 → 网络任意外联、SSRF、响应炸弹网络默认关闭开启后 URL 必须过前缀允许列表每次跳转逐一校验TB4解释器 → 宿主进程派生子进程、读环境变量、触达 Node 内部 API架构层面零路径无child_processprocess.*、eval等被纵深防御拦截TB5数据 → 变量/键空间原型链污染__proto__作键名环境变量用MapAWK/关联数组用 null-prototype 对象杜绝constructor注入其中 TB1 的资源限额集中在 packages/just-bash/src/limits.ts而 TB2 的根目录校验与符号链接策略实现在 packages/just-bash/src/fs/ 下如 overlay-fs、real-fs-utils.ts。四、防御纵深这些经典攻击会撞在哪层墙上 ️THREAT_MODEL.md 第 6 节用 23 个具体攻击场景做了攻防推演见 THREAT_MODEL.md#L354-L380几个典型判例cat /etc/passwd→ OverlayFs 判定路径不在沙盒根内 →ENOENT被文件系统层拦截ln -s /etc/passwd x符号链接逃逸→ 符号链接默认拒绝 →EPERM被链接策略拦截while true; do :; done死循环→ 循环迭代上限 10K → 抛错被执行限额拦截arr[__proto__]evil原型链污染→ 键空间使用 Map/null-prototype → 无效被数据守卫拦截import(data:text/javascript,...)动态导入→ 上下文感知的 loader hook 拦截 →纵深防御拦截[[ $str ~ evil_regex ]]正则拒绝服务→ re2js 线性时间正则引擎src/regex/user-regex.ts无灾难性回溯被引擎特性拦截特别值得一提的是 TB4 的设计哲学主防御是架构上不存在从 bash 解释到 JS 执行的路径而Function、eval、process.binding、WebAssembly、Proxy等全局对象的拦截blocked-globals.ts、defense-in-depth-box.ts只是次级纵深防御——官方坦承 monkey-patch 本身可被绕过所以它被明确定位为第二道墙而非唯一一道墙。五、诚实披露已知残余风险 ⚠️真正专业的威胁模型会承认自己的缺口THREAT_MODEL.md 第 4 节也不例外动态import()的防御强度随运行时能力变化它是语言级关键字无法被 Proxy 拦截需依赖node:module.registerHooks()上下文感知 hook部署时应调用getStatus()确认level: full提前捕获的引用若代码在纵深防御激活前就持有Function引用可绕过代理——再次印证主防御靠架构不靠 patchPython WASM 执行面可选开启风险 MEDIUM默认关闭开启后通过全新 Worker、30 秒超时、移除ctypes/动态链接等编译期裁剪实现构造上隔离信号与作业控制trap、/fg/bg安全测试覆盖有限因不派生真实进程信号仅在虚拟模型内运作Unicode 边界情况无效 UTF-8、RTL 覆盖字符属展示/混淆攻击非执行逃逸向量这些已知但可控的取舍正是评估一个沙盒能否用于生产的重要参考。六、延伸阅读跟着源码读懂这套安全体系 威胁模型全文本文底稿THREAT_MODEL.md安全防御实现packages/just-bash/src/security/含attacks/攻击样本、fuzzing/模糊测试、prototype-pollution/污染用例资源限额配置packages/just-bash/src/limits.ts安全模型使用文档packages/just-bash/README.mdSecurity Model 章节实战参考examples/bash-agent/ 展示了用 just-bash 搭建 AI Agent 终端examples/executor-tools/ 演示了将 bash 能力暴露为 Agent 工具一句话总结just-bash 的威胁模型把AI Agent 能干什么坏事拆成了 3 类攻击者 × 5 道信任边界的矩阵用架构无路径 虚拟文件系统 资源限额 纵深防御四层防线逐一收口并诚实地标注了残余风险——这就是把它交给 AI 跑命令时你可以放心的理由。【免费下载链接】just-bashBash for Agents项目地址: https://gitcode.com/gh_mirrors/ju/just-bash创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/25 3:23:49
Pot-Desktop 划词翻译与截图 OCR 快速指南:装好配顺,3 步跑通
2026/9/25 3:23:49
Nuke 10 迁移指南:从 Nuke 9.x 平滑升级 Image Loading System 的完整实战手册
2026/9/25 3:23:49
MikroORM 自定义驱动(Custom Driver)开发指南:基于 Platform、SchemaHelper、Connection、Driver 四大组件实现全新数据库支持
2026/9/25 3:58:51
买二赠一促销怎么算账?从毛利测算到收银执行的全流程复盘
2026/9/25 3:58:51
OpenClaw 深度指南:用 TaoToken 统一 Key 重塑 2026 年的个人 AI 操作系统
2026/9/25 3:58:51
JSON数组元素可以不同类型吗?规范允许但实战需谨慎
2026/9/25 3:58:51
Python装饰器完全指南:从闭包原理到工程实践
2026/9/25 3:58:51
Python变量机制与命名规范详解
2026/9/25 3:53:51
AI编程提问法:5个实战Prompt模板,从需求拆解到Bug排查效率翻倍
2026/9/25 0:03:37
AI元人文:从工具使用到思维重构的深度探索
2026/9/25 0:03:37
Python+CNN车牌识别实战:从数据预处理到模型训练与部署
2026/9/25 0:03:37
Vim基础操作全攻略:保存退出、模式切换与高频命令实战
2026/9/23 19:31:10
深入解析Transformer多头注意力机制与工程优化
2026/9/23 19:31:10
OpenClaw 的 Skills 跑学习任务,模型通道改到 TaoToken 通道行不行?
2026/9/23 19:31:09
ChatGPT报错Oops, an error occurred! 全链路排查指南