Тема пришла из обсуждения на Reddit: в ветке r/Python пользователи спорили о том, как три новых пакета скопировали AGPL‑код автора и разместили их в PyPI. Пост собрал более четырёх тысяч голосов — значит, вопрос волнует многих разработчиков.

Что случилось

Автор проекта repowise опубликовал свой пакет в PyPI. Через несколько часов появились три новых пакета с почти идентичным описанием: «Кодовая аналитика, опережающая repowise во всех измерениях». При проверке выяснилось, что их создатели просто взяли исходный код под AGPL‑3.0, слегка подправили его с помощью генеративных моделей и выложили под другими названиями, не указав автора, не приложив лицензионный файл.

Проблема в том, что PyPI проверяет лишь метаданные, а не содержимое пакетов. Поэтому нарушители могут легко «перепродать» чужой открытый код, не соблюдая условия копилефта. Как отмечают исследователи, это создает «пробел в обеспечении соблюдения лицензий» и открывает путь для дальнейших атак, в том числе с внедрением вредоносного кода.

Голоса сообщества

«Если PyPI игнорирует ваш законный DMCA‑запрос месяц, они сами становятся соисполнителями нарушения», — Marksta.

«Самый простой путь — отправить DMCA‑уведомление хостеру Fastly, который обслуживает PyPI. Они не захотят быть замешанными в краже авторского права», — Marksta.

«Достаточно добавить файл LICENSE и ссылку на оригинальный репозиторий — две минуты работы», — mapadofu.

«Документируйте все попытки связаться с нарушителями: письма, скриншоты, диффы кода», — fathovercats.

Почему это важно

Для открытого программного обеспечения соблюдение условий лицензий — фундамент. Если крупные репозитории, такие как PyPI, не способны быстро реагировать, появляется пространство для «пакетного вандализма», который подрывает доверие к экосистеме и ставит под угрозу безопасность конечных пользователей.

Анализ рынка

В России

  • SafetyDB — сервис, сканирующий зависимости Python‑проектов на наличие уязвимостей; не проверяет лицензии.
  • PyPI‑Watcher — небольшое приложение, уведомляющее о новых версиях пакетов; не умеет отслеживать копилефт‑нарушения.
  • LicenseCheck.ru — онлайн‑инструмент для проверки лицензий в репозиториях Git; не интегрирован с PyPI.

За рубежом

  • Snyk — платформа, анализирующая уязвимости и лицензии в проектах, поддерживает Python, но требует подписки.
  • OSS Index — бесплатный сервис, собирающий данные о лицензиях и уязвимостях, но не предоставляет автоматического мониторинга новых пакетов в PyPI.
  • Dependabot — GitHub‑бот, автоматически открывающий запросы на обновление зависимостей; проверка лицензий ограничена.

Незакрытая ниша: в России нет бесплатного сервиса, который в реальном времени сканирует новые пакеты в PyPI, сравнивает их с известными репозиториями и автоматически генерирует DMCA‑уведомления при обнаружении нарушений.

💡 Идеи для предпринимательства

Сайты

  • PyPI‑License‑Guard — веб‑сервис, который ежедневно сканирует новые пакеты в PyPI, сравнивает их с открытыми репозиториями и выводит список потенциальных нарушений лицензий. Пользователь платит подписку за доступ к API и готовые шаблоны DMCA‑уведомлений.
  • OpenSource‑Audit.ru — агрегатор, позволяющий загрузить свой репозиторий и получить отчёт о совместимости с копилефт‑лицензиями, а также мониторинг «копий» в публичных реестрах.

Мобильные приложения

  • PyPI‑Alert Bot (Telegram) — бот, отправляющий push‑уведомления о появлении новых пакетов, совпадающих с вашим кодом, с готовыми шаблонами писем для DMCA.
  • License‑Watcher (Android/iOS) — приложение, позволяющее отслеживать изменения в лицензиях зависимостей проекта и получать рекомендации по их исправлению.

Бизнес‑идеи

  • Консультации по копилефт‑соответствию — индивидуальная услуга для разработчиков и небольших компаний: аудит кода, подготовка лицензий, сопровождение DMCA‑процедур.
  • Автоматический сервис подачи DMCA‑уведомлений — сервис, который после подтверждения нарушения автоматически отправляет запросы в PyPI, Fastly и хостинг‑провайдеров, фиксируя всю переписку для последующего юридического использования.

Читайте также