Google zet ook in op Rust en kondigt de opname ervan in Chromium aan

Chromium

Roest is ook aangekomen op Chromium

Google onthuld onlangs via een publicatie lDe opname van de programmeertaal Rust onder de talen die zijn toegestaan ​​in de Chromium-projectcode.

Er wordt vermeld dat er voor opname een reeks vereisten zijn voor Rust-bibliotheken van derden die integratie in de Chromium-codebase vereisen, moet de bibliotheek bijvoorbeeld beter presteren dan zijn collega's wat betreft snelheid, geheugenverbruik en stabiliteit, of de enige implementatie van een bepaalde technologie zijn.

Rust-bibliotheken zijn ook acceptabel wanneer de functionaliteit kan worden uitgevoerd in een geprivilegieerd proces, of wanneer het gebruik van de bibliotheek het risico op bugs verkleint in vergelijking met andere bibliotheken of C++-code. Er is nog niet besloten welke bibliotheken in Chromium kunnen worden opgenomen.

Beslissing is genomen als onderdeel van een initiatief om te voorkomen dat er geheugenfouten optreden in de Chrome-codebase. Volgens statistieken die twee jaar geleden zijn verstrekt, is 70% van de kritieke en gevaarlijke beveiligingsproblemen in Chromium te wijten aan geheugenfouten.

Het gebruik van de Rust-taal, die zich richt op veilig geheugenbeheer en automatisch geheugenbeheer biedt, vermindert het het risico op kwetsbaarheden veroorzaakt door problemen zoals toegang tot een geheugengebied nadat het is vrijgegeven en bufferoverloop.

Tijdens het compileren wordt in Rust gezorgd voor veilige geheugenverwerking door referentiecontrole, het volgen van objecteigendom en objectlevensduur (bereik), evenals het evalueren van geheugentoegang op correctheid tijdens code-uitvoering. Rust biedt ook bescherming tegen integer-overflow, vereist verplichte initialisatie van variabelewaarden vóór gebruik, verwerkt fouten beter in de standaardbibliotheek, dwingt standaard het concept van onveranderlijke referenties en variabelen af, biedt sterke statische typen om logische fouten te minimaliseren.

Door Rust te gebruiken, wordt het gemakkelijker en veiliger om de "rule of do" toe te passen die Google gebruikt om zijn codebasis veilig te houden.

Volgens deze regel mag elke code die u toevoegt niet aan meer dan twee van de drie voorwaarden voldoen: werken met niet-gevalideerde invoer, een onveilige programmeertaal gebruiken (C/C++) en uitvoeren met verhoogde rechten. Uit deze regel volgt dat code voor het omgaan met externe gegevens moet worden gereduceerd tot de minste privileges (geïsoleerd) of moet worden geschreven in een veilige programmeertaal.

In het geval van Rust, dat oorspronkelijk is ontwikkeld met de browser in het achterhoofd, kan integratie met bestaande code worden uitgevoerd zonder het gebruik van IPC en met minder complexiteit om geheugenfoutbeveiliging te orkestreren, wat het ontwikkelingsproces versnelt (er hoeft minder code te worden geschreven). en eenvoudigere beoordeling) en het verminderen van het aantal beveiligingsgerelateerde bugs.

Om de integratie te vereenvoudigen Roest code met bestaande C++-code en vermijd de risico's en beperkingen die momenteel aan integratie zijn verbonden er werd besloten om de eenrichtingsinteractie te beperken: Rust aanroepen vanuit C++ (d.w.z. Rust-code kan alleen worden aangeroepen vanuit C++-code) via API-functies, maar niet gemengd met C++-code), waardoor ook de afhankelijkheidsboom onder controle blijft.

De tweede beperking is alleen ondersteuning voor bibliotheken van derden die worden geleverd in de vorm van afzonderlijke componenten die niet zijn gebonden aan Chromium en die een taakgerichte API hebben.

Naast het gebruik van Rust om misbruik van gebruik-na-vrij geheugenkwetsbaarheden te blokkeren, begon C++-code vanaf de release van Chrome 102 in plaats daarvan het MiraclePtr-type (raw_ptr) te gebruiken. geheugengebieden en blokken als dergelijke toegangen worden gevonden.

De impact van de nieuwe beveiligingsmethode op de prestaties en het geheugenverbruik wordt als verwaarloosbaar ingeschat.

Ten slotte moet dat worden vermeld nog geen plannen om bestaande code in Rust te herschrijven, maar vanaf nu mogen bibliotheken van derden die in Rust zijn geschreven, worden geïntegreerd in de codebasis.

Het buildsysteem heeft al tools toegevoegd voor het compileren van Rust-code, het uitvoeren van tests en het integreren van Rust-componenten met C++-code. Rust-code zal naar verwachting volgend jaar verschijnen als onderdeel van Chrome-releases.

bron: https://security.googleblog.com


Laat je reactie achter

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

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  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.