LINUX.ORG.RU

В коде xz версий 5.6.0 и 5.6.1 обнаружен бэкдор

 ,


4

9

Разработчик Debian и исследователь в сфере информационной безопасности Andres Freund сообщает об обнаружении вероятного бэкдора в исходном коде xz версий 5.6.0 и 5.6.1.

Бэкдор представляет собой строчку в одном из m4-скриптов, которая дописывает обфусцированный код в конец скрипта configure. Этот код затем модифицирует один из сгенерированных Makefile проекта, что в конечном итоге приводит к попаданию вредоносной нагрузки (замаскированной под тестовый архив bad-3-corrupt_lzma2.xz) непосредственно в исполняемый файл библиотеки liblzma.

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

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

По ссылке исследователь отмечает, что в конечном итоге целью бэкдора, по-видимому, является инъекция кода в процесс sshd и подмена кода проверки RSA-ключей, и приводит несколько способов косвенно проверить, исполняется ли вредоносный код на вашей системе в данный момент.

Рекомендации по безопасности были выпущены проектами Arch Linux, Debian, Red Hat и openSUSE.

Разработчики Arch Linux отдельно отмечают, что хотя заражённые версии xz и попали в репозитории дистрибутива, дистрибутив остаётся в относительной «безопасности», т. к. sshd в Arch не линкуется с liblzma.


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

>>> Подробности

★★★★★

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

Что значит «дёргаться»?

Спроси у @hateyoufeel, я цитировал его.

При корректной логике кода приложения ничего не дёргается. Совсем куку что ли?

Не груби людям на 2 головы умнее тебя. Запомни: ты - местный деревенский дурачок, будь благодарен тем, кто тратит время объясняя тебе простые вещи.

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

Садись, 2.

Никакого мерцания быть не должно, а именно «дёргание».

Если UI-поток приложения не успевает отрисовывать растягиваемое окно с желаемым фпсом, то будет отображаться старый контент, изменение будет неплавным и выглядеть как дёрганная анимация. Сделать с этим ничего нельзя, так как DE понятия не имеет как корректно отресайзить картинку внутри окна. Можно, как в старых системах, отказаться от плавного ресайза, как в CDE, это будет гуманно к железу, либо показать как есть. В принципе, вариант из CDE был вполне приемлемым, но по мере развития железа предпочитали давать возможность видеть окно при перетаскивании, а потом и при ресайзе.

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

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

Безусловно. Чтоб ты понимал что тут происходит: 3 идиота (включая тебя) рассказывают сказки про «трава зеленее была», а умный человек им объясняет им что, во-первых, не была (с видеопруфами), а во вторых, что в принципе не могла быть зеленее, просто потому что задача принципиально неразрешима.

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

khrundel ★★★★
()

Кстати я наконец то нашел почему эти образы удалили. (хз правда это или нет)

https://www.techtarget.com/searchsecurity/news/366577602/XZ-backdoor-discovery-reveals-Linux-supply-chain-attack

...
Other affected distributions include openSUSE Tumbleweed and openSUSE MicroOSm, which was backdoored between March 7 and March 28; Kali Linux, which was backdoored between March 26 and March 28; and Arch Linux installation medium 2024.03.01, as well as virtual machine images 20240301.218094 and 20240315.221711 and container images created between Feb. 24 and March 28.
...
mx__ ★★★★★
()
Ответ на: комментарий от khrundel

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

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

Эту индустрию пора закапывать, ничего хорошего в ней нет.

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

https://youtu.be/U0GG5rHOP8g?t=136

Да вроде всегда работал ресайз, или на видео дерганье какое то присутствует?

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

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

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

Я недавно хотел приложение на Java AWT сделать, я не знаю как они этого добились, но любые операции с окном тормозят, окно мерцает, ресайз работает с какой то задержкой. Если добавить контролы, то вообще начинается ад.

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

Потому что на тот момент они не знали, что фиксить было нечего. Я уже второй день пытаюсь добиться официальных разъяснений. Причина: у некоторых могут быть особо помешанные на compliance аудиторы, которые на основании текущих официальных заявлений могут заставить все переустановить (на предыдущем месте работы точно потребовали бы), хотя бекдора, принесенного через liblzma_la-crc64_fast.o, в Arch Linux по факту не было.

AEP ★★★★★
()
Последнее исправление: AEP (всего исправлений: 1)
https://gist.github.com/sgammon/ec604c3fabd1a22dd3cdc381b736b03e

Which functions as a killswitch:

https://piaille.fr/@zeno/112185928685603910

Thus, one workaround for affected systems might be to add this to `/etc/environment`:

yolAbejyiejuvnup=Evjtgvsh5okmkAvj

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

И можно ли доверять Alexander E. Patrakov, Rein Fernhout и terraminator <terraminator () protonmail com> ?

Мне доверять точно не надо. А вот diff от вывода objdump -x -s -d usr/lib/liblzma.so.5.6.1 в применении к вот этим распакованным пакетам уже можно рассматривать как объективное доказательство:

https://archive.archlinux.org/packages/x/xz/xz-5.6.1-1-x86_64.pkg.tar.zst https://archive.archlinux.org/packages/x/xz/xz-5.6.1-2-x86_64.pkg.tar.zst https://archive.archlinux.org/packages/x/xz/xz-5.6.1-3-x86_64.pkg.tar.zst

См. также https://gitlab.archlinux.org/archlinux/packaging/packages/xz/-/issues/2

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

Какую-то возню в АУР наблюдаю. Пока вроде безобидную. Но то, что случилось, наводит на мысли. К кому обратиться, не подскажешь?

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

или на видео дерганье какое то присутствует

Присутствует, присмотрись.

quantum-troll ★★★★★
()
Ответ на: комментарий от AEP

Вдогонку: GMail стал помечать файлы, содержащие бекдор, как завирусованные. Можешь переслать пакеты себе, вместе с заведомо затрояненным deb-ом. А еще можешь пересобрать пакет 5.6.1-1, подсунув архив с правильной контрольной суммой и добавив в PKGBUILD mkdir debian ; touch debian/rules, и получить затрояненную версию для сравнения хотя бы размера получившейся библиотеки (+39 килобайт).

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

Какую-то возню в АУР наблюдаю. Пока вроде безобидную. Но то, что случилось, наводит на мысли. К кому обратиться, не подскажешь?

Увы, нет. Может, Krebs или Bruce Schneier - это известные исследователи безопасности. Но не факт, что они ответят.

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

Я уже второй день пытаюсь добиться официальных разъяснений

От арчика?

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

Вдогонку: GMail стал помечать файлы
можешь пересобрать пакет 5.6.1-1, подсунув архив с правильной контрольной суммой и добавив в PKGBUILD mkdir debian ; touch debian/rules

GMail - собирает у себя пакеты (из тела письма), проверяет контрольные суммы и делает некие выводы?!

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

GMail у себя распаковывает архивы и проверяет по сигнатурам (т.е., грубо говоря, на предмет вхождения «вирусных» подстрок). Так что можешь послать себе deb или tar.zst, и он будет распакован и проверен на вирусы.

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

это я понял, расшифруйте, пожалуйста, вот это, что вы имел в виду?!

подсунув архив с правильной контрольной суммой и добавив в PKGBUILD mkdir debian ; touch debian/rules

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

Моя старая видеокарта поддерживает только старую версию шейдеров. Я правильно понимаю, что новые версии шейдеров эмулируются, поэтому у меня и тормоза в gtk-3 приложениях, или это никак не связано?

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

Клонируем репозиторий со сборочными скриптами и делаем sandbox:

git clone https://gitlab.archlinux.org/archlinux/packaging/packages/xz
cd xz
bwrap --ro-bind / / --proc /proc --dev /dev --tmpfs /tmp --bind `pwd` `pwd` /bin/bash

Затем:

# Скачиваем затрояненный архив с исходниками:
wget http://download.openpkg.org/components/cache/xz/xz-5.6.1.tar.gz
# Правильный xz-5.6.1.tar.gz.sig я найти не смог, но проверки по sha256 достаточно
# Переключаемся на нужный тег
git checkout 5.6.1-1
# Собираем пакет - проверка PGP отключена, так как нет правильного xz-5.6.1.tar.gz.sig
makepkg -f --cleanbuild --skippgpcheck
# Исследуем собранное любыми способами
ls -l pkg/xz/usr/lib/liblzma.so.5.6.1
objdump -s -x -d pkg/xz/usr/lib/liblzma.so.5.6.1 > objdump.txt
# Тут можно еще проверить получившуюся библиотеку через GMail или VirusTotal - чисто!

# Пересобираем все, сказав трояну, что у нас RPM
RPM_ARCH=x86_64 makepkg -f --cleanbuild --skippgpcheck
# Исследуем собранное еще раз - осторожно, тут троян
ls -l pkg/xz/usr/lib/liblzma.so.5.6.1  # размер увеличился
objdump -s -x -d pkg/xz/usr/lib/liblzma.so.5.6.1 > objdump-trojaned.txt
# Показываем трояна GMail и VirusTotal, смотрим, как они ругаются

# Переключаемся на якобы исправленный тег
git checkout 5.6.1-2
# Подсовываем вместо недоступного github'а зеркало и пересобираем
sed -i s@github.com/tukaani-project@git.rootprojects.org/root@ PKGBUILD
# Заметим, что проверка sha256 все еще проходит, несмотря на замену зеркала
makepkg --cleanbuild --skippgpcheck
# Отменяем замену зеркала
git checkout PKGBUILD
# Исследуем собранное
ls -l pkg/xz/usr/lib/liblzma.so.5.6.1
objdump -s -x -d pkg/xz/usr/lib/liblzma.so.5.6.1 > objdump-fixed.txt
# Сравниваем и видим, что изменения только в секциях .gnu_debuglink и .note.gnu.build-id, которые не содержат кода - ЧТД
diff -u objdump.txt objdump-fixed.txt
AEP ★★★★★
()
Ответ на: комментарий от sunjob

из вашего предложения следует что - опыт-то, как минимум, приносит?!

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

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

Но новая программа долго остаётся хуже старой

ну дак а я о чем? это ни как не противоречит с тем что «обычно новое/молодежненько-веселенькое итд»... согласен.

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

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

–седайко стюмчик

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

Агентам спецслужб без проблем могут выписать паспорт на фиктивную личность.

JIA CHEONG TAN
CIA JHEONG TAN
CIA JHON EGTAN
CIA JOHN AGENT
CIA AGENT JOHN
Дело раскрыто!
;)

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

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

Это потому что он непреодолим. Логически.

kry
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.