Projekts sudo un su utilītu ieviešanai Rustā

ISRG (Internet Security Research Group), kas ir projekta Let's Encrypt dibinātājs un veicina HTTPS un tehnoloģiju izstrādi interneta drošības paaugstināšanai, prezentēja Sudo-rs projektu, lai izveidotu sudo un su utilītu implementācijas, kas rakstītas Rūsa, kas ļauj izpildīt komandas citu lietotāju vārdā. Saskaņā ar Apache 2.0 un MIT licencēm jau ir publicēta Sudo-rs pirmsizlaides versija, kas vēl nav gatava vispārējai lietošanai. Projektu, kas darbu sāka 2022. gada decembrī, plānots pabeigt 2023. gada septembrī.

Pašlaik darbs ir vērsts uz Sudo-rs funkciju ieviešanu, kas ļauj to izmantot kā caurspīdīgu sudo aizstājēju tipiskos lietošanas gadījumos (noklusējuma sudoers konfigurācijas Ubuntu, Fedora un Debian). Nākotnē tiek plānots izveidot bibliotēku, kas ļauj iegult sudo funkcionalitāti citās programmās un nodrošināt alternatīvu konfigurācijas metodi, kas ļauj izvairīties no sudoers konfigurācijas faila sintakses parsēšanas. Pamatojoties uz ieviesto sudo funkcionalitāti, tiks sagatavots arī su utilīta variants. Turklāt plānos minēts atbalsts SELinux, AppArmor, LDAP, audita rīki, iespēja autentificēties, neizmantojot PAM, un visu sudo komandrindas opciju ieviešana.

Saskaņā ar Microsoft un Google datiem, aptuveni 70% ievainojamību izraisa nedroša atmiņas pārvaldība. Izmantojot Rust valodu, lai izstrādātu su un sudo, ir jāsamazina ievainojamību risks, ko izraisa nedroša atmiņas apstrāde, un tiek novērstas kļūdas, piemēram, piekļuve atmiņas apgabalam pēc tā atbrīvošanas un bufera pārtēriņš. Sudo-rs izstrādā inženieri no Ferrous Systems un Tweede Golf, izmantojot līdzekļus, ko nodrošina tādi uzņēmumi kā Google, Cisco, Amazon Web Services.

Atmiņas drošība Rust tiek nodrošināta kompilēšanas laikā, pārbaudot atsauces, sekojot līdzi objekta īpašumtiesībām un objekta kalpošanas laikam (tvērumam), kā arī novērtējot atmiņas piekļuves pareizību koda izpildes laikā. Rūsa arī nodrošina aizsardzību pret veselu skaitļu pārpildīšanu, pieprasa obligātu mainīgo vērtību inicializāciju pirms lietošanas, labāk apstrādā kļūdas standarta bibliotēkā, pēc noklusējuma piemēro nemainīgu atsauču un mainīgo jēdzienu, piedāvā spēcīgu statisko rakstīšanu, lai samazinātu loģiskās kļūdas.

Avots: opennet.ru

Pievieno komentāru