Уже все написали про бэкдор, но без разбора гениальности этого бекдора, чем я сейчас и займусь.
Для тех, кто в танке - в библиотеке
liblzma, для пакета xz, позволяющим сжимать файлы в нечто с расширением .xz, обнаружили бэкдор, позволяющий спокойно подключиться к вашему SSH серверу.Причём, бэкдор есть только в
.tar архивах, приложенных к релизам 5.6.0-1, а сам бэкдор был найден не секьюрити ресерчером, а обычным прогером, когда тот заинтересовался "почему потребление CPU растет x10 при подключении по SSH"Теперь к разбору цепочки поставок в компрометацию сервера
0. в файле конфигурации исполняется скрипт
build-to-host.m4, модифицирующий Makefile для билда, если на хосте запущен процесс sshd в /usr/bin1. делает он это через "тестирование" с архивами
bad-3-corrupt_lzma2.xz и good-large-compressed.lzma (не используемые для тестов где-либо ещё)2. тесты приводят к исполнению кода, сжатому в
bad-3-corrupt_lzma2.xz, который распаковывает архив good-large-compressed.lzma 3. код внутри
good-large-compressed.lzma исполняется, приводя к внедрению liblzma_la-crc64-fast.o (сам бэкдор) в Makefile для liblzma4. после билда и успешной установки, бэкдор перехватывает исполнение через подмену ifunc resolvers для
crc32_resolve() и crc64_resolve(), меняя код на вызов _get_cpuid()ifunc - механизм glibc, позволяющая реализовывать функцию разными способами, и выбирая между реализациями во время работы программы
5. после бекдор мониторит динамическое подключение библиотек к процессу через тут же поставленный
audit hook, ожидая подключение библиотеки RSA_public_decrypt@got.plt6. увидев подключение
RSA_public_decrypt@got.plt, бекдор подменяет адрес библиотеки на адрес подконтрольного кодаГотово! Теперь, при подключении по SSH, в контексте перед аутентфикацией по ключу, процесс исполнит подконтрольный злоумышленнику код =)
Для великих пывнеров, разрабов малвари и прочих заинтересованных, рекомендую почитать текст оригинального письма, описывающего бэкдор и описание ситуации с бэкдором на гитхабе
EN: https://w0ltage.github.io/blog/Articles/xz-v5.6.0-1-backdoor
#infrastructure #research #vulnerability_research
