io_uring har blivit en huvudvärk för Google och de bestämmer sig för att inaktivera det från sina produkter

io_uring

io_uring är ett Linux-kärnsystemanropsgränssnitt för asynkrona I/O-operationer av lagringsenheter

Google avslöjade nyligen genom ett blogginlägg som det har fattade beslutet att inaktivera som standard på ChromeOS, Android och servrar av produktionen, det asynkrona gränssnittet io_uring, detta på grund av den bedrövliga säkerhetssituationen i io_uring.

Och det under analysen av resultaten av "Vulnerability Bounty Program" av kCTF, som har funnits sedan 2020, har det visat sig att 60 % av de ansökningar som tas emot under programmet utnyttjar nya sårbarheter och situationen förändras inte över tiden, vilket är ganska oroande eftersom det har blivit en sårbarhet.

Totalt betalades cirka 1 miljon dollar ut i belöningar. genom bedrifter relaterat till io_uring, medan det totala beloppet av belöningar som betalats ut för sårbarheter i Linux-kärnan under initiativets existens var 1,8 miljoner dollar för 42 utnyttjande av sårbarheter som ännu inte åtgärdats (maximal ersättning – 133 tusen dollar).

Eftersom Linux-kärnan är en nyckelkomponent inte bara för Google, utan även för Internet, började vi satsa stort på detta område. Vi utökade VRP-räckvidden och maximal belöning 2021 (till 50 000 USD), sedan igen i februari 2022 (till 91 000 USD) och slutligen i augusti 2022 (till 133 000 USD). Under 2022 sammanfattade vi också våra kunskaper hittills i vår kokbok och introducerade våra experimentella begränsningar för de vanligaste gruvteknikerna.

Förra året, för att förbättra kärnsäkerheten av Linux som används i referensmiljön där utnyttjandet som gör anspråk på priset producerades, Google tillämpade ytterligare justeringar och patchar för att blockera typiska metoder för utnyttjande. Till exempel lades korruptionsskydd till Freelist-strukturen, skrivning utanför gränserna till skiva förbjöds och blockerande attacker relaterade till cachedelning implementerades. Men dessa ändringar påverkade inte möjligheten att utnyttja sårbarheter i io_uring, vilket fick Google att sluta stödja io_uring i sina produkter.

Medan io_uring ger prestandafördelar och reagerar snabbt på säkerhetsproblem med omfattande säkerhetsfixar (som backporting 5.15 till 5.10 stabila trädet), är det en ganska ny del av kärnan. Som sådan fortsätter io_uring att aktivt utvecklas, men påverkas fortfarande av allvarliga sårbarheter och ger också starka exploateringsprimitiver. Av dessa skäl anser vi för närvarande att det endast är säkert för betrodda komponenter.

På ChromeOS är stöd för io_uring inaktiverat när kärnan kompileras (CONIFG_IO_URING i kernelconfig). Android använder tillfälligt ett seccomp-bpf-baserat filter för att blockera åtkomst till io_uring och planerar att använda SELinux för att selektivt begränsa åtkomst till io_uring till betrodda systemkomponenter i en framtida utgåva.

Som sådan tar Google inte en svag syn på io_uring-gränssnitt, tillhandahålls av Linux-kärnan sedan version 5.1, eftersom den nämner att bland dess positiva punkter, utmärker sig för sitt stöd för I/O polling och förmågan att arbeta med eller utan buffring, men som sådan är den fortfarande robust nog att fortsätta ta risker och framför allt fortsätta investera i att åtgärda buggar och sårbarheter som ständigt uppstår.

Med io_uring API försökte kärnutvecklarna att åtgärda bristerna i det gamla aio-gränssnittet.

När det gäller prestanda, io_uring är mycket nära SPDK och överträffar libaio betydligt när polling är aktiverat. Till exempel resulterade användningen av io_uring i libuv-biblioteket i en 8x prestandaökning, och inkluderingen av io_uring-baserad asynkron skrivbuffring i XFS-filsystemet ledde till en 80x minskning av latensen och en 2,7-faldig ökning av dataöverföringen Betygsätta.

Det är värt att nämna att Google dessutom överväger möjligheten att inaktivera io_uring som standard i GKE AutoPilot (Google Kubernetes Engine).

Slutligen, om du är intresserad av att veta mer om det kan du läsa detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.