LINUX.ORG.RU
ФорумTalks

атаку на зависимости уже обсуждали?

 


1

0

не на алкогольную и прочие... а

Представлен поразительный по своей простоте метод атаки на зависимости в приложениях, при разработке которых используются внутренние репозитории пакетов. Выявившие проблему исследователи смогли выполнить свой код на внутренних серверах 35 компаний, среди которых PayPal, Micrоsoft, Apple, Netflix, Uber, Tesla и Shopify. Взломы проводились в рамках программ Bug Bounty, согласованно с атакуемыми компаниями, и уже принесли авторам 130 тысяч долларов, выплаченных в форме вознаграждений за выявление уязвимостей (выплаты продолжают поступать).

https://www.opennet.ru/opennews/art.shtml?num=54566

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

CD Projekt взломали — хакеры получили исходный код игр и внутренние документы компании

★★★★★

КО?

CDPR тут к чему?

UPd.
Суть в том, что кроме явной зависимости во всяких языковых ПМ оказалось, что публичные приоритетней локальных.

boowai ★★★★ ()
Последнее исправление: boowai (всего исправлений: 2 )

Представлен поразительный по своей простоте метод атаки на зависимости в приложениях,

Она настолько очевидна, что в Debian (где сопровождающие работают не за зарплату) пакеты собираются на машинах без доступа в интернет.

gag ★★★★★ ()

Вообще-то если кто-то заимел доступ в публичный репозиторий и может подписывать пакеты легитимным ключом, то это уже серьёзные проблемы. Он и существующие пакеты может подменить, не обязательно новые с именами из приватных реп добавлять.

Harald ★★★★★ ()
Последнее исправление: Harald (всего исправлений: 1 )

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

Да, из-за добавления зависимости от rust да ещё и cargo, новый Firefox 85 (с устранением уязвимостей) не мог быть собран в Debian в течение 10 дней. Mozilla прописала, что нужно использовать слишком свежую версию cargo. (Там ведь супер-важные фичи добавлены, чтобы загрузить пакет и вызвать компилятор!)

gag ★★★★★ ()

когда программисты пишут свой пакетный менеджер

Так, а кто тогда должен писать пакетный менеджер для программистов ?

DawnCaster ★★ ()

Не знаю, как на счет NPM и других, но питоновский PIP должен умереть, конечно. Постоянные поломки в минорных версиях; и бывают даже какие-то изменения в самой инфраструктуре pip, что конкретный локальный requirements.txt c жестко заданными версиями (типа ==3.2.1) перестает работать. (как произошло с cryptography на днях).

Мнимое удобство таких менеджеров переоценено, ящитаю.

zendrz ★★ ()
Последнее исправление: zendrz (всего исправлений: 2 )
Ответ на: комментарий от Harald

Ты не очень понял суть проблемы. Допустим, у тебя внутри компании есть либа libfoo, и информация об этом выплыла наружу (с js это вообще сплошь и рядом, с другими языками тоже реализуемо); атакующий идет на npmjs/pypi/rubygems и создает там свою libfoo с версией 9999, и в setup-файле делает всю чернь. Твоя система управления пакетами смотрит в packages файл, в котором ты не зафиксировал жестко libfoo==1.2.3, и выкачивает более новую из публичной репы. Поздравляю, твою компанию поимели.

leave ★★★★★ ()
Ответ на: комментарий от zendrz

npm еще хуже. А gem просто должен сдохнуть в тяжких муках.

leave ★★★★★ ()

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

Reset ★★★★★ ()
Ответ на: комментарий от Harald

Эм. Ты можешь прямщас пойти и залить свой пакет туда.

leave ★★★★★ ()
Ответ на: комментарий от Harald

И ни разу не видел пакетных менеджеров для скриптовых языков? Счастливчик. Вообще это все началось с CPAN (1993 год), но там хоть какой-то контроль был. А потом появился pypi (2000) и rubygems (2003) и все полетело в ад. А гошечники вообще с гитхабов левых чуваков тянут код, поэтому все книжки по коммерческой разработке на go начинаются с рассказа про вендоринг.

Неужто ты не слышал историю https://www.theregister.com/2016/03/23/npm_left_pad_chaos/?

https://habr.com/ru/post/280099/

leave ★★★★★ ()
Последнее исправление: leave (всего исправлений: 1 )
Ответ на: комментарий от Harald

Все очень плохо. Это карточный домик, построенный на «доверии» (на самом деле на желании упростить себе жизнь) и мантре про code reuse. В мире js это вообще возведено в абсолют.

leave ★★★★★ ()
Ответ на: комментарий от fernandos

Тут сложный вопрос на самом деле. Сложность софта всё возрастает и возрастает, в ответ на рост структурной сложности (алгоритмическая растет куда менее сильно) - появляются новые языки, новые подходы к разработке, новые методы и автоматизация сборки, новые механизмы переиспользования стороннего кода - то есть те самые модули, фреймворки, пакеты. А для сокращения издержек на обслуживание внешнего кода - появляются такие вот пакетные менеджеры для языков программирования. Я думаю, это вполне нормальный процесс и с этим ничего нельзя сделать.

Разве только можно не пускать подобные техники разработки в чисто системные языки вроде C и C++, т.к они нацелены на выполнение системных задач. Собственно, по-этому я против существования подобных вещей в том-же расте. Но в более высокоуровневых средах и языках - почему-бы и нет. О безопасности, конечно, нельзя забывать, но это расплата на удобство. Если web-макаки начнут писать сайты на C - нас ждут куда более серьезные баги и уязвимости на самом-то деле.

DawnCaster ★★ ()
Ответ на: комментарий от Harald

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

DawnCaster ★★ ()
Последнее исправление: DawnCaster (всего исправлений: 1 )

Зависимости - основное зло Линукса. Я это говорю с 2000-го года, и всегда буду говорить.

lenin386 ★★★ ()

вот это рофл так рофл, спасибо что принес

BOSS-NIGGER ()
Последнее исправление: BOSS-NIGGER (всего исправлений: 1 )
Ответ на: комментарий от Reset

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

Давай накинь еще, что все эти зависимости проходят ревью ИБ :) Посмеемся все вместе.

У себя их сохраняют не совсем по этой причине, а чтобы билды не ломались от пионеров, которые решили выпилить свой код или решить, что теперь что-то продается. Как это случилось на днях с клаудерой, которая закрыла свои старые свободные сборки на подписку.

stave ★★★★★ ()

Тоже удивился, когда в первый раз деплоил пакет в центральный репозиторий npm, и обнаружил, что могу указать в качестве префикса («имя организации» это там кажется называется) любое еще не занятое значение.

В центральном репозитории maven, чтобы задеплоить артефакт в группу com.example, ты обязан подтвердить, что домен example.com принадлежит тебе. В свете этого непонятно, почему maven упомянут в этой новости.

orm-i-auga ★★★★★ ()
Последнее исправление: orm-i-auga (всего исправлений: 4 )
Ответ на: комментарий от stave

Давай накинь еще, что все эти зависимости проходят ревью ИБ :)

В нормальных конторах так и есть, а ты как думал?

Reset ★★★★★ ()
Ответ на: комментарий от DawnCaster

модули, фреймворки, пакеты

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

Разве только можно не пускать подобные техники разработки в чисто системные языки вроде C и C++, т.к они нацелены на выполнение системных задач.

А туда они и не попадут. Из живых знаю конан, вроде работал, но, к счастью, без него можно спокойно обойтись.

Если web-макаки начнут писать сайты на C - нас ждут куда более серьезные баги и уязвимости на самом-то деле.

Увы, увы, начнут. Не все (большинство просто не поймёт, что такое указатель), не сразу, но начнут.

fernandos ★★★ ()
Ответ на: комментарий от DawnCaster

Так, а кто тогда должен писать пакетный менеджер для программистов ?

системные программисты.

crypt ★★★★★ ()
Ответ на: комментарий от Reset

В нормальных конторах так и есть, а ты как думал?

Реально сидит отдел ИБ, которые ковыряет все сырцы всех пакетов, которые нужны разработке в данный момент? Блин, а можешь сфоткать?

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

stave ★★★★★ ()
Ответ на: комментарий от fernandos

А туда они и не попадут.

А как-же Rust со своим crates, или GO который берёт «модули» вообще откуда угодно ? Оба ведь позиционируются как системные языки.

DawnCaster ★★ ()
Последнее исправление: DawnCaster (всего исправлений: 1 )
Ответ на: комментарий от stave

Реально сидит отдел ИБ, которые ковыряет все сырцы всех пакетов, которые нужны разработке в данный момент? Блин, а можешь сфоткать?

Конечно. Разработка в данный момент может использовать какие угодно пакеты, но если она потащит свой код в продакшен, то пакеты придется согласовывать. А как еще иначе?

Reset ★★★★★ ()
Ответ на: комментарий от Reset

Так согласовывать или кто-то реально будет инспектировать все пакеты? Вот прям все полторы тыщи в каком-нибудь средней руки фронте?

stave ★★★★★ ()
Ответ на: комментарий от stave

Так согласовывать или кто-то реально будет инспектировать все пакеты?

И согласовывать и инспектировать. Инспектирует обычно автоматика.

Вот прям все полторы тыщи в каком-нибудь средней руки фронте?

За полторы тыщи увольнять надо.

Reset ★★★★★ ()
Ответ на: комментарий от Reset

За полторы тыщи увольнять надо.

У вас на фронте весь js-код самописный?

leave ★★★★★ ()
Ответ на: комментарий от DawnCaster

Раст позволяет не использовать крэйтс и карго.  ИМХО, го позиционирует себя как вообще универсальный нескучный язык.

fernandos ★★★ ()
Ответ на: комментарий от fernandos

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

DawnCaster ★★ ()
Ответ на: комментарий от Reset

За полторы тыщи увольнять надо.

Ну за полторы тысячи лэфтпадов — да, а так, в джаваскрипте велосипедирование очень развито.

fernandos ★★★ ()
Ответ на: комментарий от fernandos

Проблема не языка, а сообщества.

про сообщество верно... ведь эти люди из топика могли такой вклад в опенсорс сделать...

crypt ★★★★★ ()
Ответ на: комментарий от zendrz

Да, тоже вчера был останов пайплайна из-за транзитивного cryptography в проекте никак не связанном с криптографией. Я так понял, выложили 3.4.3 без колёс, или с колёсами, такими же, но другими(tm) и оно решило пересобраться из исходников.

d_a ★★★★★ ()

Атаку на традиционные ценности уже обсуждали?

vertexua ★★★★★ ()
Ответ на: комментарий от fernandos

да не, ты только подумай! «код на внутренних серверах 35 компаний»! можно вообще всю индустрию на уши поставить! весь мир перевернуть. вот завтра бы мы проснулись, а тут открыто, что хочешь... любой коммерческий софт... и все пытаются к этому приспособиться... а сколько бы грязных тайн открылось... а это ... уже принесли авторам 130 тысяч ... это о скучных людях.

crypt ★★★★★ ()
Ответ на: комментарий от crypt

Ну ничего, через месяц-другой найдут ещё дыры в безопасности нпм (из-за разработчиков или пользователей), там посмотрим.

fernandos ★★★ ()
Ответ на: комментарий от fernandos

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

crypt ★★★★★ ()
Ответ на: комментарий от crypt

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

fernandos ★★★ ()
Ответ на: комментарий от fernandos

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

crypt ★★★★★ ()
Ответ на: комментарий от Reset

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

stave ★★★★★ ()
Ответ на: комментарий от crypt

Будьте реалистичней, в долгосрочной перспективе свобода всегда побеждает, так было и будет всегда. Основные продукты данной компании загибаются или на пути туда. Офис? Можно под вайном на линуксе, можно свободный либре или онлиофис.  Виндовс? Да уже вроде преимуществ почти нет. Недавно имел дело с вижуал студио (не код), этим можно людей пытать. Да джетбрейнс делает лучше. На линуксе работают игры, работают программы для винды. Он уже пригоден для обычного пользователя, он развивается, он растёт.

fernandos ★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)