Инструмент сжатия данных Linux xz-Utils снова доступен на GitHub после обнаружения в нём бэкдора. Разработчик xz-Utils Лассе Коллин объявил на своём сайте, что он внёс несколько изменений, в том числе в политику безопасности.
Он обязался удалить бэкдор в версиях 5.6.0 и 5.6.1 и написать статью о том, как он оказался в релизах и какие уроки из этого можно извлечь. Пока разработчик изучает детали, но приоритет отдаёт проверке репозитория.
Коллин также призывает не раскрывать уязвимости сразу после их обнаружения, а сначала сообщать данные ему. Он обещает в ближайшее время выпустить обновления для устранения выявленных багов.
Вероятно, Коллин полностью перепишет главную ветку, чтобы удалить вредоносные файлы и избежать срабатывания антивирусного программного обеспечения. Стабильная версия xz Utils, скорее всего, сразу же получит номер 5.8.0 (пропуская 5.7). Пока же последняя стабильная версия, доступная на GitHub, — это 5.4.6.
Уязвимость в xz Utils была построена по схеме атаки на цепочку поставок. Для её реализации злоумышленнику или группе пришлось два года втираться в доверие к сообществу открытого программного обеспечения, чтобы получить права мейнтейнера и внедрить нужный код. Бэкдор обнаружил разработчик из Microsoft Андрес Фройнд, который заметил замедление работы компьютера.
Отмечается, что хакер или группа с именем «Цзя Тан» вносила в инструмент изменения, в том числе «полезные», на протяжении более двух лет. При этом она оказывала давление на дистрибьюторов Linux, чтобы они включали скомпрометированные версии xz из-за предполагаемых новых функций.
Бэкдор позволял злоумышленникам получить несанкционированный доступ к системам через скомпрометированные компоненты инструментов, вставив код в процессе входа в систему по SSH. Он встроен в пакеты xz или liblzma (содержит xz) версий 5.6.0 и 5.6.1. Чтобы ifunc работал, бэкдор проверяет архитектуру системы и наличие в системе библиотеки glibc. Полезная нагрузка активируется тогда, когда запущена программа с именем процесса /usr/sbin/sshd.
Версии xz 5.6.0 и 5.6.1 оказались лишь в нескольких дистрибутивах Linux, а большинство из них представляют собой разработки, тестовые или экспериментальные версии, которые не используются регулярно.