io_uring je postao glavobolja za Google i oni su odlučili da ga onemoguće sa svojih proizvoda

io_uring

io_uring je Linux kernel sistemski pozivni interfejs za asinhrone I/O operacije uređaja za skladištenje

Google je nedavno objavio na blogu da ima donio je odluku da se podrazumevano deaktivira na ChromeOS-u, Androidu i serverima proizvodnje, asinhroni io_uring interfejs, ovo zbog žalosne sigurnosne situacije u io_uringu.

I to je to tokom analize rezultata «Programa nagrađivanja ranjivosti» kCTF-a, koji je na snazi ​​od 2020. godine, pokazalo se da 60% prijava zaprimljenih u okviru programa iskorištava ranjivosti u nastajanju i da se situacija s vremenom ne mijenja, što je prilično zabrinjavajuće jer je postalo tačkasto ranjivo.

Ukupno je isplaćeno oko milion dolara nagrada podvizima vezano za io_uring, dok je ukupan iznos nagrada isplaćenih za ranjivosti u Linux kernelu tokom postojanja inicijative iznosio 1,8 miliona dolara za 42 exploita predviđena za ranjivosti koje još nisu otklonjene (maksimalna naknada – 133 hiljade dolara).

Pošto je jezgro Linuxa ključna komponenta ne samo za Google, već i za internet, počeli smo da ulažemo mnogo u ovu oblast. Proširujemo opseg i maksimalnu nagradu VRP-a 2021. (na 50 USD), zatim ponovo u februaru 000. (na 2022 USD), i konačno u avgustu 91. (na 000 USD). U 2022. također smo sumirali svoja dosadašnja saznanja u našoj kuharici i predstavili naša eksperimentalna ublažavanja za najčešće tehnike eksploatacije.

Prošle godine, za poboljšanje sigurnosti kernela Linuxa koji se koristi u referentnom okruženju u kojem je eksploatacija namijenjena za dobivanje nagrade proizvedena, Google je primijenio dodatne izmjene i zakrpe kako bi blokirao tipične metode eksploatacije. Na primjer, u strukturu Freelist je dodana zaštita od korupcije, zabranjeno je pisanje izvan granica bafera u ploču, a implementirani su i blokirajući napadi koji se odnose na dijeljenje keša. Ali ove promjene nisu uticale na mogućnost iskorištavanja ranjivosti u io_uringu, što je dovelo do toga da Google prestane podržavati io_uring u svojim proizvodima.

Dok io_uring pruža prednosti performansi i brzo reaguje na bezbednosne probleme sa sveobuhvatnim bezbednosnim ispravkama (kao što je backporting verzije 5.15 u stabilno stablo 5.10), on je prilično nov deo kernela. Kao takav, io_uring nastavlja da se aktivno razvija, ali je i dalje pogođen ozbiljnim ranjivostima i takođe pruža snažne eksploatacione primitive. Iz ovih razloga, trenutno ga smatramo sigurnim samo za pouzdane komponente.

Na ChromeOS-u, podrška za io_uring je onemogućena prilikom kompajliranja kernela (CONIFG_IO_URING u kernelconfigu). Android privremeno koristi filter zasnovan na seccomp-bpf da blokira pristup io_uringu i planira da koristi SELinux da selektivno ograniči pristup io_uring pouzdanim sistemskim komponentama u budućim izdanjima.

Kao takav, Google ne gleda zamućeno io_uring interfejs, pruža Linux kernel od verzije 5.1, budući da spominje da među svojim pozitivnim točkama, ističe se po podršci za I/O polling i mogućnošću rada sa ili bez baferovanja, ali kao takav i dalje je dovoljno robustan da nastavi s rizikom i prije svega nastavi ulagati u rješenja za greške i ranjivosti koji se stalno pojavljuju.

Sa io_uring API-jem, programeri kernela pokušali su da riješe nedostatke starog aio interfejsa.

Što se tiče performansi, io_uring je veoma blizak SPDK-u i značajno nadmašuje libaio kada je prozivanje omogućeno. Na primjer, korištenje io_uringa u biblioteci libuv rezultiralo je 8x povećanjem performansi, a uključivanje asinhronog baferovanog pisanja zasnovanog na io_uringu u XFS sistem datoteka dovelo je do 80x smanjenja kašnjenja, već 2,7 puta povećanja brzine prijenosa podataka.

Vrijedi spomenuti da dodatno, Google razmatra mogućnost isključivanja io_uringa po defaultu u GKE AutoPilot (Google Kubernetes Engine).

Konačno, ako vas zanima više o tome, možete se obratiti detaljima Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.