Rootkito prototipas Linux, naudojant io_uring, kad būtų galima apeiti sistemos skambučių analizatorius

ARMO tyrėjai pademonstravo, kad galima sukurti rootkitus, kurie nenaudoja specialių sisteminių iškvietimų įprastoms operacijoms atlikti, tokioms kaip failų skaitymas / rašymas ir komandų gavimas iš išorinio serverio. Vietoj sisteminių iškvietimų jie siūlo naudoti asinchroninę „io_uring“ įvesties / išvesties sąsają, palaikomą nuo branduolio, tinklo ir failų operacijoms atlikti. Linux 5.1.

Metodo esmė ta, kad vietoj atskirų sistemos iškvietimų norint pasiekti failus ir atlikti tinklo operacijas (skaityti/rašyti, recv/send/connect/bind/klausyti), galima naudoti bendruosius io_uring sistemos iškvietimus (io_uring_enter, io_uring_setup, io_uring_register ir kt.), kurių neanalizuoja standartiniai kenkėjiškos veiklos aptikimo įrankiai. „io_uring“ sąsaja palaiko apie 60 skirtingų operacijų. Kuriama funkcija, leidžianti paleisti naujus procesus naudojant io_uring.

Metodo veikimui pademonstruoti buvo parengtas „Curing rootkit“ prototipas, kuris atlieka tokius veiksmus kaip komandų gavimas iš išorinio šaltinio. serveris ir failų perkėlimas / modifikavimas. Demonstracijos metu buvo siunčiama užklausa į išorinio kompiuterio TCP prievadą 8888 ir siunčiamas failo „/etc/shadow“ turinys. Tai reiškia, kad sėkmingai užpuolęs sistemą ir gavęs root teises, užpuolikas įdiegia rootkit, kad įsitvirtintų pažeistoje sistemoje.

Eksperimento metu „Falco“ ir „Tetragon“ stebėjimo įrankiai, naudojami su saugumu susijusioms anomalijoms aptikti pagrindiniuose kompiuteriuose ir konteineriuose (palaikoma integracija su „Kubernetes“ pagrįsta infrastruktūra), neaptiko „Curing“ rootkito veiklos. Šie įrankiai naudoja sistemos iškvietimų perėmimą, kad analizuotų tokius įvykius kaip procesų paleidimas, tinklo aktyvumas ir failų manipuliavimas, tačiau neatsižvelgia į galimybę naudoti „io_uring“ posistemį tokioms operacijoms. Dauguma prieinamų įrankių Linux Komercinių saugumo incidentų aptikimo ir reagavimo sistemos taip pat remiasi sistemos skambučių perėmimu.

Norint išvengti tinklo ir failų veiklos stebėjimo įrankių apėjimo, užuot perėmus sistemos skambučius, rekomenduojama naudoti KRSI (branduolio vykdymo laiko saugumo instrumentavimo) mechanizmą, kuris atsirado branduolyje. Linux 5.7, kuri leidžia BPF programas prijungti prie bet kurio LSM kabliuko. Pavyzdžiui, KRSI LSM kabliuko lygmenyje leidžia stebėti failų operacijas, prieigą prie tinklo ir procesų paleidimą, neatsižvelgiant į tai, ar šios operacijos inicijuojamos per konkrečius sistemos iškvietimus, ar per io_uring.

„io_uring“ posistemė anksčiau buvo kritikuojama dėl reguliariai atsirandančių rimtų pažeidžiamumų. Reaguojant į vartotojų prašymus sukurti paprastą įrankį, skirtą išjungti „io_uring“ neperkuriant branduolio, branduolys buvo atnaujintas. Linux 6.6 versijoje pridėtas „io_uring_disabled“ sysctl. „Google“ pagal numatytuosius nustatymus išjungė „io_uring“ „ChromeOS“. Android ir savarankiškai serveriai, paaiškindamas, kad prasta „io_uring“ saugumo situacija nusveria „io_uring“ naudojimo našumo naudą.

Šaltinis: opennet.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster