Një projekt për zbatimin e shërbimeve sudo dhe su në Rust

ISRG (Internet Security Research Group), i cili është themeluesi i projektit Let's Encrypt dhe promovon HTTPS dhe zhvillimin e teknologjive për të rritur sigurinë e internetit, prezantoi projektin Sudo-rs për të krijuar implementime të sudo dhe su utilities të shkruara në Rust që ju lejon të ekzekutoni komanda në emër të përdoruesve të tjerë. Nën licencat Apache 2.0 dhe MIT, tashmë është publikuar një version para-publikues i Sudo-rs, jo ende gati për përdorim të përgjithshëm. Projekti, i cili filloi punën në dhjetor 2022, është planifikuar të përfundojë në shtator 2023.

Puna është fokusuar aktualisht në zbatimin e veçorive në Sudo-rs që e lejojnë atë të përdoret si një zëvendësim transparent për sudo në rastet e përdorimit tipik (konfigurimet e parazgjedhura të sudoers në Ubuntu, Fedora dhe Debian). Në të ardhmen, ka plane për të krijuar një bibliotekë që lejon futjen e funksionalitetit sudo në programe të tjera dhe të sigurojë një metodë alternative të konfigurimit që shmang analizimin e sintaksës së skedarit të konfigurimit sudoers. Bazuar në funksionalitetin sudo të implementuar, do të përgatitet gjithashtu një variant i su utility. Për më tepër, planet përmendin mbështetjen për SELinux, AppArmor, LDAP, mjetet e auditimit, aftësinë për të vërtetuar pa përdorur PAM dhe zbatimin e të gjitha opsioneve të linjës së komandës sudo.

Sipas Microsoft dhe Google, rreth 70% e dobësive shkaktohen nga menaxhimi i pasigurt i kujtesës. Pritet që përdorimi i gjuhës Rust për të zhvilluar su dhe sudo do të zvogëlojë rrezikun e dobësive të shkaktuara nga trajtimi i pasigurt i memories dhe do të eliminojë shfaqjen e gabimeve të tilla si qasja në një zonë memorie pasi të jetë liruar dhe kapërcimi i tamponit. Sudo-rs po zhvillohet nga inxhinierë nga Ferrous Systems dhe Tweede Golf me fonde të ofruara nga kompani të tilla si Google, Cisco, Amazon Web Services.

Siguria e memories sigurohet në Rust në kohën e përpilimit përmes kontrollit të referencës, mbajtjes së gjurmëve të pronësisë së objektit dhe jetëgjatësisë së objektit (fushëveprimit), si dhe përmes vlerësimit të korrektësisë së aksesit në kujtesë gjatë ekzekutimit të kodit. Rust siguron gjithashtu mbrojtje kundër tejmbushjeve të numrave të plotë, kërkon inicializimin e detyrueshëm të vlerave të variablave përpara përdorimit, trajton më mirë gabimet në bibliotekën standarde, zbaton konceptin e referencave dhe variablave të pandryshueshme si parazgjedhje, ofron shtypje të fortë statike për të minimizuar gabimet logjike.

Burimi: opennet.ru

Shto një koment