A CHERIoT 1.0 szoftver- és hardverplatform a C nyelv kódjának biztonságának növelésére

Bemutatásra került a CHERIoT 1.0 szoftver- és hardverplatform végleges specifikációja (Capability Hardware Extension to RISC-V az Internet of Things számára), amely meghatározza a parancssor (ISA) kiterjesztését biztonságos eszközök létrehozásához. A CHERIoT hardveres lehetőségeket biztosít a memória hozzáférésének nyomon követésére, a mutatók helyességének ellenőrzésére és a kódblokkok elszigeteltségének biztosítására. Ezzel egy időben megjelent a CHERIoT ISA referenciaformális modelljének stabil verziója, amely a Sail nyelven van definiálva. A projekt fejlesztései BSD licenc alatt kerülnek terjesztésre.

A CHERIoT projektet a Microsoft hozta létre a C és C++ nyelveken írt meglévő kódok biztonsági problémáinak megoldására, valamint az ilyen kódok védelmére a jelentős átdolgozás nélkül. A védelem egy módosított fordító alkalmazásával valósul meg, amely kibővített parancssort (ISA) használ a mutatók integritásának biztosítása, a memóriahatárok ellenőrzése és az felszabadított memória elérésének megakadályozása érdekében. 2023-ban a CHERIoT fejlesztéseit nyilvánosságra hozták és együttműködési projektté alakították, amelyhez más cégek is csatlakoztak.

A CHERIoT hardverkomponensek a RISC-V architektúrára épülő mikrokontroller formájában valósulnak meg, amely a CHERI (Capability Hardware Extension to RISC-V) védett processzorarchitektúráját valósítja meg, vezérlési modell alapján a hozzáférés a memóriához a "capability" elvén (minden memóriaolvasási és -írási műveletet autorizálnak). A CHERIoT által nyújtott parancssori architektúra (ISA) alapjain szoftveres modell épül, amely garantálja a memória objektum szintű biztonságát, védelmet nyújt a már felszabadított memória elérhetetlenségére és könnyűsúlyú memóriahozzáférési elszigetelési rendszert valósít meg.

A megadott védelmi programmodell közvetlenül tükröződik a C/C++ nyelvi modellen, ami lehetővé teszi annak alkalmazását meglévő alkalmazásokhoz, amelyeknél mindössze újra kell fordítani és futtatni kell olyan hardveren, amely támogatja az ISA CHERIoT-ot. Például a CHERIoT alkalmazása lehetővé teszi a keretek automatikus ellenőrzésének, a memória-területek életciklusának nyomon követését és a mutatók integritásának biztosítását a megbízhatatlan adatokat kezelő komponensekben, a kód módosítása nélkül.

A CHERIoT alkalmazásával blokkolt problémák közé tartozik:

  • Objektumhatár túllépése a memóriában;
  • Mutatók hamisítása (a CHERIoT alkalmazásakor minden mutatót már létező mutatóból kell származtatni);
  • Hozzáférés a memóriához felszabadítás után (bármilyen hozzáférés a memóriához helytelen mutatóval vagy felszabadított objektumra mutató mutatóval a CHERIoT alkalmazásakor kivételt okoz).

A specifikáció és a formális modell mellett a projekt egy 32 bites RISC-V CPU Ibex referencia-implementációját is fejleszti, amely támogatja az ISA CHERIoT-ot, valamint egy módosított LLVM eszközkészletet. A CPU prototípusának sémái és a hardverblokkok leírásai Verilog nyelven, Apache 2.0 licenc alatt terjesztve találhatók. Az Ibex mag alapja a lowRISC projekt magja. A CHERIoT Ibex alapján ICENI chipek tömeggyártása készül, amelyek értékesítése a következő évre várható. Ezen kívül a Microsoft egy Kudu mikrokontroller kifejlesztésén dolgozik, amely támogatja az ISA CHERIoT-ot. Az Ibex és Kudu már teljes mértékben támogatják a CHERIoT 1.0 specifikációt. A CHERI-kiterjesztések RISC-V processzorok számára történő standardizálásán dolgoznak a RISC-V International szervezeten belül.

Továbbá, egy FPGA alapú platform emulátor és egy Docker konténer is fejlesztés alatt áll a fejlesztők számára, előre telepített eszközkészlettel és a CPU Ibex szimulátorral, amelyet Verilator segítségével valósítottak meg. A CHERIoT alapján egy valós idejű operációs rendszer prototípusa is elkészült, a CHERIoT RTOS, amely lehetővé teszi a compartmentek (compartment) elszigetelését még 256 MB RAM-mal rendelkező beágyazott rendszereken is. A CHERIoT RTOS kódja C++ nyelven íródott és MIT licenc alatt terjesztik. Az operációs rendszer alapvető komponensei, mint például bootloader, ütemező és memóriaelosztó, compartmentként vannak kialakítva.

A CHERIoT RTOS compartment is an isolated combination of code and global variables that resembles a shared library, but unlike the latter, it can change its state (mutable) and run in a separate security context. No external code can transfer control to the code in the compartment or access objects, except through specially defined entry points and by using pointers to objects explicitly passed when invoking another compartment. The integrity and confidentiality of code and global objects in the compartment are guaranteed.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster