LINUX.ORG.RU

Бэкдор в xz/liblzma

 , , ,


1

0

Ъ: https://openwall.com/lists/oss-security/2024/03/29/4

Не хочу писать перевод в новости, лучше почитать в оригинале про то как бэкдор попадает в код, как казалось бы liblzma влияет на ssh и как он через линкер подменяет функции openssl.

musl-based дистрам можно выдохнуть, более-менее старым тоже, так как бэкдор появился относительно недавно (?)

★★

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

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

Малвари, которая атакует шелл-портянки и говнокод на дидовской сишечке? Охотно верю. Но покажи мне кода на питоне, где можно настолько вольготно разместить бекдор? Где такой код?

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

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

У тебя, похоже, совсем кукуха протекла. Тебе ничто не мешает вызвать wget в башелапше. И ничто не мешает тебе не использовать pip или venv в коде на питоне. Сам питон спокойно работает без чужих серверов.

Короче говоря, ты демонстрируешь классическое сочетание токсично раздутого самомнения и вопиющей некомпетентности. Типчно для фанатиков говносишки.

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

Тут выяснилось что бекдор вставлен вовсе не оригинальным автором, а кем-то сторонним кого пустили коммимить два года назад. Сомневаюсь что в gzip кого-то левого пустят коммитить что попало.

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

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

Какая феерия! Я просто рыдаю. Тебе ведь уже прямо в лицо сунули пример вредоносного кода, написанного на замечательном позикс шелле и эффективно использующего убогость его синтаксиса. Ты просто прячешь голову в песок, попутно ругая питон, рассказывая о нем феерические небылицы.

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

Тут небезопасен формат сам по себе.

Подробности здесь - https://docs.python.org/3/library/pickle.html

Красненькое предупреждение сверху

И здесь например - https://huggingface.co/docs/hub/security-pickle

Пример эксплойта - https://ctftime.org/writeup/16723

vbcnthfkmnth123 ★★★★★
()

Сборочная система на баш дрисне идеальное место, чтобы спрятать внедрение бекдора.

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

Значит замержат через ничего не подозревающих мейнтейнеров. Шанс небольшой, но и ненулевой.

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

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

Я кстати ни разу не удивлюсь если таких случаев куда больше 1, когда configure содержит что то зловредное, все равно в автосгенеренном configure на тысячи строк никто ковыряться не станет

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от vbcnthfkmnth123

Дык, нужно специально подключать небезопасный модуль, чтобы выполнять скрипты из этих файлов. А тут достаточно нечитаемой лапши надристать. В случае с питоном тебя прямо предупреждают, — гранату в рот не класть! — а с позикс шеллом никто не ограничивает написание кульхацкерски-нечитаемой каши.

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

Ты показал. Только тут есть разница. Специально подключить модуль, который позволяет грузить потенциально опасные данные извне и запутать сам скрипт, не подключая никаких модулей.

hateWin ★☆
()
Ответ на: комментарий от cvs-255

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

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

Илита хочет показать что они не быдло какое то, да? Может и в электрощиток без обесточивания лазаете, типа настоящий специалист и так может?

В программировании и так хватает забот чтобы тратить еще и на систему сборки силы

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от a1ba

Я вообще очень офигеваю с людей, кто на фоне подобных высеров начинает ругать питон. Да по сравнению с sh, питон просто божественен

cvs-255 ★★★★★
()
Ответ на: комментарий от Iron_Bug

Если система сборки обладает настолько ублюдочным синтаксисом, что позволяет без проблем замаскировать бэкдор, эта система – говно. И никакой элитизм этого не отменяет

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

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

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

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

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

Еще раз: в коде на питоне нечитаемая портянка на 1000 строк с 30 штук ‘\’ в каждой строчке это повод спросить «что за фигня, автор?», а на sh - совершенно нормальная ситуация и никого не удивляет

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от undef

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

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

Если не знаешь синтаксис языка - таки да, нереально. По факту, прилетает портянка на тысячу строк, мэйнтейнер пакета бегло пробежался по коду, вроде всё ок, явного system(/bin/sh) нет, все ок. Это от языка мало зависит.

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

Синтаксис бывает удобопонимаемый и неудобопонимаемый. И шелл скрипты явно неудобопонимаемый синтаксис имеют

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

Лично я про питон знаю, что он есть. Его синтаксис насколько удобочитаем? Когда в репозиторий прилетит обнова на полтыщи строк, насколько тщательно мэйнтейнеры будут проверять код? Когда я предлагал NMU обновление С++ проекта в дебиан с диффом на много сотен строк, его приняли часов так через восемь. С++ удобочитаем?

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

нет, просто меня удивляет, как обезьянки воображают

Обезьянки — это люди, пытающиеся использовать вместо технических аргументов эмоции и ярлыки вроде «обезьянки». Ни одного технического аргумента я от тебя никогда не слышал. Только общие слова: те, кому не нравятся posix shell и Си — тупые макаки, а я Д’Артаньян. Это наводит на мысли о том, кто из нас в дейсвительности макака

hateWin ★☆
()
Ответ на: комментарий от cvs-255

Она этого не понимает. Она считает себя технарем, но техническими аргументами она пренибрегает, предпочитая эмоции и оскорбления. По этой причине она не понимает, что наглядные и самоочевидные решения лучше запутанных и нечитаемых

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

наглядные и самоочевидные решения

C и его синтаксис нагляден и прост как три рубля.

лучше запутанных и нечитаемых

Вы синтаксис Rust видели?

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

По сравнению с дрисней на шелле и раст и си — образец читаемости. Мы тут сборочные скрипты на шелле обсуждаем, если что.

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

https://bsky.app/profile/filippo.abyssdomain.expert/post/3kowjkx2njy2b

I’m watching some folks reverse engineer the xz backdoor, sharing some preliminary analysis with permission.

The hooked RSA_public_decrypt verifies a signature on the server’s host key by a fixed Ed448 key, and then passes a payload to system().

It’s RCE, not auth bypass, and gated/unreplayable.

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

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

В целом вроде хакеры достаточно аккуратно действовали и от их дыры доступ кому попало не откроется.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 3)
Ответ на: комментарий от undef

Его синтаксис насколько удобочитаем?

На порядок удобочитаемее. К тому же для питона есть нормальные проверяльщики стиля кода и можно автоматизированно забраковывать совсем нечитаемые портянки

С++ удобочитаем?

It depends. На C++ можно писать как нормально так и абсолютно неудобопонимаемую лапшу из смеси макросов и шаблонов, а если еще и выведение типов туда засунуть, то код легко может стать самообфусцированным

Но в целом есть хорошие практики написания кода, которые позволяют написать хорошочитаемый C++ код, а также проверяльщики стиля кода, которые выругаются на мешанину.

В то время как на шелле написание нечитаемой лапши это скорее общая практика, порой ощущение что среди шелл-программистов проходит негласное соревнование кто напишет более неудобопонимаемую кашу

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

It depends

Это о любом языке. Появится в проекте автогенерируемый файл - скорее всего придется для него отключать линтер. А читаемость - понятие весьма субъективное. В языках есть свои традиции, идиомы. Например, неподготовленного конструкция типа while(*a++=*b++); может вогнать в тоску.

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

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

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

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

В контексте хз-эпика язык не решает от слова совсем. Автогенеренная хрень нечитаема практически на любом языке. И психов, готовых ее разбирать, сильно не хватает. Считаю, что СОЦИАЛЬНУЮ проблему опенсорса техническими наворотами ${language_name} не решить от слова «совсем».

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

Человек оказался слабым звеном.

нейросети напустить на это дело. пусть ловят внезапные странные изменения, всякие там корреляции активностей, странных изменений и проч.

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

нет. несколько нейросетей будут проверять консистенси и промеж ними конкуренция с арбитражем. и вот уже решения арбитра тоже нейросети - кожаный мешок.

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

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

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от alysnix

В оконцове кожаный мешок бегло смотрит выхлоп из сотен строк и жмет «Ok». Ибо рядом женский голос «Хочу морковки», детские голоса «давай рубиться в игрулю». Атака стала изощреннее, но прошла. Тут вспоминаются «Зенитные кодексы Аль-Эфесби» одного своеобразного аффтара.

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

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

Нет. Прямо наоборот.

Есть ещё теория, что это даёт доступ кому-то с определённым ключом

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

Практически это RPC, которое может использовать только конкретный атакующий (зато на любых скомпроментированных машин). Выполняет любой payload (переданный внутри соответного поля ключа) на целевой машине, не оставляя прямых следов в auth логах.

Более подробно (с аналогиями) разжевано например здесь https://news.ycombinator.com/item?id=39878947

В целом вроде хакеры достаточно аккуратно действовали и от их дыры доступ кому попало не откроется.

Это верно. Зато они могли бы поиметь любого как и когда захотят.

manul91
()
Последнее исправление: manul91 (всего исправлений: 5)
Ответ на: комментарий от a1ba

Для него совершенно не обязательно линковаться с libsystemd

Велосипеды изобретать же нехорошо, не так ли? Или пост-фактум это уже «другое»? В общем расскажи подробнее, как так получилось. То куча народу рассказывает про «нужны либы», а потом в удобный момент звучит уже «нужны не либы».

jsforever
()
Ответ на: комментарий от Iron_Bug

Нет, никакое ненужно-д к вопросу отношения не имеет. Как вообще из данной уязвимости делается вывод каком-то ненужно-д? Ты же ssh не называешь причиной. А почему? Оно же тоже задействовано. В общем, расскажи подробнее о своих выводах.

jsforever
()
Ответ на: комментарий от Iron_Bug

А, ну и да, к предыдущему вопросу о ненужно-д. Почему glibc не является ненужно, а вот ненужно-д - является? В эксплуатации участвуют оба, значит либо оба «ненужно», либо оба «нужно». Разъясни это подробнее.

jsforever
()
Ответ на: комментарий от EXL

Ты возможно не в курсе, но пистон не сильно лучше баша/м4. Как и любая другая скриптота/макросня.

jsforever
()
Ответ на: комментарий от hateWin

У тебя явно проблемы. Ну да ладно, показывай «обфускация, как в сабже», но не в сабже, а где-то ещё на м4. Если ты называешь обфускацию свойством м4(либо что там ещё есть, баш и ко), то примеров таких атак должно набраться много - оно давно существует и куча всего на этом написано.

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

jsforever
()
Ответ на: комментарий от cvs-255

На C++ можно писать как нормально так и абсолютно неудобопонимаемую лапшу из смеси макросов и шаблонов

Нет, на C++ нельзя написать лапшу. Точнее, можно, но только по меркам C++ и только вследствие того, что C++ первопроходец/лидер в области статических языков(читай не скриптоты). И да, макросы не являются C++. И проблемы обфускации - это проблемы тех самых макросов. Просто в сишке они немощные, и поэтому проблем типа нет.

В то время как на шелле написание нечитаемой лапши это скорее общая практика

На скриптоте, не только на шелле. Хотя на шелле это более всего заметно, но проблема общая.

jsforever
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.