CHERIoT 1.0 riist- ja tarkvaraplatvorm C-koodi turvalisuse suurendamiseks.

Esitatud on CHERIoT 1.0 tarkvara-hardware platvormi lÔplik spetsifikatsioon (Capability Hardware Extension to RISC-V for Internet of Things), mis mÀÀratleb kÀsu komplekti (ISA) laiendamise kaitstud seadmete loomiseks. CHERIoT pakub riistvaralisi vÔimalusi mÀlu juurdepÀÀsu jÀlgimiseks, pointerite Ôiguse kontrollimiseks ja koodiplokkide isoleerimise tagamiseks. Samuti on avaldatud stabiilne versioon CHERIoT ISA formaalsest mudelist, mis on mÀÀratletud keeles Sail.

CHERIoT projekt loodi Microsofti poolt, et lahendada olemasoleva C ja C++ koodi turvaprobleeme ning kaitsta sarnast koodi ilma selle ĂŒmberkirjutamiseta. Kaitse toimub muudetud kompilaatori kaudu, mis kasutab laiemat protsessori kĂ€su komplekti (ISA), et tagada pointerite terviklikkus, mĂ€lu piiride kontroll ja vabastatud mĂ€lu juurde pÀÀsemise vĂ€ltimine. 2023. aastal avati CHERIoTi arendused ning need muudeti koostööprojektiks, kuhu liitusid ka teised ettevĂ”tted.

CHERIoT-i riistvarakomponendid on kujundatud mikrokontrollerina, mis pĂ”hineb RISC-V arhitektuuril, rakendades kaitstud protsessori arhitektuuri CHERI (Capability Hardware Extension to RISC-V) koos mĂ€lule juurdepÀÀsu juhtimise mudeliga, mis pĂ”hineb «capability» (iga mĂ€lu lugemise ja kirjutamise operatsioon on autoriseeritud). CHERIoT-i kĂ€su komplekti (ISA) alusel on loodud tarkvaraline mudel, mis tagab mĂ€luga töötamise ohutuse eraldi objektide tasemel, pakkudes kaitset juba vabastatud mĂ€lu juurde pÀÀsemise eest ning rakendades kerget mĂ€lu juurdepÀÀsu isoleerimise sĂŒsteemi.

TÀpsemalt peegeldab antud kaitse tarkvaraline mudel C/C++ keelmudelit, mis vÔimaldab seda rakendada olemasolevates rakendustes, mille kaitsmiseks on vajalik vaid taaskompileerimine ja kÀivitamine seadmetes, mis toetavad CHERIoT ISA-d. NÀiteks vÔimaldab CHERIoT automaatset piiride kontrollimist, eluea jÀlgimist mÀlu aladel ja pointerite terviklikkuse tagamist usaldusvÀÀrsete andmete töötlemise komponentides, ilma koodis muudatusi tegemata.

CHERIoT abil blokeeritavad probleemid:

  • MĂ€luobjekti piiridest vĂ€ljapoole mine;
  • Pointerite asendamine (CHERIoTi rakendamisel peavad kĂ”ik pointerid olema loodud olemasolevatest pointeritest);
  • JuurdepÀÀs mĂ€lu pĂ€rast vabastamist (igany juurdepÀÀs mĂ€lu vale pointeri vĂ”i vabastatud objekti viitava pointeriga pĂ”hjustab CHERIoT rakendamisel erandi genereerimist).

Lisaks spetsifikatsioonile ja formaalsele mudelile arendab projekt standardset teostust 32-bitise RISC-V CPU Ibex, mis toetab CHERIoT ISA-d, ja muudetud tööriistade komplekti LLVM. CPU prototiibi skeemid ja riistvarakomponentide kirjeldused Verilog keeles on avatud Apache 2.0 litsentsi alusel. CPU aluseks on Ibex tuum lowRISC projektist. CHERIoT Ibex pĂ”hjal valmistatakse massiliselt tootmiseks ICENI kiipe, mille mĂŒĂŒgi algus on planeeritud jĂ€rgmiseks aastaks. Eraldi arendab Microsoft Kudu mikrokontrollerit, mis toetab CHERIoT ISA-d. Ibex ja Kudu toetavad juba tĂ€ielikult CHERIoT 1.0 spetsifikatsiooni. Töö CHERI laienduste standardimise nimel RISC-V protsessoritele toimub RISC-V International organisatsioonis.

Lisaks arendatakse FPGA baasil platvormi emulaatorit ja Docker konteinerit arendajatele, millel on eelnevalt installitud tööriistade komplekt ja Ibex CPU simulaator, mis on teostatud Verilator abil. Samuti on CHERIoT-i baasil loodud reaalajas operatsioonisĂŒsteemi prototĂŒĂŒp CHERIoT RTOS, mis vĂ”imaldab compartmentide isolatsiooni isegi 256 MB RAM-ga sisseehitatud sĂŒsteemides. CHERIoT RTOS-i kood on kirjutatud C++ keeles ja on avatud MIT litsentsi alusel. OS-i pĂ”hilised komponendid nagu laadija, planeerija ja mĂ€lu jaotussĂŒsteem on kujundatud compartmentidena.

Kompartiment CHERIoT RTOS-is on isoleeritud koodikombinatsioon ja globaalsete muutujate kogum, mis meenutab jagatud teeki, kuid erinevalt viimasest vĂ”ib see muuta oma olekut (mutable) ja kĂ€ivituda eraldi turvakontekstis. Ükski vĂ€line kood ei saa edasi anda kontrolli kompartimendis olevale koodile ega pÀÀseda objektidele ligi, vĂ€lja arvatud ĂŒhendus spetsiaalselt mÀÀratletud sisenemispunktide kaudu ja objektide kasutamine, mis on selgelt edastatud teise kompartimendi kutsumise ajal. Kompartimendis oleva koodi ja globaalsete objektide puhul tagatakse terviklikkus ja konfidentsiaalsus.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster