Eshtë prezantuar wersioni përfundimtar i specifikimit të platformës software-hardware CHERIoT 1.0 (Capability Hardware Extension to RISC-V për Internetin e Things), që përcakton zgjerimin e setit të komandave (ISA) për krijimin e pajisjeve të sigurta. CHERIoT ofron mundësi harduerike për ndjekjen e qasjes në memorje, verifikimin e saktësisë në punën me treguesit dhe sigurimin e izolimit të blloqeve të kodit. Njëkohësisht, është publikuar një version stabil i modelit formal referues CHERIoT ISA, i përcaktuar në gjuhën Sail. Zhvillimet e projektit shpërndahen nën licencën BSD.
Projekti CHERIoT u krijua nga kompania Microsoft për të adresuar problemet e sigurisë në kodin ekzistues në gjuhët C dhe C++ dhe për të mbrojtur këtë kod pa pasur nevojë për ristrukturim. Mbrojtja realizohet përmes përdorimit të një kompilatori të modifikuar që përdor një set të zgjeruar të komandeve procesorike (ISA) për të siguruar integritetin e treguesve, kontrollin e kufijve gjatë punës me memorjen dhe parandalimin e qasjes në memorjen e çliruar. Në vitin 2023, zhvillimet e CHERIoT u hapën dhe u transformuan në një projekt të përbashkët, në të cilin u bashkuan edhe kompani të tjera.
KomponentĂ«t harduerikĂ« tĂ« CHERIoT janĂ« organizuar nĂ« formĂ«n e njĂ« mikrokontrolleri mbi bazĂ«n e arkitekturĂ«s RISC-V, qĂ« realizon njĂ« arkitekturĂ« tĂ« sigurt procesorike CHERI (Capability Hardware Extension to RISC-V) me njĂ« model tĂ« menaxhuar tĂ« qasjes nĂ« memorje tĂ« bazuar nĂ« âcapabilityâ (çdo operacion leximi dhe shkrimi nĂ« memorje autorizohet). NĂ« bazĂ« tĂ« arkitekturĂ«s sĂ« setit tĂ« komandave (ISA) qĂ« ofrohet nĂ« CHERIoT, Ă«shtĂ« ndĂ«rtuar njĂ« model software qĂ« garanton sigurinĂ« e punĂ«s me memorjen nĂ« nivelin e objekteve tĂ« veçanta, duke ofruar mbrojtje nga aksesimi nĂ« memorjen e cilĂ«suar e liruar dhe duke realizuar njĂ« sistem tĂ« lehtĂ« tĂ« izolimit tĂ« qasjes nĂ« memorje.
Ky model software i mbrojtjes reflektohet drejtpërdrejt në modelin gjuhësor C/C++, që lejon aplikimin e tij për aplikacione ekzistuese, për mbrojtjen e të cilave kërkohet vetëm rikompilimi dhe funksionimi në pajisjet që mbështetin ISA CHERIoT. Për shembull, përdorimi i CHERIoT lejon realizimin e kontrollit automatik të kufijve, ndjekjen e kohëzgjatjes së zonave të memorjes dhe sigurimin e integritetit të treguesve në komponentët që përpunojnë të dhëna të pa besueshme, pa pasur nevojë për ndryshime në kod.
Mes problemeve që bllokohen përmes CHERIoT:
- Shkëputje nga objekti në memorie;
- Zëvendësimi i treguesve (kur përdoret CHERIoT, të gjithë treguesit duhet të krijohen nga tregues të tashmë ekzistues);
- Qasja në memorie pas çlirimit (çdo qasje në memorie mbi një tregues jo të saktë ose një tregues që i referohet një objekti të çliruar shkakton një përjashtim kur përdoret CHERIoT).
Përveç specifikimit dhe modelit formal, projekti zhvillon një zbatim referencë të CPU 32-bit RISC-V Ibex me mbështetje për ISA CHERIoT dhe mjet të modifikuar LLVM. Skemat e prototipit të CPU dhe përshkrimet e bllokëve hardware në Verilog shpërndahen nën licencën Apache 2.0. Si bazë për CPU është marrë bërthama Ibex nga projekti lowRISC. Në bazë të bërthamës CHERIoT Ibex, janë përgatitur për prodhim masiv çipat ICENI, shërbimi i të cilëve është planifikuar për vitin e ardhshëm. Veçmas, kompania Microsoft po zhvillon mikroprocesorin Kudu me mbështetje për ISA CHERIoT. Ibex dhe Kudu tashmë mbështesin plotësisht specifikimin CHERIoT 1.0. Po punohet për standardizimin e zgjerimeve CHERI për procesorët RISC-V në organizatën RISC-V International.
Për më tepër, zhvillohet një emulator i platformës bazuar në FPGA dhe një kontenier Docker për zhvilluesit me mjete të parakonfiguruara dhe simulatorin e CPU Ibex, i implementuar përmes Verilator. Për më tepër, në bazë të CHERIoT është përgatitur një prototip i sistemit operativ në kohë reale CHERIoT RTOS, që ofron mundësinë e izolimit të kompartmenteve (compartment) madje edhe në sisteme të integruara me 256 MB RAM. Kodi i CHERIoT RTOS është shkruar në C++ dhe shpërndahet nën licencën MIT. Komponentët themelorë të OS janë formatuar si kompartmentë, siç janë bootloaderi, planifikuesi dhe sistemi i shpërndarjes së memories.
Kompartamenti në CHERIoT RTOS paraqet një kombinim të izoluar të kodit dhe variablave globale, që ngjan me një bibliotekë të ndarë, por ndryshe nga kjo e fundit, mund të ndryshojë gjendjen e tij (mutable) dhe të ekzekutohet në një kontekst të veçantë sigurie. Asnjë kod nga jashtë nuk mund të kalojë kontrollin në kodin brenda kompartmentit dhe të ketë qasje në objektet, përveç se duke iu drejtuar pikave të veçanta të hyrjes dhe duke përdorur tregues për objektet, të cilat janë dhënë qartë gjatë thirrjes së kompartmentit tjetër. Për kodin dhe objektet globale në kompartment, garantohen integriteti dhe konfidencialiteti.
Burimi: opennet.ru
