Atskleista 15 metų senumo 0-Day macOS Kernelio klaida
Saugumo ekspertas atskeidė neištaisytą „macOS“ operacinės sistemos saugumo spragą ir kaip įrodymą paskelbė kodą leidžiantį ją išnaudoti.
Naujųjų 2018 metų išvakarėse, saugumo ekspertas internete žinomas kaip Siguza, paskelbė informaciją apie iki šiol nežinomą (0-Day) „macOS“ operacinės sistemos saugumo spragą, kuriai gali būti net 15 metų. Kaip savo atradimo įrodymą, „ekspertas“ „GitHub“ tinkle pateikė PoC (proof-of-concept) įrodymą.
Sistemos klaida yra rimta lokalių teisių paskirstymo (local privilege escalation arba LPE) pažeidžiamumas leidžiantis neprivilegijuotam naudotojui (užpuolikui) gauti root’o prieigą sistemoje ir paleisti kenkėjišką kodą. Kenkėjiškas kodas leidžiantis išnaudoti šią saugumo spragą gali būti įdiegtas ir paslėpta giliai sistemoje.
Siguza tiki, kad šis pažeidžiamumas egzistuoja maždaug nuo 2002 metų, tačiau kai kurie požymiai leidžia manyti, kad ši saugumo spraga iš vienos sistemos versijos į kitą tempiasi gerokai ilgiau - apie 15 metų. Viena maža klaidelė jau kokia 15 metų sistemą laiko kiaura.
Ši lokalių privilegijų aptarimo klaida reziduoja „macOS“ kernelio IOHIDFamily dalyje, kuri yra atsakinga už naudotojo sąsajos elementus, tokius kaip lietimui jautrūs mygtukai. Ši spraga ir leidžia užpuolikui sistemoje įdiegti root shell’ą ar paleisti kenkėjišką kodą.
IOHIDFamily jau anksčiau buvo žinoma, kaip dalis kurioje buvo begalė konkuruojančių sąlygų, kurios ilgainiui tapo priežastimi perrašyti didelę šio kodo dalį ir tuo pačiu didelę dalį komandų užrakinti. Siguza sukurtą saugumo spragą išnaudojantį kodą pavadino „IOHIDeous“ ir jis veikia visose „macOS“ versijose bei leidžia išnaudoti skaitymo/rašymo klaidą kernelyje.
Be visa kita „IOHIDeous“ atjungia SIP (System Integrity Protection) ir AMFI (Apple Mobile File Integrity) saugumo funkcijas abi besirūpinančias sistemos apsauga nuo kenkėjiško kodo. Dėl nežinomų priežasčių PoC kodas neveikia „macOS High Sierra 10.13.2“, tačiau puikiausiai sukasi ant „macOS High Sierra 10.13.1“. Tačiau Siguza mano, kad jo kodą galima pakoreguoti, kad jis veiktų ir naujausioje „macOS High Sierra“ versijoje.
Tiesa, „IOHIDeous“ kode yra vienas bet — norint, kad šis kodas veiktų reikia „išloginti“ naudotoją iš kompiuterio. Tačiau tai menka bėda, nes galima nurodyti, kad kodas pasileistų tada kai kompiuterio naudotojas pats atsijungia ar išjungia arba perkrauna kompiuterį.
Jei kam nors kilo natūralus klausimas: kodėl šis saugumo ekspertas duomenis apie 0-Day pažeidžiamumą pateikė internete, o ne slapta informavo apie tai sistemos kūrėjo, šiuo atveju Apple — atsakymas gali būti gana paprastas — šis pažeidžiamumas liečia tik „macOS“ ir jo nėra galimybės išnaudoti nuotoliniu būdu. Žinoma, čia tik spėjimas, nes tikrų priežasčių, kodėl jis pasielgė taip, o ne kitaip aš nežinau. Beje, jei kam įdomu, „Apple“ premijų už aptiktas sistemos klaidas programoje nėra piniginių atsidėkojimų už klaidas aptiktas „macOS“.
Susidomėję, gilesnę šios saugumo spragos analizę ras „GitHub“ tinkle.