В systemd е открита уязвимост, която вече е описана в (CVE-2019 6454-), Какво позволява да се блокира процесът на инициализация на контрола (PID1) при изпращане на специално създадено съобщение до непривилегирован потребител по D-Bus.
Лос Разработчиците на Red Hat също не изключват възможността за използване на уязвимостта за организиране на изпълнението на код с root права., но окончателната възможност за такава атака все още не е определена.
За systemd
За тези, които не познават Systemd Мога да ви кажа това това е система за инициализация на Linux и мениджър на услуги което включва функции като стартиране на демон при поискване, поддръжка на автоматичен монтаж и точка на монтиране, поддръжка на моментни снимки и проследяване на процеси с помощта на контролни групи на Linux.
Systemd предоставя демона на системния регистър и други инструменти и помощни програми, за да ви помогне с общи задачи за системно администриране. Lennart Poettering и Kay Sievers написаха SystemD, вдъхновени от macOS launchd и Upstart, с цел да създадат модерна и динамична система.
По-специално, systemd предоставя агресивни възможности за успоредяване и базирана на зависимостта логика за управление на услуги, което позволява на услугите да стартират паралелно и водят до по-бързо време за стартиране. Тези два аспекта присъстваха в Upstart, но бяха засилени от systemd.
Systemd е системата за стартиране по подразбиране за основните дистрибуции на Linux, но е обратно съвместим със стартовите скриптове на SysV.
SysVinit е система за инициализация, която предшества systemd и използва опростен подход за стартиране на услугата. Systemd не само управлява инициализацията на системата, но също така предоставя алтернативи на други добре познати помощни програми като cron и syslog.
Относно новата уязвимост на systemd
Чрез манипулиране на размера на съобщението, изпратено през D-Bus, нападателят може да премести показалеца извън границите на паметта, разпределена за стека, заобикаляйки защитата на "стек страж-страница", която се основава на заместването на страница с памет в края, която извиква изключение (грешка на страницата).
Успешната атака е демонстрирана на Ubuntu 18.10 с systemd 239 и на CentOS 7.6 с systemd 219.
Като заобиколно решение компилацията може да се използва в GCC с опцията "-fstack-clash-protection", която се използва по подразбиране във Fedora 28 и 29.
Следва да се отбележи, че през 2014 г. авторът на системната библиотека MUSL посочи сред основните архитектурни проблеми, системни манипулатори на прекомерна инфлация и постави под въпрос осъществимостта на внедряването на API за ниво на PID1 контролер за връзка към шината, тъй като това е сериозен вектор за атаки и може да повлияе неблагоприятно на надеждността на цялата система
Според изследовател по сигурността, който разкри уязвимост, промяната на указателя на стека е възможна само за неизползвани страници с памет (неприсвоено), което не позволява да се организира изпълнение на код в контекста на процеса PID1, но позволява на атакуващ да инициира заключване PID1 с последващо преминаване на ядрото на Linux в състояние на "паника" при неуспех на PID контролер 1 цялата система виси).
В systemd е инсталиран манипулатор на сигнали, който се опитва да улавя грешките в процеса PID1 (грешка в сегментирането) и стартира обвивката за възстановяване.
Но тъй като по време на атаката се извиква недублирани (неразпределени) страници с памет, ядрото не може да извика този манипулатор на сигнали и просто прекратява процеса с PID 1, което от своя страна прави Невъзможно е да продължите да работите и да влезете в състоянието "паника", така че е необходимо рестартиране на системата.
Вече има решение на проблема
Както всеки проблем със сигурността, вече описан и докладван, публикуването му не може да бъде направено, докато проблемът не бъде решен и актуализации за корекции на уязвимости за SUSE / openSUSE, Fedora вече са пуснати, също за Ubuntu и отчасти за Debian (Само за Debian Stretch).
Въпреки че проблемът остава неотстранен в RHEL.
Това е, че systemd има всички признаци да стане огромен троянски кон. Разкъсва се с философията на UNIX „Направи едно нещо и го направи добре“ и в крайна сметка ще платим за това.
Аз мисля същото…
Аз лично съм доста консервативен по отношение на системата за зареждане, мисля, че като най-старите и традиционни потребители на традиционния и примитивен UNIX: ПРЕДПОЧАВАМ СИСТЕМАТА В ИНСТИТУТА ИЛИ БЪДЕ ТРАДИЦИОННИЯ SYSVINIT ЗАВИНАГИ. SYSTEMD (ИМАХ ИНСТАЛИРАНЕ В LIMUX DEBIAN 8.3, КОЙТО ОСТАВЕ В THINKPAD T450, КОЕТО СТЪРБИХ ПРЕЗ МАРТ 2017) СИСТЕМА НИКОГА НЕ МЕ УБЕДИ
systemd ГУЧЕ !!