开发者机器端点保护

PMG:在 payload 执行前拦截每一次安装

PMG 是一个开源的包防护工具,它在所有 post-install 脚本执行之前拦截每一次 npm installpip installcargo install。对于团队来说,将 pmg 与 SafeDep Cloud 同步可以为您提供跨整个开发团队的每个 endpoint 的安装、拦截和覆盖的审计跟踪。

当前安全态势中的缺口

大多数团队都有某种形式的依赖扫描。CI 任务检查 lockfile。CVE 订阅在清单中出现已知恶意包时发出告警。如果安全体系成熟,SCA 工具会在 PR 上运行。

但这些都不会在 npm install 完成之前运行。

恶意包在 post-install 脚本中执行。payload 在包落地到磁盘的那一刻就运行了,远早于您的下一次提交或 PR。在开发者的笔记本上。在 CI 运行器中。在 AI 编码代理的沙盒化环境中。当管道扫描器发出告警时,凭证已经被盗走,逆向 shell 已经被打开,或者后门已经被安装。

eslint-config-prettier 供应链攻击遵循了完全相同的模式。Strapi 攻击活动也是如此。攻击实际上着陆的 endpoint,而大多数团队在那里没有任何防护。

PMG:您与下一次供应链攻击之间的唯一别名

pmg 包装您的包管理器。设置一个别名,每个安装命令都先经过威胁情报检测。

bash
# Install via Homebrew (macOS) brew install safedep/tap/pmg # Or download from https://github.com/safedep/pmg/releases # One-time setup: registers pmg aliases in your shell pmg setup install

之后,npm installpip installcargo install 命令都会通过 pmg 路由。无需令牌。无需账户。无需配置。

bash
pmg npm install express # [info] checking threat intelligence... # ✓ [email protected] — allowed

当它检测到问题时:

PMG 拦截恶意包安装

检查在任何 post-install 脚本触发之前进行。如果包的 verdict 是人类验证过的恶意包,则安装中止。payload 永远不会运行。

pmg 还支持依赖冷却期:一个可配置的窗口(例如五天),用于限制新发布包的安装。在冷却期内的包会被拦截,或者回退到最新符合条件的版本。这可以捕获在发布时间和检测之间的窗口期被利用的供应链攻击,在任何威胁情报 verdict 存在之前。

PMG 是免费且完全开源的:github.com/safedep/pmg

扩展到您的团队:云同步

单机上的 PMG 保护一位开发者。要在整个组织范围内覆盖,您需要跨车队中每个 endpoint 的可见性。

pmg cloud sync 将每个 endpoint 连接到您的 SafeDep Cloud 租户。身份验证后,每个包事件都会流式传输到 app.safedep.io/endpoints 的中央仪表板。

bash
# Authenticate once per machine pmg cloud login # ? tenant id: acme # ? domain: acme.safedep.io # ✓ logged in # Sync package events to SafeDep Cloud pmg cloud sync # ↑ pushing 142 package events # ↑ pushing 28 sessions # ✓ synced to app.safedep.io

Endpoint 仪表板显示每台注册的机器、其最后同步时间,以及过去 24 小时的聚合事件计数:总事件数、被拦截的安装数、活跃 endpoint 数。

SafeDep Endpoints 仪表板显示车队可见性

对于 CI 管道,在安装阶段之后添加 pmg cloud sync 作为 post-step。构建的每次包活动都成为审计跟踪的一部分。

包事件:审计跟踪

一旦 endpoint 同步,您将使用包事件而不是聚合计数。每个事件都带有生态系统(npm、PyPI、crates.io)、包名称和版本、操作(install、remove、update)以及结果。

四个结果类型是您的安全团队真正需要的:

  • allowed — 安装干净完成
  • blocked — 被威胁情报或冷却期阻止
  • override — 开发者强制安装了尽管被阻止的包
  • bypassed — 通过 flag 跳过了 pmg

overridebypassed 是操作上最有意义的。它们显示哪位开发者突破了阻止,针对哪个包,以及何时。没有这个信号,您无法了解您的强制执行被规避的频率。

每个 endpoint 的视图显示任何机器的完整包防护流,深入到单个会话:

显示会话和结果的每个 endpoint 的包事件

库存事件:机器上已经有什么

包事件涵盖开发者未来安装的内容。另一个问题是每个 endpoint 上已经安装了什么:哪些 AI 工具、MCP 服务器、CLI 工具和 IDE 扩展正在系统范围内运行。

vet endpoint scan 处理这个问题。它盘点 endpoint 上的工具并报告结果到 SafeDep Cloud,它们显示在库存标签下。

bash
# Configure authentication vet auth configure --tenant <your-domain.safedep.io> vet auth verify # Scan the endpoint (system-wide) vet endpoint scan --scope system # Or limit to the current project directory vet endpoint scan --scope project

这为安全团队提供了车队范围内的工具生态系统视图,而不仅仅是今天安装的内容。结合包事件,它回答了"这台机器上正在运行什么"和"什么时候安装了什么东西"这两个问题。

显示已发现的 AI 工具、MCP 服务器和 CLI 工具的 endpoint 库存

快速开始

对于个人开发者:

bash
brew install safedep/tap/pmg pmg setup install # Every package install is now checked. Done.

对于团队范围可见性:

bash
pmg cloud login # once per machine pmg cloud sync # after any install session, or on a schedule

对于 endpoint 库存:

bash
brew install safedep/tap/vet vet auth configure --tenant <your-domain.safedep.io> vet endpoint scan --scope system

完整的设置文档涵盖 CI 集成、策略配置和多租户部署:

endpoint 可见性改变了什么

仓库扫描和 endpoint 防护覆盖不同的时刻。仓库扫描发现您提交代码中的内容。endpoint 防护在提交存在之前就阻止了尝试运行的内容。

定义最近供应链威胁报告的攻击有一个共同点:payload 在任何公开通报、CVE 或管道告警存在之前就已执行。威胁情报只有在 endpoint 上有东西及时采取行动时才有意义。

pmg 提供了这种强制执行。云同步使其在规模上可观测。

  • pmg
  • endpoint-protection
  • supply-chain
  • npm
  • developer-security

来自 SafeDep 博客的最新内容

关注以获取开源安全与工程的最新更新和洞察