Новости «Путаница манифестов» в NPM больше не страшна, энтузиасты решили проблему самостоятельно

NewsMaker

I'm just a script
Премиум
9,337
18
8 Ноя 2022
Новый инструмент на базе Python покажет любые скрытые зависимости в пакетах популярного репозитория.


njxsyny2li1dneaqv72hwcet7ljk2qb9.png


На прошлой неделе мы писали о том, что Дарси Кларк, бывший менеджер по разработке в GitHub и NPM , Для просмотра ссылки Войди или Зарегистрируйся о проблеме «путаницы в манифестах», которая может создать риск того, что в зависимостях скрывается вредоносное ПО или выполняются скрипты во время установки.

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

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

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

Поскольку руководство NPM пока никак не решило эту проблему и неясно, что платформа вообще планирует делать, Кларк предложил, чтобы разработчики пакетов убирали зависимость от данных манифеста и использовали прокси-реестр для проверки согласованности данных. Решение не самое удобное, но до недавнего времени единственное рабочее и безопасное.

Однако на помощь подоспел системный администратор и белый хакер Для просмотра ссылки Войди или Зарегистрируйся , который Для просмотра ссылки Войди или Зарегистрируйся на основе Python , который может помочь разработчикам быстро проверить пакеты NPM на наличие несоответствий.

Для использования инструмента сначала нужно установить менеджер пакетов Python PIP с помощью команды «pip install -r requirements.txt». А для проверки пакета нужно передать его имя скрипту в качестве первого аргумента. Например: «$./npm-manifest-check.py darcyclarke-manifest-pkg». Итоговый вывод будет подсвечивать любые несоответствия в версии, зависимостях, скриптах и имени пакета между манифестом и фактическим файлом package.json.

Для проверки нескольких пакетов можно добавить их в файл «packages.list» (по одному пакету на строку) и использовать оболочку «check_packages.sh» для их проверки. Инструмент сообщит о любых несоответствиях, обнаруженных в каждом из проверенных пакетов. А для понимания всех аспектов использования инструмента Панкратца можно получить справку с помощь команды «./npm-manifest-check.py -h».

Путаница в манифестах пока что не является широко распространенной или критической проблемой в сообществе NPM, но игнорировать её не безопасно, так как злоумышленники могут в любой момент начать использовать её для атак на цепочку поставок.
 
Источник новости
www.securitylab.ru

Похожие темы