Ryzek 为何存在

智能体技能在任何检查机制建立之前,就已经变成了一条供应链。

在大约一年的时间里,技能和 MCP 服务器从新奇事物变成了人们从一个链接直接安装、却从不阅读内容的东西。而相应的审查流程并没有随之出现。

问题所在,直白地说

一个智能体技能,是一组指示 AI 智能体如何完成某项任务的文件。一个 MCP 服务器,则为智能体提供新的工具。两者都会以智能体所能触及的一切权限运行——您的文件、您的网络,有时还包括您的凭证。

人们添加它们的方式就像添加一个软件包一样:图快,来自别人分享的一个链接,从不阅读其中内容。当软件包只能运行代码时,这样做还算安全。但当你安装的东西还能向智能体下达指令——以人类根本看不到的文本形式——情况就完全不同了。

一个软件包能运行代码。而一个技能,能改变智能体自认为被要求做的事情。

这种区别正是 Ryzek 存在的原因。传统安全扫描问的是:这段代码是否会做危险的事?而智能体技能还需要回答第二个问题:这里面是否有内容是在对模型说话,而不是在对我说话?

构建者是谁

Ryzek 由一个小型独立团队打造,他们只专注于这一件事。这既是优势,也是局限,值得如实说明。

对您有利的一面:一项新技术公开的当周,一条新规则就可能随之上线。每条规则的存在都是因为值得被写下来,而不是为了填满一张对比表格。

不利之处:这背后没有庞大的支持团队,标准套餐也没有正式的 SLA。如果您在将 Ryzek 与资金雄厚的供应商比较,请如实权衡这一点。

构建方式

每项检测结果都会说明推理依据。每个结果都附有置信度评分和通俗易懂的理由,因此一个较弱的信号绝不会被误读成已确认的攻击。学会忽略误报的人,往往也会忽略真正的威胁。

您的文件不会被保留。上传内容在内存中扫描后即被丢弃。被存储下来的只有扫描次数和用于漂移检测的工具指纹——绝不包含文件内容。

检测能力不设付费门槛。每条规则在免费套餐中都可使用。付费套餐针对的是用量和自动化能力。

它会说明自己的能力边界。一个声称能捕获一切的扫描器,恰恰是您无法用来校准判断的那种。

这并非假设情形

以下每个案例都有公开记录可查。对每一个案例而言,诚实的问题不是“Ryzek 本可以阻止这件事吗”,而是它的哪一部分是 Ryzek 能看到的,哪一部分是它看不到的。

MCP 配置文件中的机密信息

GitGuardian 的《2026 年机密泄露现状》报告发现,公开 GitHub 上与 MCP 相关的配置文件中存在 24,008 个独立的泄露机密——其中 2,117 个仍然有效。

Ryzek 的应对方式:这正是 mcp-credential-in-config 所要捕获的问题。它会标记配置值中直接写明的机密信息,并忽略 ${VAR} 这类引用,因此已经妥善处理的配置不会被误报。

来源:GitGuardian,2026 年

postmark-mcp 后门事件

2025 年 9 月,Koi Security 发现一个名为 postmark-mcp 的 npm 包——它被伪装成 Postmark 的官方集成,实则与 Postmark 毫无关系——在 1.0.16 版本中新增了一行代码,会将所有发出的邮件密送给攻击者。该版本在被移除前已被下载 1,643 次;Koi 估计每天有 3,000 至 15,000 封邮件被复制。

Ryzek 的应对方式:基本无能为力,而说清楚这一点很重要。这个后门是软件包内一行 JavaScript 代码造成的,而 Ryzek 读取的是您的智能体所加载的技能、配置和清单——而不是每一个依赖项的源代码。如果该服务器的工具定义发生了变化,漂移检测本会捕获到它。而这次,它们根本无需改变定义。

来源:Koi Security,2025 年 9 月

STDIO 配置缺陷

2026 年 4 月,OX Security 披露 MCP 的 Python、TypeScript、Java 和 Rust 官方 SDK 均会将 STDIO 配置直接传入命令执行环节。该研究导致了包括 LiteLLM、Agent Zero、DocsGPT 和 Windsurf 在内的多个项目出现 CVE 漏洞。Anthropic 表示该行为符合预期,并拒绝修改协议,因此修复责任落在了每个下游开发者身上。

Ryzek 的应对方式:mcp-stdio-injection-surface 会检查配置是否符合该模式,并根据是否存在真实的注入路径来分级,而不是标记所有 STDIO 服务器。mcp-known-vulnerable-version 会标记固定在已修复版本之下的 LiteLLM。

来源:OX Security,2026 年 4 月

被投毒的技能应用市场

Snyk 在 2026 年 2 月对 3,984 个已发布智能体技能进行的审计发现,13.4% 至少存在一个严重问题,并确认了 76 个恶意载荷。同月,ClawHavoc 攻击活动在 ClawHub 上放置了至少 1,184 个恶意技能,其中许多诱导用户安装一个实为恶意软件的“辅助工具”。

Ryzek 的应对方式:“下载这个并运行它”这类指令,正是 untrusted-external-install 所要查找的目标;文档中的隐藏命令,则是 concealed-instruction 所要查找的目标。而一个足够以假乱真的发布者资料,是任何扫描器都无法评估的。

来源:Snyk,2026 年 2 月 · Antiy Labs,2026 年 2 月

被植入木马的 Oura 服务器

2026 年 2 月,攻击者克隆了一个真实的 Oura Ring MCP 服务器,利用虚假的 GitHub 账号和 fork 让它看起来历史悠久,并将一个植入木马的版本发布到 MCP 注册表,该版本会安装 StealC 窃密程序。

Ryzek 的应对方式:部分有效。它读取的是技能配置和随附脚本实际做了什么,而不是它们由谁发布——因此无论项目看起来多么可信,这些文件中的凭证读取和外发请求行为都会触发相应规则。但它无法告诉您某个维护者是虚假的。

来源:The Hacker News,2026 年 2 月

Asana 的跨组织数据泄露

Asana 于 2025 年 5 月 1 日上线了一个 MCP 服务器。6 月 4 日,该公司发现一个漏洞,导致部分客户数据出现在使用该功能的其他组织面前,随即将服务器下线进行修复。

Ryzek 的应对方式:无能为力。这是发生在他人托管服务内部的缺陷,任何针对您文件的扫描器都无法看到。在这种情况下,真正限制损失范围的是每个已连接智能体所拥有的访问权限——而 Ryzek 确实会标记超出工具实际需要的过大权限。

来源:BleepingComputer,2025 年 6 月

Ryzek 的能力边界

准确知道一个工具的能力边界在哪里,正是让它其余部分变得可用的前提。Ryzek 是一款静态扫描器:它只读取文件,不会运行文件。

  • 仅在运行时才出现的行为。2026 年 8 月,Pillar Security 描述了一个 MCP 服务器:它会先返回无害的工具元数据,直到客户端完成三次工具调用后才切换行为。Ryzek 能看到文件中的内容;但一个在运行时才发生变化的服务器,需要运行时监控才能察觉。
  • 编译后的程序里有什么。opaque-payload 会报告某个技能附带了一个无法读取的二进制文件。但它无法说明该二进制文件具体做了什么。
  • 刻意规避。2026 年 7 月的一项研究表明,恶意技能经过重写或打包后,大多数时候都能绕过静态技能扫描器。Ryzek 能捕获其中一些手法——字符串重组、编码数据块——但无法捕获全部。
  • 运行中的服务器与托管服务。Ryzek 读取的是配置内容,而不是正在运行的服务器返回了什么,也不涉及您所连接服务内部的缺陷。
  • 信誉。静态分析无法告诉您某个发布者是否真如其自称的那样可信。

来源:Pillar Security,2026 年 8 月 · Ji 等人,2026 年 7 月

未来方向

现在:网页版扫描器、54 条规则、漂移检测和一个免费套餐。

下一步:付费套餐,以及 CI 集成,让扫描在技能或配置发生变化时自动运行。

正在探索:一些方法,用于察觉运行中服务器的工具何时不再与已批准的版本一致——这正是 Deadbugz 攻击活动所利用的漏洞。

关于智能体安全领域当下正在发生什么,以及这对 Ryzek 意味着什么,请参阅动态页面。

用它扫描您已经在使用的技能。

Free 套餐,包含全部规则。