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

pmg v0.26.0

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

Поделиться

Package Manager Guard (PMG)

Блокируйте вредоносные npm и pip пакеты до их установки.
Эшелонированная защита для уже используемых менеджеров пакетов.

safedep%2Fpmg | Trendshift

pmg в действии

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 — пакет-тайпсквот, маскирующийся под популярный логгер pino

PMG — это бесплатный, открытый (Apache 2.0) инструмент, не требующий регистрации или API-ключа. Он перехватывает каждую установку пакета и проверяет его через бесплатное сообщественное API SafeDep на наличие известных вредоносных программ до выполнения кода. Установите один раз, и он будет действовать для всех последующих npm install, pip install и poetry add.

Как работает PMG

PMG использует подход эшелонированной защиты. Нулевая конфигурация, работает в Zsh, Bash и Fish. Каждая установка проходит через включенные уровни защиты до выполнения кода, плюс остаётся журнал аудита.

Эшелонированная защита PMG: команда установки перехватывается PMG, проходит через Уровень 1 Threat Intel, Уровень 2 Cooldown, Уровень 3 Sandbox, затем выполняется с записью в журнал аудита
Описание уровней
  • Прозрачный перехват — PMG оборачивает npm, pip и другие менеджеры пакетов. Разработчики и ИИ-агенты используют те же команды. Изменений в workflow нет.
  • Уровень 1: Threat Intelligence — PMG проверяет каждый пакет через анализ угроз SafeDep в реальном времени перед установкой. Заведомо вредоносные пакеты блокируются. Никакого ключа или логина не требуется.
  • Уровень 2: Политика (Dependency Cooldown) — PMG блокирует версии пакетов, опубликованные в настраиваемом «окне охлаждения», поэтому недавно скомпрометированные версии пропускаются в течение этого окна.
  • Уровень 3: Опциональная песочница — при включении и настройке песочницы PMG запускает установки внутри нативных ОС-песочниц (macOS Seatbelt, Linux Landlock по умолчанию или Bubblewrap как запасной вариант), так что скрипты установки имеют ограниченный доступ к системе, даже если угроза обходит первые два уровня.
  • Журнал аудита — PMG регистрирует каждую установку (что, когда, откуда) для проверяемого следа аудита.

Сравнение PMG с аналогами

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

ВозможностьPMGSocketsafe-chainSnykDependabot
Открытый исходный код / публичная разработка
Без регистрации и 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)

Готовые мультиархитектурные образы (linux/amd64, linux/arm64) публикуются в GitHub Container Registry при каждом релизе. Точка входа образа — pmg.

# Pull последнего образа (или укажите тег версии, например :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: Применить политику PMG
  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 гарантируют целостность артефактов.
  • Проверка: Вы можете криптографически доказать, что бинарный файл соответствует исходному коду.
  • См. Доверие к PMG для шагов проверки.

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

Поддержка

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

Звёзды по истории

График истории звёзд

Участие

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

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

Участники PMG

Телеметрия

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

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

Категории