- PVSM.RU - https://www.pvsm.ru -

В systemd нашли три уязвимости — разбираемся, в чем дело

В начале месяца специалисты по ИБ из Qualys обнаружили [1] сразу три уязвимости в systemd [2] — подсистеме инициализации Linux — позволяющие злоумышленнику получить права суперпользователя. Рассказываем, в чем их суть и какие дистрибутивы им подвержены.

В systemd нашли три уязвимости — разбираемся, в чем дело - 1 [3]
/ Flickr / David Goehring [4] / CC BY [5] / Фото изменено

Старые новые уязвимости

Все три уязвимости связаны с сервисом ведения журнала systemd — journald. В базе данных CVE им присвоили следующие идентификаторы: CVE-2018-16864 [6], CVE-2018-16865 [7] и CVE-2018-16866 [8]. Эти уязвимости дают злоумышленнику возможность заполучить root-права на атакуемой системе.

Опасности подвержены все дистрибутивы без функции защиты пользовательского пространства (-fstack-check [9]) — Debian, Ubuntu, Fedora, CentOS, Mageia и др. Среди исключений числятся SUSE Linux Enterprise 15 и openSUSE Leap 15.0, а также Fedora версий 28 и 29.

Что интересно, всем трем уязвимостям уже несколько лет [10], просто о них ничего не было известно. CVE-2018-16864 возникла в 2013 году, но эксплуатировать её стало можно в 2016-м, когда systemd обновили до 230 версии. CVE-2018-16865 появилась в операционной системе в 2011-м, но стала критичной только через два года, после релиза systemd версии 201.

Что касается третьей уязвимости (CVE-2018-16866), то она существует с 2015 года. Однако её случайно закрыли обновлением systemd v240 спустя несколько лет. Машины без этого патча находятся под угрозой до сих пор.

В чем суть обнаруженных «дыр»

Уязвимость CVE-2018-16864 позволяет злоумышленнику провести манипуляции с командной строкой и отправить множество аргументов (весом в несколько мегабайт) systemd-journald, тем самым вызывая падение процесса. Далее у хакера появляется возможность захватить контроль над расширенным указателем команд (EIP).

Проблема с CVE-2018-16864 связана с записью большого сообщения в /run/systemd/journal/socket. В результате часть этого сообщения выходит за пределы стека и попадает в регион mmap [11]. После злоумышленник может переписать сегмент read-write [12] у libc [13] и заменить указатель функции и запустить в системе любую желаемую цепочку программ.

Что касается CVE-2018-16866, то она связана с ошибкой разбора строки. Если направить системе журналирования специальное сообщение (оканчивающееся символом двоеточия) в формате syslog, то система проигнорирует конец строки и запишет в лог следующую за ним часть стека.

Вторая и третья уязвимость позволяют реализовать так называемую атаку возврата в библиотеку [14] и запускать на машине жертвы любые функции. По словам [15] специалистов из Qualys, им удалось создать эксплойт и получить права суперпользователя на компьютерах с архитектурой i386 и amd64 за 10 и 70 минут соответственно.

«Эти уязвимости довольно серьезны, учитывая, что они позволяют повышать права доступа в системе. Авторы пока держат в тайне код своего эксплойта, поскольку «дыры» есть в большом количестве дистрибутивов, — комментирует начальник отдела развития IaaS-провайдера 1cloud.ru [16] Сергей Белкин. — Они его опубликуют, когда уявзимости будут закрыты. Некоторые разработчики, например из Ubuntu [17] и Red Hat [18], уже выложили необходимые патчи. Их можно найти в официальных репозиториях».

В systemd нашли три уязвимости — разбираемся, в чем дело - 2
/ Flickr / bradleypjohnson [19] / CC BY

Какие еще уязвимости находили в systemd

Последний раз уязвимость в systemd обнаружили [20] в октябре 2018 года. DHCPv6-клиент менеджера служб автоматически запускался при получении сообщения от любого DHCP-сервера локальной сети или интернет-провайдера. С помощью этого сообщения в systemd можно было вызвать [21] отказ памяти и получить контроль над компьютером.

До этого несколько багов в коде менеджера служб нашли в 2017 году. Один из них позволял [22] злоумышленникам использовать TCP-пакеты, чтобы выполнить любой код в системе. TCP-пакеты «заставляли» systemd выделять слишком маленький объём буфера для сообщения. Это позволяло писать произвольные данные за пределами буфера в основную память.

Другая уязвимость 2017 года была связана [23] с несанкционированным получением прав суперпользователя. В некоторых дистрибутивах, например CentOS и RHEL7, в systemd была возможность создать профиль с именем пользователя, которое начинается с цифры. Хотя обычно в Linux эта возможность не предусмотрена. Но если в системе появлялся такой пользователь, менеджер служб предоставлял ему права администратора.

Все эти уязвимости были закрыты в короткие сроки. «Заплатки» для новых «дыр», обнаруженных в январе, тоже постепенно появляются. Можно ожидать, что скоро уязвимости закроют в большинстве дистрибутивов, и администраторам Linux-серверов и компьютеров останется только установить обновление системы.

Посты из корпоративного блога 1cloud:

Автор: 1cloud

Источник [27]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/306556

Ссылки в тексте:

[1] обнаружили: https://www.bleepingcomputer.com/news/security/linux-systemd-affected-by-memory-corruption-vulnerabilities-no-patches-yet/

[2] systemd: https://ru.wikipedia.org/wiki/Systemd

[3] Image: https://habr.com/ru/company/1cloud/blog/437556/

[4] David Goehring: https://www.flickr.com/photos/carbonnyc/9086437706

[5] CC BY: https://creativecommons.org/licenses/by/2.0/

[6] CVE-2018-16864: https://cve.mitre.org/cgi-bin/cvename.cgi?name=2018-16864

[7] CVE-2018-16865: https://cve.mitre.org/cgi-bin/cvename.cgi?name=2018-16865

[8] CVE-2018-16866: https://cve.mitre.org/cgi-bin/cvename.cgi?name=2018-16866

[9] -fstack-check: https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html

[10] уже несколько лет: https://www.securitylab.ru/news/497385.php

[11] mmap: https://ru.wikipedia.org/wiki/Mmap

[12] read-write: https://en.wikipedia.org/wiki/Read-write_memory

[13] libc: https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%A1%D0%B8

[14] атаку возврата в библиотеку: https://ru.wikipedia.org/wiki/%D0%90%D1%82%D0%B0%D0%BA%D0%B0_%D0%B2%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%82%D0%B0_%D0%B2_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D1%83

[15] словам: https://www.openwall.com/lists/oss-security/2019/01/09/3

[16] IaaS-провайдера 1cloud.ru: https://1cloud.ru/?utm_source=habrahabr&utm_medium=cpm&utm_campaign=linuxbug&utm_content=blog

[17] Ubuntu: https://usn.ubuntu.com/3855-1/

[18] Red Hat: https://github.com/systemd/systemd/commit/084eeb865ca63887098e0945fb4e93c852b91b0f

[19] bradleypjohnson: https://www.flickr.com/photos/bradleypjohnson/5663414458/

[20] обнаружили: https://www.securitylab.ru/news/496192.php

[21] вызвать: https://www.theregister.co.uk/2018/10/26/systemd_dhcpv6_rce/

[22] позволял: https://xakep.ru/2017/06/29/systemd-bug/

[23] была связана: https://www.theregister.co.uk/2017/07/05/linux_systemd_grants_root_to_invalid_user_accounts/

[24] Как защитить персональные данные, и от чего их защищать: https://1cloud.ru/blog/personalnye-dannye-chast-2?utm_source=habrahabr&utm_medium=cpm&utm_campaign=linuxbug&utm_content=blog

[25] Тренировочный стенд для админов: как не наломать дров на боевой инфраструктуре: https://1cloud.ru/blog/oblachnyj-server-dlja-praktiki-sysadmina?utm_source=habrahabr&utm_medium=cpm&utm_campaign=linuxbug&utm_content=blog

[26] Персональные данные: особенности публичного облака: https://1cloud.ru/blog/personalnye-dannye-chast-3?utm_source=habrahabr&utm_medium=cpm&utm_campaign=linuxbug&utm_content=blog

[27] Источник: https://habr.com/ru/post/437556/?utm_campaign=437556