CHERIoT, a Microsoft projekt a C biztonságának javítására

CHERIOT

CHERIoT, egy MS opció a beágyazott rendszerek biztonságához

Nemrég erről szólt a hír A Microsoft megnyitotta a CERIoT projekthez kapcsolódó fejlesztéseket (Képes hardverbővítés a RISC-V-hez a tárgyak internetéhez), célja, hogy blokkolja a biztonsági problémákat C és C++ kódokban létező. A CHERIoT megoldást kínál a meglévő C/C++ kódbázisok védelmére anélkül, hogy át kellene alakítani azokat.

A védelem egy módosított fordító segítségével valósul meg amely a processzor által biztosított speciális kiterjesztett processzorutasításkészletet (ISA) használ, és hardver szinten figyeli a memóriaelérést, mutatókkal ellenőrzi a feladatok helyességét, és kódblokk elkülönítést biztosít.

A CHERIOT-ról

A projekt azzal a tudattal jött létre, hogy a C nyelv alacsony szintű természete memóriahibák forrásává válik, ami olyan problémákhoz vezet, mint a puffer túlcsordulása, hozzáférés a már felszabadult memóriához, mutatóhivatkozás megszüntetése vagy dupla felszabadítás.

A gyakorlat azt mutatja, hogy még az olyan nagyvállalatok sem, mint a Google és a Microsoft, amelyek szigorú változás-ellenőrzési politikával rendelkeznek, és modern fejlesztési módszereket és statikus elemzési eszközöket használnak, nem tudják garantálni a memória hibamentes működését (például a Microsoft és a Google sebezhetőségeinek körülbelül 70%-a). nem biztonságos memóriakezelés okozza).

A probléma Megoldható olyan programozási nyelvek használatával, amelyek garantálják a biztonságos munkát.vagy memóriával vagy további vezérlőkkel rendelkező hivatkozásokkal, például a MiraclePtr (raw_ptr) használatával az általános mutatók helyett, amely további vezérlőket hajt végre a felszabadult memóriaterületek eléréséhez.

De az ilyen módszerek alkalmasabbak új kódokhoz y elég problémás a meglévő C/C++ projektek átdolgozása, különösen akkor, ha erőforrás-korlátozott környezetben, például beágyazott rendszerekben és IoT-eszközökben való futtatásra szánják őket.

sok A CHERIoT hardverelemeit mikrokontrollerként tervezték RISC-V architektúrára épül, a CHERI (Capacity Hardware Extension for RISC-V) biztonságos processzorarchitektúrát megvalósítva, szabályozott memóriaelérési modellt biztosítva.

Alapján az utasításkészlet architektúrája (EGY) A CHERIoT-ban egy olyan programozási modellt építenek, amely garantálja a memóriával való munkavégzés biztonságát az egyes objektumok szintjén, védelmet nyújt a már felszabadult memóriához való hozzáférés ellen, és egy könnyű elválasztó rendszert valósít meg a memóriaeléréshez.

Ez a programozott védelmi modell közvetlenül tükrözi a C/C++ nyelvi modellt, lehetővé téve a meglévő alkalmazások védelmét (csak az ISA CHERIoT-kompatibilis hardveren kell újrafordítani és futtatni).

A javasolt megoldás lehetővé teszi az olyan hibák blokkolását, amelyek a memóriában lévő objektum határain kívül esést okoznak, nem teszi lehetővé a mutató helyettesítését (minden mutatót meglévő mutatóból kell előállítani), felszabadítás után figyeli a memóriahozzáférést (a rossz mutató vagy a felszabadult objektumra hivatkozó mutató bármilyen memória-hozzáférése kivételt jelent).

Például a CHERIoT használata lehetővé teszi, hogy a kód módosítása nélkül automatikus határellenőrzést hajtson végre, nyomon kövesse a memóriaterületek élettartamát, és biztosítsa a mutatók integritását a megbízhatatlan adatokat feldolgozó összetevőkben.

A projekt tartalmaz egy specifikációt egy CHERIOT utasításkészlet architektúrához kiterjesztés, egy ISA CHERIoT-kompatibilis 32 bites RISC-V CPU referencia megvalósítása és egy módosított LLVM eszközkészlet.

Végül Ha érdekel, hogy többet tudjon meg róla, tudnia kell, hogy a prototípus diagramok A Verilog CPU- és hardverblokk-leírásai az Apache 2.0 licenc alatt kerülnek terjesztésre. A lowRISC projekt Ibex magja a CPU alapja, a CHERIoT ISA kódmodell pedig Sail nyelven van definiálva, és a BSD licenc alatt kerül terjesztésre.

Ezenkívül a CHERIoT RTOS valós idejű operációs rendszer prototípusát javasolják, amely lehetővé teszi a rekeszek (rekeszek) elkülönítését még 256 MB RAM-mal rendelkező beágyazott rendszereken is.

A kód CHERIOT RTOS C++ nyelven íródott, és MIT licenc alatt terjesztik. Rekeszek formájában megtervezik az operációs rendszer alapvető összetevőit, mint például a rendszertöltő, az ütemező és a memóriafoglalási rendszer.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.