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)

Ответ на: комментарий от SL_RU

В апстриме арча пофикшено

А вот и не пофикшено, так как фиксить было нечего. Результат дизассемблирования «пофикшенной» библиотеки на 100% совпадает с «непофикшенным». А все потому, что бекдор активируется только при сборке RPM или DEB (проверка переменных окружения и существования файла debian/rules).

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

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

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

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

Понимаете в чем дело ? В том что это все просто слова/текст без доказательств. А вот удаление образа 2024-03-01 с зеркал это конкретный ход. И если понять почему это сделано, можно ответить на многие вопросы.

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

Вполне можно объяснить перестраховкой.

Это объясняется только одним : сами до конца не понимают всей картины, вроде все ок, а может и нет. Такое объяснение только делает хуже.

mx__ ★★★★★
()
Ответ на: комментарий от 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)
Ответ на: комментарий от greenman

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

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

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

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

AEP ★★★★★
()
Последнее исправление: AEP (всего исправлений: 1)
Ответ на: комментарий от 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 ★★★★
()
Ответ на: комментарий от 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 ★★★★★
()
Ответ на: комментарий от AEP

А все потому, что бекдор активируется только при сборке RPM или DEB (проверка переменных окружения и существования файла debian/rules).

Debian, sshd... На серваки, получается, нацеливались?

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

А вот и не пофикшено, так как фиксить было нечего.

Объясните тогда мне такую картину: https://mirror.yandex.ru/archlinux/iso/

Как мы знаем срезы выходят 1 числа, и пару дней назад там лежал 2024-03-01, тысячи людей брали этот iso и ставили с него (я молчу уже про то сколько обновлялись за этот месяц) а теперь хлоп. И он исчезает.

Почему ? Раз фиксить было нечего ?

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

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

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

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

От арчика?

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

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

В апстриме арча пофикшено...

core/xz 5.6.1-2 (653.1 KiB 2.5 MiB) (установлено)
    Library and command line tools for XZ and LZMA compressed files
faust@Rizen53600 ~> xz --version
xz (XZ Utils) 5.6.1
liblzma 5.6.1
faust@Rizen53600 ~>

Блин, опять обломали повод переустановить свой арч.

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

Не успели влезть. Только в openSUSE Tumbleweed проблалась эта версия. Я сразу накатил апдейт и теперь у меня стоит xz-5.6.1.revertto5.4-3.2.x86_64.
В Debian Sid и Fedora Rawhide этот бэкдор тоже уже пролез, но кто их использует на регулярной основе?

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

В Debian Sid

Вроде бы как и в testing пробрался. Но комент тот же.

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

Ещё надо, чтобы без pam и прочих транзитных притягивателей liblzma

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