Transcript
00:00:00你知道供应链攻击最烦人的是什么吗?当大家都在惊慌失措时,
00:00:04问题不在于生产环境是否安全,而在于:有没有人在本地安装了这东西?
00:00:09这是 Bumblebee。它是 Perplexity 推出的一个全新开源工具,用于扫描你的开发机器,
00:00:15查找软件包、扩展程序和 MCP 配置,而无需运行包管理器或执行
00:00:21项目代码。所以,你不用手动到处翻找,几秒钟内就能得到一份本地资产清单。
00:00:26我来演示一下它的实际运行。之后我们再谈谈它在哪里有效,在哪里无效。
00:00:36过去,模式很简单:扫描仓库、扫描容器、扫描生产环境。
00:00:41但现在我们许多人的工作方式已经变了。如今,一台笔记本电脑里可能同时装着包管理器、
00:00:46浏览器扩展、编辑器扩展、AI 编码工具、本地代理,所有这些都在同一台机器上。
00:00:53这台机器承载了太多的信任。Perplexity 正是为了这个原因在内部开发了 Bumblebee,
00:00:58并在几天前将其开源。Bumblebee 是一个只读的单二进制扫描器,
00:01:05它从本地元数据中盘点软件包、编辑器扩展、浏览器扩展和 AI 工具配置。
00:01:11不需要 MPMLS,不需要 pip show,也不需要运行任何项目代码,只需要读取元数据。我们来试运行一下。
00:01:19如果你喜欢能加速工作流的编码工具,请务必订阅。我们会有源源不断的视频发布。
00:01:24好了。首先,我们需要通过 GitHub 使用 go install 来安装这个工具。
00:01:29这会给我们一个单一的 Go 二进制文件,没有守护进程,也没有服务。现在运行自检。我只需要
00:01:37运行 bumblebee self test。希望我们能得到自检通过的反馈。好了。不错。扫描器可以
00:01:46正确检测到其已知的固定数据。这就是那个测试所做的。现在运行一次基准扫描。
00:01:52我们只需要执行 bumblebee scan profile,指定 baseline,并传入
00:01:57我们的 nd.json 文件。这是我们用于常规开发者端点盘点的扫描。它会检查常见的、
00:02:05全局和用户级软件包路径、编辑器扩展、浏览器扩展以及支持的 MCP
00:02:10配置。现在来看看输出。我运行一下 head。这就是 Bumblebee
00:02:17现在所做的重要工作。每一行都是一个结构化记录。我们得到了生态系统、软件包名称、
00:02:25版本、源文件、置信度、元数据,以及 Bumblebee 找到它的位置。所以现在,
00:02:31我们不用再问自己“我是不是在系统某处安装过这个?”,我们现在可以直接在这里看到它。
00:02:36而且因为这是只读的元数据解析,Bumblebee 不会调用 NPM,不会
00:02:43导入任何 Python 包,也不会构建你的 Go 项目。它所做的仅仅是读取
00:02:50文件。这就是为什么它在事故发生时非常有用。如果你安装了 Go,这是
00:02:55暂停视频,在自己的机器上试一试的好时机。它非常容易上手。
00:03:00好吧,酷。但为什么它不是又一个安全扫描器呢?因为我们已经有很多这类工具了。初看之下,
00:03:06你可能会觉得它只是另一个 SCA(软件成分分析)工具,但其实并非如此。
00:03:12SCA 工具主要关注你的应用程序依赖项,SBOM 工具关注你交付的产品,
00:03:19EDR(端点检测与响应)关注你执行的内容。Bumblebee 关注的是本地开发环境的状态。想象一下,如果一个
00:03:26受损软件包的建议发出。你需要知道哪些笔记本电脑可能面临风险。
00:03:32最显而易见的做法是让每个人都运行包管理器命令,但这恰恰是错误的。
00:03:38如果我们是在寻找恶意行为,你肯定不希望你的命令意外触发
00:03:42恶意行为。所以 Bumblebee 很直接:读取元数据、输出资产清单、匹配已知风险,
00:03:49然后结束。就是这样。它有三种扫描模式。首先是基准扫描(Baseline)。这是你
00:03:55轻量级的定期扫描。它查看全局软件包、用户级工具链、扩展程序、
00:04:02以及 MCP 配置。基本上就是这台开发机器上通常存在的东西。这就是它返回的问题。
00:04:09然后是项目扫描(Project)。这用于已知的开发工作区
00:04:14目录,例如 code、source 或 work。当你关心实际开发文件夹中的锁定文件时,使用这个模式。
00:04:20最后,我们甚至可以让它深入扫描。这是事故响应模式。
00:04:26你将其指向具体的路径,甚至是像 home 这样广泛的范围,通常配合风险目录和
00:04:32持续时间限制。所以你平时的工作流程可能是 Bumblebee scan profile baseline。好的。当坏事
00:04:38发生时,你切换到更深度的扫描,你可以使用这条命令进行更深入的扫描。
00:04:44这就是这一切的处理流程:平时保持基准扫描,出事时进行深度扫描。
00:04:51其覆盖范围也是非常有趣的。Bumblebee 可以查看 npm、pnpm、yarn、bun、
00:04:58Go 模块等等。此外,它还可以查看支持的 MCP JSON 配置。这是一个主要功能,因为
00:05:06如今,MCP 配置正在成为新的环境变量文件。我们的系统中到处都是它们。Bumblebee 还
00:05:13输出 NDJSON 格式。有些人可能讨厌这个。但换个角度看,
00:05:18这意味着你可以把它通过管道传给 JQ,存入文件,通过 MDM 收集,摄入到 SIEM 中,
00:05:25或者交给另一个智能代理工作流。它只是想成为一种枯燥的、可脚本化的基础设施。对于
00:05:32这类问题,枯燥或许是最好的。它速度很快。真的很快。它是一个单一的 Go
00:05:38二进制文件,没有任何非标准库依赖。这是一个非常对开发者友好的切入点。这意味着
00:05:45它是安全设计的。只读方法并不是一个微小的细节。在供应链事故期间,
00:05:51直接运行包管理器看看会发生什么,并不总是最好的计划。如果你正在查看的包
00:05:58包含恶意生命周期脚本或奇怪的插件行为,你肯定不希望你的扫描器
00:06:03意外地触发它。而且,这填补了一个真正的空白。大多数团队对 CI
00:06:10有一定可见性,对容器生产环境有一定可见性,对终端也有一定可见性。但开发机器
00:06:17可能会变得很乱。它有半成品项目、旧的代码克隆、全局包、测试虚拟环境、
00:06:23AI 工具,所有这些都不会出现在你官方的资产清单中。Bumblebee 提供了一个
00:06:30实用的方式来看清这些本地状态。最后,AI 配置覆盖也非常及时。本地
00:06:36代理、MCP 服务器和工具调用工作流发展迅猛。但在使用 Bumblebee 时请记住这一点,
00:06:43它是全新的。我的意思是它非常新,刚发布不久。所以
00:06:49预计会有变化。它目前专注于 Mac OS 和 Linux。风险目录流很不错,但
00:06:54这也意味着 Bumblebee 在拥有好的建议数据时才会变得更有用。而且它不是 EDR,对吧?
00:07:02它回答的是一个更窄的问题:这台机器上存在哪些软件包、扩展程序和开发工具配置?
00:07:09其中是否有与我们已知有害内容匹配的?这就是重点。它不会取代
00:07:14你的安全堆栈。它填补了你的安全堆栈可能无法清晰看到的盲区。所以
00:07:19你应该使用 Bumblebee 吗?我的答案是肯定的,尤其是当你的日常工作
00:07:24涉及 NPM、Go、VS Code、Cursor、Claude、服务器等内容时。每周运行一次基准扫描,
00:07:32对吧?这是一条简单的命令。Bumblebee scan profile baseline,它就会执行我在这里演示的操作。
00:07:37现在你有了机器状态的快照。将 NDJSON 转储到某个中心位置。
00:07:43这样当事故发生时,你可以跨所有机器进行搜索,而不是在 Slack 上问大家,
00:07:49“嘿,有人装了这个吗?”Bumblebee 会告诉你哪些开发机器通过本地
00:07:55软件包元数据、扩展清单和支持的 AI 工具配置暴露在外。这在出现问题后的第一个小时内非常有用,
00:08:02因为没有人想争论。他们想知道谁被暴露了,在哪,以及你能多快证明它?
00:08:08为此,Bumblebee 相当令人信服。这是一个非常有力的开源工具,我们刚刚获得它。如果你喜欢这类编码工具和技巧,请务必订阅
00:08:14BetterStack 频道。
00:08:18我们在下一个视频中再见。
00:08:20我们在下一个视频中再见。
Community Posts
No posts yet. Be the first to write about this video!
Write about this video