У лютому 2024 року в утиліту Linux xz в бібліотеці liblzma в версіях 5.6.0 і 5.6.1 був введений шкідливий бекдор. Цю уразливість додав обліковий запис з іменем «Jia Tan». Бекдор надає атакуючому, який має конкретний приватний ключ Ed448, можливість віддаленого виконання коду на ураженій системі Linux. Проблемі присвоєно номер Common Vulnerabilities and Exposures CVE 2024-3094 та оцінено за системою CVSS на 10.0, що є найвищим можливим балом.

Хоча xz зазвичай присутній у більшості дистрибутивів Linux, на момент виявлення версія з бекдором ще не була широко впроваджена в системи, але була присутня у версіях для розробки основних дистрибутивів. Бекдор був виявлений розробником програмного забезпечення Андресом Фройндом, який оголосив про свої знахідки 29 березня 2024 року.

Передісторія Співробітник Microsoft і розробник PostgreSQL Андрес Фройнд повідомив про бекдор після дослідження в Debian Sid. Фройнд помітив, що SSH-з'єднання викликали несподівано високе використання процесора, а також спричиняли помилки в Valgrind, інструменті для відлагодження пам'яті. Фройнд повідомив про свою знахідку на список розсилки з відкритим кодом , що привернуло увагу різних постачальників програмного забезпечення. Атакуючий вживав заходів для заплутування коду, оскільки бекдор складається з кількох етапів, які діють разом.

Після того як скомпрометовану версію інтегрують в операційну систему, вона змінює поведінку демона сервера OpenSSH SSH, зловживаючи бібліотекою systemd, що дозволяє атакуючому отримати доступ до адміністратора. Згідно з аналізом Red Hat, бекдор може «дозволити зловмиснику обійти аутентифікацію sshd і отримати несанкціонований віддалений доступ до всієї системи».

Подальше розслідування виявило, що кампанія з внесення бекдору в проєкт XZ Utils була кульмінацією приблизно трирічних зусиль, між листопадом 2021 року та лютим 2024 року, з боку користувача, що використовує ім'я Jia Tan та псевдонім JiaT75, щоб отримати доступ до позиції довіри в межах проєкту. Після періоду тиску на засновника і головного мейнтейнера з метою передачі контролю над проєктом через очевидне , Jia Tan здобув позицію спільного мейнтейнера XZ Utils і зміг затвердити версію 5.6.0, яка ввела бекдор, та версію 5.6.1, яка виправила деякі аномальні поведінки, які могли бути помітні під час тестування програмного забезпечення операційної системи.

Деякі з підозрюваних псевдонімів у випадку sock puppetry включають акаунти з іменами користувачів такими як Jigar Kumar, krygorin4545 та misoeater91. Підозрюється, що імена Jia Tan, а також ймовірний автор коду Hans Jansen (для версій 5.6.0 та 5.6.1) є псевдонімами, обраними учасниками кампанії. Ні одне з них не має помітної публічної присутності в розробці програмного забезпечення, окрім короткого періоду кампанії.

Бекдор відзначався рівнем складності та тим, що зловмисник дотримувався високого рівня операційна безпека протягом тривалого часу, працюючи над здобуттям позиції довіри. Американський дослідник безпеки припустив, що це відповідає патерну, притаманному APT29, актору прогресивної стійкої загрози, що, ймовірно, працює на користь Росіянської СВР. Журналіст Томас Клабурн припустив, що це може бути будь-який державний актор або недержавний актор з значними ресурсами.

Механізм Шкідливий код відомий у версіях 5.6.0 та 5.6.1 програмного пакету XZ Utils. Експлойт залишається бездіяльним, якщо не використовується конкретний сторонній патч для SSH-сервера. За певних обставин це втручання може потенційно дозволити зловмиснику обійти аутентифікацію sshd і отримати несанкціонований віддалений доступ до всієї системи. Шкідливий механізм складається з двох стиснутих тестових файлів, які містять шкідливий бінарний код. Ці файли доступні в git-репозиторій, але залишаються бездіяльними, якщо не витягнути і не ввести їх у програму. Код використовує механізм glibc IFUNC для заміни існуючої функції в OpenSSH, званої , на шкідливу версію. OpenSSH зазвичай не завантажує liblzma, але загальний сторонній патч, який використовується в кількох дистрибутивах Linux, змушує його завантажити libsystemd, який, в свою чергу, завантажує lzma. Модифікована версія була включена в файл tar релізу, завантажений на GitHub, який витягує скрипт, що виконує фактичну ін'єкцію в . Цей модифікований файл m4 не був присутній у git-репозиторії; він був доступний лише з tar-файлів, опублікованих мейтейнером окремо від git. Скрипт, здається, виконує ін'єкцію лише коли система будується на x86-64 Linux-системі, яка використовує glibc і GCC і будується через dpkg або rpm.

Відповідь

Виправлення

Федеральне агентство США з кібербезпеки та захисту інфраструктури видало повідомлення про безпеку, в якому рекомендується повернутися до попередньої, некомпрометованої версії постраждалих пристроїв. Постачальники програмного забезпечення Linux, включаючи Red Hat, SUSE та Debian, повернули постраждалі пакети до старіших версій. GitHub вимкнув дзеркала для репозиторію xz перед відновленням їх.

Canonical відклала бета-реліз Ubuntu 24.04 LTS та її смаки на тиждень і вирішила провести повну повторну збірку всіх пакетів дистрибутива. Хоча стабільна версія Ubuntu не постраждала, версії були. Цей запобіжний захід був вжитий, оскільки Canonical не могла гарантувати до оригінального терміну випуску, що виявлений бекдор не вплинув на додаткові пакети під час компіляції.

Ширша реакція

Комп'ютерний вчений Алекс Стамос висловив думку, що «це міг бути наймасовіший і найефективніший бекдор, який коли-небудь був впроваджений у будь-який програмний продукт», зазначаючи, що якби бекдор залишився непоміченим, він би «дав своїм творцям майстер-ключ до будь-якого з сотень мільйонів комп'ютерів по всьому світу, на яких працює SSH». Крім того, інцидент також започаткував обговорення щодо життєздатності залежності критичних частин кіберінфраструктури від неоплачених волонтерів.

Примітки

Джерела

Посилання

Звіт Андреса Фрейнда до поштового списку Openwall oss-security