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

safer-dependencies v0.6.0

Автоматизированный уровень безопасности зависимостей для ИИ-помощников по кодированию, который проверяет пакеты на наличие CVE, typosquats, заброшенность, проблемы с возрастом версий и целостность хешей в экосистемах npm, PyPI, RubyGems, Maven, Go и Rust.

Поделиться

Safer Dependencies для Claude Code

Когда ИИ-ассистенты по написанию кода, такие как Claude, добавляют пакеты в ваш проект, они часто выбирают ту версию, которая звучит подходяще — не проверяя, есть ли у неё известные уязвимости безопасности, поддерживается ли пакет по-прежнему активно, или не является ли имя опечаткой от вредоносного двойника.

safer-dependencies — это уровень безопасности для Claude Code: он находится между Claude и вашими файлами манифестов и автоматически выполняет свои проверки безопасности: установки с уязвимостями отклоняются до их запуска, а рискованная версия, записанная в манифест, исправляется на диске сразу после записи. Он обнаруживает и исправляет рискованные зависимости — CVE, typosquatting, заброшенные пакеты и проблемы с возрастом версий, а также период охлаждения для совершенно новых релизов — в npm, PyPI, RubyGems, Maven, Go, Rust и PHP (Composer). См. CAPABILITIES.md для точного описания того, что покрывается, а что нет.

Новичок? GETTING-STARTED.md проведёт вас от нуля до рабочей установки примерно за пять минут.

Безопасность и конфиденциальность: см. SECURITY.md (раскрытие уязвимостей), PRIVACY.md (исходящие данные, отсутствие телеметрии) и CAPABILITIES.md (от чего инструмент защищает, а от чего нет).

Лицензия (исходный код доступен — НЕ OSI «открытый исходный код»): Бесплатно для использования и модификации в своих целях, включая коммерческое использование внутри компании и создание продуктов, которые вы продаёте. Отдельная платная лицензия требуется только для монетизации самого программного обеспечения как такового — его продажи, включения в продукт или сервис, который продаётся, или предоставления его функциональности третьим лицам за плату (включая хостинг/SaaS/API). Распространение и производные работы должны сохранять лицензию и указывать этот проект. См. LICENSE (Раздел 4 об ограничении коммерческого использования); запросы на коммерческую лицензию через github.com/robert-auger.

Содержание

Начало работы

GETTING-STARTED.md проведёт вас от нуля до рабочей установки примерно за пять минут — предварительные требования, интерактивная установка и проверка. Для полного справочника по установке (глобальная/проектная/ручная установка, особенности Windows, список разрешённых разрешений, обновление и удаление) см. INSTALLATION.md.

Повседневное использование: после установки хуков ничего запускать не нужно — safer-dependencies работает автоматически в фоновом режиме. Когда Claude добавляет или устанавливает пакеты, он помечает рискованные зависимости и обновляет уязвимые версии до безопасной на месте — и блокирует установку с известной уязвимостью до её запуска — так что небезопасные пакеты обнаруживаются и исправляются без необходимости вас просить. Вы всё равно можете вызывать его напрямую в любое время: «безопасен ли [email protected]?», «проверь настройку safer-dependencies» или «покажи статистику safer-dependencies».

Что он делает

Когда Claude собирается добавить пакет в ваш проект, safer-dependencies перехватывает действие и выполняет 5 проверок:

  1. Происхождение — официальный реестр, обнаружение typosquatting (npm/PyPI/RubyGems/Maven/crates.io), возраст пакета
  2. Возраст версии — выбирает новейшую стабильную версию, опубликованную 7+ дней назад (окно охлаждения)
  3. Сканирование уязвимостей — OSV API, с нативными инструментами экосистемы (npm audit, pip-audit, bundle audit), когда они доступны
  4. Целостность hash-привязки — для строк PyPI requirements.txt с привязками --hash=sha256:... объявленный хэш проверяется на соответствие опубликованным хэшам PyPI; несовпадение выдаёт WARNING
  5. Заброшенные и устаревшие пакеты — известные заброшенные пакеты (например, paperclip, request, pycrypto, github.com/dgrijalva/jwt-go) немедленно жёстко блокируются с предложенной заменой; пакеты без стабильного релиза в течение 2+ лет получают рекомендательное предупреждение STALE:. Жёстко заблокированные пакеты удаляются из манифеста, и Claude спросит, как действовать дальше; пакеты только с пометкой устаревших остаются на месте.

Если обнаружены проблемы, Claude выдаёт предупреждения и может отступить к более безопасной версии. Все проверки записываются в ~/.claude/safer-dependencies-audit-YYYY-MM.log (один файл на календарный месяц).

Что его запускает

Навык срабатывает автоматически, когда Claude:

Операции с манифестом / установкой

  • Добавляет или обновляет пакет в package.json, requirements.txt, Gemfile, pom.xml, build.gradle, Cargo.toml, go.mod или любом другом поддерживаемом манифесте
  • Записывает import, require или use для пакета, ещё не объявленного в манифесте
  • Генерирует или обновляет lock-файл (проверяются только новые/изменённые записи)
  • Запускает установку через менеджер пакетов через Bash (npm install, bundle install, poetry install, uv sync, go mod tidy и т. д.) — Pre-Install проверяет аргументы команды, Post-Install проверяет полученный lock-файл
  • Записывает Dockerfile или CI-пайплайн (.github/workflows/*.yml и т. д.), содержащие шаги установки с закреплёнными версиями через менеджер пакетов

Вопросы выбора и рекомендаций

  • Сравнение библиотек/фреймворков: «стоит ли использовать axios или node-fetch?», «moment vs dayjs?», «что лучше X или Y?»
  • Запросы рекомендаций: «какой хороший HTTP-клиент для Python?», «порекомендуй библиотеку логирования для Go», «какой пакет обрабатывает CSV в Node?»
  • Выбор версии: «какую версию Django мне использовать?», «последний стабильный Flask?»

Выражения намерения использовать (до добавления)

  • «Я хочу использовать FastAPI для этого», «я думаю добавить Celery», «мы рассматриваем Prisma как ORM», «давай используем Tailwind»

Вопросы о здоровье и доверии к пакетам

  • «moment.js всё ещё поддерживается?», «этот gem ещё активен?», «X заброшен?», «X достиг конца жизни (EOL)?», «можно ли доверять этому пакету?», «когда faker обновлялся в последний раз?»

Команды скаффолдинга

  • npx create-react-app, npm create vite@latest, django-admin startproject, rails new, cargo new + cargo add, «создай новый проект FastAPI»

Категории