Обложка канала

Linux / Линукс

Все о мире Свободного Программного обеспечения 🐧

Linux / Линукс

4 года назад
Открыть в
Атака на NPM, позволяющая определить наличие пакетов в приватных репозиториях В NPM выявлена недоработка, позволяющая определить существование пакетов в закрытых репозиториях. Проблема вызвана разным временем реакции при запросе существующего и несуществующего пакета сторонним пользователем, не имеющего доступа к репозиторию. При отсутствии доступа для любых пакетов в приватных репозиториях сервер registry.npmjs. org возвращает ошибку с кодом "404", но в случае существования пакета с запрошенным именем ошибка выдаётся с ощутимой задержкой. Атакующий может использовать данную особенность для определения наличия пакета при подборе имён пакетов по словарям. Определение имён пакетов в закрытых репозиториях может потребоваться для совершения атаки через смешивание зависимостей, манипулирующей пересечением имён зависимостей в публичных и внутренних репозиториях. Зная, какие внутренние NPM-пакеты присутствуют в корпоративных репозиториях, атакующий может разместить пакеты с теми же именами и более новыми номерами версий в публичном репозитории NPM. Если при сборке внутренние библиотеки явно не привязаны в настройках к своему репозиторию, пакетный менеджер npm посчитает более приоритетным публичный репозиторий и загрузит подготовленный атакующим пакет. GitHub был уведомлен о проблеме в марте, но отказался добавлять защиту от атаки, сославшись на архитектурные ограничения.