U prezantua versioni përfundimtar i specifikimit të platformës softuerike-harduerike CHERIoT 1.0 (Capability Hardware Extension to RISC-V for Internet of Things), i cili përcakton zgjerimin e setit të komandave (ISA) për krijimin e pajisjeve të sigurta. CHERIoT ofron mundësi harduerike për monitorimin e qasjes në memorie, verifikimin e korrektësisë së punës me tregues dhe sigurimin e izolimit të blloqeve të kodit. Në të njëjtën kohë, është publikuar një version stabil i modelit formal referencë të CHERIoT ISA, i përcaktuar në gjuhën Sail.
Projekti CHERIoT është krijuar nga kompania Microsoft për të zgjidhur problemet e sigurisë në kodin ekzistues në gjuhët C dhe C++ dhe për të mbrojtur këtë kod pa e përshtatur atë. Mbrojtja realizohet përmes përdorimit të një kompilatori të modifikuar, që përdor një set të zgjeruar të instrukcioneve të procesorit (ISA) për të siguruar integritetin e treguesve, kontrollin e kufijve gjatë punës me memorie dhe parandalimin e qasjes në memorie të 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ë formuar si një mikro-kontroller bazuar në arkitekturën RISC-V, që realizon një arkitekturë procesori të sigurt CHERI (Capability Hardware Extension to RISC-V) me një model të qasjes në memorie të menaxhuar përmes "capability" (çdo operacion leximi dhe shkruari në memorie autorizohet). Në bazë të arkitekturës së setit të komandave (ISA) të ofruar në CHERIoT është ndërtuar një model softuerik, që garanton sigurinë e punës me memorie në nivelin e objekteve të veçanta, duke ofruar mbrojtje nga qasja në memorie të liruar tashmë dhe duke realizuar një sistem të lehtë izolimi të qasjes në memorie.
Ky model softuerik mbrojtjeje reflektohet drejtpërdrejt në modelin gjuhësor C/C++, që lejon aplikimin e tij për aplikacionet ekzistuese, për mbrojtjen e të cilave kërkohet vetëm rikompilim dhe ekzekutimi në harduer që mbështet ISA CHERIoT. Për shembull, aplikimi i CHERIoT lejon realizimin e kontrollit automatike të kufijve, monitorimin e kohës së jetës së territoreve të memories dhe sigurimin e integritetit të treguesve në komponentët që përpunojnë të dhëna të pasiguruara, pa bërë ndryshime në kod.
Mes problemeve që bllokohen me ndihmën e CHERIoT:
- Kalon jashtë kufijve të objektit në memorie;
- Zëvendësimi i treguesve (kur përdoret CHERIoT, të gjithë treguesit duhet të krijohen nga treguesit ekzistues);
- Për një qasje në memorie pas lirimit (çdo qasje në memorie nga një tregues të pavlefshëm ose të treguesit që referon në një objekt të liruar çon, me përdorimin e CHERIoT, në gjenerimin e një përjashtimi).
Përveç specifikimit dhe modelit formal, projekti zhvillon një implementim referencë të CPU 32-bit RISC-V Ibex me mbështetje për ISA CHERIoT dhe një mjet të modifikuar LLVM. Shkemat e prototipit të CPU dhe përshkrimet e blloqeve harduerike në gjuhën Verilog shpërndahen nën licencën Apache 2.0. Si bazë për CPU është përdorur bërthama Ibex nga projekti lowRISC. Në bazë të bërthamës CHERIoT Ibex po përgatiten për prodhim masiv çipat ICENI, prurja e të cilave është planifikuar për vitin e ardhshëm. Ndryshe, kompania Microsoft është duke zhvilluar mikro-kontrollerin Kudu me mbështetje për ISA CHERIoT. Ibex dhe Kudu tashmë mbështesin plotësisht specifikimin CHERIoT 1.0. Po punojnë për standardizimin e zgjerimeve CHERI për procesorët RISC-V në organizatën RISC-V International.
Për më tepër, po zhvillohet një emulator platforme në bazë të FPGA dhe një kontejner Docker për zhvilluesit me mjetin e instaluar dhe simulatorin e CPU Ibex, i realizuar me ndihmën e Verilator. Gjithashtu, në bazë të CHERIoT është përgatitur një prototip i sistemit operativ në kohë reale CHERIoT RTOS, i cili ofron mundësinë e izolimit të compartments (compartment) edhe në sisteme të integruara me 256 MB RAM. Kodi i CHERIoT RTOS është shkruar në gjuhën C++ dhe shpërndahet nën licencën MIT. Pjesët bazë të OS, siç janë bootloader, planifikuesi dhe sistemi i shpërndarjes së memories, janë formuar në formë compartments.
Një kompartament në CHERIoT RTOS përbën një kombinim të izoluar të kodit dhe variablave globalë, që është e ngjashme me një libër të ndarë, por ndryshe nga ky i fundit, mund të ndryshojë gjendjen e saj (mutable) dhe të ekzekutohet në një kontekst të veçantë të sigurisë. Asnjë kod jashtë nuk mund të kalojë kontrollin në kodin brenda kompartamentit dhe të aksesojë objektet, përveç nëse i drejtohet pikave të veçanta të hyrjes dhe përdoruesit të treguesve të objekteve që janë dhënë qartë gjatë thirrjes së një kompartamenti tjetër. Integriteti dhe konfidencialiteti për kodin dhe objektet globale brenda kompartamentit garantohen.
Burimi: opennet.ru
