The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Атака на NPM, позволяющая определить наличие пакетов в приватных репозиториях"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Атака на NPM, позволяющая определить наличие пакетов в приватных репозиториях"  +/
Сообщение от opennews (??), 14-Окт-22, 12:24 
В NPM выявлена недоработка, позволяющая определить существование пакетов в закрытых репозиториях. Проблема вызвана разным временем реакции при запросе существующего и несуществующего пакета сторонним пользователем, не имеющего доступа к репозиторию. При отсутствии доступа для любых пакетов в приватных репозиториях сервер возвращает ошибку с кодом "404", но в случае существования пакета с запрошенным именем ошибка выдаётся с ощутимой задержкой. Атакующий может использовать данную особенность для определения наличия пакета при подборе имён пакетов по словарям...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=57918

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (1), 14-Окт-22, 12:24 
Осталось узнать как техникой перебора узнать какие пакеты есть в приватном репозитории.
Ответить | Правка | Наверх | Cообщить модератору

2. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (2), 14-Окт-22, 12:26 
> сервер возвращает ошибку с кодом "404"

Автор, какой сервер? Этих npm-серверов...

Ответить | Правка | Наверх | Cообщить модератору

37. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (-), 14-Окт-22, 18:40 
Не знаю.
Ответить | Правка | Наверх | Cообщить модератору

46. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  –1 +/
Сообщение от Аноним (46), 15-Окт-22, 01:51 
https://registry.npmjs.org/

Скопировал из первой ссылки в новости, хотя это и так было очевидно

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

3. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (3), 14-Окт-22, 12:28 
>Проблема вызвана разным временем реакции при запросе существующего и несуществующего пакета сторонним пользователем

Сразу подумал, как прочитал заголовок.

Ответить | Правка | Наверх | Cообщить модератору

11. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (11), 14-Окт-22, 13:40 
Задержка - это ещё ладно. Главное - в другом:

> пакетный менеджер npm посчитает более приоритетным публичный репозиторий и загрузит подготовленный атакующим пакет.

О_о... Привет всяким карго!

> GitHub был уведомлен о проблеме в марте, но отказался добавлять защиту от атаки.

Отказался закрыть дырищщу?! Это кто же заказал её?

Ответить | Правка | Наверх | Cообщить модератору

24. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +1 +/
Сообщение от Адмирал Майкл Роджерс (?), 14-Окт-22, 16:40 
> Это кто же заказал её?

Насколько я могу судить на основании своего прошлого опыта, информация такого рода, как правило, не разглашается.

Ответить | Правка | Наверх | Cообщить модератору

28. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  –2 +/
Сообщение от Бывалый смузихлёб (?), 14-Окт-22, 17:29 
Если какой-то балда додумался ссылаться к собственным пакетам просто по именам, то очевидно что система будет по возможности лезть в сеть и тянуть последнюю актуальную версию где бы та ни находилась если в правилах к пакету указано "тянуть свежайшую версию"
Для каких-то сильно внутренних пакетов есть много других вариантов - вплоть до просто прямой ссылки на пакет

Это не столько баг, сколько забивание гвоздей монитором с последующим невероятным удивлением что ему пришёл конец

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

29. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +2 +/
Сообщение от Аноним (11), 14-Окт-22, 17:32 
> очевидно что система будет по возможности лезть в сеть

Для какой балды это очевидно?

Ответить | Правка | Наверх | Cообщить модератору

48. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Бывалый смузихлёб (?), 15-Окт-22, 08:18 
Итак, есть система, заточенная на работу с глобальным репозиторием в первую очередь

Есть «просто пакет», у него есть просто название и версия

Где, по возможности, подобная система будет искать «просто пакет» с просто версией, тем более что названия внутренних и внешних пакетов запросто могут пересекаться ?

Если нужны какие-то исключительно локальные пакеты, то там нередко идёт прямая ссылка на пакет( будь то гит например или даже локально, на каталог пакета ) во избежание множества чудес и улучшения переносимости проекта( если какие-то мелкие пакеты были допилены исключительно под конкретный проект, то их нередко и в рамках проекта держат, из проекта же они и ставятся по ссылке )

Ответить | Правка | Наверх | Cообщить модератору

51. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (11), 18-Окт-22, 05:32 
А потом удивляемся дырам из-за таких смузихлёбов. Дыры by design.
Ответить | Правка | Наверх | Cообщить модератору

5. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  –3 +/
Сообщение от Аноним (3), 14-Окт-22, 12:39 
>GitHub был уведомлен о проблеме в марте, но отказался добавлять защиту от атаки, сославшись на архитектурные ограничения.

Вообще очень непросто защититься от такого. Это вся стандартная архитектура с базами данных сразу становится неприемлима, и возникает необходимость в специализированной дополнительной базе данных на основе иерархической хеш-таблицы с 4 операциями: запросить таблицу по ключу, безопасно проверить наличие значения в таблице по ключу, удалить значение в таблице, удалить таблицу по ключу. Получается что-то вроде реестра Windows.

Ответить | Правка | Наверх | Cообщить модератору

6. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (3), 14-Окт-22, 12:42 
>Вообще очень непросто защититься от такого.

А вообще - просто. Нужно просто на сервере измерять время операций и замедлять слишком быстрые. Подход универсален, совместим с любыми базами с поддержкой транзакций, легко интегрируется в любые базы путём добавления одного поля метаданных с верхней границей времени.

Ответить | Правка | Наверх | Cообщить модератору

7. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (3), 14-Окт-22, 12:44 
Кто-нибудь, запилите фичу для популярных баз.
Ответить | Правка | Наверх | Cообщить модератору

34. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (34), 14-Окт-22, 18:29 
Thread.Sleep(Math.Random(500));
В продакшен!
Ответить | Правка | Наверх | Cообщить модератору

41. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +1 +/
Сообщение от Аноним (3), 14-Окт-22, 20:04 
Thread.Sleep(4); // chosen by fair dice roll, guaranteed to be random
тогда
Ответить | Правка | Наверх | Cообщить модератору

12. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +1 +/
Сообщение от Аноним (11), 14-Окт-22, 13:43 
Очень просто: поменять приоритет публичных и локальных репов.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

40. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (3), 14-Окт-22, 20:02 
Проблема в том, что само название пакета и его существование может быть коммерческой тайной.
Ответить | Правка | Наверх | Cообщить модератору

50. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (50), 15-Окт-22, 10:43 
>Вообще очень непросто защититься от такого

Конечно, это очень непросто проверить наличие у юзера прав доступа до поиска а не после.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

10. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (10), 14-Окт-22, 13:38 
Просто комитить зависимости
Ответить | Правка | Наверх | Cообщить модератору

14. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Анонимemail (14), 14-Окт-22, 14:16 
Надо просто взять все популярные имена зависимостей и разместить, да и все, зачем все выяснять? :) Раз оно такое тупое, что вытянет самое новое откуда угодно.
Ответить | Правка | Наверх | Cообщить модератору

17. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (17), 14-Окт-22, 14:52 
Он упадет если нет депендесни. Надо сначала проверить.
Ответить | Правка | Наверх | Cообщить модератору

27. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (27), 14-Окт-22, 16:57 
Но ведь сначала должны проверяться права доступа. Как тогда доходит до проверки наличия или отсутствия файлов? 🤔
Ответить | Правка | Наверх | Cообщить модератору

30. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (11), 14-Окт-22, 17:34 
они всё наоборот делают.
Ответить | Правка | Наверх | Cообщить модератору

32. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от Аноним (32), 14-Окт-22, 18:04 
> В NPM выявлена недоработка...

Да ладно, серьёзно!?

Ответить | Правка | Наверх | Cообщить модератору

33. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +1 +/
Сообщение от AKTEON (?), 14-Окт-22, 18:11 
А может быть просто не надо тянуть свежие версии из публичных репозиториев без аудита ??
Ответить | Правка | Наверх | Cообщить модератору

38. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  –1 +/
Сообщение от Igraine (ok), 14-Окт-22, 19:27 
В npm можно свой user-scope или organization-scope создать тогда никто не сможет загрузить пакеты с вашим именем.
Или просто загрузить пакеты с тем же именем
Ответить | Правка | Наверх | Cообщить модератору

39. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от pashev.ru (?), 14-Окт-22, 19:38 
Какое дело честному человеку до левых репозиториев?
Ответить | Правка | Наверх | Cообщить модератору

42. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +1 +/
Сообщение от Аноним (42), 14-Окт-22, 21:15 
Какое дело честному человеку до репозиториев?
Ответить | Правка | Наверх | Cообщить модератору

45. "Атака на NPM, позволяющая определить наличие пакетов в прива..."  +/
Сообщение от darkshvein (ok), 14-Окт-22, 23:33 
нет NPM, нет и атак
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру