Назад к обновлениям
New releaseAug 30, 2026

pmg v0.27.0

PMG защищает разработчиков и AI-агентов от вредоносных пакетов с открытым исходным кодом, используя прокси, песочницу и канал угроз SafeDep.

Поделиться

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?

Разработчики и ИИ-агенты для написания кода устанавливают пакеты каждый день. Каждый npm install или pip install выполняет тысячи строк кода, которые никто не проверяет.

Недавние компрометации в популярных экосистемах:

  • Mini Shai-Hulud — скомпрометировано более 300 популярных пакетов
  • litellm 1.82.8 — популярная библиотека ИИ-прокси скомпрометирована для кражи учётных данных
  • telnyx 4.87.2 — легитимный телеком- SDK захвачен на PyPI
  • pino-sdk-v2 — typosquat-пакет, замаскированный под популярный логгер pino

PMG — бесплатный, с открытым исходным кодом (Apache 2.0) и не требует учётной записи или API-ключа. Он перехватывает каждую установку пакета и проверяет её через бесплатный общедоступный API SafeDep на наличие известного вредоносного ПО до выполнения кода. Установите его один раз, и он будет защищать каждый последующий npm install, pip install и poetry 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 оборачивает npm, pip и другие менеджеры пакетов. Разработчики и ИИ-агенты используют те же команды. Никаких изменений в рабочих процессах.
  • Уровень 1: Threat Intelligence — PMG проверяет каждый пакет через аналитику угроз SafeDep в реальном времени перед установкой. Известные вредоносные пакеты блокируются. Без ключа, без входа в систему.
  • Уровень 2: Политика (Dependency Cooldown) — PMG блокирует версии пакетов, опубликованные в пределах настраиваемого окна охлаждения, поэтому недавно скомпрометированные версии пропускаются в течение этого окна.
  • Уровень 3: Песочница (по желанию) — когда песочница включена и настроена, PMG запускает установки внутри нативных песочниц ОС (macOS Seatbelt, Linux Landlock по умолчанию или запасной вариант Bubblewrap), поэтому скрипты установки имеют ограниченный доступ к системе, даже если угроза проскочит первые два уровня.
  • Журнал аудита — PMG записывает каждую установку (что, когда, откуда) для проверяемого журнала аудита.

Сравнение PMG

PMG — единственный бесплатный межсетевой экран для пакетов с открытым исходным кодом, работающий на этапе установки, который охватывает и разработчиков, и ИИ-агентов, и поставляется с песочницей и охлаждением из коробки.

ВозможностьPMGSocketsafe-chainSnykDependabot
OSS / разрабатывается публично
Без учётной записи или API-ключа
Блокировка вредоносных пакетов при установке
Политика охлаждения зависимостей
Песочница во время выполнения
Прозрачная защита ИИ-агентов для кода
Локальные журналы аудита
PR-ы по исправлению известных CVE

Быстрый старт

1. Установка

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

См. Установка для Homebrew, npm и других способов установки.

2. Настройка

Подключите PMG к вашей оболочке, чтобы он перехватывал менеджеры пакетов.

pmg setup install
# Перезапустите терминал, чтобы применить изменения

Совет: Повторно выполните pmg setup install после обновления PMG, чтобы подхватить новые параметры конфигурации.

Linux для всех пользователей / golden images: sudo pmg setup install --system — см. docs/system-install.md.

Проверьте установку и убедитесь, что защита работает:

pmg setup doctor

Необязательно: PMG проверяет HTTPS-трафик с помощью CA, создаваемого на лету и внедряемого в менеджеры пакетов при каждом запуске. Чтобы сохранить единый CA между запусками и доверять ему в хранилище доверия ОС (необходимо для инструментов, игнорирующих переменные окружения CA, например Go на macOS и Windows), установите его один раз:

pmg setup cert install          # область пользователя, без sudo
pmg setup cert status           # проверка состояния доверия и срока действия

См. Certificate Authority для областей действия, ротации и удаления.

3. Использование

Посмотрите, как PMG блокирует угрозы.

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

Примечание: safedep-test-pkg — это безвредный тестовый пакет, помеченный как вредоносный в базе данных SafeDep для целей тестирования и проверки.

Продолжайте использовать менеджеры пакетов как обычно или позвольте вашему ИИ-агенту для кода запускать их. 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/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
NPM (Кроссплатформенно)
npm install -g @safedep/pmg

Примечание: Установки через NPM могут быть хрупкими, когда Node.js управляется менеджерами версий, такими как mise или asdf. Глобальный путь npm bin меняется вместе с активной версией Node, поэтому переключение версий может оставить pmg недоступным в PATH (или указывать на старую установку). Для таких конфигураций предпочтительнее скрипт установки или Homebrew.

Go (Сборка из исходников)
# Убедитесь, что $(go env GOPATH)/bin находится в вашем $PATH
go install github.com/safedep/pmg@latest
Загрузка бинарного файла

Загрузите последний бинарный файл для вашей платформы со страницы релизов.

Образ контейнера (GHCR)

Готовые multi-arch образы (linux/amd64, linux/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

Защитите CI-рабочие процессы одним шагом. PMG анализирует каждый npm install, pip 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. Настройте поведение через входные параметры (paranoid, sandbox, cooldown-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 гарантируют целостность артефактов.
  • Проверка: Вы можете криптографически доказать, что бинарный файл соответствует исходному коду.
  • См. Trusting PMG для шагов проверки.

Руководство пользователя

Поддержка

Если PMG спас вас от плохого пакета, поставьте звёздочку этому репозиторию. Это поможет другим найти его.

Участие в разработке

Приветствуется участие в разработке. См. CONTRIBUTING.md для инструкций по сборке и тестированию.

Спасибо всем участникам ❤️

Contributors to PMG

Телеметрия

PMG собирает анонимные данные об использовании. Чтобы отключить, либо:

  • Установите disable_telemetry: true в файле конфигурации PMG, либо
  • Экспортируйте PMG_DISABLE_TELEMETRY=true.

Категории