
过去二十年,数据库勒索攻击通常带着明显的人类节奏:扫描、等待、试错、查文档、再发起下一步。攻击者需要在每一次返回结果后重新判断路径,攻击链因此被人的注意力和工作时间切成许多段。
Sysdig 威胁研究团队公布的 JADEPUFFER 事件,让这幅画面出现了变化。研究团队将它评估为首个被完整记录的 Agent 勒索攻击样本:从入口突破、凭证收割、横向探测,到生产数据库破坏,关键决策由大语言模型驱动完成。
这次事件的价值并非来自单个漏洞的新颖程度,也并非来自攻击技术的代际跨越。被重新定价的,是那些长期暴露在公网、默认密钥未改、数据库权限过大的旧安全债。过去这些债务按排期、按工单、按季度审计来处理;Agent 介入后,它们开始按机器速度累积风险。
入口是一台暴露在公网上的 Langflow 实例。Langflow 用于编排 AI 工作流,常被团队快速部署,随后被纳入“先跑起来”的基础设施。问题在于,它在 1.3.0 之前存在 CVE-2025-3248:/api/v1/validate/code 端点缺少身份验证,远程攻击者无需登录即可执行任意 Python 代码。
这不是未知漏洞,补丁也已经发布。它更像一张被遗忘的欠条:代码执行端点暴露在公网,AI 编排服务进程又可能接触模型密钥、云凭证和数据库配置。只要入口被打开,后续资产就会被一次性纳入搜索范围。

JADEPUFFER 进入主机后,先做常规侦察,确认身份、系统、主机名、网络接口和运行进程。随后,搜索目标迅速转向凭证:模型服务 API 密钥、云服务凭证、数据库配置、钱包与助记词,以及 Langflow 背后 Postgres 中存放的用户记录和密钥。拿到立足点后,它继续探测对象存储、密钥仓库、服务发现端点和数据库,并布置周期性外联的持久化任务。
第二阶段,攻击转向一台生产服务器。那里运行着 MySQL 和 Nacos。Sysdig 没有观察到 root 凭证的来源,但攻击链利用这组凭证连接 MySQL,又对 Nacos 尝试认证绕过、JWT 伪造和后门管理员写入。最终,配置表被加密备份,原表被删除,勒索表被写入数据库。
这些步骤拆开看都很熟悉:旧漏洞、默认凭证、密钥暴露、过大的数据库权限、可达的管理面。JADEPUFFER 的变化在于,它把这些分散缺口连续拼接成了一次勒索流程。
很多安全事故并非败给某一个惊人的技术点,而是败给了缺口之间没有隔离。Langflow 的漏洞本来只是入口;环境变量里的密钥让入口变成凭证仓库;数据库 root 权限让凭证变成生产破坏能力;Nacos 管理面暴露又让配置中心成为横向移动的支点。
在传统攻击里,链路越长,人类操作越容易慢下来。每一段都需要重新判断,错误会打断节奏。Agent 的优势恰好在这里:它可以把返回结果当作下一步输入,持续生成新的 payload,直到某条路径被证实可行。
Sysdig 记录到的行为显示,这些 payload 并非简单重放脚本。代码中出现了自然语言注释,说明当前目标、优先级和处理思路。它像一个带执行权限的运行中笔记本:一边观察系统,一边解释目标,一边修改下一步动作。
这种能力并不等同于“攻击者消失”。更审慎的判断是,人类仍然可能参与了选定目标、准备基础设施、获得部分凭证等上游环节。模型承担的是持续决策和现场编排。风险恰恰在于,原先需要较强经验才能串起来的攻击流程,开始被自动化系统降低门槛。
JADEPUFFER 最值得关注的证据,是失败后的自我修复。Nacos 后门管理员写入过程中,登录失败到修复成功只间隔 31 秒。MinIO 返回 XML 而非预期的 JSON,后续载荷就改为解析 XML。JWT 路径遇到自定义密钥后被放弃。DROP DATABASE 受外键约束影响时,它关闭外键检查,完成删除后再恢复设置。

这组行为说明,攻击不再只是“自动执行已知脚本”。更准确地说,它具备了观察、失败、诊断、修补、重试的闭环。人类攻击者遇到报错会暂停;Agent 会把报错纳入上下文,继续试下一种方案。速度之外,真正改变威胁形态的是连续试错成本大幅下降。
破坏是真实的。配置表被加密备份,原表被删除,勒索表被写入数据库;AES 密钥只在执行时打印过一次,没有被保存或回传。对受害者而言,即使后续付款,被破坏的配置也可能无法恢复。
承诺不可信。勒索信中的比特币地址疑似常见文档示例,Sysdig 无法判断它是模型幻觉还是攻击者控制;数据被窃取的说法也来自 Agent 自身声明,研究团队没有独立证实。受害者面对的是一个能高速破坏、又可能无法兑现恢复承诺的自动化执行体。
JADEPUFFER 给出的防御启示并不神秘。入口要补,密钥要隔离,Nacos 和数据库不能暴露在公网,数据库管理账号不能拥有无限权限,出站连接必须可控,Agent 工具权限需要被明确限制。难点不在知道要补什么,而在把这些边界写进上线前的硬条件。

入口边界: 风险是代码执行、代码验证和工作流编排端点暴露在公网;上线前硬条件是身份验证、网络隔离和访问审计同时到位。
密钥边界: 风险是模型服务密钥、云凭证和数据库密码被 Web 可达进程直接读取;上线前硬条件是密钥最小权限、独立存放、定期轮换。
数据库/管理面边界: 风险是数据库 root、Nacos 后端库和对象存储管理面连接到同一条攻击路径;上线前硬条件是生产连接使用最小权限账号,管理面不向公网开放。
出站边界: 风险是周期性外联、陌生 User-Agent 和计划外任务把数据与指令带出系统;上线前硬条件是出站访问默认受控,异常行为可记录、可拦截。
Agent 权限边界: 风险是内部 Agent 同时具备读文件、调接口、写数据库和访问外网的组合权限;上线前硬条件是每类工具调用独立授权、可审计、可撤销、可限额。
这些检查项需要进入部署流程,而非停留在安全建议里。上线系统如果同时拥有执行入口、高价值凭证和生产控制面,任何一处入口失守都可能被放大成连续攻击面。机器速度攻击不会等待人工排查完成,边界必须在请求到达之前生效。
同样的原则也适用于自家 Agent。企业正在把 coding agent、运维 agent、内部自动化 agent 接入代码库和生产环境。每一种工具调用都应可审计、可撤销、可限额;能力越强,默认权限越应收缩。
JADEPUFFER 并未证明 AI 已经创造出全新的黑客技术。它证明的是另一件事:旧漏洞和旧配置在自动化决策面前会被重新组合,原本分散的缺口会被压缩成连续攻击面。防御者需要偿还的仍是那些熟悉的债,只是计息单位已经变了。