CHERIoT, ett Microsoft-projekt för att förbättra säkerheten i C

CHERIOT

CHERIoT, ett MS-alternativ för säkerhet för inbyggda system

Nyheten avslöjade det nyligen Microsoft har öppnat utvecklingen relaterade till CHERIoT-projektet (Capability Hardware Extension to RISC-V for Internet of Things), avsedd att blockera säkerhetsproblem i C- och C++-kod existerande. CHERIoT erbjuder en lösning för att skydda befintliga C/C++-kodbaser utan att behöva omfaktorisera dem.

Skyddet implementeras genom att använda en modifierad kompilator som använder en speciell utökad uppsättning processorinstruktioner (ISA) som tillhandahålls av processorn och övervakar minnesåtkomst på hårdvarunivå, verifierar jobbets korrekthet med pekare och tillhandahåller kodblocksisolering.

Om CHERIOT

Projektet skapades med insikten att C-språkets lågnivåkaraktär blir en källa till minnesfel, vilket leder till problem som buffertspill, tillgång till redan frigjort minne, pekaravledning eller dubbelfrigöring.

Praxis visar att även stora företag som Google och Microsoft, som har en strikt policy för ändringsgranskning och använder moderna utvecklingsmetoder och statiska analysverktyg, inte kan garantera felfritt arbete med minne (till exempel är cirka 70 % av sårbarheterna i Microsoft och Google orsakas av osäker minneshantering).

Problemet Det kan lösas genom att använda programmeringsspråk som garanterar säkert arbete.eller med minne eller länkar med ytterligare kontroller, till exempel genom att använda MiraclePtr (raw_ptr) istället för vanliga pekare, som utför ytterligare kontroller för att komma åt frigjorda minnesområden.

Men sådana metoder är mer lämpade för ny kod y det är ganska besvärligt att omarbeta befintliga C/C++-projekt, speciellt om de är avsedda att köras i miljöer med begränsade resurser, såsom inbyggda system och IoT-enheter.

mycket CHERIoT hårdvarukomponenter är designade som en mikrokontroller baserad på RISC-V-arkitekturen, implementerar den säkra processorarkitekturen CHERI (Capacity Hardware Extension for RISC-V), vilket ger en kontrollerad minnesåtkomstmodell.

Baserat på instruktionsuppsättningsarkitekturen (ÄR EN) Tillhandahållen i CHERIoT är en programmeringsmodell byggd som garanterar säkerheten att arbeta med minne på nivån för enskilda objekt, ger skydd mot tillgång till redan frigjort minne och implementerar ett lättviktigt isoleringssystem för minnesåtkomst.

Denna programmatiska skyddsmodell speglar direkt språkmodellen C/C++, vilket gör att den kan användas för att skydda befintliga applikationer (endast omkompilering och körning på ISA CHERIoT-kompatibel hårdvara krävs) .

Den föreslagna lösningen tillåter att blockera fel som orsakar utanför gränserna för ett objekt i minnet, tillåter inte pekareersättning (alla pekare måste genereras från befintliga pekare), övervakar minnesåtkomst efter frigöring (all minnesåtkomst av en dålig pekare eller en pekare som refererar till ett frigjort objekt ger ett undantag).

Till exempel tillåter användningen av CHERIoT, utan att göra några ändringar i koden, att implementera automatisk gränskontroll, att spåra livslängden för minnesområden och att säkerställa integriteten hos pekare i komponenter som behandlar opålitlig data.

Projektet innehåller en specifikation för en CHERIoT-instruktionsuppsättningsarkitektur förlängning, en referensimplementering av en ISA CHERIoT-kompatibel 32-bitars RISC-V CPU och en modifierad LLVM-verktygsuppsättning.

Slutligen Om du är intresserad av att veta mer om det, du bör veta att prototypdiagram CPU- och hårdvarublockbeskrivningar i Verilog distribueras under Apache 2.0-licensen. Ibex-kärnan i lowRISC-projektet används som bas för CPU:n och CHERIoT ISA-kodmodellen definieras i Sail-språket och distribueras under BSD-licensen.

Dessutom föreslås en prototyp av CHERIoT RTOS realtidsoperativsystem, som ger möjlighet att isolera fack (fack) även på inbyggda system med 256 MB RAM.

Koden CHERIOT RTOS Den är skriven i C++ och distribueras under MIT-licensen. I form av fack är de grundläggande komponenterna i operativsystemet, såsom starthanteraren, schemaläggaren och minnesallokeringssystemet, designade.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.