Našli smo ranljivost v podsistemu tty jedra Linuxa

Raziskovalci iz ekipe Google Project Zero so objavili nedavno prek objave v blogu nov način izkoriščanja ranljivosti (CVE-2020-29661) pri implementaciji upravljalnika ioctl TIOCSPGRP Podsistem tty jedra Linuxa, kot tudi podrobne zaščitne mehanizme, ki bi lahko blokirali te ranljivosti.

V objavi je omenjeno, da težava je posledica napake v nastavitvah zaklepanja, kar je vodilo v stanje dirke v kodi /tty/tty_jobctrl.c, ki je bilo uporabljeno za ustvarjanje pogojev za dostop do pomnilnika po zagonu (brez uporabe), ki ga je izkoristil uporabniški prostor z manipulacijo z ioct- s klicem TIOCSPGRP.

Poleg objavljenih informacij tudi izvedena je bila funkcionalna demonstracija izkoriščanja za povečanje privilegijev v Debian 10 z jedrom 4.19.0-13-amd64 in kar tudi ne izključuje, da lahko vpliva na različne distribucije, med katerimi so seveda tiste, ki temeljijo na Debianu in izhajajo iz njega.

Mnoge posamezne tehnike izkoriščanja in možnosti za ublažitev, ki jih opisujem tukaj, niso nove. Vendar menim, da jih je vredno napisati skupaj, da pokažemo, kako različne ublažitve medsebojno delujejo s precej običajnim izkoriščanjem brez uporabe.

Odrezki kode v tej objavi v spletnem dnevniku, ki so pomembni za izkoriščanje, so vzeti iz prejšnje različice 4.19.160, saj na tem temelji ciljno jedro Debian; nekateri drugi odrezki kode so iz glavne linije Linuxa.

Hkrati je v objavljenem članku poudarek ni toliko na tehniki ustvarjanja funkcionalnega izkoriščanja, temveč na tem, katera orodja obstajajo v jedru da se zaščitite pred takšnimi ranljivostmi.

Zaključek je razočaran, saj je omenjeno, da se metode, kot sta segmentiranje pomnilnika v kopici in nadzor dostopa do pomnilnika po sprostitvi, v praksi ne uporabljajo, saj vodijo do poslabšanja zmogljivosti in zaščite, ki temelji na CFI (Control Flow Integrity), ki blokira izkoriščanje v kasnejših stopnje napada, zahteva izboljšave.

Posebna vrsta terminalske naprave so psevdo terminali, ki se uporabljajo, ko na primer odprete terminalsko aplikacijo v grafičnem okolju ali se prek SSH povežete z oddaljenim računalnikom. Medtem ko so druge terminalske naprave povezane z nekakšno strojno opremo, oba konca psevdoterminala nadzoruje uporabniški prostor, psevdoterminale pa lahko prosto ustvari uporabniški prostor (brez privilegijev).

Kadar koli se odpre / dev / ptmx (okrajšava za "psevdoterminalni multiplekser"), dobljeni deskriptor datoteke predstavlja stran naprave (v dokumentaciji in virih jedra se imenuje "glavni psevdoterminal") naprave. nov psevdo - terminal.

 Ustrezno terminalsko napravo (na katero se lupina običajno poveže) jedro samodejno ustvari pod /dev/pts/ .

Ko gledamo na to, kaj bi lahko dolgoročno spremenilo, je poudarek na uporabi naprednih statičnih analizatorjev ali uporabi pomnilniško varnih jezikov, kot sta Rust in narečja C z razširjenimi opombami (kot je dokazano C), za izdelavo kontrolnikov statusa, ključavnic, predmeti in kazalci. Zaščitne metode omenjajo tudi omogočanje načina panic_on_oops, ki naredi strukture jedra samo za branje in omejuje dostop do sistemskih klicev prek mehanizmov, kot je seccomp.

Napaka, ki povzroča težavo popravljen je bil v jedru Linuxa 3. decembra lani. Težava se manifestira v jedrih pred različico 5.9.13, vendar je večina distribucij odpravila težavo v posodobitvah paketa jedra, ki so bile na voljo lani.

Omenjena je tudi podobna ranljivost (CVE-2020-29660), ki je bila hkrati najdena pri implementaciji klica TIOCGSID ioctl, a je bila tudi povsod odstranjena.

Končno Če vas zanima več o tem, lahko preverite podrobnosti V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.