CHERIoT, un proiect Microsoft pentru îmbunătățirea securității în C

CHERIOT

CHERIoT, o opțiune MS pentru securitatea sistemelor încorporate

Vestea a spus asta recent Microsoft a deschis evoluțiile legate de proiectul CHERIOT (Capability Hardware Extension to RISC-V for Internet of Things), destinat să blocheze problemele de securitate în codul C și C++ existent. CHERIoT oferă o soluție pentru a proteja bazele de cod C/C++ existente fără a fi nevoie să le refactorizeze.

Protecția este implementată prin utilizarea unui compilator modificat care utilizează un set special extins de instrucțiuni pentru procesor (ISA) furnizat de procesor și monitorizează accesul la memorie la nivel hardware, verifică corectitudinea lucrării cu pointeri și asigură izolarea blocurilor de cod.

Despre CHERIOT

Proiectul a fost creat cu înțelegerea că natura de nivel scăzut a limbajului C devine o sursă de erori de memorie, ceea ce duce la probleme precum depășirea tamponului, acces la memoria deja eliberată, dereferențiere pointer sau eliberare dublă.

Practica arată că chiar și corporațiile mari, cum ar fi Google și Microsoft, care au o politică strictă de revizuire a modificărilor și folosesc metode moderne de dezvoltare și instrumente de analiză statică, nu pot garanta funcționarea fără erori cu memoria (de exemplu, aproximativ 70% dintre vulnerabilitățile Microsoft și Google). sunt cauzate de gestionarea nesigură a memoriei).

Problema Poate fi rezolvată folosind limbaje de programare care garantează o muncă sigură.sau cu memorie sau legături cu controale suplimentare, de exemplu, prin utilizarea MiraclePtr (raw_ptr) în loc de pointeri obișnuiți, care efectuează controale suplimentare pentru a accesa zonele de memorie eliberate.

Dar astfel de metode sunt mai potrivite pentru codul nou y este destul de supărător să reluați proiectele C/C++ existente, mai ales dacă sunt destinate să ruleze în medii cu resurse limitate, cum ar fi sistemele încorporate și dispozitivele IoT.

L Componentele hardware CHERIoT sunt proiectate ca un microcontroler bazat pe arhitectura RISC-V, implementând arhitectura procesorului securizat CHERI (Capacity Hardware Extension for RISC-V), oferind un model de acces controlat la memorie.

Bazat pe arhitectura setului de instrucțiuni (ISA) Furnizat în CHERIoT, este construit un model de programare care garantează securitatea lucrului cu memoria la nivelul obiectelor individuale, oferă protecție împotriva accesului la memoria deja eliberată și implementează un sistem ușor de izolare pentru accesul la memorie.

Acest model de protecție programatică oglindește direct modelul de limbaj C/C++, permițându-i să fie utilizat pentru a proteja aplicațiile existente (recompilarea și rularea pe hardware compatibil cu ISA CHERIoT este necesară doar) .

Soluția propusă permite blocarea erorilor care provoacă depășirea limitelor unui obiect din memorie, nu permite înlocuirea pointerului (toți pointerii trebuie generați din pointerii existente), monitorizează accesul la memorie după eliberare (orice acces la memorie de către un pointer defect sau un pointer care face referire la un obiect eliberat ridică o excepție).

De exemplu, utilizarea CHERIoT permite, fără a aduce modificări codului, implementarea verificării automate a limitelor, urmărirea duratei de viață a zonelor de memorie și asigurarea integrității pointerilor din componentele care procesează date nesigure.

Proiectul include o specificație pentru o arhitectură de set de instrucțiuni CHERIoT extensie, o implementare de referință a unui procesor RISC-V pe 32 de biți compatibil ISA CHERIoT și un set de instrumente LLVM modificat.

În cele din urmă Dacă sunteți interesat să aflați mai multe despre asta, ar trebui să știi că diagrame prototip Descrierile CPU și ale blocurilor hardware din Verilog sunt distribuite sub licența Apache 2.0. Nucleul Ibex al proiectului lowRISC este folosit ca bază pentru CPU, iar modelul de cod CHERIOT ISA este definit în limbajul Sail și distribuit sub licența BSD.

În plus, este propus un prototip de sistem de operare în timp real CHERIoT RTOS, care oferă capacitatea de a izola compartimente (compartiment) chiar și pe sistemele încorporate cu 256 MB de RAM.

Codul CHERIOT RTOS Este scris în C++ și este distribuit sub licența MIT. Sub formă de compartimente, sunt proiectate componentele de bază ale sistemului de operare, cum ar fi încărcătorul de pornire, planificatorul și sistemul de alocare a memoriei.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.