LINUX.ORG.RU

Бэкдор в xz/liblzma

 , , ,


1

0

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

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

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

★★

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

У тебя явно проблемы

Практика показывает, что те, кто начинает с пафосного «ты дурак» и уверенного «у тебя проблемы» никак не могут конкретизировать свои утверждения. Все сводится к «ты не прав, потому что ты не прав». Давай, распиши по пунктам, где в моих утверждениях ошибки

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

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

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

Я более 10 лет работаю программистом и за эти годы видел немало и хорошего и отвратительного кода на с++. Но я ни разу не видел хорошего sh кода длиннее 50 строчек

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

Я более 10 лет

Это сразу мимо.

работаю программистом и за эти годы видел немало и хорошего и отвратительного кода на с++

Ну про отвратительный я сказал выше. А так, ты сравниваешь просто левую муру - хороший код на X vs плохой код на X. Это не имеет смысла. Сравнение должно быть такое: хороший/плохой код на X vs хороший/плохой код на Y. Там уже будет нужная разница. Только с sh сравнить не получиться, потому как

Но я ни разу не видел хорошего sh кода длиннее 50 строчек

и в целом больше 1000(не копипасты кодогеном) на sh нет. А если и есть, решаются на порядки более простые задачи. Пистон можно попробовать вместо sh(с минимумом сишных либ) - это лучше sh и может быть там хоть с объёмами кода получше.

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

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

и у glibc есть ещё замечательное свойство: она не тащит с собой кучу зависимостей. в отличие от ненужно.

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

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

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

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

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

Нет, на C++ нельзя написать лапшу

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

И да, макросы не являются C++

с какого перепуга? всегда являлись, а сегодня вдруг нет. это странно.

Просто в сишке они немощные

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

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

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

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

я сказала, что «читай сабж»? вот, читай.

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

Смотри, я показал тебе противоречие(и не одно) в твоих «рассуждениях». Спросил как эти противоречия разрешаются. И что я вижу в ответ? «читай сабж. читай сабж. читай сабж». Успокойся, бот. Не позорься.

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

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

Ты ничего не знаешь о C++. К тому же, это опять сравнение хороший код на C++ vs плохой код на C++. Подучи логику.

с какого перепуга? всегда являлись, а сегодня вдруг нет. это странно.

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

давай ты не будешь упоминать сишку

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

она работает уже много лет и всё там отлично

Ну и? Я где-то писал что она не работает либо к чему этот пассаж?

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

Да, это вопрос квалификации. Только здесь это не имеет смысла, здесь имеет смысл насколько коряво можно написать на языке. Вот, С++ позволяет написать, проще говоря, плохо, но безнадёжно. А макросня/скриптота позволяет написать совсем плохо.

jsforever
()

Какая приятная тема! Срывает покровы отсутствия знаний у ЛОРовских диванных войск. Какие красивые слова: Дрисня! Лапша! Python, Bash, Си, Плюсы! Даже ржавого пацаны не забыли с его cargo и нестабильным ABI, ну-ну.

Пацаны что-то пишут про systemd и требуют чего-то там. Кто из вас, диванных профессионалов, его хоть собирал? А?

Тут история крута. Как человека довели на выгорание слили, как таким вот диванным профессионалам провернули ход конём. Если бы не руководство с его желанием результата здесь и сейчас… Пацаны к успеху шли.

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

Ну не знаю. Комментарии про то что дедовы скрипты на баше для компиляции дело хреновое правильные ИМХО. Несмотря на то что можно обфусцированный код писать на любых ЯП, баш неплохо этому способствует - лучше только перл, а тот факт что код для сборки и код который пишет разработчик на разных ЯП совсем не похожих друг на друга значительно снижает контроль над нехорошим кодом. Потому как даже в серьёзных коммерческих проектах часто бывает так, что программисты умеют писать код на условном c++, джуны могут и не знать баша вовсе, а сборкой занимается другой человечек, например, админ/девопс который лучше всех в баше разбирается, а условные ребятки которые тесты пишут или рядовые кодеры без пол литра в этой лапше разобраться не могут. Потому в идеальном мире было бы хорошо если у системы сборки синтаксис был бы того же ЯП, как тот который собирается. И да, технически это возможно.

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

Так никто и не спорит, что программирование - сложно. Хорошее програмирование - сложно в квадрате.

Несмотря на то что можно обфусцированный код писать на любых ЯП, баш неплохо этому способствует - лучше только перл

Ларри как раз говорил о Си, можно послушать. А говорил он, что Си - язык сложный. Не синтаксис, язык. У русского букв 33, у английского - 26. Всего 7 букв разницы, а договоры пишут на английском. Странно?

что программисты умеют писать код на условном c++

Пацаны! Я английский выучил! Теперь я прочёл самоучитель по плюсам и стал программистом! Что? Люди учат матан? Зачем? Я не такой дурак. В моём мире есть фреймворк, я знаю английский и у меня есть автодополнение! Чтобы добавить функционал мы переписываем всё приложение пару раз в год! Что? Alan Kay? Simon Peyton Jones? Robert Cecil Martin? Marvin Minsky? Да деды это немейнстримные! И пурга эта денег не приносит!

а условные ребятки которые тесты пишут или рядовые кодеры

Зачем тесты хорошему коду? Он самодокументирован, прозрачен, любой нубас может докинуть функционал не сломав работоспособность приложения. После N итераций добавления функционала рядовым кодером даже хороший код превратится в сложную нёх. НО, работающую нёх!

Эти проверки, тесты и вот эта ситуация со взломом - не от хорошей жизни. У людей забрали доступ к знаниям, выдав за мейнстрим тупость. Чтобы понятнее - теперь везде есть порно, да любви нет. И знаешь что они в оправдание закидывают, заливаясь бухлом или сидя на колёсах? Что это не нужно. Это только проблемы. Как и с Функциональщиной, настоящим ООП, Lisp свободой, системами сборки, отличными от Next->Next->Done.

Нельзя объяснить человеку не в теме плюсы или минусы подхода, правила, руководства. Как ты это сделаешь, если у него только один опыт? Другого просто нет. Его научили только так, никак иначе. И вбили в голову, что другие подходы - это маргинальщина. И даже отбросив сомнения и начав учиться вдруг оказывается, что это сложно! Сложно! Там какие-то доказательства, формулы, теория, усложнённый непонятный код, фабрики, конвееры, принципы… Зачем? Можно же сразу фикс вкатить и по бабам или в игрушки. «Мне не за теорию бабки платят»!

Потому в идеальном мире было бы хорошо если у системы сборки синтаксис был бы того же ЯП

В нете бегала недавно статья о тётке, которая решила в Москве бомбоубежища проверить, на всякий случай. Так оказалось, что они под склад используются или в частной собственности, чего раньше (в СССР) не было. Это показывает, что спасать некого. Нет учёных, нет программистов, одни кодеры и эникеи, умеющие всё и сразу. А если почитать ЛОР, то и программировать и в науку и в Linux и в server и desktop и даже, о Боги, в Windows. Всё умеют. Ну или имеют правильное своё мнение на любой вопрос.

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

glibc ставит раком (segfault) при не валидной utf8 строке или локали, musl этим не страдает.

s-warus ★★★
()
Ответ на: комментарий от jsforever

Дурачок или прикидываешься? Это я спрашиваю ващет.

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

Зато у них в автотулзах test x"$var" = «xyes» ради совместимости

хуес - он и вафрике хуес :о)

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

если есть проблема с непониманием, это не в компиляторах и не в конфигах проблема

прямо с языка

вся разруха в головах а не клозетах!

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

Ты ничего не знаешь о C++. К тому же, это опять сравнение хороший код на C++ vs плохой код на C++. Подучи логику.

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

О сишке ты также ничего не знаешь.

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

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

а я то, дуринь, все по старинке, по старинке...

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

Являются, описаны в стандарте С++.

Нет, не являются. Из «описана в X» никак не следует «является частью X».

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

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

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

Именно так.

Нет, не являются. Из «описана в X» никак не следует «является частью X».

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

Что вижу я?

libc часть стандарта ANSI C
ANSI C — стандарт языка C

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

Теперь переходим к определению части:

Предмет, являющийся составным элементом какого-н. целого, организма, механизма.

Является? Является.

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

Зачем ты мне это пишешь? Сколько ты там штаны протираешь ничего не значит.

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

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

Именно так.

Именно нет.

Верно говоришь, но она там не просто описана, поэтому к нашему разговору твой разбор никак не относится.

Ну т. е. слился. Молодец.

Давай ты лучше дашь полное определение что такое часть языка

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

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

Никакие ссылки ничего не значат, как и «никто другой не согласится». Обосновывай необходимость каких-то ссылок/согласия.

libc часть стандарта ANSI C ANSI C — стандарт языка C

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

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

Верно говоришь, но она там не просто описана, поэтому к нашему разговору твой разбор никак не относится.

Ну т. е. слился. Молодец.

Из твоего «описана», подразумевается что кроме описания, ничего другого с ней связанного в стандарте нету, а на деле она там требуется, обязательно, а не просто описана, как могут описать настроение авторов в начале. Тебе как то плохо дается чтение, или мышление, пока не могу определить.

Никакие ссылки ничего не значат, как и «никто другой не согласится». Обосновывай необходимость каких-то ссылок/согласия.

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

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

Совсем плохо. Тебе нужно показать «часть языка», а не «часть стандарта языка».

Когда я говорю С, я подразумеваю язык определенный каким либо из стандартов ANSI C, C99, ..., твой хоумпрожект компилятор я не рассматриваю. Если для тебя язык С, это любая наколеночная поделка не следующая стандарту, то там препроцессора может не быть, да. Я только не понимаю зачем в таком случае ты споришь, никто этими поделиями все равно не пользуется.

показывай взаимодействие языка с макросами

// Невозможно определить макрос
#define END }

// Доступ к сущностям языка
__func__
MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 4)
Ответ на: комментарий от MOPKOBKA

Где демонстрация оперирования макросами посредством языка? Обделался и проигнорировал, балабол?

Из твоего «описана», подразумевает что кроме описания, ничего другого с ней связанного в стандарте нету, а на деле она там требуется, обязательно, а не просто описана, как могут описать настроение авторов в начале. Тебе как то плохо дается чтение, или мышление, пока не могу определить.

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

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

То что ты ничего не можешь доказать(или хотя бы попытаться) я и так вижу. Прятки за «общедоступными, принятыми определениями»(90% создаными овщами для овощей) без обоснований мне не интересны.

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

Это мимо. Для начала нужно ответить за противоречия в твоей теории. Как ответишь, уже будешь требовать что-то.

Когда я говорю С, я подразумеваю язык определенный каким либо из стандартов ANSI C, C99, …, твой хоумпрожект компилятор я не рассматриваю. Если для тебя язык С, это любая наколеночная поделка не следующая стандарту, то там препроцессора может не быть, да.

Какая разница, что ты там подразумеваешь?

Я только не понимаю зачем в таком случае ты споришь, никто этими поделиями все равно не пользуется.

Ты про «ANSI C»? Да, им никто не пользуется(за исключением хэлвордов/лаб). Опять опозорился.

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

Прятки за «общедоступными, принятыми определениями»

Понял,

1. Ты отказываешься использовать стандартные, распространенные определения для слов и терминов

2. При этом ты отказываешься выписывать СВОИ шизофренические определения для слов и терминов, из этого я сделаю вывод, что у тебя нету определений для слов которые ты из себя испускаешь, они могут меняться на ходу, от комментария к комментарию

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

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

Ну вот, совсем поломался и начал открыто врать. Что ты спастил?

Прятки за «общедоступными, принятыми определениями»

Что должен был спастить:

Прятки за «общедоступными, принятыми определениями»(90% создаными овщами для овощей) без обоснований мне не интересны.

Неудобное просто проигнорировал. Ладно, с фантазиями не ко мне.

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