Aptiktas pažeidžiamumas sistemoje, kuris jau aprašytas (CVE-2019-6454), ką leidžia blokuoti valdymo inicijavimo procesą (PID1) siunčiant specialiai sukurtą pranešimą neprivilegijuotam vartotojui per „D-Bus“.
Los „Red Hat“ kūrėjai taip pat neatmeta galimybės naudoti pažeidžiamumą organizuojant kodo vykdymą su root teisėmis., tačiau galutinė tokio išpuolio galimybė dar nėra nustatyta.
Apie systemd
Tiems, kurie nepažįsta „Systemd“ Aš tau tai galiu pasakyti tai yra „Linux“ inicializavimo sistema ir paslaugų tvarkyklė į kurią įeina tokios funkcijos kaip „daemon“ paleidimas pagal poreikį, automatinio ir prijungimo taškų priežiūra, momentinių nuotraukų palaikymas ir procesų stebėjimas naudojant „Linux“ valdymo grupes.
Systemd teikia registro demoną ir kitus įrankius bei įrankius, kurie padeda atlikti įprastas sistemos administravimo užduotis. Lennartas Poetteringas ir Kay'is Sieversas parašė „SystemD“, įkvėptą „macOS launchd“ ir „Upstart“, siekdami sukurti modernią ir dinamišką sistemą.
Visų pirma, systemd teikia agresyvias lygiagretinimo galimybes ir priklausomybe pagrįstą paslaugų valdymo logiką, leidžiančią paslaugoms pradėti veikti lygiagrečiai ir spartinantį paleidimo laiką. Šie du aspektai buvo „Upstart“, bet juos sustiprino „systemd“.
„Systemd“ yra numatytoji pagrindinių „Linux“ paskirstymų įkrovos sistema, bet jis yra atgalinis suderinamas su „SysV“ paleisties scenarijais.
„SysVinit“ yra inicializavimo sistema, kuri yra ankstesnė už „systemd“ ir kuria naudojamasi supaprastintu metodu. „Systemd“ ne tik valdo sistemos inicijavimą, bet ir teikia alternatyvas kitoms gerai žinomoms paslaugoms, tokioms kaip „cron“ ir „syslog“.
Apie naują sistemos pažeidžiamumą
Manipuliuodamas per „D-Bus“ siunčiamo pranešimo dydį, užpuolikas gali perkelti rodyklę už rietuvei skirtos atminties ribų, apeinant „kamino apsauginio puslapio“ apsaugą, kuri grindžiama atminties puslapio pakeitimu krašte, kuris reikalauja išimties (puslapio klaida).
Sėkminga ataka demonstruojama „Ubuntu 18.10“ su „systemd 239“ ir „CentOS 7.6“ su „systemd 219“.
Kaip apeitį kompiliaciją galima naudoti GCC naudojant parinktį „-fstack-clash-protection“, kuri pagal numatytuosius nustatymus naudojama „Fedora“ 28 ir 29 versijose.
Pažymėtina, kad 2014 m. MUSL sistemos bibliotekos autorius tarp pagrindinių architektūrinių problemų nurodė sistemos per didelę infliaciją PID1 tvarkytojas ir suabejojo PID1 lygio valdiklio API sąsajos su magistrale įdiegimo galimybe, nes tai yra rimtas vektorius atakoms ir gali neigiamai paveikti visos sistemos patikimumą
Pasak saugumo tyrėjo, kuris atskleidė pažeidžiamumą, kamino žymeklį galima keisti tik nenaudojamiems atminties puslapiams (nepriskirtas), kuris neleidžia organizuoti kodo vykdymo PID1 proceso kontekste, tačiau leidžia užpuolikui inicijuoti PID1 užraktą su vėlesniu „Linux“ branduolio perėjimu į „panikos“ būseną (atveju 1 PID valdiklio gedimas, visa sistema pakimba).
„Systemd“ yra įdiegtas signalo tvarkytuvas, kuris bando sulaikyti PID1 proceso gedimus (segmentavimo gedimas) ir paleidžia apvalkalą, kad jis būtų atkurtas.
Kadangi atakos metu skambinama į nesikartojančius (nepaskirstytus) atminties puslapius, branduolys negali iškviesti šio signalo tvarkytuvo ir tiesiog nutraukia procesą naudodamas PID 1, o tai savo ruožtu Neįmanoma tęsti darbo ir pereiti į „panikos“ būseną, todėl reikia paleisti sistemą iš naujo.
Jau yra problemos sprendimas
Kaip ir bet kuri jau aprašyta ir aprašyta saugumo problema, jos negalima skelbti, kol problema nebus išspręsta ir SUSE / openSUSE, Fedora pažeidžiamumo pataisų atnaujinimai jau buvo išleisti, taip pat ir „Ubuntu“, iš dalies ir „Debian“ (Tik „Debian Stretch“).
Nors RHEL problema išlieka neištaisyta.