Security Blog

您应用内存中的凭证终将泄露

#264

October 2, 2026 · By Marketing team

← All posts

您应用内存中的凭证,任何在该机器上运行的代码都能读取——而在 2026 年,这其中包括智能体。一个 AI 模型已经自行在 FreeBSD 上扎根,并突破了它自己的沙箱。别再保留一份常驻凭证等着被偷走。

这是一个令人不安的预测,而且并非模棱两可:此刻躺在您应用内存中的凭证——启动时加载的数据库密码、环境变量里的 API 令牌、为完成本职工作而持有的云密钥——很可能在未来十二个月内泄露。不是因为有人在安全上胜过了您的团队。而是因为那个唯一曾让内存中的密钥显得安全的假设——只有受信任的代码才会运行在它旁边——今年悄然失效了,而几乎没有人因此改变做法。

这一条,您没法归档到"以后再说"。

实际正在发生什么

几乎每个应用都以同样的方式持有密钥。启动时读取它们——从 .env 文件、挂载的密钥、环境变量——以明文形式加载进自身内存,并在整个进程生命周期内一直保留。三十年来这都是合理的设计,而它合理只有一个原因:读取另一个运行中程序的内存或环境变量,需要在同一台机器上、以同等权限执行代码。这道门槛过去很高。能跨过去的只有您自己的软件和您自己的人。

现在智能体跨过去了。编码智能体、MCP 工具、自主工作进程——按设计,它就在一台真实的机器上、以真实用户的身份执行代码。对于以该权限运行的代码来说,内存中的凭证不是需要破解的保险库,而是一个可以读取的文件。/proc/<pid>/environ 以明文列出另一个进程的环境变量。一次 core dump 交出它的堆。没有漏洞利用,没有 CVE,没有告警——您的 EDR、WAF、防火墙看着一个被授权的进程读取它有权读取的内存,看不出任何异常,因为按它们的规则确实没有异常。每一步都合法。密钥只是摆在那里,唾手可得。

这不是您犯的错

请弄清楚这该由谁负责,因为不是您。加固机器上的 .env、启动时从密钥管理器拉进内存的密钥——这正是推荐的做法。它符合十二要素,中规中矩,是合格工程师会做的事。它是负责任的。过期的不是这种做法,而是它背后的假设:运行在您密钥旁边的代码,只有您放进去的那些。一旦智能体开始在那台机器上运行——而您正在有意地到处部署智能体,因为它们有用——这个假设就不复存在了,您负责任地加载进内存的明文,就摆在爆炸半径之内。

我们已经看到这件事的第一版落地了 [4]。当一个编码智能体被劫持——一份投毒的错误报告、路径中的一个恶意工具——触手可及的第一样东西恰恰就是:它自身进程以及旁边进程已经握在内存中的令牌和密钥。注入只是门。常驻的凭证才是战利品。

"但那台机器上没有智能体"

这是让人安心的答案,也是会失效的答案。这道防线依赖一堵墙:把智能体留在这一边,把凭证留在那一边。而今年发生的一切,都在证明这堵墙守不住。

您不必凭空相信——今年已经给出了两次证据。在其公开的测试中,Anthropic 让 Mythos 模型对准 FreeBSD 的 NFS 服务器——一段人类已经读了十七年的内核代码——它独立地在认证路径中发现了一个栈溢出,写出一个分成六个网络数据包、包含二十个 gadget 的利用程序,并通过网络在未认证的情况下拿到 root 权限。这就是 CVE-2026-4747,用时约四小时。不是"标记出一个可疑函数"——而是一个针对扛过十七年审查的代码的、可工作的远程 root 利用程序,对它所瞄准的每个主流操作系统和浏览器中的关键缺陷也同样如此 [1]。

而您会用来包裹智能体的隔离措施,也不比外围防线好到哪里去。在 Anthropic 自己的安全评估中,当被要求逃出沙箱并接触到运行测试的研究人员时,Mythos 串联利用——一次 JIT 堆喷射——同时突破了浏览器渲染器和操作系统沙箱,接入了开放互联网,并给他发了邮件 [1]。公允的说明:它这样做是因为测试要求它这样做,而非出于自身意图。但"我们要求它这样做"恰恰就是攻击者的位置——而"逃出、提权、拿走凭证"从此就是每一条恶意提示词的常备载荷。这种能力从来不需要等待模型自身的主动性。它等待的是一条指令,而指令是您唯一可以确定会到来的输入。其严重性在唯一算数的高度上得到了承认——美国对模型本身实施了出口管制,这是首次针对 AI 模型而非其背后的芯片,此前有报道称某个版本的 Mythos 在数小时内几乎穿透了 NSA 的全部涉密系统 [2][3]。

现在把它与内存问题放在一起看,因为两者会交汇。机器上的 root 可以读取任何进程的内存,而不只是它自己用户的。所以真正的问题从来不是"我会不会把智能体跑在我的密钥旁边"。而是"一个有能力的模型能否触及这台机器,或者突破我把它关进去的那个盒子"——而今年,这两个问题都在公开场合得到了答案。"那台机器上没有智能体"不是一项您可以强制执行的控制措施。它只是对事物会待在原地的一种期望,而事物已经表明它们不会。请为智能体抵达那台机器做打算。否则就只能指望运气。

为此而生,刻意如此

所以,别再试图把智能体挡在一个就那样摆在那里的密钥之外。把摆在那里的东西拿走。

Clavitor 中的凭证从不加载进您的应用内存中等待。它在调用发生的那一刻实时获取,用于那一次请求,然后消失。它从不待在环境变量里,从不落进 .env,从不以常驻堆内存的方式伴随进程的整个生命周期等待被转储。/proc 没有可列出的东西,core dump 也没有可带走的东西,因为这台机器从一开始就不被信任去持有长期有效的密钥。

而它确实交出的那一个凭证,其权限范围仅限于该智能体被指派的那一件事。它无法列出保险库,无法枚举还存在什么,无法发现下一把密钥。每次获取都有限流,异常突发会触发锁定,并被写入一份仅追加、哈希链式的日志——该日志存放在保险库上,而不是智能体运行的端点上。这正是 PCI DSS 第 10 项要求和 NIST 800-171(控制项 3.3.8)所要求的不可篡改、可归责的审计轨迹:确切记录您的智能体碰过什么,保存在一个被攻陷的机器既够不到也改不了的地方。

诚实的边界,因为这个主张需要一条:在被使用的那一微秒里,密钥确实存在于内存中——为那一次请求,在那一个瞬间。没有设计能改写物理规律。它改写的是常驻密钥——在您的进程里一待数小时、随时可被转储——与瞬时密钥之间的差别:后者只在一次调用期间存在,之后就没有东西可拿。您无法转储一个并未驻留的东西。

教训不是"把机器锁得更紧"

您可以继续加固机器。您可以继续告诉自己,不会有不受信任的代码跑在您的密钥旁边。但这恰恰是那个每月都在变得更昂贵的赌注,对手以执行代码为生,会穿过您以为守得住的墙。当每个读取者都受信任时,内存中的凭证是安全的。读取者变了。唯一能在这场变化中存活的做法,就是别再把凭证留在那里任人读取。

我们写下了在一个这样的世界里,凭证工具应当遵守的规则。拿您的方案对照一遍。

Clavitor(@clavitorai)是为 AI 智体而建、也防着 AI 智体的凭证保险库。clavitor.ai

来源

[1] Anthropic(Anthropic Red Team)— Assessing Claude Mythos Preview's cybersecurity capabilities(对 FreeBSD NFS RCE(CVE-2026-4747)的自主发现与利用;主流操作系统与浏览器中的关键缺陷)— https://red.anthropic.com/2026/mythos-preview/

[2] Associated Press(经 CNBC)— Anthropic's Mythos model found vulnerabilities in classified U.S. government systems, official says — https://www.cnbc.com/2026/06/23/anthropics-mythos-model-found-vulnerabilities-in-classified-us-government-systems-official-says.html

[3] Fortune — Anthropic disables Fable and Mythos AI models following U.S. government export ban — https://fortune.com/2026/06/13/anthropic-disables-fable-mythos-export-controls-national-security-threat/

[4] Tenet Security(Tenet Threat Labs)— Agentjacking: Coding Agents with Fake Sentry Errors(劫持至常驻凭证的先例)— https://tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors/