CHERIoT, et Microsoft-projekt til forbedring af sikkerheden i C

CHERIOT

CHERIoT, en MS mulighed for sikkerhed for indlejrede systemer

Det kom nyheden for nylig Microsoft har åbnet udviklingen i forbindelse med CHERIoT-projektet (Capability Hardware Extension to RISC-V for Internet of Things), beregnet til at blokere sikkerhedsproblemer i C- og C++-kode eksisterende. CHERIoT tilbyder en løsning til at beskytte eksisterende C/C++ kodebaser uden at skulle refaktorisere dem.

Beskyttelsen implementeres ved at bruge en modificeret compiler som bruger et særligt udvidet sæt af processorinstruktioner (ISA) leveret af processoren og overvåger hukommelsesadgang på hardwareniveau, verificerer jobkorrekthed med pointere og giver kodeblokisolering.

Om CHERIOT

Projektet blev skabt med den forståelse, at C-sprogets lavniveau karakter bliver en kilde til hukommelsesfejl, hvilket fører til problemer som bufferoverløb, adgang til allerede frigjort hukommelse, pointer-dereferencing eller dobbeltfrigørelse.

Praksis viser, at selv store virksomheder som Google og Microsoft, der har en streng politik for ændringsgennemgang og bruger moderne udviklingsmetoder og statiske analyseværktøjer, ikke kan garantere fejlfrit arbejde med hukommelse (f.eks. omkring 70 % af sårbarhederne i Microsoft og Google er forårsaget af usikker hukommelseshåndtering).

Problemet Det kan løses ved at bruge programmeringssprog, der garanterer sikkert arbejde.eller med hukommelse eller links til yderligere kontroller, for eksempel ved at bruge MiraclePtr (raw_ptr) i stedet for almindelige pointere, som udfører yderligere kontroller for at få adgang til frigjorte hukommelsesområder.

Pero sådanne metoder er mere egnede til ny kode y det er ret besværligt at omarbejde eksisterende C/C++ projekter, især hvis de er beregnet til at køre i ressourcebegrænsede miljøer, såsom indlejrede systemer og IoT-enheder.

masse CHERIoT hardwarekomponenter er designet som en mikrocontroller baseret på RISC-V-arkitekturen, implementerer den sikre processorarkitektur CHERI (Capacity Hardware Extension for RISC-V), hvilket giver en kontrolleret hukommelsesadgangsmodel.

Baseret på instruktionssættets arkitektur (ER EN) Leveret i CHERIoT er der bygget en programmeringsmodel, der garanterer sikkerheden ved at arbejde med hukommelse på niveau med individuelle objekter, giver beskyttelse mod adgang til allerede frigjort hukommelse og implementerer et letvægts isolationssystem til hukommelsesadgang.

Denne programmatiske beskyttelsesmodel afspejler C/C++-sprogmodellen direkte, så den kan bruges til at beskytte eksisterende applikationer (kun påkrævet at kompilere og køre på ISA CHERIoT-kompatibel hardware).

Den foreslåede løsning gør det muligt at blokere fejl, der forårsager uden for grænserne af et objekt i hukommelsen, tillader ikke pointersubstitution (alle pointere skal genereres fra eksisterende pointere), overvåger hukommelsesadgang efter frigivelse (enhver hukommelsesadgang fra en dårlig pointer eller en pointer, der refererer til et frigivet objekt, rejser en undtagelse).

For eksempel tillader brugen af ​​CHERIoT, uden at foretage nogen kodeændringer, at implementere automatisk grænsekontrol, spore levetiden af ​​hukommelsesområder og sikre integriteten af ​​pointere i komponenter, der behandler upålidelige data.

Projektet indeholder en specifikation for en CHERIOT-instruktionssætarkitektur udvidelse, en referenceimplementering af en ISA CHERIoT-kompatibel 32-bit RISC-V CPU og et modificeret LLVM-værktøjssæt.

Endelig Hvis du er interesseret i at vide mere om det, du skal vide, at prototype diagrammer CPU- og hardwareblokbeskrivelser i Verilog distribueres under Apache 2.0-licensen. Ibex-kernen i lowRISC-projektet bruges som grundlag for CPU'en, og CHERIoT ISA-kodemodellen er defineret i Sail-sproget og distribueret under BSD-licensen.

Derudover foreslås en prototype CHERIoT RTOS real-time operativsystem, som giver mulighed for at isolere rum (rum) selv på indlejrede systemer med 256 MB RAM.

Koden CHERIOT RTOS Den er skrevet i C++ og distribueres under MIT-licensen. I form af rum er de grundlæggende komponenter i operativsystemet, såsom opstartsindlæseren, skemalæggeren og hukommelsesallokeringssystemet, designet.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.