Трохи більше 2 місяців тому ми поділилися тут, у блозі, статтею про випадок із бекдором в утиліті XZ. У тій самій публікації я також поділився своєю думкою, в якій згадував, і згадуватиму ще, що про цей випадок ще довго будуть говорити, оскільки «це один із найкращих прикладів прикладної соціальної інженерії».
Ми також опублікували кілька додаткових публікацій того часу , в яких зібрали різні дії, вжиті у цій справі, а також те, як ситуація могла так довго залишатися непоміченою.
І ось, оригінальний автор і розробник проєкту xz, Лассе Коллін, оголосив про випуск нових версій виправлень XZ Utils 5.2.13, 5.4.7 та 5.6.2. Ці версії видаляють бекдори з компонентів та інші підозрілі зміни, які раніше приймав Цзя Тан.
Поряд із випуском патч-версій, Лассе Коллін також поділився звітом про огляд репозиторію Git, включаючи зміни, внесені з грудня 2022 року, коли Цзя Тан був відповідальним за розробку проєкту. У звіті детально описано зміни, проаналізовані на рівні окремих комітів, і зазначається, що хоча коміти в репозиторії не були підписані цифровим підписом, жодних ознак втручання з боку комітерів не було виявлено. Загалом з репозиторію було видалено вісім шкідливих комітів.
І хоча з 2023 року були деякі зміни, які підозрювалися у впровадженні шкідливих змін, можна зазначити, що у звіті детально зазначено, що перші зміни, впроваджені для впровадження бекдора, датуються початком 2024 року, коли Цзя Тан вже мав більше активності, пов'язаної з впровадженням бекдора в XZ.
Ці стиснені файли були створені та підписані Jia Tan. Вони були перевірені та не містять шкідливого вмісту.
Примітка
Теги v5.2.11 і v5.4.2 у сховищі Git були підписані Jia Tan, але файли tar були створені та підписані мною.
За наведеними нижче винятками, файли в сховищі Git збігаються з файлами tar:Файли .po оновлюються як частина make mydist (або make dist)
ChangeLog — це файл, створений в архівах tar.
Кожна версія доступна в більш ніж одному форматі стиснення. Декомпресія .tar однакова для всіх форматів стиснення кожної версії.
Списки файлів у zip-файлах хороші. Наприклад, той самий файл не з’являється більше одного разу.
PDF-файли важко відтворити, оскільки вони містять позначку часу, а також залежать від версії використовуваних інструментів. Однак PDF-файли виглядають нормально, і їх розміри також нормальні (вони відрізняються лише на кілька байтів).
У звіті також згадується, що CRC-код CLMUL, який генерує хибнопозитивні результати під час перевірки за допомогою MSAN (засіб для очищення пам'яті) та спричиняє проблеми з OSS Fuzz, ще не видалено з кодової бази. Хоча є плани переробити цей код у майбутньому, наразі вирішено його не чіпати, щоб уникнути регресій у старіших гілках. У старіших коммітах, доданих до змін, пов'язаних із бекдором, не було виявлено жодних підозрілих змін. Крім того, окремо перевірялося розташування po-файлів, метаданих в tar-архівах та файлів, що містять версії та переклади.
Крім того, також згадується, що зміни включають виправлення давніх помилок та видалення підтримки механізму IFUNC, що надається в Glibc для непрямих викликів функцій, який використовувався для організації перехоплення бекдор-функцій. Важливо зазначити, що використання IFUNC лише ускладнює код, а приріст продуктивності незначний. Як запобіжний захід, логотип XZ, PDF-версії сторінок довідки та два тести для архітектур x86 та SPARC, які обробляли об'єктні файли як вхідні дані, також були видалені з вихідного пакета.
Щодо впроваджених покращень , наприклад , декодер xzdec тепер підтримує ABI версії 4 механізму ізоляції програм Landlock. Крім того, до скриптів збірки Autotools було додано параметр `--enable-doxygen`, а до скрипта Cmake – параметр `ENABLE_DOXYGEN` для створення та встановлення документації для API liblzma за допомогою Doxygen. Раніше згенеровану документацію також було видалено з пакета, щоб зменшити розмір та складність.
Зрештою, якщо ви зацікавлені дізнатися більше про це, ви можете ознайомитися з деталями публікації за наступним посиланням.