CHERIoT, një projekt i Microsoft për të përmirësuar sigurinë në C

CHERIOT

CHERIoT, një opsion MS për sigurinë për sistemet e integruara

Lajmi u bë i ditur së fundmi Microsoft ka hapur zhvillimet në lidhje me projektin CHERIOT (Zgjerimi i aftësisë së harduerit në RISC-V për Internetin e Gjërave), synon të bllokojë çështjet e sigurisë në kodin C dhe C++ ekzistuese. CHERIOT ofron një zgjidhje për të mbrojtur bazat ekzistuese të kodit C/C++ pa pasur nevojë t'i rifaktoroni ato.

Mbrojtja zbatohet duke përdorur një përpilues të modifikuar i cili përdor një grup të posaçëm të zgjeruar të udhëzimeve të procesorit (ISA) të ofruara nga procesori dhe monitoron aksesin e memories në nivelin e harduerit, verifikon korrektësinë e punës me tregues dhe siguron izolimin e bllokut të kodit.

Rreth CHERIOT

El Proyecto u krijua me kuptimin se natyra e nivelit të ulët të gjuhës C bëhet burim i gabimeve të kujtesës, që çon në probleme si tejmbushjet e tamponit, qasja në memorie tashmë e çliruar, çreferencimi i treguesit ose lirimi i dyfishtë.

Praktika tregon se edhe korporatat e mëdha si Google dhe Microsoft, të cilat kanë një politikë të rreptë të rishikimit të ndryshimeve dhe përdorin metoda moderne zhvillimi dhe mjete të analizës statike, nuk mund të garantojnë punë pa gabime me memorie (për shembull, rreth 70% e dobësive në Microsoft dhe Google shkaktohen nga menaxhimi i pasigurt i memories).

Problemi Mund të zgjidhet duke përdorur gjuhë programimi që garantojnë punë të sigurt.ose me memorie ose lidhje me kontrolle shtesë, për shembull, duke përdorur MiraclePtr (raw_ptr) në vend të treguesve të zakonshëm, i cili kryen kontrolle shtesë për të hyrë në zonat e liruara të memories.

Por metoda të tilla janë më të përshtatshme për kodin e ri y është mjaft e mundimshme të ripunosh projektet ekzistuese C/C++, veçanërisht nëse ato synohen të funksionojnë në mjedise me burime të kufizuara, siç janë sistemet e integruara dhe pajisjet IoT.

L Komponentët e harduerit CHERIoT janë projektuar si një mikrokontrollues bazuar në arkitekturën RISC-V, duke zbatuar arkitekturën e sigurt të procesorit CHERI (Zgjerimi i kapacitetit të harduerit për RISC-V), duke siguruar një model aksesi të kontrolluar memorie.

Bazuar në arkitektura e grupeve të udhëzimeve (ESHTE NJE) I ofruar në CHERIOT, është ndërtuar një model programimi që garanton sigurinë e punës me kujtesën në nivelin e objekteve individuale, siguron mbrojtje kundër aksesit në memorien tashmë të çliruar dhe zbaton një sistem izolimi të lehtë për aksesin në kujtesë.

Ky model i mbrojtjes programatike pasqyron drejtpërdrejt modelin e gjuhës C/C++, duke e lejuar atë të përdoret për të mbrojtur aplikacionet ekzistuese (kërkohet vetëm rikompilimi dhe ekzekutimi në pajisje të pajtueshme me ISA CHERIOT).

Zgjidhja e propozuar lejon bllokimin e gabimeve që shkaktojnë jashtë kufijve të një objekti në memorie, nuk lejon zëvendësimin e treguesit (të gjithë treguesit duhet të gjenerohen nga treguesit ekzistues), monitoron aksesin e memories pas çlirimit (çdo akses në memorie nga një tregues i keq ose një tregues që i referohet një objekti të çliruar ngre një përjashtim).

Për shembull, përdorimi i CHERIOT lejon, pa bërë asnjë ndryshim kodi, të zbatojë kontrollin automatik të kufijve, të gjurmojë jetëgjatësinë e zonave të kujtesës dhe të sigurojë integritetin e treguesve në komponentët që përpunojnë të dhëna jo të besueshme.

El Proyecto përfshin një specifikim për një arkitekturë të grupit të udhëzimeve CHERIOT zgjerimi, një zbatim referues i një CPU 32-bitësh RISC-V në përputhje me ISA CHERIOT dhe një grup mjetesh të modifikuar LLVM.

Më në fund Nëse jeni të interesuar të dini më shumë për këtë, duhet të dini se diagramet e prototipit Përshkrimet e CPU-së dhe bllokut të harduerit në Verilog shpërndahen nën licencën Apache 2.0. Bërthama Ibex e projektit lowRISC përdoret si bazë për CPU-në dhe modeli i kodit CHERIOT ISA përcaktohet në gjuhën Sail dhe shpërndahet sipas licencës BSD.

Për më tepër, propozohet një prototip i sistemit operativ CHERIOT RTOS në kohë reale, i cili ofron mundësinë e izolimit të ndarjeve (ndarjes) edhe në sistemet e integruara me 256 MB RAM.

Kodi CHERIOT RTOS Është shkruar në C++ dhe shpërndahet nën licencën MIT. Në formën e ndarjeve, janë projektuar komponentët bazë të sistemit operativ, si ngarkuesi i nisjes, planifikuesi dhe sistemi i ndarjes së memories.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.