Темная сторона open source: как протокол Tea захламляет менеджер пакетов npm
Новости Отредактировано
Порой принципы свободного ПО вставляют палки в колеса сообществу
237 открытий4К показов
В апреле 2024 года команда Phylum Research выявила масштабное распространение спам-пакетов в npm, связанных с протоколом Tea.
Этот децентрализованный проект обещает вознаграждение разработчикам за их вклад в open source в виде криптовалюты.
По данным свежего исследования, около четверти всех пакетов, опубликованных в npm во II квартале 2024 года, связаны с Tea и не имеют никакой ценности, кроме искусственного увеличения вклада разработчиков.
Как это работает
Протокол Tea использует модифицированный алгоритм PageRank под названием teaRank, который награждает разработчиков на основе их «доказательства вклада».
Как и в случае с SEO-спамерами, разработчики нашли способы злоупотреблять этим механизмом, заливая репозитории огромным количеством бессмысленных пакетов.
Масштабы проблемы
С начала 2024 года количество пакетов, ежедневно публикуемых в npm, резко возросло. В пиковый день, 8 апреля 2024 года, их было опубликовано более 48 000.
При этом из примерно 890 000 новых пакетов, появившихся с февраля, 68-74% — мусор.
Опасности для экосистемы
Хотя пока не выявлено прямой вредоносности этих спам-пакетов, они создают множество проблем.
Во-первых, такие пакеты могут затруднить работу с реальными зависимостями, усложняя процесс проверки безопасности и качества. Во-вторых, их наличие может искажать данные, используемые для обучения моделей ИИ, приводя к нежелательным результатам.
Пример: пакет sournoise
Пакет sournoise
, на первый взгляд, имеет зависимость только от популярного axios
.
Однако, внутри package.json
также указана зависимость от сомнительного пакета @putrifransiska/kwonthol36
, что скрыто на сайте npm. Это показывает, как спам-пакеты могут проникать в проект через транзитивные зависимости.
Стоит понимать, что загрязнение open source экосистемы спамом вредит всем. Проект Tea пытается бороться с этим, а npm уже начал удалять злоумышленников.
Однако темпы удаления не успевают за темпами появления новых пакетов. Проблема также касается и других платформ, таких как Rubygems.
237 открытий4К показов