Perplexity开源Bumblebee打造只读开发者端供应链扫描器

背景
随着供应链攻击从生产环境向开发者工作站渗透,攻击者开始利用 npm、PyPI、编辑器插件以及 AI 工具配置(MCP)植入恶意代码。传统 SBOM 与 EDR 只能覆盖构建产物或进程行为,无法实时洞悉本地开发机器的依赖与配置状态。Perplexity 为自家搜索产品 Comet 与 Computer 研发的内部安全系统正式开源,旨在填补这一盲区。
工具概述
- 名称:Bumblebee
- 语言:纯 Go,实现零第三方依赖
- 授权:Apache License 2.0
- 发布版本:v0.1.1(2026-05)
- 适用平台:macOS、Linux
Bumblebee 以 只读 方式运行,避免触发 npm、pip 等包管理器的 post‑install 脚本,从根本上防止扫描本身成为攻击入口。
工作原理
- 单次执行:每次调用完成一次完整扫描后即退出,调度由 cron、systemd、MDM 等外部工具负责。
- 输出格式:以 NDJSON(每行一条 JSON)写入标准输出,错误信息走 stderr,便于日志聚合与后续处理。
- 扫描配置:提供三种预设 profile:
- baseline:扫描全局/用户包根目录、语言工具链、编辑器与浏览器扩展、MCP 配置。
- project:聚焦开发者指定的代码目录(如
/code、/src)。 - deep:在事故响应期间对完整 HOME 目录进行全盘扫描。
扫描范围
- 语言包管理器:npm、pnpm、Yarn、Bun、PyPI、Go modules、RubyGems、Composer(读取 lockfile 与 *.dist-info/METADATA)。
- AI Agent 配置:MCP JSON 配置文件(mcp.json、.mcp.json、claude_desktop_config.json、mcp_config.json、mcp_settings.json、~/.gemini/settings.json 等)。
- 编辑器扩展:VS Code、Cursor、Windsurf、VSCodium 的 manifest 文件。
- 浏览器扩展:Chrome、Comet、Edge、Brave、Arc 以及 Firefox 的扩展清单。
注意:Bun 的二进制 lockfile(bun.lockb)以及非 JSON 的 MCP 配置(如 Codex 的 config.toml)在 v0.1 中暂不支持解析。
安全与性能优势
- 零执行风险:从不调用 npm、pip、go 等包管理器,也不运行任何 install 脚本,彻底规避扫描触发的链式攻击。
- 轻量级:仅依赖 Go 标准库,二进制文件小于 5 MB,部署成本低。
- 可追溯:每条记录均包含主机、OS、架构、生态、包名、版本、来源文件以及置信度,发现结果可回溯至具体的曝光目录(catalog)条目。
使用指南
# 安装最新二进制
GO111MODULE=on go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest
# 自检
bumblebee selftest
# 基线扫描示例
bumblebee scan --profile baseline > scan.ndjson
安全团队可自行准备 JSON 格式的曝光目录(catalog),示例结构为 { "ecosystem": "npm", "package": "lodash", "vulnerable_versions": ["<4.17.21"] },Bumblebee 在匹配到相应元数据时会输出带有 severity、catalog_id 与证据的发现记录。
行业意义与展望
Bumblebee 的出现标志着 开发者端供应链安全 正在从“事后修复”向“实时可视化”转型。随着 AI Agent(MCP)配置的普及,未来安全产品将需要统一管理语言依赖、编辑器插件、浏览器扩展以及 AI 工具配置的全景视图。Perplexity 通过开源方式提供了一个可扩展的基座,社区可以在此基础上贡献更多生态、完善深度扫描逻辑,甚至将其与 SBOM、VulnDB 等平台对接,形成端到端的供应链防护链路。
如需进一步了解或贡献代码,请访问官方仓库:https://github.com/perplexityai/bumblebee