Контакты
Подписка 2025
ITSEC 2025
Интеграция безопасности в процессы внутренней разработки. 3-4 июня на Форуме ITSEC 2025 (весна)
Регистрируйтесь и участвуйте!

Уязвимость «Manifest Confusion» в репозитории NPM позволяет злоумышленникам прописывать скрытые зависимости

29/06/23

npm-4

Популярный репозиторий для разработчиков NPM страдает от проблемы безопасности, называемой «путаница в манифестах» (Manifest Confusion), которая подрывает доверие к пакетам и даёт возможность злоумышленникам прятать вредоносный код в зависимостях или выполнять злонамеренные скрипты при установке пакетов.

NPM — это менеджер пакетов для языка программирования JavaScript, используемый по умолчанию для широко используемой среды Node.js, поясняет Securitylab. Сегодня более 17 миллионов разработчиков по всему миру используют NPM, загружая около 208 миллиардов пакетов в месяц.

Дарси Кларк, бывший инженер GitHub, обратил внимание на проблему путаницы в манифестах в своём блоге, объяснив, что несмотря на то, что его бывший работодатель знал об этой проблеме по крайней мере с ноября 2022 года, мало что было сделано для устранения связанных с ней рисков.

Реестр NPM чрезвычайно популярен среди разработчиков, потому что содержит широкий ассортимент пакетов, которые можно использовать для расширения функциональности приложения без необходимости дополнительной разработки.

Однако популярность репозитория делает его главной целью для злоумышленников, которые хотят распространять вредоносные пакеты, чтобы захватывать компьютеры разработчиков и вклиниваться в цепочку поставок.

Путаница в манифестах происходит тогда, когда есть несоответствие между информацией о пакете, представленной в реестре NPM, и фактическим файлом «package.json» в архиве опубликованного пакета, используемого при его установке.

И информация о манифесте, отправляемая в NPM при публикации пакета, и «package.json» содержат информацию о названии пакета, версии и других метаданных, таких как скрипты, используемые при развёртывании, зависимости сборки и т.д. Но эти данные отправляются в NPM отдельно, а платформа не проверяет их соответствие между собой. Именно поэтому информация может отличаться, но никто не будет знать об этом, пока не изучит содержание подобного пакета.

Это позволяет злоумышленникам изменять данные о манифесте, чтобы удалить зависимости и скрипты, указанные на странице пакета в репозитории. Однако эти скрипты и зависимости всё ещё существуют в файле «package.json» и будут выполняться при установке пакета.

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

«Речь идёт не просто о скрытых зависимостях. Путаница в манифестах также позволяет злоумышленникам включать в пакет скрытые скрипты установки, которые не будут отображаться на сайте NPM и их не зафиксирует большинство инструментов безопасности», — предупредил Феросс Абухадиджех, генеральный директор компании Socket.

Отчёт Дарси Кларка так или иначе привлёк внимание руководства NPM. Согласно данным представителей компании, над проблемой работают. А до того момента авторам и сопровождающим рекомендуется убрать все зависимости от данных манифеста своих пакетов и получать все метаданные кроме имени и версии из файлов «package.json».

Ещё одной защитной мерой станет использование прокси-реестра между базой данных пакетов и клиентом NPM, который мог бы реализовывать проверку на соответствие между данными манифеста и информацией в архиве.

Темы:Угрозыnpm
КИИ
Защита контейнеров и микросервисной разработки на Форуме ITSEC 2025
Регистрируйтесь и участвуйте 4 июня 2025 →
Статьи по темеСтатьи по теме

Участвуйте в проектах

редакции журнала
"Информационная безопасность" 

КАЛЕНДАРЬ МЕРОПРИЯТИЙ 2025
ПОСЕТИТЬ МЕРОПРИЯТИЯ
ВЫСТУПИТЬ НА КОНФЕРЕНЦИЯХ
СТАТЬ АВТОРОМ
ТБ Форум
Проектирование и защита API на Форуме ITSEC 2025
Посетите 3-4 июня →

Еще темы...

More...