Dev Machine Guard 正式开源:看看你的开发机上真正在运行什么

你的开发机正在运行 AI 代理、MCP 服务器、IDE 扩展和数百个软件包。你知道都有哪些吗?现在有一种免费、开源的方法可以帮你发现。

问任何一位开发者他们机器上安装了哪些开发工具,你最多只能得到一个不完整的答案。他们会知道自己的 IDE,也许还有几个扩展。但他们 AI 编程助手配置连接的 MCP 服务器呢?全局安装的 npm 软件包完整列表?哪些 AI 工具可以访问他们的 GitHub 令牌和云凭证?现代机器上的开发者工具层已经大幅扩张,而且大部分都是不可见的。

这不是通用安全工具能填补的空白。EDR 解决方案可以告诉你哪些进程正在运行并标记可疑行为,但它们对 IDE 扩展、MCP 服务器配置、AI 编程助手或跨项目安装的 npm 软件包没有任何概念。这种上下文是开发者工作流程特有的,传统安全技术栈中没有任何东西覆盖它。

StepSecurity 是最早检测到 Shai-Hulud npm 供应链攻击活动(在 Compromised 500+ 个软件包后获得了 CISA 通报)和 s1ngularity Nx 攻击事件(一个每周下载量数百万次的构建系统被武器化,通过 AI CLI 工具窃取凭证)的公司之一。在这两个案例中,检测只是战斗的一半。更困难的问题是找出组织中哪些开发者机器实际上安装了受影响的软件包、有问题的 IDE 扩展或有风险的 AI 代理配置。安全团队只能临时编写一次性脚本通过 Slack 分享,结果参差不齐且无法验证覆盖范围。

为了弥合这一差距,我们为 enterprise 客户构建了 StepSecurity Dev Machine Guard,为他们提供了一种专门构建的方式来清点和保护其整个机群的开发者工具层。

今天,我们将核心扫描引擎开源为 Dev Machine Guard,让每位开发者和每个安全团队都能免费获得这种可见性。

GitHub 仓库:​ github.com/step-security/dev-machine-guard

开发者工具层是新的攻击面

开发者工具生态系统正在快速扩展。今天一台典型的开发者机器运行一个或多个 IDE,每个 IDE 配有数十个扩展,多个 AI 编程代理,连接到外部工具和服务的 MCP 服务器,以及跨各种项目安装的数千个 npm 软件包。每一个都是供应链攻击的潜在入口点,每个都携带攻击者垂涎的权限:具有写权限的 GitHub 令牌、npm 发布凭证、SSH 密钥和云访问权限。

AI 编程代理加速了这种扩张。像 Claude Code、GitHub Copilot、Cursor 和 Codex 这样的工具会自动安装依赖、执行工具并连接到 MCP 服务器,通常拥有与开发者相同的提升权限。一位开发者可能有一个被 Compromised 的 IDE 扩展在后台自动更新,或者一个 MCP 服务器配置为连接到不受信任的端点,但没有人会知道。

今年早些时候推出 StepSecurity Dev Machine Guard 时,我们深入探讨了这个挑战。攻击不断证明这一点:你无法保护你看不到的东西,而开发者工具层是最需要可见性的地方。

Dev Machine Guard 的功能

Dev Machine Guard 是一个单一的 bash 脚本,在几秒钟内扫描你的开发者机器,并给你提供开发者工具、AI 代理、MCP 服务器配置、IDE 扩展和 Node.js 软件包的完整清单。

你现在就可以试试:

bash
curl -sSL https://raw.githubusercontent.com/step-security/dev-machine-guard/main/stepsecurity-dev-machine-guard.sh -o stepsecurity-dev-machine-guard.sh chmod +x stepsecurity-dev-machine-guard.sh ./stepsecurity-dev-machine-guard.sh

它扫描的内容如下:

类别示例
IDE 和桌面应用VS Code、Cursor、Windsurf、Zed、Claude、Copilot
AI CLI 工具Claude Code、Codex、Gemini CLI、Kiro、Aider
AI 代理Claude Cowork、OpenClaw、GPT-Engineer
AI 框架Ollama、LM Studio、LocalAI
MCP 服务器配置Claude Desktop、Cursor、Windsurf、Zed、Codex
IDE 扩展VS Code、Cursor(包含发布者元数据)
Node.js 软件包npm、yarn、pnpm、bun(可选)

该脚本生成三种格式的输出。默认是彩色格式的终端输出,你可以立即阅读。你也可以生成结构化 JSON(使用 --json)用于程序化分析,或生成自包含的 HTML 报告(使用 --html report.html)可以与团队共享。

参见 SCAN_COVERAGE.md 获取完整的检测目录。

为什么是 bash 脚本?

这是一个深思熟虑的设计选择,不是偷工减料。

首先,零依赖部署。bash 脚本在 macOS 上原生运行,无需运行时、解释器或包管理器。这在大规模部署时很重要:当你需要通过 MDM(Jamf、Kandji、Intune)将扫描部署到数百台开发者机器时,你推送脚本,它就能工作。无需安装代理,无需打包,没有兼容性问题。

其次,完全透明。开发者机器是高度特权的环境,可以访问源代码、凭证和云基础设施。安全团队有理由对在这些机器上运行不透明的二进制文件持怀疑态度。可读的 shell 脚本让你在部署前可以审查每一行代码。没有隐藏的遥测,没有你无法检查的编译逻辑。你可以准确审计收集了哪些数据以及数据去向(在社区模式下,答案是:哪里都不去,所有内容都保留在本地)。

一个脚本,社区版和企业版

在 StepSecurity,我们相信基础安全可见性应该对每个人都可以获取,而不仅仅是企业客户。这与我们的其他免费社区工具背后的理念相同:

  • Harden-Runner 用于 CI/CD 管道安全(被 10,000+ 个开源项目信任)
  • Secure Workflows 用于自动化工作流程加固
  • Dev Machine Guard 将这一承诺扩展到开发者机器层。

我们还想就一个重要的架构决策保持透明。我们的企业客户将运行这个 GitHub 仓库中完全相同的开源脚本。没有单独的闭源版本。没有"企业分支"。我们目前正在将企业部署整合为直接使用这个开源脚本。

扫描引擎、所有检测逻辑、每一行代码都公开可见。企业模式在你提供 StepSecurity 租户信息和 API 密钥时激活。有了这些凭证,脚本将扫描数据发送到 StepSecurity 后端以进行集中可见性。没有它们,脚本完全在本地运行,没有任何东西离开你的机器。

以下是两个层级分别提供的内容:

功能社区版(免费)企业版
AI 代理和工具清单
IDE 扩展扫描
MCP 服务器配置审计
彩色 / JSON / HTML 输出
Node.js 软件包扫描可选默认开启
集中仪表板
策略执行和告警
通过 launchd 计划扫描
历史趋势和报告

这种单脚本模式意味着社区贡献的每一项改进都会使企业客户受益,我们为企业用例添加的每一项检测都会对社区可用。这也意味着我们有强烈的长期投资这个项目的动机,因为我们的付费客户依赖相同的代码。

Dev Machine Guard 如何融入 StepSecurity

Dev Machine Guard 覆盖开发者机器层,但供应链攻击很少停留在一个表面。结合我们的其他工具,它在所有三个关键阶段提供可见性:

阶段工具保护内容
开发者机器Dev Machine GuardAI 代理、IDE 扩展、MCP 服务器、本地软件包
代码仓库npm Package Security软件包风险评估、冷却期、受影响软件包检测
CI/CD 管道Harden-Runner运行时监控、网络出口控制、异常检测

现代供应链攻击跨越这些边界。Shai-Hulud 攻击活动就是一个明显的例子:它 Compromise 了在开发者机器上执行的 npm 软件包,窃取了凭证,然后利用这些凭证完全绕过发布控制。防御这种多阶段攻击需要在所有三个表面上都有可见性。

开始使用

在 30 秒内完成第一次扫描:

bash
curl -sSL https://raw.githubusercontent.com/step-security/dev-machine-guard/main/stepsecurity-dev-machine-guard.sh -o stepsecurity-dev-machine-guard.sh chmod +x stepsecurity-dev-machine-guard.sh ./stepsecurity-dev-machine-guard.sh

如果你发现它有用,请 给仓库一个星标 来帮助其他人发现它。

对于想要在其开发者机群中获得集中可见性、策略执行和历史报告的团队,请开始 14 天免费试用 企业仪表板。

该项目采用 Apache 2.0 许可证。欢迎贡献,无论是为新的 AI 工具添加检测、改进文档还是报告 bug。参见 CONTRIBUTING.md 开始。