CHERIoT, et Microsoft-prosjekt for å forbedre sikkerheten i C

CHERIOT

CHERIoT, et MS-alternativ for sikkerhet for innebygde systemer

Nyheten brøt nylig ut det Microsoft har åpnet utviklingen knyttet til CHERIoT-prosjektet (Capability Hardware Extension to RISC-V for Internet of Things), ment å blokkere sikkerhetsproblemer i C- og C++-kode eksisterende. CHERIoT tilbyr en løsning for å beskytte eksisterende C/C++ kodebaser uten å måtte refaktorere dem.

Beskyttelsen implementeres ved å bruke en modifisert kompilator som bruker et spesielt utvidet sett med prosessorinstruksjoner (ISA) levert av prosessoren og overvåker minnetilgang på maskinvarenivå, verifiserer jobbkorrekthet med pekere og gir kodeblokkisolasjon.

Om CHERIOT

Prosjektet ble opprettet med den forståelse at lavnivået til C-språket blir en kilde til minnefeil, som fører til problemer som bufferoverløp, tilgang til minne som allerede er frigjort, pekereferering eller dobbeltfrigjøring.

Praksis viser at selv store selskaper som Google og Microsoft, som har en streng policy for endringsgjennomgang og bruker moderne utviklingsmetoder og statiske analyseverktøy, ikke kan garantere feilfri arbeid med minne (for eksempel ca. 70 % av sårbarhetene i Microsoft og Google er forårsaket av usikker minnebehandling).

Problemet Det kan løses ved å bruke programmeringsspråk som garanterer sikkert arbeid.eller med minne eller koblinger med tilleggskontroller, for eksempel ved å bruke MiraclePtr (raw_ptr) i stedet for vanlige pekere, som utfører tilleggskontroller for å få tilgang til frigjorte minneområder.

Pero slike metoder er mer egnet for ny kode y det er ganske vanskelig å omarbeide eksisterende C/C++-prosjekter, spesielt hvis de er ment å kjøre i ressursbegrensede miljøer, for eksempel innebygde systemer og IoT-enheter.

den CHERIoT maskinvarekomponenter er utformet som en mikrokontroller basert på RISC-V-arkitekturen, implementerer den sikre prosessorarkitekturen CHERI (Capacity Hardware Extension for RISC-V), og gir en kontrollert minnetilgangsmodell.

Basert på instruksjonssettarkitekturen (ER EN) Levert i CHERIoT er det bygget en programmeringsmodell som garanterer sikkerheten ved å arbeide med minne på nivå med individuelle objekter, gir beskyttelse mot tilgang til allerede frigjort minne, og implementerer et lettvekts isolasjonssystem for minnetilgang.

Denne programmatiske beskyttelsesmodellen gjenspeiler C/C++-språkmodellen direkte, slik at den kan brukes til å beskytte eksisterende applikasjoner (rekompilering og kjøring på ISA CHERIoT-kompatibel maskinvare er kun nødvendig).

Den foreslåtte løsningen gjør det mulig å blokkere feil som forårsaker utenfor grensene for et objekt i minnet, tillater ikke pekererstatning (alle pekere må genereres fra eksisterende pekere), overvåker minnetilgang etter frigjøring (enhver minnetilgang fra en dårlig peker eller en peker som refererer til et frigjort objekt gir et unntak).

For eksempel lar bruk av CHERIoT, uten å gjøre noen kodeendringer, implementere automatisk grensekontroll, spore levetiden til minneområdene og sikre integriteten til pekere i komponenter som behandler upålitelige data.

Prosjektet inkluderer en spesifikasjon for en CHERIoT instruksjonssettarkitektur utvidelse, en referanseimplementering av en ISA CHERIoT-kompatibel 32-bits RISC-V CPU, og et modifisert LLVM-verktøysett.

Endelig Hvis du er interessert i å vite mer om det, du bør vite at prototype diagrammer CPU- og maskinvareblokkbeskrivelser i Verilog distribueres under Apache 2.0-lisensen. Ibex-kjernen til lowRISC-prosjektet brukes som grunnlag for CPU og CHERIoT ISA-kodemodellen er definert på Sail-språket og distribuert under BSD-lisensen.

I tillegg foreslås en prototype CHERIoT RTOS sanntidsoperativsystem, som gir muligheten til å isolere rom (rom) selv på innebygde systemer med 256 MB RAM.

Koden CHERIOT RTOS Den er skrevet i C++ og distribueres under MIT-lisensen. I form av rom er de grunnleggende komponentene i operativsystemet, for eksempel oppstartslasteren, planleggeren og minneallokeringssystemet, utformet.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.