Год спустя: бэкдор XZ Utils сохраняется в Docker-образах

information security

Спустя более года после раскрытия масштабного инцидента с бэкдором в утилитах сжатия XZ Utils, угроза продолжает скрываться в публичных Docker-образах.  Binarly обнаружила десятки официальных и производных контейнеров на Docker Hub, содержащих опасный код, что свидетельствует о долговременных рисках для цепочек поставок ПО.

Описание

Напоминание об инциденте

В конце марта 2023 года разработчик под псевдонимом Jia Tan, два года формировавший репутацию доверенного контрибьютора, внедрил скрытую уязвимость в пакеты xz-utils. Бэкдор, внедренный в библиотеку liblzma.so, активировался при взаимодействии клиента с зараженным SSH-сервером. Он модифицировал критические функции OpenSSH (RSA_public_decrypt, RSA_get0_key и EVP_PKEY_set1_RSA), используя сложную цепочку хуков через модифицированные IFUNC-резолверы. Зараженные пакеты попали в официальные репозитории Debian, Fedora и OpenSUSE, вызвав экстренную реакцию сообщества. Binarly тогда выпустила бесплатный инструмент XZ.fail для детектирования аномалий.

Неожиданное продолжение

Новое исследование Binarly выявило минимум 35 Docker-образов, до сих пор содержащих опасный код. Двенадцать из них - официальные образы Debian, собранные в период компрометации. Среди идентифицированных тегов - unstable-20240311, trixie-20240311 и экспериментальные сборки. Все относятся к архитектуре amd64. Особую тревогу вызывает наличие "вторично зараженных" образов, созданных на основе этих уязвимых базовых слоев. В их числе:

  • Инструменты для разработки (buildpack-deps)
  • Специализированные среды (neurodebian, georchestra/jenkins-builder)
  • Инфраструктурные решения (controlplane/sectools)
  • Пользовательские проекты (myoung34/github-runner, slash5toaster/calibre)

Некоторые из этих образов помечены как "latest", повышая риск случайного использования. Эксперты подчеркивают, что это лишь "верхушка айсберга": исследование ограничилось Debian-образами и прямыми зависимостями из-за отсутствия в Docker Hub реверсивного индекса для отслеживания наслоений.

Реакция сопровождающих и риски

Binarly уведомила сопровождающих Debian, однако образы не были удалены. В ответе представители Debian указали, что пользователи должны полагаться на актуальные сборки. Исследователи частично согласны с этой позицией, но отмечают: сохранение публично доступных образов с сетевым бэкдором создает значительный риск. Хотя для эксплуатации требуется доступ к ключам бэкдора и работающий SSH-сервис, сам факт их доступности позволяет злоумышленникам целенаправленно искать уязвимые системы.

Системные выводы

Инцидент демонстрирует три ключевые проблемы:

  1. Долговечность артефактов: Кратковременные скомпрометированные сборки сохраняются в реестрах годами.
  2. Каскадное заражение: Один инфицированный базовый образ порождает "дерево" уязвимых производных контейнеров.
  3. Ограничения мониторинга: Отслеживание только версий пакетов недостаточно - требуется бинарный анализ.

Индикаторы компрометации

TagManifest DigestBlob Hash
rc-buggy-20240311a702c7f4bb57a17762e258871f45f8273ae49bec5515452d5133e66450c95ba53a737ad8ab65fe5ad068d6094fbf99ce9ed2b5beff9c86daceee8c2c50182bde
experimental-2024031181992d9d8eb99b5cde98ba557a38a171e047b222a767dc7ec0ffe0a194b1c469cd5a0401cc26824227d6ffe1f921e91657dc46666e0f20f408d8d154ca49f5c0
unstable-20240311-slim7a3332fbf100a0ef9762ead20a4224665768b237c5bfedfe0f86bf88e0c13b7a40f436db82f2316ccced5a0deef57fac6eb766b073d7e64d5dfe93e6782482b1
unstable-202403118690225da3ca369e9be720446f73e0aa06f290776fdf2605b6ec80c2b229b9f6cd5a0401cc26824227d6ffe1f921e91657dc46666e0f20f408d8d154ca49f5c0
trixie-20240311-slimd4e306f14b8b7389b36be8fb0eadab638cb7744546a33a74f0fc27bb9037dc14b94224647092fbfb1fa9ceb18cf55a60f5a00183971516dd46f1f72f5f7b26df
trixie-2024031185068c773f7fcc9c9acd8f244759cb2131e7a1775c5bf8d6710f76e7467fa3f193e647bfd891e82156d7a13e0f0b194003855008967ec51e962ea0d70fc59ff6
testing-20240311-slimc2e15dd5788b20f360ab3f2d8b60111b6e8b011c5c4960e0129551c743f5cd30243521c5a6cd930662c078eec5f83156663f3197cf12158ce60e0a0f9d0a3eb6
testing-202403110746d89c588160d0470beaae7a55e38305ede06cb5717d132bd6a795610234d8522a6d12a8a3032c984d93fd141274f1cb7cc1e9a6942e3b36cbf803bbe36a12
sid-20240311-slim94596b0770714bac6e8adef7e1d3dbc16245ad2978f94006587e44850343cb88554b70c8b9ed0854851a55e915cefa47cdc18fed201b4aba87193d575410b53d
sid-202403110aff2113f50451631f0f8c22d85c97aad855d73545b6018fcbe9f0a78ae265833a737ad8ab65fe5ad068d6094fbf99ce9ed2b5beff9c86daceee8c2c50182bde
untaggedfa2016c58b4df666286dfa14b2402c05d60c556ecfd4c60635b64ad21380edba93e647bfd891e82156d7a13e0f0b194003855008967ec51e962ea0d70fc59ff6
untaggede24f4205978e6c0f98697e2075439825f86df56457d2d1ea9e0f8593cf5b5236522a6d12a8a3032c984d93fd141274f1cb7cc1e9a6942e3b36cbf803bbe36a12

 

RepositoryTagLatest Tag?Manifest Digest
buildpack-depsuntagged-5e4438a4660fff39ff4671bc5ecfaea3e639dafe61d5c19c735335c96d61c1e4
buildpack-depsuntagged-443be2e684c2974f94329fe904ab025826cd45f4a1dc52a922e5b01e66e75ee0
buildpack-depsuntagged-8f95f8a59ac3227cb7483799a6836e9c79d5cef491ba672c1958abdf36bf7648
buildpack-depsuntagged-bf7c5e7df1344c29825cecf0b13a48e3542d9076344bb488f886f9dfce534e05
buildpack-depsuntagged-8d5e5912bc9fdc287f89b87e7b97a615110842f6c6f3ed380dccef85a75ef6cc
buildpack-depsuntagged-d650be418934c90f6e9e3efcb52bef7ad660324074002efb8541e7baf9aab6d8
neurodebianuntagged-388d46f65da097cd9371385d9c2f3f3fe04d4bc88b529b52125b9f94d74edaff
neurodebianuntagged-7ffa336b9a0f2e594d1df70ce66a259db156902baa371337a6bfaae2eefa4de3
r-baseuntagged-3b5c502ccd9d4a6c0937a6bfc51e02741bdc7c520fe458ce4d9c136553df42b0
georchestra/jenkins-buildersid-jdk-8YESd7ad7c3386a874e81006bc6fab0ce7eb5cf227f4a1c2d3dff7850e17ff7a5f48
myoung34/github-runner2.315.0-debian-sidNO8c0c44b7404fdcdc52f4c04d41b2a674510ac98f21fb81cd68575be30eeb51a7
slash5toaster/calibre7.7.0NOfa5dcddaa909b76a8b6c5fb44a8eb833ab2f407f81cc7185a9c299e02cc1c2ef
flowgunso/seafile-client9.0.4NOb6d1c3b9232874356dee489685528f94c048e6683573cdb5b0a0b106e3d85708
makepad/opencvtrixie-4.8.1NO153319e41415b5a789704e31017aff2e2c8223c2e155875947639935fa4f72ca
makepad/opencvtrixie-4.8.0NO1b5b2b14dc1262074e0b933ae8a483a5f21c5fc2e9dd42f0b7e8f2fa2ebc12a0
makepad/opencvtrixie-4.7.0NO060fddaf2879513e900d0e93097c3096f541ca871c390639bb6cb67c6fd1bc84
makepad/opencvtrixie-4.9.0YES2fdc5fa0c19fe4e04d3117477f49b8b7e0e4124290d9f4270f215f8e7c5b9078
makepad/opencvtrixie-slim-4.8.0NOf5e90754a89e6837c7b5165b57ffd4d5d66990d798bfce1018048b7ac21f0e6a
makepad/opencvtrixie-slim-4.9.0YES7a4e5b592b318a38542dd21f87a810263d39a3b4caf9d85bb973594264a38fca
makepad/opencvtrixie-slim-4.8.1NOcdb95cc294d7ea4f1703e817674c477e99a80be16a6c980f88365f77c195f0f0
makepad/opencvtrixie-slim-4.7.0NO94a10719a142f3b11c6d8cd4bc88b415a163f7052061c22222df7c4c96a95aa2
optionfactory/debian1380NO1dedf1ad124f7eff12011122565bed92c207d3cd1c9b650a40fb680d846bd515
optionfactory/debian1381NO1dedf1ad124f7eff12011122565bed92c207d3cd1c9b650a40fb680d846bd515
controlplane/sectoolslatestYES86090b316ad096e53c81f91e94ac2ae95c2f28feee10ce8ec32aa573d8263021
Комментарии: 0