Перейти к содержанию

Инцидент с захватом прав на NPM-модуль привёл к сбою в работе проектов, использующих NPM

Материал из Викиновостей, свободного источника новостей

24 марта 2016 года

В сообществе разработчиков на языке JavaScript, использующих пакетный менеджер NPM, произошёл инцидент с необоснованным захватом (Архивная копия от 3 декабря 2020 на Wayback Machine) прав на один из модулей, размещённых в репозитории NPM. В последующем, реакция автора захваченного модуля привела к нарушению работы ряда крупных проектов, в том числе Node и Babel.

Конфликт развернулся вокруг размещённого в репозитории NPM модуля kik, предоставляющего инструменты для быстрого создания новых проектов на языке JavaScript. С автором модуля связался юрист компании Kik Interactive Inc, развивающей программу для мгновенного обмена сообщениями Kik и потребовал удалить или переименовать модуль, так как его имя пересекается с зарегистрированной торговой маркой. Автор модуля (Azer Koçulu) отказался, так как имя модуля основано на термине "Kickstart", функциональность не имеет ничего общего с обменом сообщениями, а сервис Kik.com запущен уже после создания модуля kik.

После отказа юрист обратился (Архивная копия от 8 ноября 2020 на Wayback Machine) к администраторам репозитория NPM, которые не стали вступать в конфликт и передали права на модуль компании Kik Interactive Inc, которая намерена (Архивная копия от 8 ноября 2020 на Wayback Machine) заменить kik на одноимённый собственный модуль с реализацией API для доступа к её системе обмена сообщениями. Автор оригинального модуля потерял веру в открытость проекта NPM и, после продемонстрированного пренебрежения к нему, как к участнику проекта, удалил все свои разработки (Архивная копия от 19 октября 2020 на Wayback Machine) из NPM. Проблема в том, что Azer Koçulu является достаточно известным разработчиком, подготовившим 273 модуля для NPM. Так как многие модули используются в различных проектах, из-за потери зависимостей возможность сборки этих проектов при помощи NPM была блокирована.

Особенно существенные проблемы возникли из-за удаления модуля left-pad, который выполняет простейшую функцию добавления лидирующих пробелов для доведения строки до заданного размера и содержит всего 11 строк кода. В феврале было загружено около 2.5 млн копий left-pad, а среди зависимых от него разработок оказались тысячи проектов, в том числе Node, React и Babel. Неработоспособность многих крупных проектов подтолкнула администраторов NPM совершить второе злоупотребление - они восстановили left-pad в репозитории, вопреки решению автора модуля.

Удалением известных модулей также воспользовались предприимчивые деятели, которые разместили в NPM собственные подставные модули с именами, совпадающими с удалёнными модулями. Не исключено, что эти модули совершают скрытую вредоносную активность.

Итогами инцидента стали размышления о степени независимости NPM и необходимости создания действительно свободной альтернативы. Кроме того, привлечено внимание к порочности практики необдуманного использования модулей, в условия продемонстрированной простоты захвата контроля над разработкой и зависимости от решений автора модуля, который может удалить свой модуль и нарушить необходимую для сборки цепочку зависимостей. Вопросы также вызывает целесообразность использования простейших модулей, написание функциональности которых занимает несколько минут. Например, модуль isArray содержит всего одну строчку кода, но используется в 72 других пакетах и бешено популярен, например, только в течение февраля он загружен более 18 млн. раз.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Инцидент с захватом прав на NPM-модуль привёл к сбою в работе проектов, использующих NPM», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.