safedep/pmg
GitHub: safedep/pmg
在包安装前拦截并检测恶意开源包的命令行安全工具,为 AI 编程代理和日常开发提供软件供应链防护。
Stars: 160 | Forks: 14
Package Manager Guard (PMG)
[](https://docs.safedep.io/pmg/quickstart)
[](https://safedep.io)
[](https://discord.gg/kAGEj25dCn)
[](https://goreportcard.com/report/github.com/safedep/pmg)

Package Manager Guard (PMG)
[](https://docs.safedp.io/pmg/quickstart)
[](https://safedep.io)
[](https://discord.gg/kAGEj25dCn)
[](https://goreportcard.com/report/github.com/safed
## 为什么选择 PMG?
AI 编程代理会安装你并未选择的包。Claude Code、Cursor、Copilot、Windsurf 都会自主运行 `npm install` 和 `pip install`,而你却不知道它们在你的机器上装了什么。
PMG 确保每个包在执行前都会经过恶意软件检查,无论这是你手动选择的还是 AI 代理操作的。
1. 在安装包之前**分析**是否存在恶意软件。
2. **沙盒化**安装过程,防止系统被修改。
3. **审计**每一个包的安装事件。
只需安装一次 PMG,随后的每一次 `npm install`、`pip install` 和 `poetry add` 都会自动受到保护。
## PMG 有何不同
大多数安全工具都是在安装后进行扫描并报告漏洞。而此时,恶意代码早已经在你的机器上执行了。
PMG 会在代码执行**之前**拦截包管理器,在安装时拦截恶意包,而不是在造成损失后才进行标记。检测功能由 [SafeDep 的恶意包分析引擎](https://safedep.io) 提供支持。为了实现深度防御,PMG 使用操作系统原生的隔离机制将安装过程沙盒化,这样即使是逃避了检测的零日恶意软件也无法修改你的系统。
## 快速入门
几秒钟内即可获得保护。
### 1. 安装
**MacOS / Linux (Homebrew)**
```
brew install safedep/tap/pmg
```
**NPM**
```
npm install -g @safedep/pmg
```
### 2. 设置
配置你的 shell 以自动使用 PMG。
```
pmg setup install
# 重启终端以应用更改
```
### 3. 使用
像往常一样使用你的包管理器——或者让你的 AI 编程代理来使用它们。PMG 会在后台静默运行。
```
npm install express
# 或
pip install requests
```
通过安装一个测试包来验证 PMG 是否正在工作。这是一个无害的包,在 SafeDep 数据库中被标记为恶意包,专门用于测试:
```
npm i safedep-test-pkg@0.1.3
```
## 功能特性
| 功能特性 | 描述 |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| **AI 代理安全网** | 防止 AI 编程代理(Claude Code、Cursor、Copilot、Windsurf)安装恶意包。 |
| **恶意包防护** | 使用 [SafeDep](https://docs.safedep.io/cloud/malware-analysis) 提供针对恶意包的实时防护。 |
| **沙盒化** | 使用操作系统原生沙盒强制执行最小权限原则,以限制安装脚本。 |
| **依赖分析** | 在依赖项写入磁盘之前,对其进行直接和传递依赖的深度扫描。 |
| **事件日志** | 保留所有已安装包的可验证审计记录。 |
| **零配置** | 开箱即用,具备合理的默认安全设置。 |
| **跨 Shell 支持** | 与 Zsh、Bash、Fish 等无缝集成。 |
## 支持的包管理器
PMG 支持你已经在使用的工具:
| 生态系统 | 工具 | 状态 | 命令示例 |
| ----------- | -------- | ------ | ------------------- |
| **Node.js** | `npm` | 支持 | `npm install ` |
| | `pnpm` | 支持 | `pnpm add ` |
| | `yarn` | 支持 | `yarn add ` |
| | `bun` | 支持 | `bun add ` |
| | `npx` | 支持 | `npx ` |
| | `pnpx` | 支持 | `pnpx ` |
| **Python** | `pip` | 支持 | `pip install ` |
| | `poetry` | 支持 | `poetry add ` |
| | `uv` | 支持 | `uv add ` |
## 安装
## 信任与安全
安全是我们的首要需求。PMG 的构建是可重现且经过签名的。
* **证明**:使用 GitHub 和 npm 证明来保证制品的完整性。
* **验证**:用户可以通过加密方式证明二进制文件与源代码匹配。
* 有关验证步骤,请参阅[信任 PMG](docs/trust.md)。
## 用户指南
* [受信任的包配置](docs/trusted-packages.md)
* [代理模式架构](docs/proxy-mode.md)
* [沙盒化详情](docs/sandbox.md)
## 支持
如果 PMG 帮你拦截了一个恶意包,请[为本仓库点星](https://github.com/safedep/pmg)——这能帮助其他人发现它。
## 贡献
欢迎贡献!有关如何在本地构建和测试 PMG 的指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 遥测
PMG 收集匿名使用数据以提升项目的稳定性和可靠性。
若要禁用:`export PMG_DISABLE_TELEMETRY=true`。
Package Manager Guard (PMG)
[](https://docs.safedep.io/pmg/quickstart)
[](https://safedep.io)
[](https://discord.gg/kAGEj25dCn)
[](https://goreportcard.com/report/github.com/safedep/pmg)


[](https://api.securityscorecards.dev/projects/github.com/safedep/pmg)
[](https://github.com/safedep/pmg/actions/workflows/codeql.yml)
预期输出
``` ✗ Malicious package blocked - safedep-test-pkg@0.1.3 Reference: https://app.safedep.io/community/malysis/01KF5JYDND9XR94WNEJ2G74KY2 ✗ PMG: 1 packages analyzed, 1 blocked ```Homebrew (MacOS/Linux)
``` brew tap safedep/tap brew install safedep/tap/pmg ```NPM (跨平台)
``` npm install -g @safedep/pmg ```Go (从源码构建)
``` # 确保 $(go env GOPATH)/bin 在你的 $PATH 中 go install github.com/safedep/pmg@latest ```二进制文件下载
从 [Releases 页面](https://github.com/safedep/pmg/releases) 下载适用于你平台的最新二进制文件。标签:AI 编程安全, DevSecOps, EVTX分析, Go 语言, IP 地址批量处理, npm 安全, pip 安全, Poetry, SafeDep, 上游代理, 代理网关, 依赖包分析, 包管理器, 威胁情报, 威胁情报, 开发者工具, 开发者工具, 文档安全, 日志审计, 暗色界面, 沙箱隔离, 漏洞审计, 统一API, 网络信息收集, 自动化防护