Google բաց կոդով անվտանգ օպերացիոն համակարգ KataOS

Google-ը հայտարարել է KataOS նախագծի հետ կապված զարգացումների հայտնաբերման մասին, որն ուղղված է ներկառուցված սարքավորումների համար անվտանգ օպերացիոն համակարգ ստեղծելուն։ KataOS համակարգի բաղադրիչները գրված են Rust-ով և աշխատում են seL4 միկրոմիջուկի վերևում, որի համար RISC-V համակարգերի վրա տրամադրվել է հուսալիության մաթեմատիկական ապացույց՝ ցույց տալով, որ կոդը լիովին համապատասխանում է պաշտոնական լեզվով սահմանված բնութագրերին: Ծրագրի կոդը բաց է Apache 2.0 լիցենզիայի ներքո:

Համակարգն ապահովում է RISC-V և ARM64 ճարտարապետությունների վրա հիմնված հարթակների աջակցություն: SeL4-ի և KataOS միջավայրի աշխատանքը ապարատային վերևում մոդելավորելու համար մշակման գործընթացում օգտագործվում է Renode շրջանակը: Որպես հղման իրականացում, առաջարկվում է Sparrow ծրագրային և ապարատային համալիրը, որը համատեղում է KataOS-ը անվտանգ չիպերի հետ՝ հիմնված OpenTitan հարթակի վրա: Առաջարկվող լուծումը թույլ է տալիս համատեղել տրամաբանորեն հաստատված օպերացիոն համակարգի միջուկը վստահելի ապարատային բաղադրիչների հետ (RoT, Root of Trust), որոնք կառուցվել են OpenTitan հարթակի և RISC-V ճարտարապետության միջոցով: Բացի KataOS կոդից, նախատեսվում է ապագայում բացել Sparrow-ի մնացած բոլոր բաղադրիչները, այդ թվում՝ ապարատային բաղադրիչը։

Պլատֆորմը մշակվում է մասնագիտացված չիպերում կիրառման համար, որոնք նախատեսված են մեքենայական ուսուցման և գաղտնի տեղեկատվության մշակման համար հավելվածներ գործարկելու համար, որոնք պահանջում են պաշտպանության հատուկ մակարդակ և խափանումների բացակայության հաստատում: Նման հավելվածների օրինակները ներառում են այնպիսի համակարգեր, որոնք շահարկում են մարդկանց պատկերները և ձայնային ձայնագրությունները: KataOS-ի կողմից հուսալիության ստուգման օգտագործումը երաշխավորում է, որ եթե համակարգի մի մասը ձախողվի, ապա ձախողումը չի տարածվի համակարգի մնացած մասի վրա և, մասնավորապես, միջուկի և կարևոր մասերի վրա:

seL4 ճարտարապետությունը հատկանշական է շարժվող մասերի համար՝ միջուկի ռեսուրսները կառավարելու համար օգտագործողի տարածք և կիրառելով նույն մուտքի վերահսկման գործիքները նման ռեսուրսների համար, ինչ օգտագործողի ռեսուրսների համար: Միկրոմիջուկը չի տրամադրում պատրաստի բարձր մակարդակի աբստրակցիաներ ֆայլերի, պրոցեսների, ցանցային կապերի և այլնի կառավարման համար, փոխարենը տրամադրում է միայն նվազագույն մեխանիզմներ ֆիզիկական հասցեների տարածության, ընդհատումների և պրոցեսորի ռեսուրսների հասանելիությունը վերահսկելու համար: Բարձր մակարդակի աբստրակցիաները և սարքավորումների հետ փոխազդեցության դրայվերներն իրականացվում են առանձին միկրոմիջուկի վերևում՝ օգտագործողի մակարդակի առաջադրանքների տեսքով: Նման առաջադրանքների հասանելիությունը միկրոմիջուկին հասանելի ռեսուրսներին կազմակերպվում է կանոնների սահմանման միջոցով:

Լրացուցիչ պաշտպանության համար բոլոր բաղադրիչները, բացառությամբ միկրոմիջուկի, ստեղծվել են Rust-ում՝ օգտագործելով անվտանգ ծրագրավորման մեթոդներ, որոնք նվազագույնի են հասցնում հիշողության սխալները, որոնք հանգեցնում են այնպիսի խնդիրների, ինչպիսիք են հիշողության հասանելիությունը ազատվելուց հետո, զրոյական ցուցիչի անհասանելի հղումներ և բուֆերների գերազանցում: Rust-ով գրվել են հավելվածների բեռնիչը seL4 միջավայրում, համակարգի ծառայությունները, հավելվածների մշակման շրջանակը, համակարգային զանգերին մուտք գործելու API, գործընթացի կառավարիչ, դինամիկ հիշողության տեղաբաշխման մեխանիզմ և այլն: Ստուգված ժողովն օգտագործում է CAmkES գործիքակազմը, որը մշակվել է seL4 նախագծի կողմից: CAmkES-ի բաղադրիչները կարող են ստեղծվել նաև Rust-ում:

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

Source: opennet.ru

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