CHERIoT, Microsoftov projekat za poboljšanje sigurnosti u C

CHERIOT

CHERIoT, MS opcija za sigurnost za ugrađene sisteme

To su nedavno objavile vijesti Microsoft je otvorio razvojne aktivnosti vezane za CHERIoT projekat (Proširenje mogućnosti hardvera na RISC-V za Internet stvari), namijenjen za blokiranje sigurnosnih problema u C i C++ kodu postojeći. CHERIoT nudi rješenje za zaštitu postojećih C/C++ baza koda bez potrebe za njihovim refaktoriranjem.

Zaštita je implementirana korištenjem modificiranog kompajlera koji koristi poseban prošireni skup procesorskih instrukcija (ISA) koje daje procesor i prati pristup memoriji na hardverskom nivou, provjerava ispravnost posla pomoću pokazivača i osigurava izolaciju kodnog bloka.

O CHERIOT-u

Projekat je stvoren uz razumijevanje da je priroda jezika C niskog nivoa postaje izvor memorijskih grešaka, što dovodi do problema poput prekoračenja bafera, pristup već oslobođenoj memoriji, dereferenciranje pokazivača ili dvostruko oslobađanje.

Praksa pokazuje da čak i velike korporacije kao što su Google i Microsoft, koje imaju strogu politiku pregleda promjena i koriste moderne razvojne metode i alate za statičku analizu, ne mogu garantirati rad s memorijom bez grešaka (na primjer, oko 70% ranjivosti u Microsoftu i Googleu uzrokovane nesigurnim upravljanjem memorijom).

problem Može se riješiti korištenjem programskih jezika koji garantuju siguran rad.ili sa memorijom ili vezama s dodatnim kontrolama, na primjer, korištenjem MiraclePtr (raw_ptr) umjesto uobičajenih pokazivača, koji izvodi dodatne kontrole za pristup oslobođenim memorijskim područjima.

Ali takve metode su pogodnije za novi kod y prilično je problematično preraditi postojeće C/C++ projekte, posebno ako su namijenjeni za rad u okruženjima s ograničenim resursima, kao što su ugrađeni sistemi i IoT uređaji.

u CHERIoT hardverske komponente su dizajnirane kao mikrokontroler baziran na RISC-V arhitekturi, implementirajući sigurnu procesorsku arhitekturu CHERI (Capacity Hardware Extension za RISC-V), pružajući model kontrolisanog pristupa memoriji.

Na osnovu arhitektura skupa instrukcija (JE) U CHERIoT-u je izgrađen programski model koji garantuje sigurnost rada sa memorijom na nivou pojedinačnih objekata, obezbeđuje zaštitu od pristupa već oslobođenoj memoriji i implementira lagani izolacioni sistem za pristup memoriji.

Ovaj model programske zaštite direktno odražava model jezika C/C++, omogućavajući mu da se koristi za zaštitu postojećih aplikacija (potrebno je samo ponovno kompajliranje i izvođenje na hardveru usklađenom s ISA CHERIoT).

Predloženo rješenje omogućava blokiranje grešaka koje uzrokuju izvan granica objekta u memoriji, ne dozvoljava zamjenu pokazivača (svi pokazivači moraju biti generirani iz postojećih pokazivača), prati pristup memoriji nakon oslobađanja (svaki pristup memoriji od strane lošeg pokazivača ili pokazivača koji upućuje na oslobođeni objekt izaziva izuzetak).

Na primjer, korištenje CHERIoT-a omogućava, bez ikakvih promjena koda, implementaciju automatske provjere granica, praćenje životnog vijeka memorijskih područja i osiguranje integriteta pokazivača u komponentama koje obrađuju nepouzdane podatke.

Projekat uključuje specifikaciju za arhitekturu skupa instrukcija CHERIoT proširenje, referentnu implementaciju 32-bitnog RISC-V CPU-a usklađenog s ISA CHERIoT i modificirani LLVM skup alata.

Konačno Ako ste zainteresirani da saznate više o tome, trebalo bi da znate da je dijagrami prototipa Opisi CPU i hardverskih blokova u Verilog-u se distribuiraju pod licencom Apache 2.0. Ibex jezgro lowRISC projekta se koristi kao osnova za CPU, a model CHERIoT ISA koda je definiran u jeziku Sail i distribuiran pod BSD licencom.

Dodatno, predložen je prototip CHERIoT RTOS operativnog sistema u realnom vremenu, koji pruža mogućnost izolacije odjeljaka (odjeljka) čak i na ugrađenim sistemima sa 256 MB RAM-a.

Kod CHERIOT RTOS Napisan je na C++ i distribuira se pod MIT licencom. U obliku odjeljaka, dizajnirane su osnovne komponente operativnog sistema, kao što su pokretač pokretanja, planer i sistem za dodjelu memorije.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.