Контакты
Подписка 2024
Защищенный Linux
23 мая. Инструменты миграции на защищенный Linux
Регистрируйтесь на онлайн-конференцию!

Уязвимость «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
NGFW
28 июня. Комплексный подход к кибербезопасности. Защита АСУ ТП. Безопасность КИИ
Участвуйте и представляйте решения!
Статьи по темеСтатьи по теме

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

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

КАЛЕНДАРЬ МЕРОПРИЯТИЙ 2024
ПОСЕТИТЬ МЕРОПРИЯТИЯ
ВЫСТУПИТЬ НА КОНФЕРЕНЦИЯХ
СТАТЬ АВТОРОМ
SOAR, IRP, SOC
Спецпроекты журнала "Информационная безопасность"
Станьте автором издания!

Еще темы...

More...