вторник, 2 апреля 2024 г.

Хитроумная лазейка длиной в 2 года

Хитроумная лазейка длиной в 2 года

    В мире компьютерной безопасности, сегодня — интересный день. Точнее, он начался вчера вечером, когда немецкий разработчик Андрес Фройнд опубликовал отчёт о тайной лазейке (бэкдоре), которую он обнаружил в новых версиях широко используемой библиотеки для сжатия «Liblzma» (часть архиватора «XZ»).

    Лазейка позволяет взломщикам заходить через «SSH» на системы, в которых установлены эти новые версии. К счастью, похоже, что это всего несколько дистрибутивов «Линукса» в их дорелизовых версиях.

    Всех очень впечатлило, насколько эта лазейка была сделана хитро, и как взломщик (или взломщики) серьёзно поработали над тем, чтобы замести следы:

  • ~ Взломщик под именем/псевдонимом «Jia Tan» почти два года (!) участвовал в разработке опенсорсного пакета «XZ», завоевал доверие его «мейнтейнеров» и получил доступ к прямому «коммиту» в его репозиторий. Он сделал больше 700 «коммитов», лишь малая часть которых медленно подготовила код для лазейки;

  • ~ Основной код лазейки спрятан в тестовых файлах проекта (примеры «плохих» и «хороших» архивов);

  • ~ Исходный код, который включает лазейку в собственно библиотеку, вообще не является частью основного репозитория в «Github». Он спрятан в tar-архивах двух последних релизов, которые, обычно, используются «мейнтейнерами» дистрибутивов. То есть, есть «таг» релиза, есть архив, якобы собранный из репозитория в момент этого «тага», но на самом деле — в нём есть крохотная «добавка». В самом репозитории её нет;

  • ~ Эта «добавка» прячется в конфигурационной магии autoconf, которую все ненавидят лютой ненавистью и никто никогда не заглядывает внутрь;

  • ~ Она проверяет, когда исходники конфигурируют именно для постройки дебиан-пакета или rpm-пакета (т. е. то, что будут делать «мейтейнеры» дистрибутивов), и только в этом случае вынимает из тестовых файлов определённые куски и добавляет в код библиотеки;

  • ~ Внутри библиотеки, код лазейки заменяет несколько функций, которые работают с символьными таблицами библиотек во время их подгрузки. Затрачены специальные усилия, чтобы имена функций не появлялись в двоичном коде. Что именно дальше делает код лазейки — до конца ещё не ясно. Но он обрабатывает сам символьные таблицы библиотек и, видимо, находит то, что имеет отношение к ssh-серверу, и что-то там заменяет. Это ещё проверяют сейчас;

  • ~ Интересно, что «Openssh», стандартный ssh-сервер под «Линуксом», не использует библиотеку «Liblzma», в которую вставили эту лазейку, но несколько популярных дистрибутивов добавляют в него поддержку уведомлений системы, «Systemd», а библиотека «Libsystemd» уже, в свою очередь, использует «Liblzma»;

  • ~ После того, как вышли версии библиотеки с ошибкой, несколько разных людей с незамеченными до того именами (очевидно, «альты» взломщика или сообщники) стали открывать запросы в разных программах и пакетах сделать апгрейд на эти новые версии. И в некоторых случаях — преуспели.

    Взломщик допустил только одну ошибку: код лазейки, когда он работает как часть «Openssh», довольно медленно обрабатывает эти символьные таблицы (или что он ещё там делает) и даже неудачная попытка логина в такую систему занимает на полсекунды дольше, чем обычно. Андрес Фройнд заметил эти полсекунды задержки. Они его раздражали. Он решил найти, какой новый баг к этому приводит, и нашёл эту лазейку.

    Если бы всё происходило быстро и не было задержки в полсекунды, очень может быть, что это не замечали бы месяцы и годы, и этот код попал бы в основные дистрибутивы, в версии «Линукса», которые запускаются у основных облачных провайдеров и т. д.

    Они реально очень, ОЧЕНЬ хорошо замели следы.

    Теперь все думают, что надо было/надо теперь делать по другому и как обнаружить следующую лазейку такого типа (или предыдущую, если она уже есть и никто не знает), не опираясь на удачу и героическую занудливость Андреаса Фройнда.

    Автор: «Авва».

 

    Интересное...

 




Другие посты по этой теме:



0 коммент.:

Отправить комментарий

Ваш комментарий появится в блоге после проверки администратором