返回更新列表
新发布Aug 20, 2026

pmg v0.26.0

PMG 通过代理、沙箱和 SafeDep 的威胁情报源保护开发者和 AI 代理免受恶意开源包的侵害。

分享

包管理器守卫 (PMG)

在恶意包安装之前将其拦截。

safedep%2Fpmg | Trendshift

pmg 实际运行效果

Docs Website Discord Featured in tl;dr sec

Go Report Card License Release OpenSSF Scorecard CodeQL

为什么选择 PMG?

开发者和 AI 编程代理每天都在安装软件包。每一次 npm install 或 pip install 都会执行数千行无人审查的代码。

近期热门生态系统中发生的入侵事件:

  • Mini Shai-Hulud - 300 多个热门软件包遭到入侵
  • litellm 1.82.8 - 一个热门 AI 代理库遭到入侵,用于窃取凭据
  • telnyx 4.87.2 - 一个合法的电信 SDK 在 PyPI 上被劫持
  • pino-sdk-v2 - 一个伪装成热门 pino 日志库的误植域名包

PMG 免费、开源(Apache 2.0),且无需账户或 API 密钥。 它会拦截每一次软件包安装,并在代码执行之前对照 SafeDep 的免费社区 API 检查是否存在已知恶意软件。对于未知恶意软件,它使用依赖冷却期和可选的沙箱来实现主动安全防御。

PMG 的工作原理

PMG 采用纵深防御策略。零配置,可在 Windows 上的 Zsh、Bash、Fish 和 PowerShell 中运行。每一次被拦截的安装都会在代码运行之前经过适用于它的各层保护,并留下审计记录。

PMG 纵深防御:安装命令被 PMG 拦截,依次经过第 1 层威胁情报、第 2 层冷却期、第 3 层沙箱,然后运行并记录审计日志条目
各层详情
  • 透明拦截 - PMG 封装了 npm、pip 及其他包管理器。开发者和 AI 代理使用相同的命令。无需更改工作流程。
  • 第 1 层:威胁情报 - PMG 在安装前会对照 SafeDep 的实时威胁情报 检查每个包。已知的恶意包会被阻止。无需密钥,无需登录。
  • 第 2 层:策略(依赖冷却) - PMG 会阻止在可配置冷却窗口内发布的包版本,因此在窗口期内会跳过最近被入侵的版本。
  • 第 3 层:可选沙箱 - 当沙箱启用并配置后,PMG 会在操作系统原生沙箱(默认 macOS Seatbelt、Linux Landlock,或 Bubblewrap 回退)内运行安装,因此即使威胁突破了前两层,安装脚本的系统访问权限也会受到限制。
  • 审计日志 - PMG 会记录每次安装(安装了什么、何时安装、从何处安装),以提供可验证的审计追踪。

PMG 对比

PMG 将安装时恶意软件拦截、依赖冷却和操作系统原生沙箱整合到一个免费的开源工具中,面向开发者和 AI 编码代理。

能力PMGSocketsafe-chainSnykDependabot
开源 / 公开构建✓✗✓✗✗
无需账户或 API 密钥✓✓✓✗✗
安装时恶意包拦截✓✓✓✗✗
依赖冷却策略✓✗✓✗✗
运行时沙箱✓✗✗✗✗
透明保护 AI 编码代理✓✗✗✗✗
本地审计日志✓✗✗✗✗
已知 CVE 修复 PR✗✗✗✓✓

注意: 此对比截至 2026 年 10 月准确。

快速开始

1. 安装

curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh

有关 Homebrew、npm 及其他安装方法,请参阅安装。

2. 设置

将 PMG 接入你的 shell,使其能够拦截包管理器。

pmg setup install
# Restart your terminal to apply changes

提示: 升级 PMG 后请重新运行 pmg setup install,以应用新的配置选项。

全用户 / 黄金镜像:在 Linux 上运行 sudo pmg setup install --system,或在 Windows 上以管理员身份运行 pmg setup install --system —— 参见 docs/system-install.md。

验证你的安装并确认防护已生效:

pmg setup doctor

可选: PMG 使用一个即时生成的 CA 来检查 HTTPS 流量,并在每次运行时将其注入包管理器。若要在多次运行之间持久化同一个 CA,并在操作系统的信任存储中信任它(对于忽略 CA 环境变量的工具是必需的,例如 macOS 和 Windows 上的 Go),请安装一次:

pmg setup cert install          # 用户范围,无需 sudo
pmg setup cert status           # 检查信任状态和过期时间

有关作用域、轮换和移除,请参阅 Certificate Authority。

3. 使用

查看 PMG 拦截威胁。

npm install --no-cache --prefer-online [email protected]
# or
pip install --no-cache-dir safedep-test-pkg==0.0.4

注意: safedep-test-pkg(在 npm 和 PyPI 上)是一个良性测试包,在 SafeDep 的数据库中被标记为恶意,用于 测试和验证目的。

像往常一样继续使用你的包管理器,或者让你的 AI 编码代理来运行它们。PMG 位于路径中,拦截恶意包。

npm install express
# or
pip install requests

支持的包管理器

PMG 支持你已经在使用的工具:

生态系统工具命令示例
Node.jsnpmnpm install <pkg>
pnpmpnpm add <pkg>
yarnyarn add <pkg>
bunbun add <pkg>
aubeaube add <pkg>
npxnpx <pkg>
pnpxpnpx <pkg>
aubxaubx <pkg>
aubraubr <script>
Pythonpippip install <pkg>
pipxpipx run <pkg>
poetrypoetry add <pkg>
uvuv add <pkg>
uvxuvx <pkg>

实验性

对这些生态系统的支持是实验性的。行为和输出可能在不同版本之间发生变化。 pmg setup install 不会包装这些工具。请通过 pmg 运行它们。

生态系统工具命令示例
Gogopmg go get <module>
Rust (crates)cargopmg cargo add <crate>

注意: 在 macOS 和 Windows 上,pmg go 需要将 PMG CA 安装到操作系统信任存储中。请先运行 pmg setup cert install。参见 证书颁发机构。

安装

安装脚本(macOS/Linux)

从 GitHub 下载最新版本,验证其 SHA-256 校验和,并安装到 $HOME/.local/bin(如果该目录在 PATH 中)或 /usr/local/bin。

curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Homebrew(macOS/Linux)
brew tap safedep/tap
brew install safedep/tap/pmg
mise(跨平台)

mise GitHub 后端 会安装最新的发布二进制文件,并校验其校验和与 GitHub 认证。

mise use -g github:safedep/pmg
MSI 或 Chocolatey(Windows)

每个版本都会附带 pmg_Windows_x86_64.msi。该 MSI 会为所有用户安装 pmg.exe,并运行 pmg setup install --system。请从提升权限的命令提示符中运行它:

msiexec /i pmg_Windows_x86_64.msi /qn

Chocolatey 包安装的是同一个 MSI:

choco install pmg

有关 MDM 部署和升级,请参阅 docs/system-install.md。

分类