
pmg v0.27.0
PMGは、プロキシ、サンドボックス、およびSafeDepの脅威インテリジェンスフィードを使用して、開発者やAIエージェントを悪意のあるオープンソースパッケージから保護します。
Package Manager Guard (PMG)
悪意のあるパッケージをインストール前にブロックします。
なぜ 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 は
npm、pip、その他のパッケージマネージャーをラップします。開発者や AI エージェントは同じコマンドを使います。ワークフローの変更は不要です。 - レイヤー 1: 脅威インテリジェンス - PMG はインストール前にすべてのパッケージを SafeDep のリアルタイム脅威インテリジェンス と照合します。既知の悪意あるパッケージはブロックされます。キーもログインも不要です。
- レイヤー 2: ポリシー(依存関係クールダウン) - PMG は設定可能なクールダウン期間内に公開されたパッケージバージョンをブロックするため、最近侵害されたバージョンはその期間中スキップされます。
- レイヤー 3: オプトインサンドボックス - サンドボックスが有効化および設定されている場合、PMG は OS ネイティブのサンドボックス(デフォルトでは macOS Seatbelt、Linux Landlock、または Bubblewrap フォールバック)内でインストールを実行するため、脅威が最初の 2 つのレイヤーをすり抜けたとしても、インストールスクリプトのシステムアクセスは制限されます。
- 監査ログ - PMG はすべてのインストール(何を、いつ、どこから)をログに記録し、検証可能な監査証跡を提供します。
PMG の比較
PMG はインストール時のマルウェアブロック、依存関係クールダウン、OS ネイティブサンドボックスを 1 つの無料オープンソースツールに統合しており、開発者にも AI コーディングエージェントにも同様に利用できます。
| 機能 | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|---|---|---|---|---|
| OSS / 公開開発 | ✓ | ✗ | ✓ | ✗ | ✗ |
| アカウントや API キー不要 | ✓ | ✓ | ✓ | ✗ | ✗ |
| インストール時の悪意あるパッケージブロック | ✓ | ✓ | ✓ | ✗ | ✗ |
| 依存関係クールダウンポリシー | ✓ | ✗ | ✓ | ✗ | ✗ |
| ランタイムサンドボックス | ✓ | ✗ | ✗ | ✗ | ✗ |
| AI コーディングエージェントを透過的に保護 | ✓ | ✗ | ✗ | ✗ | ✗ |
| ローカル監査ログ | ✓ | ✗ | ✗ | ✗ | ✗ |
| 既知の CVE 修復 PR | ✗ | ✗ | ✗ | ✓ | ✓ |
注: この比較は 2026 年 10 月時点で正確です。
クイックスタート
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 # ユーザースコープ、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.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> |
実験的機能
これらのエコシステムのサポートは実験的です。動作と出力はリリースごとに変更される可能性があります。
pmg setup install はこれらのツールをラップしません。pmg 経由で実行してください。
| エコシステム | ツール | コマンド例 |
|---|---|---|
| Go | go | pmg go get <module> |
| Rust (crates) | cargo | pmg cargo add <crate> |
注: macOS および Windows では、
pmg goは OS のトラストストアに PMG CA を必要とします。先にpmg setup cert installを実行してください。詳細は Certificate Authority を参照してください。
インストール
インストールスクリプト (macOS/Linux)
GitHub から最新リリースをダウンロードし、その SHA-256 チェックサムを検証して、$HOME/.local/bin (PATH 上にある場合) または /usr/local/bin にインストールします。