Greg Kroa-Hartman se podělil o to, jak může Rust pomoci v boji proti chybám v jádře Linux

Greg Kroah-Hartman, který se stará o udržování stabilní a ‚staging‘ větví jádra Linux a je hlavním správcem v 16 podsystemech jádra, vystoupil na konferenci Rust Week 2026, kde hovořil o tom, jak může jazyk Rust pomoci předcházet vzniku zranitelností v jádře, které vznikají z typických chyb vývojářů v jazyce C při práci s pamětí, zamykáním, zpracováním chyb a manipulací s nedůvěryhodnými daty. Hlavní výhodou Rustu je schopnost odhalovat takové chyby už ve fázi sestavení, a ne při kontrole kódu lidmi. Rust však není považován za všelék, který by odstranil všechny problémy, a nikdo neplánuje přepisovat jádro na Rust: očekává se postupné zavádění Rustu prostřednictvím jeho využívání pro nové ovladače a podsystemy.

Jako příklad chyb v jádře, kterým by se dalo předejít použitím Rustu, byla zmíněna chyba v podsystemu Bluetooth, která zůstala nepovšimnuta 15 let, a problém v hypervisoru Xen. V prvním případě vývojář provedl dereferenci ukazatele bez kontroly, zatímco v druhém zapomněl uvolnit zámek v kódu pro zpracování chyb.
Podle Grega většinu chyb v jádře způsobují podobné maličkosti, které se v průběhu času hromadí a vyvstávají jako zranitelnosti. V Rustu mnohé z těchto problémů předchází kompilátor, například Rust-abstrakce pro zámky v jádře umožňují přístup k interním ukazatelům struktur pouze po získání odpovídajícího zámku, který se uvolní automaticky. Bez získání zámku není možné získat přístup k ukazatelům struktur v Rustu.

Greg věří, že tyto schopnosti Rustu by nedovolily vznik 60% chyb identifikovaných v jádře, a kontroly prováděné kompilátorem by ušetřily správcům čas strávený diskuzemi s autory o správnosti zpracování chyb a oprávněnosti zamykání na správném místě. Navíc zavedení podpory Rustu již pozitivně ovlivnilo i C-kód v jádře díky úpravě C-kódu a rozhraní, stejně jako převzetí některých vývojových metodologie (například byly zavedeny zámky s omezenou viditelností).

Díky systému typů, který zajišťuje dodržování stanovených pravidel, a použití systémů pro kontinuální integraci, které kontrolují kód během sestavení, se mohou při revizi změn v Rustu recenzenti soustředit na kontrolu logiky fungování, a nikoli na sledování manipulací s prostředky. Použití Rustu také umožňuje pečlivěji přistupovat k datům přicházejícím z hardwaru nebo z externích systémů. Toho je dosaženo díky jasnému rozlišení důvěryhodných a nedůvěryhodných dat na úrovni systému typů: vývojáři musí provést analýzu při přechodu ze stavu nedůvěryhodného do stavu důvěryhodného.

V poslední době tým zodpovědný za bezpečnost v jádře publikuje každý den přibližně 13 zpráv o zranitelnostech, což vzhledem k předchozí dynamice odhalování zranitelností působí jako jakýsi šílenství (například včera bylo zveřejněno 277 zpráv o zranitelnostech v jádře). Podle Grega je použití Rustu jedním z reálných způsobů, jak snížit počet chyb v jádře způsobených tradičními chybami při zpracování chyb a správě prostředků. V jádře podpora Rustu již překročila hranice experimentu a na konci loňského roku byla uznána jako standardní možnost jádra.

Přehrát video


Zdroj: opennet.ru
Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster