OpenShell:用于安全 LLM 代理的进程外强制执行
OpenShell:用于安全 LLM 代理的进程外强制执行
OpenShell 通过进程外强制执行实现安全的代理运行时
OpenShell 是安全和运行时层,能够在信任边界内部署 LLM 代理。与依赖系统提示的传统代理安全方法不同,OpenShell 使用“监督者”在代理进程之外强制执行策略,确保即使代理因提示注入或越狱而被破坏,安全约束仍然保持完整。
NemoClaw 蓝图模式
NemoClaw 是用于构建专用代理的开放蓝图。完整的 NemoClaw 蓝图由三个可互换组件组成:
- Harness(控制器):负责规划和工具调用的代理循环(例如 OpenClaw、Hermes 或 LangChain DeepAgents)。
- Model(模型):推理引擎,通常是 NVIDIA Nemotron 模型。
- Runtime(运行时):OpenShell,负责沙箱、策略强制执行和网络隔离。
虽然 Harness 和 Model 可以根据使用场景进行替换,OpenShell 作为恒定的运行时,确保代理在定义的安全参数内运行。
LangChain DeepAgents 作为 Harness
LangChain 的 Deep Agent 框架是一个与模型无关的 Harness,专为长时程任务设计。它实现了生产级的代理模式,包括:
- 规划循环:通过待办事项列表结构化跟踪工作。
- 子代理:主代理能够为子任务生成专用的子代理。
- 集成文件系统:读取和写入文件以管理状态和数据的能力。
与 OpenShell 配合使用时,这些能力被限制在信任边界内,防止代理访问主机的敏感数据。
进程外强制执行 vs. 基于提示的安全
传统的代理安全依赖系统提示(例如 “你不得做 X”)。由于 LLM 是条件概率机器,能够通过提示注入被操纵而忽略这些规则。
OpenShell 用 进程外强制执行 取代了这种方式。监督者组件在代理启动前先行启动,并将代理作为受限的子进程运行。监督者在每一次动作——网络连接、文件写入或推理调用——执行前,根据策略进行评估。因为强制执行发生在代理进程之外,代理无法绕过这些规则,无论其内部状态或指令如何。
监督者控制的四大支柱
OpenShell 监督者控制以下攻击面:
1. 网络隔离
OpenShell 采用 “默认拒绝” 的姿态。除非目标明确加入白名单(例如特定的搜索 API 或推理端点),否则任何流量都不能离开沙箱。这为合规团队提供了可验证的保证,即数据不会被泄露到未授权的外部服务器。
2. 文件系统沙箱
代理在专用工作区内运行。主机目录不会挂载到沙箱中,这意味着代理无法访问主机的 home 目录、SSH 密钥或环境文件。
3. 受管的推理调用
所有模型调用都通过受管的内部端点 (inference.local) 路由。监督者决定实际的路由目的地,确保外部 LLM API 的提供商凭证永不暴露给代理。
4. 凭证管理
API 密钥不会存储在沙箱内的磁盘上。它们仅在运行时由网关通过监督者注入,并仅沿配置的策略路径传递。如果代理被破坏,磁盘上没有持久化的机密可被窃取。
实现 OpenShell 策略
OpenShell 中的策略以 YAML 文件定义,使其可以视作代码(在仓库中进行版本管理,并通过 Pull Request 进行审查)。
- 网络和推理策略:可以热加载,无需重启沙箱。
- 文件系统策略:在沙箱启动时锁定,若要更改必须重新创建沙箱。
要将策略部署到沙箱,使用 openshell policy set 命令,将沙箱名称关联到具体的 YAML 策略文件。
摘要:OpenShell 通过在代理进程之外使用监督者来强制执行网络、文件和凭证策略,为 LLM 代理提供安全运行时,防止提示注入和越狱攻击。
标题:OpenShell:用于安全 LLM 代理的进程外强制执行
Sources
- undefinedOpenShell Agents