io_uring is een hoofdpijnpunt geworden voor Google en ze besluiten het uit hun producten uit te schakelen

io_uring

io_uring is een Linux-kernelsysteemaanroepinterface voor asynchrone I/O-bewerkingen van opslagapparaten

Dat heeft Google onlangs onthuld via een blogpost de beslissing genomen om standaard uit te schakelen op ChromeOS, Android en servers van de productie, de asynchrone interface io_uring, dit vanwege de deplorabele veiligheidssituatie in io_uring.

En tijdens de analyse van de resultaten van het "Vulnerability Bounty Program" van de kCTF, die sinds 2020 van kracht is, is aangetoond dat 60% van de applicaties die in het kader van het programma worden ontvangen, gebruikmaken van opkomende kwetsbaarheden en dat de situatie in de loop van de tijd niet verandert, wat nogal zorgwekkend is omdat het een kwetsbaar punt is geworden.

In totaal werd ongeveer $ 1 miljoen aan premies uitbetaald. door exploits gerelateerd aan io_uring, terwijl het totale bedrag aan premies betaald voor kwetsbaarheden in de Linux-kernel tijdens het bestaan ​​van het initiatief $ 1,8 miljoen bedroeg voor 42 exploits voor kwetsbaarheden die nog niet zijn opgelost (maximale vergoeding - $ 133 duizend).

Omdat de Linux-kernel niet alleen een sleutelcomponent is voor Google, maar ook voor internet, begonnen we zwaar op dit gebied te investeren. We hebben het VRP-bereik en de maximale beloning uitgebreid in 2021 (naar $ 50), vervolgens opnieuw in februari 000 (naar $ 2022) en ten slotte in augustus 91 (naar $ 000). In 2022 hebben we onze lessen tot nu toe ook samengevat in ons kookboek en hebben we onze experimentele mitigaties voor de meest voorkomende mijnbouwtechnieken geïntroduceerd.

Afgelopen jaar, om de kernelbeveiliging te verbeteren van Linux gebruikt in de referentieomgeving waarin de exploit die de prijs claimt, is geproduceerd, Google paste aanvullende tweaks en patches toe om typische exploitatiemethoden te blokkeren. Er is bijvoorbeeld bescherming tegen corruptie toegevoegd aan de Freelist-structuur, het is verboden om buiten de grenzen naar slab te schrijven en er zijn blokkeringsaanvallen geïmplementeerd die verband houden met het delen van caches. Maar deze wijzigingen hadden geen invloed op de mogelijkheid om kwetsbaarheden in io_uring uit te buiten, waardoor Google stopte met het ondersteunen van io_uring in hun producten.

Hoewel io_uring prestatievoordelen biedt en snel reageert op beveiligingsproblemen met uitgebreide beveiligingsreparaties (zoals backporting van 5.15 naar de 5.10 stable tree), is het een vrij nieuw onderdeel van de kernel. Als zodanig wordt io_uring actief verder ontwikkeld, maar wordt het nog steeds getroffen door ernstige kwetsbaarheden en biedt het ook krachtige exploit-primitieven. Om deze redenen beschouwen we het momenteel alleen als veilig voor vertrouwde componenten.

Op ChromeOS is io_uring-ondersteuning uitgeschakeld bij het compileren van de kernel (CONIFG_IO_URING in kernelconfig). Android gebruikt tijdelijk een op seccomp-bpf gebaseerd filter om de toegang tot io_uring te blokkeren en is van plan om SELinux te gebruiken om de toegang tot io_uring selectief te beperken tot vertrouwde systeemcomponenten in een toekomstige release.

Als zodanig neemt Google geen flauw idee van de io_uring-interface, geleverd door de Linux-kernel sinds versie 5.1, aangezien het vermeldt dat als een van de positieve punten, onderscheidt zich door zijn ondersteuning voor I/O-polling en de mogelijkheid om met of zonder buffering te werken, maar als zodanig is het nog steeds robuust genoeg om risico's te blijven nemen en vooral te blijven investeren in het oplossen van bugs en kwetsbaarheden die zich voortdurend voordoen.

Met de io_uring API probeerden de kernelontwikkelaars de tekortkomingen van de oude aio-interface aan te pakken.

In termen van prestaties, io_uring ligt zeer dicht bij SPDK en presteert aanzienlijk beter dan libaio wanneer pollen is ingeschakeld. Het gebruik van io_uring in de libuv-bibliotheek resulteerde bijvoorbeeld in een prestatieverbetering van 8x, en de opname van op io_uring gebaseerde asynchrone schrijfbuffering in het XFS-bestandssysteem leidde tot een 80x lagere latentie en een 2,7-voudige toename in gegevensoverdracht tarief.

Het is vermeldenswaard dat Google bovendien de mogelijkheid overweegt om io_uring standaard uit te schakelen in GKE AutoPilot (Google Kubernetes Engine).

Ten slotte, als u geïnteresseerd bent om er meer over te weten, kunt u de details raadplegen In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.