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 veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster