22.04.2024

Ретроспектива продвижения бэкдора в пакет xz

Предположительно бэкдор в пакет xz был внедрён разработчиком Jia Tan, который в 2022 году получил статус сопровождающего и выпускал релизы начиная с версии 5.4.2. Помимо проекта xz предполагаемый автор бэкдора также участвовал в разработке пакетов xz-java и xz-embedded, и был включён в число мэйнтейнеров проекта XZ Embedded, используемого в ядре Linux.

В организации продвижения бэкдора также замечены ещё два участника — Jigar Kumar и Hans Jansen, которые, судя по всему, являются виртуальными персонажами. Jigar Kumar в апреле 2022 года способствовал принятию в xz ранних патчей Jia Tan c реализацией поддержки строковых фильтров и оказывал моральное давление на Lasse Collin, тогдашнего сопровождающего, критикуя, что он не способен выполнять свои обязанности и не принимает полезные патчи. В июне Lasse Collin согласился, что проекту нужен новый сопровождающий, посетовал на выгорание и проблемы с психическим здоровьем, и передал право мэйнтейнера Jia Tan. После этого пользователь Jigar Kumar больше не появлялся в рассылке.

Получив права мэйнтейнера Jia Tan стал активно добавлять изменения в проект и по статистике за два года занял второе место среди разработчиков по числу изменений. В марте 2023 года ответственный за тестирование пакета xz в сервисе oss-fuzz был заменён с Lasse Collin на Jia Tan, а в июне в состав xz были приняты изменения, добавляющие в liblzma поддержку механизма IFUNC (конструктор crc64_fast был заменён на ifunc), который позднее был задействован для организации перехвата функций в бэкдоре. Изменение предложил Hans Jansen, а Jia Tan принял его в состав xz. Учётная запись Hans Jansen была создана непосредственно перед отправкой pull-запроса.

В июле 2023 года Jia Tan отправил разработчикам oss-fuzz запрос на отключение проверки ifunc из-за его несовместимости с режимом «-fsanitize=address». В начале февраля 2024 года ссылка на сайт проекта в oss-fuzz и на главной странице tukaani.org была изменена с «tukaani.org/xz/» на «xz.tukaani.org», где поддомен «xz.tukaani.org» размещался в сервисе GitHub Pages и контролировался лично Jia Tan. 23 февраля в репозитории xz были размещены архивы для тестирования работы декодировщика, среди которых были файлы bad-3-corrupt_lzma2.xz и good-large_compressed.lzma со скрытым бэкдором.

17 марта Hans Jansen, разработавший ранее патчи с поддержкой IFUNC, был зарегистрирован в качестве участника проекта Debian, а 25 марта им был отправлен запрос на обновление версии пакета xz-utils в репозитории Debian. Запросы на обновление версии также поступили разработчикам Fedora и Ubuntu (в Ubuntu репозиторий был на стадии заморозки и изменение было отклонено).

К просьбам обновить версию xz также присоединились некоторые пользователи, заявлявшие, что в новой версии устранены мешающие работе сбои, выявляемые при отладке в valgrind (проблемы возникали из-за некорректного определения раскладки стека в обработчике бэкдора и эти проблемы разработчики бэкдора постарались устранить в версии xz 5.6.1). Сбоем также заинтересовался Andres Freund, сотрудник Microsoft, участвующий в разработке PostgreSQL, который выявил наличие бэкдора и оповестил об этом сообщество.

Источник: https://www.opennet.ru/opennews/art.shtml?num=60880 Источник.