AI代理如今风靡一时。你可以告诉它们你想做什么,让它们去处理所有繁琐的工作以实现目标。这就像你突然拥有了一支随叫随到的私人助理团队。在这个领域,最热门的技术之一叫做OpenClaw,它允许你在本地笔记本电脑上运行代理(如果愿意的话)。这种能力降低了这一领域的准入门槛,使得每个人都能从中受益。但所有这些酷炫的新事物究竟是什么呢?使用这类东西可能会导致什么风险呢?正如一位睿智的漫画角色曾经说过的:“能力越大,责任越大。”那么,谁对这些强大的代理负责?我们如何负责任地使用它们呢?在本视频中,我们将探讨什么是AI代理、OpenClaw是什么以及使用这种强大技术时要考虑的六种不同安全风险,以便你能更安全地使用它。让我们先从深入挖掘AI代理的内部原理开始。

我想你说的是“引擎盖下”(under the bonnets),杰夫。为什么他们不能直接说英语呢?好吧,无论如何,什么是代理。我能给出的最简单定义是:它是一个模型(如大型语言模型),在循环中使用工具并具有自主性。所以,这是一个自主地在循环中利用工具的模型。那就是代理。听起来很棒,对吧?怎么可能出错呢?事实证明,问题多多。让我们检查每个组件来看看我的意思是什么。我们首先从模型开始——大型语言模型、生成式AI。你知道这些东西带来的一些问题是什么吗?

它们会产生幻觉(hallucinations)。所以我们有幻觉。不,你以为我会把那个词全部拼写出来吗?当我有一个可以自动补全的神奇白板时,我才不会那么做。那么什么是幻觉呢?那些是无意中的错误。而在大型语言模型中,当它们犯这些错误时表现得非常自信。所以如果我们从一个错误开始,然后运行其余的过程,你认为结果会怎样?答案是:它们不会变得更好。所以这是可能发生的一种情况。我们还可以污染进入模型的数据。这些模型基于数据构建,我们在数据上进行训练和微调,使用其他数据来源来增强它们的知识。

我们利用其他数据来源,模型可能会调用这些来源以获取新的新鲜信息或存储其状态。如果这些信息被操纵,那将是一个问题。此外,还有一种叫做“模型感染”的现象,就像软件一样,模型也可能被感染。它可能包含由某人设计用来搞乱系统的行为或信息。所以这是另一种感染,或者说是我们面临的风险向量。所以我告诉过你模型是使用工具的。那么“使用”部分,它是如何做到这一点的呢?

目前有一个非常常见的协议叫做MCP(模型上下文协议)。现在,MCP是一个全新的协议。而像任何新协议一样,随之而来的还有安全风险。我们仍在发现其中的一些风险所在。所以我不知道所有潜在的风险是什么,但肯定有一些伴随而来。在“使用”过程中还有一件事:当我传输或向工具发出调用时,我是否正在从这个地方转移身份凭证等信息?如果我这样做,那么我就有可能将秘密信息泄露给不受信任的来源。但也许我需要这些信息才能登录以使用该工具并让它为我做点什么。所以这伴随着风险。

这些工具有时可能是恶意的,它们可能被设计成做坏事。我们原本打算让它只做一件事,但实际上,其他人已经入侵了该工具,现在它正在做一些非常恶意的行为。这些东西也可能存在漏洞(bugs)。所以这些将是由此产生的非故意类型的问题。因此,工具本身扩大了攻击面。然后,我们是在一个循环中执行此操作。这基本上就是快速重复:清洗、漂洗、再重复,而且速度极快。所以我们可以做得非常快,潜在地如此。

另一件事是我们在以巨大的量(volume)执行此操作。因为这是在循环中运行,速度和数量都可以非常快地发生。俗话说:“犯错是人的本性,宽恕是神性的。”但 paraphrase 一下就是:人都会犯错。但如果你真的想搞砸,你需要一台计算机。这就是一个展示这一点的例子:我们犯了一个错误,它只是通过这个流程被放大了。最后还有自主性(autonomy)。这意味着没有人类在环中的方面对我们来说可能是一个大问题。这意味着缺乏监督,意味着我们在这里引入的错误、这里或这里的错误,或者被放大的错误,可能都会失控运行,除非有人能踩下刹车。

现在我们已经了解了什么是代理以及代理的一些一般性风险。现在我们来看看OpenClaw。这是什么东西?首先,它是一种自托管(self-hosted)系统,意味着你可以在自己的系统或笔记本电脑上运行它。这样做不需要大量的算力。它是开源的(open source),意味着任何人都可以看到其中的源代码,这看起来似乎是一件好事。它是一个自主代理平台。它之所以受到每个人的关注是因为它能做什么:它可以读取文件,可以执行命令,可以访问浏览器,可以调用API。

它可以在多个聊天平台上发挥作用。这里还有另一个有趣的地方:它使用持久化的凭证和记忆(persistent credentials and memory)。所以所有这些结合在一起,从安全角度来看这意味着什么?好吧,这些都是我们潜在可以做的强大功能。这具有潜在的風險,取决于这一切最终去向何处。但很多人会争辩说:是的,这是一个开源系统。所以它实际上并不是不可信的,因为全世界都有机会查看这段源代码并对其进行审查。

那么这真的不是不信任的吗?好吧,它是不可信的(untrusted)。因为事实上,有一个开源操作系统叫做OpenBSD,他们最近在那里发现了一个漏洞。那个bug已经存在27年了。换句话说,它几乎在众目睽睽之下隐藏了近三十年,而你们中没有人发现它。所以仅仅因为它是开源的并不意味着所有的漏洞都已经被清除干净了。所以我们必须将其视为不可信代码(untrusted code)。

在本地系统上运行的不可信代码,可能以你的权限级别运行。所以如果你在你的笔记本电脑上使用管理员ID或以root身份或其他类似方式运行它,那就是以完全特权在系统上运行的不可信代码。所有这些意味着什么?那在很大程度上拼出了“风险”这个词。很多事情都有可能发生,

如果我从一个不受信任的系统角度审视它能做的一切,那显然是错误的。好的,我们讨论了风险,但我这里指的是哪些类型的风险呢?我之前谈到了AI代理的一般性风险,但让我们针对OpenClaw具体深入探讨一下,看看可能存在哪些风险。请注意,这绝非详尽无遗的列表,我只是要指出其中的六项:

第一点是我已经提到过的,它运行在一个不受信任的环境中。这是不受信任的代码执行能力,基本上就是“技能”(Skills)。OpenClaw允许用户从公共注册中心如ClawHub或GitHub安装技能。安装一个技能,实际上就是以代理的特权运行第三方代码。这意味着你拥有系统级别的权限,具体取决于你以哪个身份ID来运行它。正如我之前提到的,多次审计发现非微不足道的比例的技能存在恶意或漏洞。那么影响会是什么?可能是任意命令执行,意味着攻击者让你的系统运行他们选择的命令,而不是你选择的。

这可能是凭证窃取,现在他们知道了你的密码,从而进入你的系统或其他服务。还可能是跨多个会话持久存在的后门,这使得它们更加危险。列表上的第二点是间接提示注入(Indirect Prompt Injections)。在这里,我们基本上有正在执行的内容。OpenClaw从不信任的文本中摄取数据,来源包括网页、电子邮件、PDF文件、聊天消息以及其他代理。攻击者可以嵌入指令,导致代理执行诸如泄露机密、执行命令、修改其自身记忆或规则等操作。

这并非假设,提示注入导致的妥协在现实中已被反复证明。列表上的第三点是持久性记忆投毒(Persistent Memory Poisoning)。OpenClaw将长期存储存在诸如memory.md、identity.md等文件中,这些文件在多次执行中维持这种状态。因此,攻击者可以悄悄改变状态,使得恶意指令跨多个重启持久存在。列表上的第四点是凭证暴露和重用(Credential Exposure and Reuse)。

OpenClaw通常可以访问诸如API密钥、OAuth令牌、消息平台机密、云凭证等各种允许你进入和认证系统的秘密。我们曾发现许多案例,其中数万个暴露的OpenClaw网关泄露了明文凭证或配置文件。这是坏消息。第五点是自主行动风险(Autonomous Action Risk)。因为这个东西是自动运行的,这意味着它起初可能做正确的事,但随着时间的推移,它会偏离轨道去做其他我们未打算做的事情。

OpenClaw可以在未经批准的情况下行动。它可以串联工具,可以决定引入你可能未曾考虑或意识到的其他组件,甚至可以触发后台任务。一次单一的妥协可能导致自我导向的横向移动(Lateral Movement)。这意味着系统正在决定如何在你原本设想的系统中以及你未曾设想的其他区域中移动。它可能进行数据窃取,将你的敏感信息发送给其他人。

或者进行成本放大攻击(Cost Amplification Attacks),很多人对此没有概念。API使用轰炸是另一种思考方式。有人劫持了你的代理,导致它吞噬你系统中的各种资源或用尽你的所有令牌,而这正在花费你的金钱。列表上的第六点是主机和工作区被 compromising(Host and Workspace Compromise)。请记住,这是在您的系统上运行的。这是其自托管组件的一部分。

如果被诱导执行恶意命令,OpenClaw可以修改主机文件、访问SSH密钥,甚至 pivoting(转向)到其他系统。事实上,微软明确指出OpenClaw不应在标准的个人工作站或企业工作站上运行,原因正是如此。所以你现在知道为什么你永远不会问安全专家“可能会发生什么糟糕的事”,因为他会告诉你真相。让我们澄清一点:我不是说你不应该使用代理。

事实上,我认为我们所有人都能从这些能力中受益。这真的很酷的东西。但不要盲目地跳进去。记住,如果你是把密码存储在Excel电子表格中的人(顺便说一句,这是一个糟糕的主意),请记住,你刚刚安装在系统上的代理可能会读取这些凭证。因为它可以执行浏览器操作,它随后可以去登录你的银行网站并转移你所有的钱,然后运行命令删除系统上的所有文件。

那对你来说将是非常糟糕的一天。这就是我所说的“升级风险”(Elevated Risk)。所以OpenClaw功能强大,但设计上也是高风险的。记住我们需要考虑的一些事情:审视这一点并使其成为一个更安全的系统。首先,我们运行的是带有持久凭证的不受信任代码。所以要谨慎对待它。在您的系统上以您的特权级别运行不受信的东西,这是一件非常危险的事情。

此外,我们需要意识到将此东西暴露在互联网上意味着它可以访问信息源,这些来源也可能通过间接提示注入成为攻击面。通常我们不认为阅读网页是一种攻击,但在这种情况下可能是这样。因此,如果不小心,工具调用也会成为利用放大(Exploit Amplification)。错误会因该事物以速度循环的能力而瞬间扩大。

因此,永远不要将其连接到敏感身份、敏感数据或生产系统而不进行强隔离并期望不被攻破。这是我们从零信任(Zero Trust)中得到的东西,即假设已被入侵(Assume Breach)。我们要预期系统已经被攻破。针对这类攻击显式地构建防御措施。所以,请像坏人已经在你的系统上一样构建安全性。

我做过其他关于诸如使用MCP设计安全代理以及将零信任原则应用于智能体AI的视频。所以去看看它们以获取更多想法,从而使你的安全性更强。然后你可以逐渐涉足深水区,避免成为鲨鱼的早餐。