AI 搜索公司 Perplexity 宣布开源其内部网络安全风险扫描工具 Bumblebee,为行业应对软件供应链投毒提供了新的技术手段。这是一款完全使用 Go 语言编写的只读清单收集器,专为 macOS 和 Linux 开发者终端设计,零非标准库依赖。Perplexity 内部已经用它保护着旗下搜索产品、Comet 浏览器和 Computer 智能体背后的开发者系统。

Bumblebee 解决的核心问题说起来很简单:当一份安全公告披露某个软件包、编辑器扩展或 AI 工具配置存在问题后,安全团队需要立即知道哪些开发机受到了影响。现有工具要么只覆盖构建产物和代码仓库,要么只追踪进程行为,两者都无法检查开发者本地的包管理器元数据、锁文件、扩展清单和 AI 工具配置。Bumblebee 直接读取磁盘上的元数据文件——从 npm 的 package-lock.json 到 PyPI 的 *.dist-info/METADATA,从 Go 的 go.sum 到 RubyGems 和 Composer 的清单——从而在不需要执行任何安装脚本的情况下,给出完整的本地环境清单。
之所以采用"只读"设计,是因为 npm 包可能携带 postinstall 脚本,这些脚本会在 npm install 时自动执行。换句话说,如果一个扫描器通过调用 npm 来检查暴露情况,它实际上已经触发了它本应防止的攻击。Bumblebee 从不运行安装脚本或生命周期钩子,从不调用 npm、pnpm、bun 或 pip,从不读取应用程序源代码,也不执行任何进程或网络监控——它本质上不是 EDR,而是一个纯粹的状态收集器。

Bumblebee 支持三种扫描模式:baseline(基线)扫描常见的全局和用户级包根目录、语言工具链、编辑器扩展、浏览器扩展和 MCP 配置;project(项目)模式指向配置好的开发目录如 ~/code 或 ~/src;deep(深度)模式则扫描操作员提供的根目录,通常在活跃事件响应期间用于完整 home 目录扫描。每次扫描输出结构化的 NDJSON 格式记录,每行一条,每条记录包含主机名、操作系统、架构、生态系统、包名、版本、来源文件和置信度等级,其中高置信度表示来自规范元数据的精确身份和版本,中等置信度表示身份可靠但版本或来源不完整,低置信度则仅来自配置路径或规范引用。
在生态覆盖方面,Bumblebee 目前支持 npm、pnpm、Yarn、Bun、PyPI、Go modules、RubyGems 和 Composer 八种主流包管理器;支持读取 VS Code、Cursor、Windsurf 和 VSCodium 的扩展清单;支持检测 Chrome、Comet、Edge、Brave、Arc 和 Firefox 的浏览器扩展;支持解析 MCP JSON 主机配置文件,包括 mcp.json、.mcp.json、claude_desktop_config.json、mcp_config.json、mcp_settings.json、cline_mcp_settings.json 以及 Gemini CLI 的 ~/.gemini/settings.json。需要说明的是,Bumblebee 在 v0.1 版本中不解析 Bun 的二进制锁文件格式 bun.lockb,仅支持文本格式的 bun.lock,也不解析 Codex 的 config.toml 和 Continue 的 YAML 配置格式。
Perplexity 内部将 Bumblebee 整合进一套五步工作流:首先,威胁信号来自公开披露或第三方情报;其次,Perplexity Computer 根据信号起草目录更新,创建带有生态系统、包名和版本结构化录入的条目,并附带源代码链接提交 GitHub PR;然后由人工开发者审核并合并 PR;接着在终端上运行更新后的目录执行 Bumblebee 扫描;最后将发现结果同步给安全团队。这套半自动化流程保证了威胁情报从披露到响应的高效流转。
开源这一工具的时机选择也反映了行业的紧迫感。近期活跃的供应链攻击肆虐,包括针对 npm、PyPI、RubyGems、Go modules 和 Composer 包的 Mini Shai-Hulud 系列攻击,已经波及 TanStack、SAP 和 Zapier 等多家企业。Bumblebee 的 GitHub 仓库中包含了从公开供应链攻击报告中构建的威胁情报目录,security团队可以直接使用这些现成的暴露数据库进行扫描。
Perplexity 表示,面向用户的产品安全性最终依赖于开发者系统的安全性。如果开发者的工作站被攻破,再严密的生产环境防护也会被绕过。Bumblebee 的开源代表了一种认识:供应链安全的战场正在从生产服务器转移到每一个开发者的笔记本,而防御这场战争需要比传统漏洞扫描更精确的诊断工具。
安装 Bumblebee 只需要一条命令:go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest。它需要 Go 1.25 或更高版本。安装完成后,运行 bumblebee selftest 可以使用内置测试用例验证二进制文件是否正常工作。当前发布版本为 v0.1.1,采用 Apache License 2.0 开源许可。
原文地址:https://www.perplexity.ai/hub/blog/perplexity-is-open-sourcing-bumblebee
开源地址:https://github.com/perplexityai/bumblebee