Тема пришла из обсуждения на 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 и хостинг‑провайдеров, фиксируя всю переписку для последующего юридического использования.