Контакты
Подписка
МЕНЮ
Контакты
Подписка

Systemd позволяет получить права суперпользователя на дистрибутивах Linux

Systemd позволяет получить права суперпользователя на дистрибутивах Linux

Systemd позволяет получить права суперпользователя на дистрибутивах Linux


06.07.2017



Получить права суперпользователя на дистрибутиве Linux, использующем для инициализации системный менеджер systemd, можно с помощью недействительного имени пользователя в файле systemd.unit.

 В Linux во избежание путаницы между числовыми идентификаторами пользователя (UID) и буквенно-числовыми именами пользователя, последние не должны начинаться с чисел. Тем не менее, в некоторых современных дистрибутивах, таких как RHEL7 и CentOS, это разрешено. Systemd не позволяет создавать unit-файлы с недействительным именем пользователя, однако другие инструменты могут создавать такие файлы. Если systemd столкнется с недействительным именем пользователя в unit-файле, например, "0day", менеджер проигнорирует параметр и создаст запрашиваемый сервис. При этом unit-файл будет запущен с правами суперпользователя.

 Сообщения о проблеме стали появляться на GitHub еще неделю назад. Тем не менее, один из главных разработчиков systemd Леннарт Поттеринг (Lennart Poettering) заявил, что ПО работает, как положено и отказался вносить какие-либо изменения. "Не считаю нужным что-то исправлять в systemd. Я понимаю, это раздражает, но все-таки: имя пользователя явно недействительное", - отметил разработчик.

 В Linux-сообществе с мнением Потетринга согласны далеко не все. По словам бельгийского разработчика Маттиаса Гениара (Mattias Geniar), проблема может считаться уязвимостью, поскольку проводимый systemd синтаксический анализ параметра User= в unit-файлах с недействительным именем пользователя дает привилегии суперпользователя. Другое дело, если бы предоставлялись права пользователя, отметил Гениар. Как отметил разработчик, уязвимость вызывает некоторые опасения, однако не является критической из-за ограниченного вектора атак (для эксплуатации уязвимости нужны права администратора).

 Systemd – системный менеджер, демон инициализации других демонов в Linux, пришедший на замену используемого ранее SysV. Его особенностью является интенсивное распараллеливание запуска служб в процессе загрузки системы, что позволяет существенно ускорить запуск операционной системы.

 

Securitylab