URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 128669
[ Назад ]
Исходное сообщение
"Атака на NPM, позволяющая определить наличие пакетов в приватных репозиториях"
Отправлено opennews , 14-Окт-22 12:24
В NPM выявлена недоработка, позволяющая определить существование пакетов в закрытых репозиториях. Проблема вызвана разным временем реакции при запросе существующего и несуществующего пакета сторонним пользователем, не имеющего доступа к репозиторию. При отсутствии доступа для любых пакетов в приватных репозиториях сервер возвращает ошибку с кодом "404", но в случае существования пакета с запрошенным именем ошибка выдаётся с ощутимой задержкой. Атакующий может использовать данную особенность для определения наличия пакета при подборе имён пакетов по словарям...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=57918
Содержание
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 12:24 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 12:26 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 18:40 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 01:51 , 15-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 12:28 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 13:40 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Адмирал Майкл Роджерс, 16:40 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Бывалый смузихлёб, 17:29 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 17:32 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Бывалый смузихлёб, 08:18 , 15-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 05:32 , 18-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 12:39 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 12:42 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 12:44 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 18:29 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 20:04 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 13:43 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 20:02 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 10:43 , 15-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 13:38 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 14:16 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 14:52 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 16:57 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 17:34 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 18:04 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,AKTEON, 18:11 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Igraine, 19:27 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,pashev.ru, 19:38 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,Аноним, 21:15 , 14-Окт-22
- Атака на NPM, позволяющая определить наличие пакетов в прива...,darkshvein, 23:33 , 14-Окт-22
Сообщения в этом обсуждении
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 12:24
Осталось узнать как техникой перебора узнать какие пакеты есть в приватном репозитории.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 12:26
> сервер возвращает ошибку с кодом "404"Автор, какой сервер? Этих npm-серверов...
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 18:40
Не знаю.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 15-Окт-22 01:51
https://registry.npmjs.org/Скопировал из первой ссылки в новости, хотя это и так было очевидно
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 12:28
>Проблема вызвана разным временем реакции при запросе существующего и несуществующего пакета сторонним пользователемСразу подумал, как прочитал заголовок.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 13:40
Задержка - это ещё ладно. Главное - в другом:> пакетный менеджер npm посчитает более приоритетным публичный репозиторий и загрузит подготовленный атакующим пакет.
О_о... Привет всяким карго!
> GitHub был уведомлен о проблеме в марте, но отказался добавлять защиту от атаки.
Отказался закрыть дырищщу?! Это кто же заказал её?
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Адмирал Майкл Роджерс , 14-Окт-22 16:40
> Это кто же заказал её?Насколько я могу судить на основании своего прошлого опыта, информация такого рода, как правило, не разглашается.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Бывалый смузихлёб , 14-Окт-22 17:29
Если какой-то балда додумался ссылаться к собственным пакетам просто по именам, то очевидно что система будет по возможности лезть в сеть и тянуть последнюю актуальную версию где бы та ни находилась если в правилах к пакету указано "тянуть свежайшую версию"
Для каких-то сильно внутренних пакетов есть много других вариантов - вплоть до просто прямой ссылки на пакетЭто не столько баг, сколько забивание гвоздей монитором с последующим невероятным удивлением что ему пришёл конец
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 17:32
> очевидно что система будет по возможности лезть в сетьДля какой балды это очевидно?
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Бывалый смузихлёб , 15-Окт-22 08:18
Итак, есть система, заточенная на работу с глобальным репозиторием в первую очередьЕсть «просто пакет», у него есть просто название и версия
Где, по возможности, подобная система будет искать «просто пакет» с просто версией, тем более что названия внутренних и внешних пакетов запросто могут пересекаться ?
Если нужны какие-то исключительно локальные пакеты, то там нередко идёт прямая ссылка на пакет( будь то гит например или даже локально, на каталог пакета ) во избежание множества чудес и улучшения переносимости проекта( если какие-то мелкие пакеты были допилены исключительно под конкретный проект, то их нередко и в рамках проекта держат, из проекта же они и ставятся по ссылке )
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 18-Окт-22 05:32
А потом удивляемся дырам из-за таких смузихлёбов. Дыры by design.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 12:39
>GitHub был уведомлен о проблеме в марте, но отказался добавлять защиту от атаки, сославшись на архитектурные ограничения.Вообще очень непросто защититься от такого. Это вся стандартная архитектура с базами данных сразу становится неприемлима, и возникает необходимость в специализированной дополнительной базе данных на основе иерархической хеш-таблицы с 4 операциями: запросить таблицу по ключу, безопасно проверить наличие значения в таблице по ключу, удалить значение в таблице, удалить таблицу по ключу. Получается что-то вроде реестра Windows.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 12:42
>Вообще очень непросто защититься от такого. А вообще - просто. Нужно просто на сервере измерять время операций и замедлять слишком быстрые. Подход универсален, совместим с любыми базами с поддержкой транзакций, легко интегрируется в любые базы путём добавления одного поля метаданных с верхней границей времени.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 12:44
Кто-нибудь, запилите фичу для популярных баз.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 18:29
Thread.Sleep(Math.Random(500));
В продакшен!
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 20:04
Thread.Sleep(4); // chosen by fair dice roll, guaranteed to be random
тогда
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 13:43
Очень просто: поменять приоритет публичных и локальных репов.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 20:02
Проблема в том, что само название пакета и его существование может быть коммерческой тайной.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 15-Окт-22 10:43
>Вообще очень непросто защититься от такогоКонечно, это очень непросто проверить наличие у юзера прав доступа до поиска а не после.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 13:38
Просто комитить зависимости
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 14:16
Надо просто взять все популярные имена зависимостей и разместить, да и все, зачем все выяснять? :) Раз оно такое тупое, что вытянет самое новое откуда угодно.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 14:52
Он упадет если нет депендесни. Надо сначала проверить.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 16:57
Но ведь сначала должны проверяться права доступа. Как тогда доходит до проверки наличия или отсутствия файлов? 🤔
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 17:34
они всё наоборот делают.
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 18:04
> В NPM выявлена недоработка...Да ладно, серьёзно!?
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено AKTEON , 14-Окт-22 18:11
А может быть просто не надо тянуть свежие версии из публичных репозиториев без аудита ??
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Igraine , 14-Окт-22 19:27
В npm можно свой user-scope или organization-scope создать тогда никто не сможет загрузить пакеты с вашим именем.
Или просто загрузить пакеты с тем же именем
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено pashev.ru , 14-Окт-22 19:38
Какое дело честному человеку до левых репозиториев?
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено Аноним , 14-Окт-22 21:15
Какое дело честному человеку до репозиториев?
"Атака на NPM, позволяющая определить наличие пакетов в прива..."
Отправлено darkshvein , 14-Окт-22 23:33
нет NPM, нет и атак