Google také sází na Rust a oznamuje jeho zařazení do Chromia

Chróm

Rust také dorazil na Chromium

Google představen nedávno prostřednictvím publikace lZařazení programovacího jazyka Rust mezi jazyky povolené v kódu projektu Chromium.

Uvádí se, že pro zařazení existuje řada požadavků u knihoven Rust třetích stran, které požadují integraci do kódové základny Chromium, musí například knihovna překonat své kolegy v rychlosti, spotřebě paměti a stabilitě, nebo musí být jedinou implementací určité technologie.

Knihovny Rust jsou také přijatelné, pokud lze funkci spustit v privilegovaném procesu nebo když používání knihovny snižuje riziko chyb ve srovnání s jinými knihovnami nebo kódem C++. Dosud nebylo rozhodnuto, které knihovny lze do Chromia zahrnout.

Rozhodnutí byla přijata jako součást iniciativy, která má zabránit výskytu chyb paměti v kódové základně Chrome. Podle statistik poskytnutých před dvěma lety je 70 % kritických a nebezpečných bezpečnostních problémů v prohlížeči Chromium způsobeno chybami paměti.

Použití jazyka Rust, který se zaměřuje na bezpečnou správu paměti a poskytuje automatickou správu paměti, sníží riziko zranitelnosti způsobených problémy, jako je přístup k oblasti paměti po jejím uvolnění a přetečení vyrovnávací paměti.

Bezpečná manipulace s pamětí je v Rustu zajištěna v době kompilace kontrolou referencí, sledováním vlastnictví objektu a životnosti objektu (rozsahu) a také vyhodnocením správnosti přístupu do paměti během provádění kódu. Rust také poskytuje ochranu proti přetečení celého čísla, vyžaduje povinnou inicializaci hodnot proměnných před použitím, lépe zpracovává chyby ve standardní knihovně, standardně prosazuje koncept neměnných referencí a proměnných, nabízí silné statické typování pro minimalizaci logických chyb.

Pomocí Rustu bude snazší a bezpečnější aplikovat „pravidlo udělat“, které Google používá k udržení své kódové základny v bezpečí.

Podle tohoto pravidla nesmí žádný přidaný kód splňovat více než dvě ze tří podmínek: pracovat s neověřeným vstupem, používat nebezpečný programovací jazyk (C/C++) a spouštět se zvýšenými oprávněními. Z tohoto pravidla vyplývá, že kód pro manipulaci s externími daty musí být zredukován na nejmenší oprávnění (izolován) nebo napsán v bezpečném programovacím jazyce.

V případě Rustu, který byl původně vyvinut s ohledem na prohlížeč, lze integraci se stávajícím kódem provést bez použití IPC a s menší složitostí zorganizovat ochranu proti chybám paměti, což urychlí proces vývoje (vyžaduje psaní méně kódu a snadnější kontrola) a snížení počtu chyb souvisejících se zabezpečením.

Pro zjednodušení integrace Znehodnoťte kód stávajícím kódem C++ a vyhněte se rizikům a omezením spojeným s integrací v současnosti bylo rozhodnuto omezit jednosměrnou interakci: volání Rust z C++ (tj. kód Rust lze volat pouze z kódu C++) přes funkce API, ale ne smíchané s kódem C++), což také udrží strom závislostí pod kontrolou.

Druhým omezením je pouze podpora knihoven třetích stran, které přicházejí ve formě samostatných komponent, které nejsou vázány na Chromium a mají API orientované na úkoly.

Kromě použití Rustu k blokování zneužití zranitelností paměti use-after-free, počínaje vydáním Chrome 102, začal kód C++ místo toho používat typ MiraclePtr (raw_ptr). paměťové oblasti a bloky, pokud jsou takové přístupy nalezeny.

Odhaduje se, že dopad nové metody ochrany na výkon a spotřebu paměti je zanedbatelný.

Na závěr je třeba zmínit, že žádné plány zatím přepsat existující kód v Rustu, ale od nynějška bude povoleno integrovat knihovny třetích stran napsané v Rustu do základny kódu.

Systém sestavení již přidal nástroje pro kompilaci kódu Rust, spouštění testů a integraci komponent Rust s kódem C++. Očekává se, že Rust kód se objeví jako součást verzí Chrome příští rok.

zdroj: https://security.googleblog.com


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.