CHERIoT, een Microsoft-project om de beveiliging in C

CHERIOT

CHERIoT, een MS-optie voor beveiliging van ingebedde systemen

Het nieuws maakte dat onlangs bekend Microsoft heeft de ontwikkelingen met betrekking tot het CHERIoT-project geopend (Hardware-uitbreiding naar RISC-V voor Internet of Things), bedoeld om beveiligingsproblemen in C- en C++-code te blokkeren bestaande. CHERIoT biedt een oplossing om bestaande C/C++-codebases te beschermen zonder ze te hoeven herstructureren.

De beveiliging wordt geïmplementeerd met behulp van een aangepaste compiler die een speciale uitgebreide set processorinstructies (ISA) gebruikt die door de processor wordt geleverd en de geheugentoegang op hardwareniveau bewaakt, de juistheid van de taak verifieert met verwijzingen en zorgt voor isolatie van codeblokken.

Over CHERIOT

El proyecto is gemaakt met dien verstande dat de lage aard van de C-taal wordt een bron van geheugenfouten, wat leidt tot problemen zoals bufferoverflows, toegang tot reeds vrijgemaakt geheugen, dereferentie van de aanwijzer of dubbele vrijmaking.

De praktijk leert dat zelfs grote bedrijven als Google en Microsoft, die een strikt change review-beleid hebben en moderne ontwikkelmethodes en statische analysetools gebruiken, foutloos werken met geheugen niet kunnen garanderen (bijvoorbeeld ongeveer 70% van de kwetsbaarheden in Microsoft en Google worden veroorzaakt door onveilig geheugenbeheer).

Het probleem Het is op te lossen door programmeertalen te gebruiken die veilig werken garanderen.of met geheugen of koppelingen met aanvullende besturingselementen, bijvoorbeeld door MiraclePtr (raw_ptr) te gebruiken in plaats van algemene verwijzingen, die aanvullende besturingselementen uitvoeren om toegang te krijgen tot vrijgekomen geheugengebieden.

Maar dergelijke methoden zijn meer geschikt voor nieuwe code y het is nogal lastig om bestaande C/C++ projecten te herwerken, vooral als ze bedoeld zijn om te worden uitgevoerd in omgevingen met beperkte middelen, zoals ingebedde systemen en IoT-apparaten.

De CHERIoT-hardwarecomponenten zijn ontworpen als een microcontroller gebaseerd op de RISC-V-architectuur, die de beveiligde processorarchitectuur CHERI (Capacity Hardware Extension for RISC-V) implementeert en een gecontroleerd geheugentoegangsmodel biedt.

Gebaseerd op de instructieset architectuur (IS EEN) In CHERIoT wordt een programmeermodel gebouwd dat de veiligheid van het werken met geheugen op het niveau van individuele objecten garandeert, bescherming biedt tegen toegang tot reeds vrijgemaakt geheugen en een lichtgewicht isolatiesysteem implementeert voor geheugentoegang.

Dit programmatische beveiligingsmodel weerspiegelt rechtstreeks het C/C++-taalmodel, waardoor het kan worden gebruikt om bestaande applicaties te beschermen (alleen opnieuw compileren en uitvoeren op ISA CHERIoT-compatibele hardware vereist).

De voorgestelde oplossing maakt het mogelijk om fouten te blokkeren die buiten de grenzen van een object in het geheugen leiden, staat geen vervanging van aanwijzers toe (alle aanwijzers moeten worden gegenereerd op basis van bestaande aanwijzers), bewaakt geheugentoegang na vrijgave (elke geheugentoegang door een slechte aanwijzer of een aanwijzer die verwijst naar een vrijgemaakt object levert een uitzondering op).

Het gebruik van CHERIoT maakt het bijvoorbeeld mogelijk om, zonder enige codewijzigingen aan te brengen, automatische grenscontrole te implementeren, de levensduur van geheugengebieden te volgen en de integriteit te waarborgen van pointers in componenten die onbetrouwbare gegevens verwerken.

El proyecto bevat een specificatie voor een architectuur van een CHERIoT-instructieset extensie, een referentie-implementatie van een ISA CHERIoT-compatibele 32-bits RISC-V CPU en een aangepaste LLVM-toolset.

Eindelijk Als u er meer over wilt weten, je zou dat moeten weten prototype diagrammen Beschrijvingen van CPU- en hardwareblokken in Verilog worden gedistribueerd onder de Apache 2.0-licentie. De Ibex-kern van het lowRISC-project wordt gebruikt als basis voor de CPU en het CHERIoT ISA-codemodel wordt gedefinieerd in de Sail-taal en gedistribueerd onder de BSD-licentie.

Bovendien wordt een prototype CHERIoT RTOS real-time besturingssysteem voorgesteld, dat de mogelijkheid biedt om compartimenten (compartiment) te isoleren, zelfs op ingebedde systemen met 256 MB RAM.

De code CHERIOT RTOS Het is geschreven in C++ en wordt gedistribueerd onder de MIT-licentie. In de vorm van compartimenten zijn de basiscomponenten van het besturingssysteem, zoals de bootloader, de planner en het geheugentoewijzingssysteem, ontworpen.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.