xz-utils: диверсанта спалили за месяц
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 31.03.24 10:44
Оценка: 45 (6)
https://boehs.org/node/everything-i-know-about-the-xz-backdoor

В прошлые разы спрашивали "ну где тот миллион глаз который высмотрит всё?"

В этот — не успело попасть в реальные дистрибутивы, даже в большинство unstable, уже нашёлся, кто спалил пятилетнюю подготовку.

Ожидаю, что все расслабятся и будут надеяться на соседа.

Схема красивая, в месяц по ложечке.
The God is real, unless declared integer.
Re: xz-utils: диверсанта спалили за месяц
От: rudzuk  
Дата: 31.03.24 11:17
Оценка: +4
Здравствуйте, netch80, Вы писали:

n> Ожидаю, что все расслабятся и будут надеяться на соседа.


n> Схема красивая, в месяц по ложечке.


Случайно обнаружили. Просто повезло.
avalon/3.0.2
Re: xz-utils: диверсанта спалили за месяц
От: Alekzander  
Дата: 31.03.24 11:17
Оценка: +3
Здравствуйте, netch80, Вы писали:

N>https://boehs.org/node/everything-i-know-about-the-xz-backdoor


Thanks? They also banned the repository, meaning people can no longer audit the changes made to it without resorting to mirrors. Immensely helpful, GitHub. They also suspended Lasse Collin’s account, which is completely disgraceful.


Мде.
Re: xz-utils: диверсанта спалили за месяц
От: m2user  
Дата: 31.03.24 13:42
Оценка:
N>В этот — не успело попасть в реальные дистрибутивы, даже в большинство unstable, уже нашёлся, кто спалил пятилетнюю подготовку.

Успело-успело, в тот же Gentoo 24 февраля добавили версию 5.6.0 как нестабильную, а 9 марта заменили на 5.6.1 и 24 марта пометили как стабильную.

N>Ожидаю, что все расслабятся и будут надеяться на соседа.


А может наоборот, повод к тому чтобы MS "закрутил гайки" и ввел KYC или что-то типа того, чтобы всякие анонимусы в майнтейнеры не просачивались.

N>Схема красивая, в месяц по ложечке.


И спрятано затейливо в тестовый файл, на котором архивация проверяется.
А само внедрение на этапе сборки и код внедрения отсутствует в source control, но присутствует только в аривах выложенных майнтейнером-злоумышленником.
Re[2]: xz-utils: диверсанта спалили за месяц
От: student__  
Дата: 31.03.24 14:33
Оценка:
Здравствуйте, m2user, Вы писали:

M>Успело-успело, в тот же Gentoo


Генту не нужна никому, кроме малолетних красноглазиков, и после этой диверсии они не пострадали, потому что никаким хакерам они не интересны.
Re[3]: xz-utils: диверсанта спалили за месяц
От: m2user  
Дата: 31.03.24 15:06
Оценка: 1 (1)
__>Генту не нужна никому, кроме малолетних красноглазиков, и после этой диверсии они не пострадали, потому что никаким хакерам они не интересны.

Ну да, среди условий внедрения там:

Running as part of a debian or RPM package build:
if test -f "$srcdir/debian/rules" || test "x$RPM_ARCH" = "xx86_64";then


Но это скорее всего связано с другим:

openssh does not directly use liblzma. However debian and several other
distributions patch openssh to support systemd notification, and libsystemd
does depend on lzma.


  хук RSA_public_decrypt

Notably liblzma's symbols are resolved before many of the other libraries,
including the symbols in the main sshd binary. This is important because
symbols are resolved, the GOT gets remapped read-only thanks to -Wl,-z,relro.


To be able to resolve symbols in libraries that have not yet loaded, the
backdoor installs an audit hook into the dynamic linker, which can be observed
with gdb using
watch _rtld_global_ro._dl_naudit
It looks like the audit hook is only installed for the main binary.

That hook gets called, from _dl_audit_symbind, for numerous symbols in the
main binary. It appears to wait for "RSA_public_decrypt@....plt" to be
resolved. When called for that symbol, the backdoor changes the value of
RSA_public_decrypt@....plt to point to its own code. It does not do this via
the audit hook mechanism, but outside of it.


Но в любом случае версии >=5.6.0 в Gentoo тоже уже "замаскировали"
https://bugs.gentoo.org/928134#c2
Re: xz-utils: диверсанта спалили за месяц
От: CreatorCray  
Дата: 31.03.24 22:22
Оценка: +2
Здравствуйте, netch80, Вы писали:

N>В прошлые разы спрашивали "ну где тот миллион глаз который высмотрит всё?"

Так и где эти глаза?

Saw sshd processes were using a surprising amount of CPU, despite immediately failing because of wrong usernames etc.
Profiled sshd, showing lots of cpu time in liblzma, with perf unable to attribute it to a symbol
Recalled that I had seen an odd valgrind complaint in automated testing of postgres, a few weeks earlier, after package updates.

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

N>уже нашёлся, кто спалил пятилетнюю подготовку.

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

N>Схема красивая, в месяц по ложечке.

Так оно и делается, да.
OpenSource по определению особенно vulnerable к таким атакам
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: xz-utils: диверсанта спалили за месяц
От: CreatorCray  
Дата: 31.03.24 22:22
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>Мде.


Думается что закрыли доступ к репе чтоб не растаскивали backdoor по другим репам, уменьшив масштабы "заражения". Так что тут более менее понятно rationale.
А вот почему засуспендили этого чувака — хз, возможно просто сгоряча подмели вообще всех кто там засветился.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: xz-utils: диверсанта спалили за месяц
От: Alekzander  
Дата: 01.04.24 09:28
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Думается что закрыли доступ к репе чтоб не растаскивали backdoor по другим репам


З — Забота
Re[2]: xz-utils: диверсанта спалили за месяц
От: landerhigh Пират  
Дата: 01.04.24 12:14
Оценка: +2
Здравствуйте, CreatorCray, Вы писали:

N>>Схема красивая, в месяц по ложечке.

CC>Так оно и делается, да.
CC>OpenSource по определению особенно vulnerable к таким атакам

Если ресурсы, которые были затрачены на эту атаку, нацелить на closed source, то можно сделать вообще все, что угодно в гораздо более сжатые сроки.

Вообще, очень основательно прорабатывали. Выбрали проект с одним мейнтейнером, применяли social engineering и т.п. Причем, пришлось идти на заметные red flags — бинарные тестовые файлы в репе или замену safe функций на unsafe
www.blinnov.com
Re[3]: xz-utils: диверсанта спалили за месяц
От: Stanislaw K СССР  
Дата: 01.04.24 13:47
Оценка: +2
Здравствуйте, landerhigh, Вы писали:


L>Если ресурсы, которые были затрачены на эту атаку, нацелить на closed source, то можно сделать вообще все, что угодно в гораздо более сжатые сроки.


Это атака не против source, а против конкретного пользователя.

L>Вообще, очень основательно прорабатывали. Выбрали проект с одним мейнтейнером, применяли social engineering и т.п. Причем, пришлось идти на заметные red flags — бинарные тестовые файлы в репе или замену safe функций на unsafe


Но попались то они не на этом.
Все проблемы от жадности и глупости
Re[3]: xz-utils: диверсанта спалили за месяц
От: Michael7 Россия  
Дата: 01.04.24 15:42
Оценка: +2
Здравствуйте, landerhigh, Вы писали:


L>Вообще, очень основательно прорабатывали. Выбрали проект с одним мейнтейнером, применяли social engineering и т.п. Причем, пришлось идти на заметные red flags — бинарные тестовые файлы в репе или замену safe функций на unsafe


Эти бинарные файлы выглядели очень оправданными — тестовые примеры архивов. В том числе пример битого архива, где и сидел код. Как они вообще могут быть небинарными?

Надо сказать задумка на грани гениальности. Это ж надо придумать поместить код в битый архив. Битый! Который исподтишка восстанавливается системой сборки. И потом заботливо все символы преобразовали так, чтобы в явном виде нигде не вылезали текстовые строки API-функций, используемых для внедрения в sshd и работы. Собственно на этом и погорели в итоге — маскировка слишком медленно работала.
Re[2]: xz-utils: диверсанта спалили за месяц
От: Michael7 Россия  
Дата: 01.04.24 15:51
Оценка: +2
Здравствуйте, CreatorCray, Вы писали:

CC>Найдено то совсем не анализом кода а дебагом вылезшей проблемы.

CC>В этом случае наличие сурсов процесс дебага конечно упрощает но не является критичным.
CC>После чего собственно и начали пристально смотреть на конкретный кусок кода.
CC>До этого "миллионы мух" как то не особо беспокоились.

Так или иначе, но побеспокоились. И без открытых исходников было бы все намного проще, а так пришлось очень хитрым образом прятать закладку. А с закрытыми вообще до конца неясно, что софт делает с данными юзера, что может и не может слить в телеметрии.
Re[4]: xz-utils: диверсанта спалили за месяц
От: landerhigh Пират  
Дата: 01.04.24 17:19
Оценка: +1
Здравствуйте, Stanislaw K, Вы писали:

L>>Если ресурсы, которые были затрачены на эту атаку, нацелить на closed source, то можно сделать вообще все, что угодно в гораздо более сжатые сроки.

SK>Это атака не против source, а против конкретного пользователя.

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

L>>Вообще, очень основательно прорабатывали. Выбрали проект с одним мейнтейнером, применяли social engineering и т.п. Причем, пришлось идти на заметные red flags — бинарные тестовые файлы в репе или замену safe функций на unsafe


SK>Но попались то они не на этом.


При этом то, что source был таки open, сильно помогло в раскрытии замысла.
www.blinnov.com
Re[4]: xz-utils: диверсанта спалили за месяц
От: landerhigh Пират  
Дата: 01.04.24 17:30
Оценка: +1
Здравствуйте, Michael7, Вы писали:

M>Эти бинарные файлы выглядели очень оправданными — тестовые примеры архивов. В том числе пример битого архива, где и сидел код. Как они вообще могут быть небинарными?


Битый архив можно, а скорее, нужно, генерировать при запуске тестов.

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

M>Надо сказать задумка на грани гениальности. Это ж надо придумать поместить код в битый архив. Битый! Который исподтишка восстанавливается системой сборки. И потом заботливо все символы преобразовали так, чтобы в явном виде нигде не вылезали текстовые строки API-функций, используемых для внедрения в sshd и работы. Собственно на этом и погорели в итоге — маскировка слишком медленно работала.


Ощущение, что либо поторопились, либо недотестировали, либо банально экспертизы хватило только на социальную инженерию и обфускацию. Почти удалось внедрить бекдор, который можно было внезапно активировать.
www.blinnov.com
Re[5]: xz-utils: диверсанта спалили за месяц
От: Stanislaw K СССР  
Дата: 01.04.24 18:28
Оценка: +2
Здравствуйте, landerhigh, Вы писали:


L>>>Если ресурсы, которые были затрачены на эту атаку, нацелить на closed source, то можно сделать вообще все, что угодно в гораздо более сжатые сроки.

SK>>Это атака не против source, а против конкретного пользователя.

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


Какими "такими" ресурсами? непосредственно наследил один неизвестный с нескольких аккаунтов. код с багами и не оттестирован.

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

L>>>Вообще, очень основательно прорабатывали. Выбрали проект с одним мейнтейнером, применяли social engineering и т.п. Причем, пришлось идти на заметные red flags — бинарные тестовые файлы в репе или замену safe функций на unsafe


SK>>Но попались то они не на этом.


L>При этом то, что source был таки open, сильно помогло в раскрытии замысла.


"Раскрытие замысла", это его предотвращение _до_ совершения. А тут расследование постфактум, уже свершенного. Исходники просто незначительно облегчили работу.
Все проблемы от жадности и глупости
Re[4]: xz-utils: диверсанта спалили за месяц
От: CreatorCray  
Дата: 01.04.24 18:50
Оценка:
Здравствуйте, Alekzander, Вы писали:

CC>>Думается что закрыли доступ к репе чтоб не растаскивали backdoor по другим репам

A>З — Забота

Ну в данном случае довольно логично перекрыть канал распространения чтоб потом не вычищать это говно по всему интернету.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: xz-utils: диверсанта спалили за месяц
От: CreatorCray  
Дата: 01.04.24 18:50
Оценка: -1
Здравствуйте, landerhigh, Вы писали:

L>Если ресурсы, которые были затрачены на эту атаку, нацелить на closed source, то можно ...

... громко пёрнуть в лужу, ибо в closed source так легко что либо добавить не получится.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: xz-utils: диверсанта спалили за месяц
От: CreatorCray  
Дата: 01.04.24 18:50
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Организация, располагющая такими ресурсами


Какими ресурсами?

L> скорее всего, производителя ПО с закрытым кодом может просто убедительно попросить добавить такой бекдор.

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

L>При этом то, что source был таки open, сильно помогло в раскрытии замысла.

Не. Разница довольно таки незначительная.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: xz-utils: диверсанта спалили за месяц
От: CreatorCray  
Дата: 01.04.24 18:50
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Так или иначе, но побеспокоились.

Миллионы мух на ревью кода ничегошеньки не заметили.

M> И без открытых исходников было бы все намного проще

Как ты себе представляешь добавление подобного в закрытые исходники со стороны?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.