CHERIoT 1.0 ծրագրային-հաջողակ համակարգի հարթակ` C լեզվով կոդի անվտանգության բարձրացման համար

Ներկայացվել է CHERIoT 1.0 ծրագրային-հաջողակ համակարգի հարթակի վերջնական տարբերակը (Հաշվարկային Որակավորման Համակարգ՝ RISC-V բլոկների համար Ինտերնետային Խորհրդատվության համար), որը սահմանում է հրահանգների հավաքածուի ընդլայնումը (ISA) անվտանգ սարքերի ստեղծման համար: CHERIoT-ը տրամադրում է սարքային հնարավորություններ հիշողության մուտքի հետևման, ցուցակներով աշխատանքի ճիշտ ստուգման և կոդային բլոկների մեկուսացման ապահովման համար: Միևնույն ժամանակ, հրապարակվել է CHERIoT ISA-ի ստանդարտ ձևական մոդելի կայուն թողարկումը, որը սահմանված է Sail լեզվով: Ծրագրի ձեռքբերումները տարածվում են BSD լիցենզիայի շրջանակներում:

CHERIoT նախագիծը ստեղծվել է Microsoft-ի կողմից C և C++ լեզուներով գոյություն ունեցող կոդի անվտանգության խնդիրները լուծելու և նմանատիպ կոդի պաշտպանության համար, առանց դրա վերամշակման: Պաշտպանությունը իրականացվում է փոխված կոմպիլատորի միջոցով, որը օգտագործում է ընդլայնված պրոցեսորային հրահանգների հավաքածու (ISA), որն обеспечивает ցուցակների ամբողջականությունը, հիշողության աշխատանքում սահմանները վերահսկելու և ազատված հիշողությանը հասնելու կանխարգելումը: 2023 թվականին CHERIoT-ի ձեռքբերումները բացվել են և վերածվել համատեղ նախագծի, որի մեջ մասնակցում են նաև այլ ընկերություններ:

CHERIoT-ի սարքային բաղադրիչները ձևավորված են որպես միկրոցիպ՝ RISC-V արխիտեկտուրայի հիման վրա, որը իրագործում է CHERI պաշտպանված պրոցեսորային արխիտեկտուրան (Հաշվարկային Որակավորման Համակարգ RISC-V-ի համար)՝ «խելացի» հիմնված հիշողության մուտքի մոդելով (այսինքն, հիշողության մեջ ցանկացած կարդալ-գրել գործողություն պետք է թույլատրվի): CHERIoT-ում տրամադրված հրահանգների հավաքածուի (ISA) հիման վրա կառուցված ծրագրային մոդելը ապահովում է հիշողության անվտանգությունը առանձին օբյեկտների մակարդակում, ապահովելով պաշտպանություն ազատված հիշողությանը մուտքերից և իրականացնելով ringan մուտքի մեկուսացման համակարգ:

Նշված ծրագրային պաշտպանության մոդելը ուղղակիորեն արտացոլվում է C/C++ լեզվաբառարանով, ինչը թույլ է տալիս կիրառել այն գոյություն ունեցող ծրագրերի վրա, որոնց պաշտպանության համար պահանջվում է միայն վերակոմպիլացում և գործարկում CHERIoT ISA-ն աջակցող սարքերի վրա: Օրինակ, CHERIoT-ի կիրառումը առանց կոդում փոփոխություններ կատարելու մուտքագրում է սահմանների ավտոմատ ստուգում, հիշողության տարածքների կյանքի ժամկետի հետևում և ցուցակների ամբողջականության ապահովում՝ անմատչելի տվյալներ մշակող բաղադրիչներում:

CHERIoT-ի միջոցով արգելափակվող խնդիրները՝

  • Հիշողության մեջ օբյեկտից դուրս գալը;
  • Ցուցակների փոխակերպումը (CHERIoT-ի դեպքում բոլոր ցուցակները պետք է ստեղծվեն արդեն գոյություն ունեցող ցուցակներից);
  • Ազատված հիշողությանը հասնելը (խելացի ցուցակով կամ ազատված օբյեկտին հղվող ցուցակով հիշողության ցանկացած մուտքագրումը CHERIoT-ի կիրառմամբ հանգեցնում է բացառության ձևավորման):

Հարցը ավելին է քան մի պարզ սպեկիֆիկացիա և խիստ մոդել, նախագիծը զարգացնում է 32-բիթանոց RISC-V CPU Ibex-ի նմյուս իրականացումը, որը աջակցում է ISA CHERIoT-ին, և փոփոխված LLVM գործիքակազմը: CPU-ի նախատիպի սխեմաները և նյութական բլոկների նկարագրությունները Verilog լեզվով տրամադրվում են Apache 2.0 լիցենզիայի ներքո: CPU-ի հիմքն օգտագործում է Ibex միջուկը lowRISC նախագծից: CHERIoT Ibex միջուկի հիման վրա պատրաստվում են զանգվածային արտադրություն ICENI չիպեր, որոնք վաճառքի կհանձնվեն հաջորդ տարի: Ըստ առանձին Microsoft ընկերությունը զարգացնում է Kudu միկրո կառավարիչը, որը աջակցում է ISA CHERIoT-ին: Ibex-ը և Kudu-ն արդեն լիովին աջակցում են CHERIoT 1.0 ստանդարտին: Աշխատանքներ են իրականացվում RISC-V International կազմակերպությունում RISC-V պրոցեսորների համար CHERI ընդլայնումների ստանդարտացման գործը:

Նաև զարգանում է FPGA բազայի էմուլյատոր և Docker կոնտեյներ մասնագետների համար, որը ներառում է նախօրոք տեղադրված գործիքակազմը և CPU Ibex-ի սիմուլյատորը, որն իրականացվում է Verilator-ի միջոցով: Բացի այդ, CHERIoT բազայի վրա պատրաստվել է CHERIoT RTOS իրականաժամկետ օպերացիոն համակարգի նախատիպ, որը տրամադրում է բաժանորդների (compartment) մասնագիտացման հնարավորություններ նույնիսկ 256 ՄԲ RAM ունեցող ինտեգրված համակարգերում: CHERIoT RTOS-ի կոդը գրված է C++ լեզվով և տրամադրվում է MIT լիցենզիայի ներքո: Օպերացիոն համակարգի հիմունքներն ընդգրկված են բաժանորդներում, ներառյալ բեռնատար, ծրագրավորիչ և հիշողության բաշխման համակարգ:

CHERIoT RTOS- ում բաժանորդը (compartment) սերտորեն ցածր կոդի և գլոբալ փոփոխականների մեկուսացված ամենաբազմազանությունն է, որը նման է կիսով չափ գրադարանների, բայց, տարբերության մեջ, կարող է փոխել իր վիճակը (mutable) և գործել անվտանգության առանձին համատեքստում: Ոչ մի արտաքին կոդ չի կարող փոխանցել կառավարումը բաժանորդի մեջ գործող կոդին և մուտք ունենալ իր օբյեկտներին, բացի հատուկ սահմանված մուտքագծերից ու օգտագործելով նշանակետերը, որ հստակ փոխանցվել են մեկ այլ բաժանորդի կանչի ժամանակ: Բաժանորդի մեջ կոդի և գլոբալ օբյեկտների համընկնումը և գաղտնիությունը երաշխավորվում են:

Ընտանիք: opennet.ru

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster