Vladimir Serbinenko, uno dei tre maintainer del bootloader GRUB2, che ha apportato oltre cinquemila modifiche al codice, ha presentato per discussione la possibilità di scrivere moduli per GRUB2 utilizzando il linguaggio Rust. Vladimir ha mostrato i primi risultati degli esperimenti con l'aggiunta del supporto per Rust in GRUB2 e la creazione delle necessarie interfacce. Sono state preparate anche modifiche per GRUB che consentono di utilizzare librerie condivise (”.so”, ET_DYN) per i moduli, invece di collegamenti a livello di file oggetto (”.o”, ET_REL).
L'iniziativa è attualmente posizionata come un esperimento separato che non influirà sullo sviluppo di GRUB2. Come applicazione ottimale di Rust in GRUB, viene menzionata la scrittura di moduli per i nuovi file system. Non si esclude neppure la riscrittura in Rust del codice per la gestione delle partizioni e GPT.
Si prevede che l'uso di Rust aiuti il progetto a ridurre la probabilità di alcuni tipi di errori, specialmente nel codice dei moduli contenenti molte procedure di parsing grandi e complesse. A febbraio, a seguito di un audit della base di codice di GRUB, sono stati identificati 72 problemi di sicurezza, di cui 21 sono stati riconosciuti come vulnerabilità pericolose, idonee a eludere il meccanismo di caricamento verificato di UEFI Secure Boot. 20 delle 21 vulnerabilità sono state causate da errori nella gestione della memoria, che hanno portato a buffer overflow o accesso a memoria dopo che è stata liberata.
In aggiunta, si segnala il rilascio del progetto GNU Boot 0.1 RC6, che include le correzioni delle vulnerabilità sopra menzionate (nel GRUB2, le correzioni continuano a essere distribuite come patch senza formare un rilascio separato). Il progetto GNU Boot sviluppa una sostituzione per i firmware proprietari UEFI e BIOS, basata su CoreBoot, ma con requisiti più rigorosi per l'inclusione di componenti binari. GNU Boot viene presentato come "coreboot-libre", ovvero come una versione di CoreBoot priva di blob e componenti non liberi, analogamente a come il progetto Linux-libre sviluppa una versione ripulita del kernel Linux. Progetti simili come Libreboot e Canoeboot si sviluppano separatamente.
Fonte: opennet.ru
