アップデート一覧に戻る
New releaseAug 30, 2026

pmg v0.27.0

PMGは、プロキシ、サンドボックス、およびSafeDepの脅威インテリジェンスフィードを使用して、開発者やAIエージェントを悪意のあるオープンソースパッケージから保護します。

共有

Package Manager Guard (PMG)

悪意のあるnpmおよびpipパッケージをインストール前にブロックします。
既に使用しているパッケージマネージャーに対する多層防御。

safedep%2Fpmg | Trendshift

pmg in action

Docs Website Discord Featured in tl;dr sec

Go Report Card License Release OpenSSF Scorecard CodeQL

PMGが必要な理由

開発者やAIコーディングエージェントは毎日パッケージをインストールしています。それぞれのnpm installpip 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 installpip installpoetry addをカバーします。

PMGの仕組み

PMGは多層防御アプローチを採用しています。設定不要で、Zsh、Bash、Fishで動作し、各インストールはコード実行前に有効化された保護レイヤーを通過し、その後監査証跡が残ります。

PMG defense in depth: install command intercepted by PMG, passed through Layer 1 Threat Intel, Layer 2 Cooldown, Layer 3 Sandbox, then run with an audit log entry
レイヤーの詳細
  • 透過的傍受 - PMGはnpmpip、その他のパッケージマネージャーをラップします。開発者やAIエージェントは同じコマンドを使用します。ワークフローの変更は不要です。
  • レイヤー1: 脅威インテリジェンス - PMGはインストール前にすべてのパッケージをSafeDepのリアルタイム脅威インテリジェンスに対してチェックします。既知の悪意のあるパッケージはブロックされます。キーやログインは不要です。
  • レイヤー2: ポリシー(依存関係クールダウン) - PMGは設定可能なクールダウン期間内に公開されたパッケージバージョンをブロックするため、最近侵害されたバージョンはその期間中スキップされます。
  • レイヤー3: オプトインサンドボックス - サンドボックスが有効化・設定されている場合、PMGはOSネイティブのサンドボックス(macOS Seatbelt、Linux Landlock(デフォルト)、またはBubblewrapフォールバック)内でインストールを実行するため、脅威が最初の2つのレイヤーをすり抜けた場合でも、インストールスクリプトのシステムアクセスが制限されます。
  • 監査ログ - PMGはすべてのインストール(何を、いつ、どこから)を記録し、検証可能な監査証跡を提供します。

PMGの比較

PMGは、開発者とAIエージェントの両方をカバーし、サンドボックスとクールダウンを標準装備した、唯一の無料・オープンソースのインストール時パッケージファイアウォールです。

機能PMGSocketsafe-chainSnykDependabot
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
# 変更を適用するにはターミナルを再起動してください

ヒント: PMGをアップグレードした後は、新しい設定オプションを反映するためにpmg setup installを再実行してください。

Linuxの全ユーザー / ゴールデンイメージ: sudo pmg setup install --systemdocs/system-install.mdを参照してください。

インストールを検証し、保護が機能していることを確認します:

pmg setup doctor

オプション: PMGは、実行ごとにパッケージマネージャーに注入するオンザフライCAでHTTPSトラフィックを検査します。単一のCAを実行間で永続化し、OSのトラストストアで信頼するには(CA環境変数を無視するツール(macOSやWindowsのGoなど)に必要)、一度インストールしてください:

pmg setup cert install          # ユーザースコープ、sudo不要
pmg setup cert status           # 信頼状態と有効期限を確認

スコープ、ローテーション、削除については証明機関を参照してください。

3. 使用

PMGが脅威をブロックする様子を確認します。

npm install --no-cache --prefer-online [email protected]

注: safedep-test-pkgは、テストおよび検証目的でSafeDepのデータベースに悪意のあるものとしてフラグ付けされた無害なテストパッケージです。

通常どおりパッケージマネージャーを使い続けるか、AIコーディングエージェントに実行させてください。PMGはパス上に存在し、悪意のあるパッケージをブロックします。

npm install express
# または
pip install requests

対応パッケージマネージャー

PMGは既に使用しているツールをサポートします:

エコシステムツールコマンド例
Node.jsnpmnpm install <pkg>
pnpmpnpm add <pkg>
yarnyarn add <pkg>
bunbun add <pkg>
npxnpx <pkg>
pnpxpnpx <pkg>
Pythonpippip install <pkg>
pipxpipx run <pkg>
poetrypoetry add <pkg>
uvuv add <pkg>
uvxuvx <pkg>

インストール

インストールスクリプト(MacOS/Linux)

GitHubから最新リリースをダウンロードし、SHA-256チェックサムを検証して、$HOME/.local/binPATH上にある場合)または/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
NPM(クロスプラットフォーム)
npm install -g @safedep/pmg

注: Node.jsがmiseasdfなどのバージョンマネージャーで管理されている場合、NPMベースのインストールは不安定になる可能性があります。グローバルなnpmのbinパスはアクティブなNodeバージョンによって変わるため、バージョンを切り替えるとpmgPATH上で利用できなくなる(または古いインストールを指す)可能性があります。このような環境では、インストールスクリプトまたはHomebrewを推奨します。

Go(ソースからビルド)
# $(go env GOPATH)/binが$PATHにあることを確認してください
go install github.com/safedep/pmg@latest
バイナリダウンロード

リリースページからお使いのプラットフォーム向けの最新バイナリをダウンロードしてください。

コンテナイメージ(GHCR)

マルチアーキテクチャ(linux/amd64linux/arm64)のプリビルドイメージが、リリースのたびにGitHub Container Registryに公開されます。イメージのエントリポイントはpmgです。

# 最新イメージをプル(またはバージョンタグを指定、例: :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest

# 任意のpmgコマンドを実行
docker run --rm ghcr.io/safedep/pmg:latest version

GitHub Actions

1ステップでCIワークフローを保護します。PMGはジョブ内のすべてのnpm installpip installなどを分析します。

- uses: safedep/pmg@v1
  with:
    server-mode: true

# HTTP_PROXY経由で自動的に傍受されます
- run: npm ci

- name: Enforce PMG policy
  if: always()
  run: pmg proxy stop --fail-on-violation   # デーモンを停止し、ブロック時にジョブを失敗させます

デフォルトではマルウェアブロックと依存関係クールダウンが有効です。サンドボックス分離はsandbox入力でオプトインできます。入力(paranoidsandboxcooldown-daysなど)で動作を調整するか、config-fileでリポジトリ内のYAMLを指定できます。完全なリファレンスはdocs/github-action.mdを参照してください。

アンインストール

シェル統合を削除します:

pmg setup remove

PMG設定ファイルも削除する場合:

pmg setup remove --config-file

次にPMG自体をアンインストールします:

# Homebrew
brew uninstall safedep/tap/pmg

# NPM
npm uninstall -g @safedep/pmg

信頼性とセキュリティ

PMGのビルドは再現可能で署名されています。

  • アテステーション: GitHubおよびnpmのアテステーションが成果物の整合性を保証します。
  • 検証: バイナリがソースコードと一致することを暗号的に証明できます。
  • 検証手順についてはPMGの信頼性を参照してください。

ユーザーガイド

サポート

PMGが悪質なパッケージからあなたを守ってくれたなら、このリポジトリにスターを付けてください。他の人が見つけやすくなります。

コントリビューション

コントリビューションを歓迎します。ビルドおよびテスト手順についてはCONTRIBUTING.mdを参照してください。

すべてのコントリビューターに感謝します ❤️

Contributors to PMG

テレメトリ

PMGは匿名の使用状況データを収集します。無効にするには、次のいずれかを実行してください:

  • PMG設定ファイルでdisable_telemetry: trueを設定する、または
  • PMG_DISABLE_TELEMETRY=trueをエクスポートする。

カテゴリ