Как стать автором
Поиск
Написать публикацию
Обновить

Разработчик выпустил инструмент, решающий проблему «путаницы манифестов» в NPM

Время на прочтение2 мин
Количество просмотров2.6K

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

В конце июня бывший инженер GitHub Дарси Кларк (Darcy Clarke) рассказал, что в менеджере пакетов NPM уже долгое время присутствует ошибка «путаницы манифестов» (Manifest Confusion). Суть ошибки заключается в том, что система не проверяет соответствие между содержимым пакета и его метаданными. Таким образом, в интерфейсе пакетного менеджера и в файле package.json могут находиться разные зависимости.

Фактические зависимости пакета и счётчик вкладки Dependencies
Фактические зависимости пакета и счётчик вкладки Dependencies

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

После заявления администрация NPM рассказала, что уже начала работать над исправлением, а пока посоветовала разработчикам на время отказаться от использования вкладки Dependencies для получения информации о зависимостях. Все данные просят узнавать с помощью содержимого файла package.json.

Спустя неделю системный администратор Феликс Панкратц (Felix Pankratz) выпустил утилиту на Python, предназначенную для самостоятельной проверки пакетов из NPM. Инструмент можно вызвать с помощью команды ./npm-manifest-check.py package, где вместо package передать название проверяемого пакета. Утилита сравнит данные в манифесте и файле package.json, выведя все несоответствия. Есть возможность запустить проверку целого списка пакетов.

Проверка пакета с «путаницей манифестов» (сверху) и пакета без ошибки (снизу)
Проверка пакета с «путаницей манифестов» (сверху) и пакета без ошибки (снизу)

Представители NPM пока не рассказали о том, как планируют исправить ошибку и не назвали точные сроки исправления. Активным пользователям NPM всё ещё рекомендуется внимательно проверять список зависимостей в package.json.

Теги:
Хабы:
Всего голосов 7: ↑3 и ↓40
Комментарии3

Другие новости

Ближайшие события