
pmg v0.26.0
PMGは、プロキシ、サンドボックス、およびSafeDepの脅威インテリジェンスフィードを使用して、開発者やAIエージェントを悪意のあるオープンソースパッケージから保護します。
Package Manager Guard (PMG)
悪意のある npm および pip パッケージをインストール前にブロックします。
既に使用しているパッケージマネージャーに対する多層防御。
なぜ 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 に対して既知のマルウェアと照合します。一度インストールすれば、以降のすべての npm install、pip install、poetry add をカバーします。
PMG の仕組み
PMG は多層防御アプローチを採用しています。設定不要で、Zsh、Bash、Fish で動作し、各インストールはコードが実行される前に有効化された保護レイヤーを通過し、その後監査証跡が残ります。
レイヤーの詳細
- 透過的な傍受 - PMG は
npm、pip、その他のパッケージマネージャーをラップします。開発者や AI エージェントは同じコマンドを使用します。ワークフローの変更はありません。 - レイヤー 1: 脅威インテリジェンス - PMG はインストール前にすべてのパッケージを SafeDep のリアルタイム脅威インテリジェンス と照合します。既知の悪意のあるパッケージはブロックされます。キーもログインも不要です。
- レイヤー 2: ポリシー (依存関係クールダウン) - PMG は設定可能なクールダウン期間内に公開されたパッケージバージョンをブロックするため、最近侵害されたバージョンはその期間中スキップされます。
- レイヤー 3: オプトインサンドボックス - サンドボックスが有効化および設定されている場合、PMG は OS ネイティブのサンドボックス (デフォルトでは macOS Seatbelt、Linux Landlock、または Bubblewrap フォールバック) 内でインストールを実行するため、脅威が最初の 2 つのレイヤーをすり抜けたとしても、インストールスクリプトのシステムアクセスは制限されます。
- 監査ログ - PMG はすべてのインストール (何を、いつ、どこから) を記録し、検証可能な監査証跡を残します。
PMG の比較
PMG は、開発者と AI エージェントの両方をカバーし、サンドボックスとクールダウンを標準搭載した唯一の無料オープンソースのインストール時パッケージファイアウォールです。
| 機能 | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|---|---|---|---|---|
| OSS / 公開開発 | ✓ | ✗ | ✓ | ✗ | ✗ |
| アカウントや API キー不要 | ✓ | ✓ | ✓ | ✗ | ✗ |
| インストール時の悪意のあるパッケージブロック | ✓ | ✓ | ✓ | ✗ | ✗ |
| 依存関係クールダウンポリシー | ✓ | ✗ | ✓ | ✗ | ✗ |
| ランタイムサンドボックス | ✓ | ✗ | ✗ | ✗ | ✗ |
| AI コーディングエージェントを透過的に保護 | ✓ | ✗ | ✗ | ✗ | ✗ |
| ローカル監査ログ | ✓ | ✗ | ✗ | ✗ | ✗ |
| 既知の CVE 修復 PR | ✗ | ✗ | ✗ | ✓ | ✓ |
クイックスタート
1. インストール
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Homebrew、npm、その他のインストール方法については インストール を参照してください。
2. セットアップ
PMG をシェルに組み込み、パッケージマネージャーを傍受できるようにします。
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 を実行間で永続化し、OS のトラストストアで信頼する (macOS や Windows の Go など、CA 環境変数を無視するツールに必要) には、 一度インストールします:
pmg setup cert install # user scope, no sudo pmg setup cert status # check trust state and expiryスコープ、ローテーション、削除については Certificate Authority を参照してください。
3. 使用
PMG が脅威をブロックする様子を確認します。
npm install --no-cache --prefer-online [email protected]
注:
safedep-test-pkgは、テストと検証を目的として SafeDep のデータベースで悪意があるとフラグ付けされた無害なテストパッケージです。
パッケージマネージャーを通常どおり使い続けるか、AI コーディングエージェントに実行させてください。PMG は経路上に位置し、悪意のあるパッケージをブロックします。
npm install express
# or
pip install requests
サポートされているパッケージマネージャー
PMG は既に使用しているツールをサポートしています:
| エコシステム | ツール | コマンド例 |
|---|---|---|
| Node.js | npm | npm install <pkg> |
pnpm | pnpm add <pkg> | |
yarn | yarn add <pkg> | |
bun | bun add <pkg> | |
aube | aube add <pkg> | |
npx | npx <pkg> | |
pnpx | pnpx <pkg> | |
aubx | aubx <pkg> | |
aubr | aubr <script> | |
| Python | pip | pip install <pkg> |
pipx | pipx run <pkg> | |
poetry | poetry add <pkg> | |
uv | uv add <pkg> | |
uvx | uvx <pkg> |
インストール
インストールスクリプト (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