CHERIoT 1.0 tark- ja riistvaraplatvorm, et suurendada C keele koodi turvalisust.

Esitati lõplik versioon CHERIoT 1.0 (Capability Hardware Extension to RISC-V for Internet of Things) tarkvara-riistvara platvormi spetsifikatsioonist, mis määratleb käsu komplekti laiendust (ISA) kaitstud seadmete loomise jaoks. CHERIoT pakub riistvaralist tuge mälu juurdepääsu jälgimiseks, pointerite õigsuse kontrollimiseks ja koodiblokkide isoleerimise tagamiseks. Samuti avaldati stabiliseeritud versioon referentsformaalsest CHERIoT ISA mudelist, mis on määratletud Sail keeles. Projekti arendused levivad BSD litsentsi alusel.

CHERIoT projekt loodi Microsofti poolt, et lahendada olemasoleva C ja C++ koodi turvaprobleeme ning kaitsta sarnast koodi ilma selle ümbertegemiseta. Kaitse rakendatakse muudetud kompilaatori kasutamise kaudu, mis kasutab laiendatud protsessorite käsu komplekti (ISA) pointerite terviklikkuse tagamiseks, mälu piiride kontrollimiseks ja vabastatud mälule juurdepääsu vältimiseks. 2023. aastal avati CHERIoTi arendused ja need muudetakse ühisteks projektiks, kuhu liitusid ka teised ettevõtted.

CHERIoTi riistvarakomponendid on kujundatud mikrokontrollerina RISC-V arhitektuuri baasil, rakendades kaitstud protsessori arhitektuuri CHERI (Capability Hardware Extension to RISC-V) koos mälu juurdepääsu mudeliga, mis põhineb „capability” (iga mälu lugemise ja kirjutamise operatsioon autoriseeritakse). CHERIoTi käsu komplekti (ISA) alusel on loodud tarkvaramudel, mis tagab mälu kasutamise turvalisuse üksikute objektide tasemel, pakkudes kaitset juba vabastatud mälu juurdepääsu eest ning rakendades kergkaalulist mälu juurdepääsu isolatsioonisüsteemi.

Määratletud kaitsemudel peegeldub otse C/C++ keelemudelis, mis võimaldab seda rakendada olemasolevates rakendustes, mille kaitsmiseks on vajalik ainult ümberkompileerimine ja töötlemine seadmetel, mis toetavad CHERIoTi ISA-d. Näiteks võimaldab CHERIoTi rakendamine automaatse piiride kontrollimise, mälupiirkondade elutsükli jälgimise ja pointerite terviklikkuse tagamise teostada usaldusväärsete andmete töötlemise komponentides ilma koodi muutmata.

CHERIoTi abil blokeeritavad probleemid:

  • Mäluobjekti piirest väljumine;
  • Viidete asendamine (CHERIoT'i kasutamisel peavad kõik viidendid olema loodud juba olemasolevatest viidetest);
  • Mälu kasutamine pärast vabastamist (iga juurdepääs mälule vale viidendi või viidendi kaudu, mis viitab vabastatud objektile, põhjustab CHERIoT'i kasutamisel erandi genereerimise).

Peale spetsifikatsiooni ja formaalse mudeli arendab projekt 32-bitise RISC-V CPU Ibex etalonrealiseerimist koos ISA CHERIoT toega ning muudetud LLVM tööriistakomplekti. CPU prototüüpide skeemid ja riistvara blokki kirjeldavad Verilog keeles levitatakse Apache 2.0 litsentsi alusel. CPU aluseks on Ibex tuum lowRISC projektist. CHERIoT Ibex alusel valmistatakse massitootmiseks ICENI kiipe, mille müük on planeeritud järgmiseks aastaks. Eraldi arendab Microsoft mikroprotsessorit Kudu, millel on ISA CHERIoT tugi. Ibex ja Kudu toetavad täielikult CHERIoT 1.0 spetsifikatsiooni. Töödeldakse CHERI laienduste standardiseerimist RISC-V protsessorite jaoks RISC-V International organisatsioonis.

Arendatakse lisaks FPGA-põhist platvormi emulaatorit ja Docker-konteinerit arendajatele, milles on eelinstallitud tööriistakomplekt ja CPU Ibex simulaator, mis on rakendatud Verilatori abil. Lisaks on CHERIoT'i alusel ette valmistatud CHERIoT RTOS reaalajas operatsioonisüsteemi prototüüp, mis võimaldab isolatsiooni kompartmentide (compartment) loomist isegi 256 MB RAM-iga sisend süsteemides. CHERIoT RTOS kood on kirjutatud C++ keeles ja levitatakse MIT litsentsi alusel. Operatsioonisüsteemi põhikomponendid, nagu laadija, ülesande planeerija ja mälu haldamise süsteem, on vormistatud kompartmentidena.

Kompartement CHERIoT RTOS-is on isoleeritud koodide ja globaalsete muutujate kombinatsioon, 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 suunata juhtimist kompartemendis oleva koodi poole ega pääseda objektidele juurde, välja arvatud spetsiaalselt määratud sisenemispunktide kaudu ning objektide pointerite kasutamisega, mis on selgelt edastatud teise kompartemendi väljakutsumise käigus. Koodile ja globaalsetele objektidele kompartemendis tagatakse terviklikkus ja konfidentsiaalsus.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster