Ռուստում sudo և su կոմունալ ծառայություններն իրականացնելու նախագիծ

ISRG-ն (Internet Security Research Group), որը Let's Encrypt նախագծի հիմնադիրն է և նպաստում է HTTPS-ին և ինտերնետի անվտանգության բարձրացման տեխնոլոգիաների զարգացմանը, ներկայացրել է Sudo-rs նախագիծը՝ ստեղծելու sudo և su կոմունալ ծառայություններ գրված: Rust, որը թույլ է տալիս հրամաններ կատարել այլ օգտվողների անունից: Apache 2.0 և MIT լիցենզիաների համաձայն, Sudo-rs-ի նախնական թողարկման տարբերակը արդեն հրապարակվել է, որը դեռ պատրաստ չէ ընդհանուր օգտագործման համար: Նախագիծը, որը սկսվել է 2022 թվականի դեկտեմբերին, նախատեսվում է ավարտել 2023 թվականի սեպտեմբերին։

Աշխատանքը ներկայումս կենտրոնացած է Sudo-rs-ի գործառույթների իրականացման վրա, որոնք թույլ են տալիս այն օգտագործել որպես sudo-ի թափանցիկ փոխարինում սովորական օգտագործման դեպքերում (կանխադրված sudoers կոնֆիգուրացիաներ Ubuntu-ում, Fedora-ում և Debian-ում): Ապագայում նախատեսվում է ստեղծել գրադարան, որը թույլ կտա sudo ֆունկցիոնալությունը ներդնել այլ ծրագրերի մեջ և ապահովել այլընտրանքային կազմաձևման մեթոդ, որը կխուսափի sudoers կազմաձևման ֆայլի շարահյուսության վերլուծությունից: Իրականացված sudo ֆունկցիոնալության հիման վրա կպատրաստվի նաև su utility-ի տարբերակ: Բացի այդ, պլաններում նշվում է SELinux-ի, AppArmor-ի, LDAP-ի, աուդիտի գործիքների աջակցությունը, առանց PAM-ի նույնականացման հնարավորությունը և sudo հրամանի տողի բոլոր տարբերակների իրականացումը:

Microsoft-ի և Google-ի տվյալներով՝ խոցելիության մոտ 70%-ը պայմանավորված է հիշողության ոչ անվտանգ կառավարմամբ։ Ակնկալվում է, որ Rust լեզվի օգտագործումը su և sudo-ի մշակման համար կնվազեցնի հիշողության անապահով մշակման հետևանքով առաջացած խոցելիության վտանգը և կվերացնի այնպիսի սխալների առաջացումը, ինչպիսին է հիշողության տարածք մուտք գործելը այն ազատվելուց հետո և բուֆերի գերազանցումը: Sudo-rs-ը մշակվում է Ferrous Systems-ի և Tweede Golf-ի ինժեներների կողմից՝ տրամադրված այնպիսի ընկերությունների կողմից, ինչպիսիք են Google-ը, Cisco-ն, Amazon Web Services-ը:

Հիշողության համար անվտանգ կառավարումը Rust-ում տրամադրվում է կոմպիլյացիայի ժամանակ՝ հղումների ստուգման, օբյեկտի սեփականության և օբյեկտի կյանքի ժամկետի (շրջանակի) հետևելու, ինչպես նաև կոդի կատարման ընթացքում հիշողության հասանելիության ճշգրտության գնահատման միջոցով: Rust-ը նաև ապահովում է պաշտպանություն ամբողջ թվերի արտահոսքից, պահանջում է փոփոխական արժեքների պարտադիր սկզբնավորում նախքան օգտագործումը, ստանդարտ գրադարանում ավելի լավ է լուծում սխալները, լռելյայն կիրառում է անփոփոխ հղումների և փոփոխականների հայեցակարգը, առաջարկում է ուժեղ ստատիկ մուտքագրում՝ տրամաբանական սխալները նվազագույնի հասցնելու համար:

Source: opennet.ru

Добавить комментарий