Projekt implementace utilit sudo a su v Rustu

ISRG (Internet Security Research Group), která je zakladatelem projektu Let's Encrypt a propaguje HTTPS a vývoj technologií pro zvýšení bezpečnosti internetu, představila projekt Sudor-rs na vytvoření implementací utilit sudo a su napsaných v Rust, který vám umožní provádět příkazy jménem ostatních uživatelů. V rámci licencí Apache 2.0 a MIT již byla zveřejněna předběžná verze Sudo-rs, která ještě není připravena pro obecné použití. Projekt, který začal pracovat v prosinci 2022, má být dokončen v září 2023.

Práce se v současné době soustředí na implementaci funkcí v Sudo-rs, které umožňují jeho použití jako transparentní náhradu za sudo v typických případech použití (výchozí konfigurace sudoers na Ubuntu, Fedoře a Debianu). V budoucnu se plánuje vytvoření knihovny, která umožní zabudování funkcí sudo do jiných programů a poskytne alternativní metodu konfigurace, která zabrání analýze syntaxe konfiguračního souboru sudoers. Na základě implementované funkcionality sudo bude připravena i varianta utility su. Plány navíc zmiňují podporu SELinux, AppArmor, LDAP, nástroje auditu, možnost autentizace bez použití PAM a implementaci všech možností příkazového řádku sudo.

Podle Microsoftu a Google je asi 70 % zranitelností způsobeno nebezpečnou správou paměti. Použití jazyka Rust k vývoji su a sudo má snížit riziko zranitelnosti způsobených nebezpečným zacházením s pamětí a eliminovat chyby, jako je přístup k oblasti paměti po jejím uvolnění a přetečení vyrovnávací paměti. Sudo-rs vyvíjejí inženýři z Ferrous Systems a Tweede Golf z prostředků poskytnutých společnostmi jako Google, Cisco, Amazon Web Services.

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

Zdroj: opennet.ru

Přidat komentář