Deno 正式开源其 AI 代理防火墙(Claw Patrol)

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00这是 Claw Patrol,一个由 Dino 团队构建的开源安全防火墙,它位于
00:00:04你的 AI 智能体与互联网之间,解决了 AI 智能体的三个关键安全问题。
00:00:09访问权限不等于实际控制,智能体不应接触敏感机密,且你无法知晓智能体
00:00:14具体执行了什么。我最近尝试了很多 AI 智能体安全工具,我真的很喜欢 Claw Patrol
00:00:19采取的这种方案,但它还不算完美。Claw Patrol 的工作原理是:你拥有
00:00:28一个名为网关(Gateway)的服务器,它存储了你的规则、凭证、日志以及 Claw Patrol
00:00:32仪表板,然后你可以有任意数量运行智能体的机器,它们可以加入
00:00:36该网关并通过它路由智能体流量。事实上,你可以选择运行单个命令
00:00:40通过网关,或者添加整台机器。以我为例,我的网关只是一台 Ubuntu
00:00:45服务器,我通过 Tailscale 连接它,Claw Patrol 开箱即用支持 Tailscale,以及
00:00:50WireGuard 或者两者兼有,而我的智能体则是我的 Mac 和 OpenClaw 服务器。我正在运行 OpenClaw 网关
00:00:55通过 Claw Patrol,在 Mac 上我只需要在需要时使用 Clawd 的单次运行命令即可。
00:01:00有了这些背景信息,让我们来看看 Claw Patrol 解决的三个关键问题,我将
00:01:04从第二个问题开始,也就是智能体不应接触敏感机密,因为它能很好地引出
00:01:09其他问题。在 Claw Patrol 网关上,你可以配置 Postgres 用户、
00:01:14Clawd 订阅、GitHub 账户,以及任何承载令牌(bearer tokens)或自定义请求头(正如我这里为我的
00:01:19生产 API 服务器所做的那样)。这样一来,当我们通过网关使用 Claw Patrol
00:01:25运行命令来运行智能体时,它们不需要任何这些凭证就能成功发出请求。它们会简单地
00:01:30在请求通过网关时被注入。所以,如果我让 Claw 使用我的 API 和我的
00:01:35数据库来为我提供两者的概览,它能够毫无问题地做到这一点,并且我可以看到
00:01:41它实际运行的命令中并没有包含这些 curl 请求所需的 API 密钥,
00:01:46但它确实需要一个。在 Postgres 上,它只是使用了一个假密码 “X”,这绝对不是真正的
00:01:51密码,但它仍然成功连接并获取了相关信息,因为网关已经
00:01:56拦截了这些请求并附加了真实的凭证。这意味着智能体永远
00:02:00无法访问真实的值,所以如果有人看到我的智能体日志或尝试进行提示词注入,
00:02:06他们永远也得不到这些凭证,因为它们驻留在完全独立的服务器上,而智能体
00:02:10无法访问它们。为了更清晰地展示这个注入过程,如果我在终端上运行此 curl 请求,
00:02:15你可以看到它被拒绝了,因为我没有传入 API 密钥;但如果我通过 “claw patrol run” 运行
00:02:20同样的命令,数据就会像平常一样返回,因为 API 密钥已被自动注入。
00:02:26Claw Patrol 旨在解决的下一个问题是:访问权限不等于行动控制。Claw Patrol 让你
00:02:31能够非常精细地控制智能体对请求的操作。例如,如果我再次使用那个 Postgres
00:02:36技能,但这次我让它删除一个表并创建一个新表,当它运行时,它会立即
00:02:41返回我设置的一条自定义错误信息,说明架构变更只能通过迁移 PR
00:02:46来实现,而不是通过智能体。网关实际上已经检查了我的智能体所做的 Postgres 请求,
00:02:51并对照我定义的一组规则进行了验证,多亏了其中一条规则,它拒绝了
00:02:56删除表的请求。我处理这种情况的另一种方式是采用人工介入,我可以
00:03:00让这条规则联系我来批准该操作。目前,这仅支持
00:03:04Slack,但更多选项即将推出。甚至还有一个选项可以使用 LLM 作为仲裁者,
00:03:09规则也非常可定制且灵活,你甚至可以设置规则来检查
00:03:13发送回复的客户支持 API 端点,查看是否有任何攻击性
00:03:18内容、缺失问候语,或者任何你不希望在请求中泄露的信息。再说一遍,
00:03:22所有这些在网关上对请求的处理意味着,从理论上讲,所有这些操作都能免受
00:03:27提示词注入和几乎所有其他类型的 AI 攻击。Claw Patrol 解决的第三个问题
00:03:31是你无法看到智能体做了什么。但有了 Claw Patrol,每个请求在
00:03:37仪表板中都是可见的,你甚至可以看到活动会话以及所使用的令牌,如果你点击
00:03:42进入一个请求,你可以看到相关详情,比如实际运行的 Postgres 命令,
00:03:46或者如果是 API 调用,你可以看到 API 请求以及它收到的响应。
00:03:51这样你就不需要花时间梳理智能体接触过的所有服务的日志
00:03:55来尝试弄清楚它做了什么,取而代之的是,你可以在请求发生的时刻
00:03:59直接看到它的操作,所以你应该能看到智能体所做的几乎一切。
00:04:03这就是 Claw Patrol 旨在解决的三个问题,但这一切是如何设置的呢?好吧,
00:04:07一旦安装了 Claw Patrol,网关实际上是通过一个简单的 HCL 文件来配置的。
00:04:12在这里,你可以定义你将拥有规则和凭证的各种端点,
00:04:16所以我有很多,比如 OpenAI、Slack、SSH、Postgres 等等,所以如果任何请求经过
00:04:22网关且匹配其中之一,它就会知道去检查规则和凭证。
00:04:26至于实际的凭证本身,设置起来也非常简单。
00:04:30你只需说明凭证类型,以及该凭证应该匹配的端点。
00:04:34它支持许多凭证类型,如 Anthropic 订阅、Codex Ones、
00:04:39ClickHouse、Postgres,以及基础的承载令牌和自定义请求头,
00:04:43所以你应该会发现它支持你几乎需要的所有类型,
00:04:46即使不支持,你实际上也可以编写插件来添加你自己的类型。
00:04:50一旦你在里面定义了凭证,你需要做的只是前往仪表板填写
00:04:54实际值。设置规则也相当容易。
00:04:56你只需说明规则将适用的端点,然后使用通用表达式语言(Common Expression Language)
00:05:00编写规则,所以这可以涵盖 HTTP、
00:05:05Postgres、Kubernetes 等等广泛的事物。之后,你再说明你刚刚定义的
00:05:09规则的结论(verdict),即基于此批准或拒绝。如果你想创建一个基于允许列表
00:05:14的方法而不是阻止列表方法,你会在这里使用 “approve”,这样你会默认阻止所有请求,然后
00:05:18只允许某些特定的东西。不过就我而言,我只是简单地使用了阻止列表法。
00:05:22最后,另一个非常有用的功能是配置文件(Profiles)。你可以将你的凭证分组
00:05:26到多个配置文件中,这意味着附加到这些凭证的任何规则和端点
00:05:31也会随之归类,这允许你为你的智能体和团队设置一种基于角色的控制,
00:05:35这样开发人员可以拥有对凭证的一定访问权限以及针对他们的不同规则,
00:05:40或许另一个团队,比如支持团队,拥有不同的凭证和不同的规则。
00:05:45为了在你进行规则修改时提供帮助,实际上有一个测试命令,你可以从仪表板
00:05:49下载规则操作,然后针对你的本地规则修改重新运行它,看看
00:05:54它们中的任何一个是否改变了结果,这样你就可以察觉是否有任何意外泄露。
00:05:59我必须承认,我确实发现这个设置过程有点繁琐,而且我相信它很快
00:06:02就会得到改进,因为这在项目生命周期中还很早期。但如果有一个简单的方法可以从仪表板
00:06:07添加凭证和规则,那就绝对太棒了。也许类似于
00:06:11AdGuard 的工作方式,你可以看到一个请求经过,然后点击添加针对该请求的规则或
00:06:15凭证。我在尝试添加仅为 IP 地址的端点到我的本地 Proxmox 服务器时,
00:06:19也遇到了很多问题。不知何故,它就是不想
00:06:24拦截那些请求,我在仪表板上也看不到任何请求通过,这让我
00:06:28有点头疼。所以肯定还有一些需要修复的地方,或者可能是我使用不当,
00:06:33但无论如何,是的,要达到一个不打断你工作流程的可用性水平还需要一些工作,
00:06:38但这也很有道理,因为这毕竟是关于安全,而不是仅仅以 “YOLO(只管做)模式” 部署智能体。
00:06:43那么,请在下方的评论区告诉我你对 Claw Patrol 的看法,以及
00:06:47你是否有用于智能体的安全工具。在你看评论的时候,记得订阅,
00:06:51像往常一样,下期见。

Key Takeaway

Deno 开源的 Claw Patrol 通过在智能体与服务之间部署网关,实现凭证动态注入、精细化行为规则控制及请求全链路监控,从而消除 AI 智能体运行中的安全盲区与凭证泄露风险。

Highlights

  • Claw Patrol 充当 AI 智能体与互联网之间的安全防火墙,拦截并管理智能体的所有流量。

  • 网关服务器自动向智能体请求注入所需的身份凭证,使智能体本身无需存储 API 密钥或密码等敏感信息。

  • Claw Patrol 基于通用表达式语言(CEL)实现精细化操作控制,能够根据自定义规则阻断智能体的危险操作,如删除数据库表。

  • 仪表板提供所有智能体请求、活动会话及令牌使用情况的实时可视化记录,省去梳理分散日志的时间。

  • 通过 HCL 配置文件,用户可以将凭证和规则归类到不同的配置文件中,实现基于角色的安全访问控制。

Timeline

Claw Patrol 的核心架构与功能

  • 系统架构包含一个存储规则与凭证的网关服务器及多个运行智能体的节点。
  • 网关通过 Tailscale 或 WireGuard 路由智能体流量。
  • 该工具旨在解决智能体缺乏实际行动控制、凭证泄露风险及运行透明度不足的问题。

Claw Patrol 引入中间网关层,所有流量经过该网关进行安全校验。这种设计允许用户在单一服务器上集中配置安全规则,同时在多台机器上运行智能体。它支持开箱即用的 VPN 连接,确保了分布在不同设备上的智能体能够通过统一安全平面进行通信。

凭证注入与敏感信息防护

  • 凭证(如 API 密钥、数据库密码)驻留在网关服务器上,而非智能体节点。
  • 智能体发出请求时,网关动态注入真实凭证以完成鉴权。
  • 即使智能体遭遇提示词注入攻击,攻击者也无法获取原始凭证。

这种机制确保智能体在运行 Postgres 查询或调用 API 时无需持有真实令牌。当请求流经网关时,网关会自动将虚假占位符(如假密码“X”)替换为合法的后端凭证。通过在物理上隔离凭证存放地与智能体运行环境,有效防止了敏感信息被意外泄露。

精细化行动控制与审计

  • 规则引擎支持拦截特定操作,如阻止智能体删除数据库表。
  • 系统支持通过 Slack 等方式实现人工干预请求批准。
  • 仪表板提供每个请求及其响应的详细历史记录,实现完全透明化。

除了防护凭证,Claw Patrol 通过检查请求内容来实施行为约束。用户可以定义复杂的规则,甚至利用 LLM 作为仲裁者评估请求的安全性。每个操作都会在仪表板上留下痕迹,包括执行的具体命令和收到的反馈,消除了对多个服务日志进行碎片化审计的必要性。

配置、测试与当前局限性

  • 网关采用 HCL 语言进行配置,支持多种凭证类型与端点。
  • 配置文件功能允许为不同团队或智能体设定基于角色的控制。
  • 当前版本在用户友好度及特定 IP 端点拦截方面仍存在配置繁琐等挑战。

通过通用表达式语言(CEL),用户可以灵活定义针对 HTTP、Postgres 等多种协议的准入规则。虽然测试命令能够辅助验证规则修改的后果,但目前的仪表板设置流程仍有优化空间,特别是对于特定网络环境下的请求拦截,项目仍处于早期迭代阶段。

Community Posts

No posts yet. Be the first to write about this video!

Write about this video