CHERIoT, „Microsoft“ projektas, skirtas pagerinti saugumą C

CHERIOT

CHERIoT, MS parinktis, skirta įterptųjų sistemų saugumui

Neseniai tai pasklido žinia „Microsoft“ atidarė su CERIoT projektu susijusius pokyčius (Galimybės aparatinės įrangos plėtinys į RISC-V, skirtas daiktų internetui), skirtas blokuoti saugumo problemas C ir C++ koduose esamas. CHERIoT siūlo sprendimą, kaip apsaugoti esamas C/C++ kodų bazes, nereikalaujant jų pertvarkyti.

Apsauga įgyvendinama naudojant modifikuotą kompiliatorių kuris naudoja specialų išplėstinį procesoriaus instrukcijų rinkinį (ISA), kurį pateikia procesorius, ir stebi prieigą prie atminties aparatūros lygiu, tikrina užduočių teisingumą rodyklėmis ir užtikrina kodo bloko izoliaciją.

Apie CHERIOT

El proyecto buvo sukurtas suprantant, kad žemo lygio C kalbos prigimtis tampa atminties klaidų šaltiniu, dėl to kyla problemų, tokių kaip buferio perpildymas, prieiga prie jau atlaisvintos atminties, žymeklio nuorodų panaikinimas arba dvigubas atlaisvinimas.

Praktika rodo, kad net didelės korporacijos, tokios kaip Google ir Microsoft, kurios taiko griežtą pakeitimų peržiūros politiką ir naudoja modernius kūrimo metodus bei statinės analizės įrankius, negali garantuoti be klaidų darbo su atmintimi (pavyzdžiui, apie 70 proc. Microsoft ir Google pažeidžiamumų atsiranda dėl nesaugaus atminties valdymo).

Problema Tai galima išspręsti naudojant programavimo kalbas, kurios garantuoja saugų darbą.arba su atmintimi ar nuorodomis su papildomais valdikliais, pavyzdžiui, vietoj įprastų rodyklių naudojant MiraclePtr (raw_ptr), kuris atlieka papildomus valdiklius, kad pasiektų atlaisvintas atminties sritis.

Bet tokie metodai labiau tinka naujam kodui y gana sudėtinga pertvarkyti esamus C/C++ projektus, ypač jei jie skirti veikti ribotų išteklių aplinkoje, pvz., įterptosiose sistemose ir daiktų interneto įrenginiuose.

Los CHERIOT techninės įrangos komponentai yra sukurti kaip mikrovaldiklis paremtas RISC-V architektūra, diegiančia saugaus procesoriaus architektūrą CHERI (Capacity Hardware Extension for RISC-V), teikiančią valdomą prieigos prie atminties modelį.

Remiantis instrukcijų rinkinio architektūra (YRA) Pateikiamas CERIoT programavimo modelis, kuris garantuoja darbo su atmintimi saugumą atskirų objektų lygmenyje, suteikia apsaugą nuo prieigos prie jau atlaisvintos atminties ir įdiegia lengvą atminties prieigos izoliavimo sistemą.

Šis programinės apsaugos modelis tiesiogiai atspindi C/C++ kalbos modelį, todėl jį galima naudoti esamoms programoms apsaugoti (reikalinga tik perkompiliuoti ir paleisti su ISA CHERIoT suderinama aparatūra).

Siūlomas sprendimas leidžia blokuoti klaidas, kurios sukelia atmintyje esančio objekto ribų, neleidžia pakeisti rodyklės (visos rodyklės turi būti generuojamos iš esamų rodyklių), stebi prieigą prie atminties po atlaisvinimo (bet kokia prieiga prie atminties, kurią sukelia blogas rodyklė arba rodyklė, nurodanti atlaisvintą objektą, kelia išimtį).

Pavyzdžiui, naudojant CHERIoT galima, neatliekant jokių kodo pakeitimų, įdiegti automatinį ribų tikrinimą, sekti atminties sričių veikimo laiką ir užtikrinti nepatikimus duomenis apdorojančių komponentų rodyklių vientisumą.

El proyecto apima CERIoT instrukcijų rinkinio architektūros specifikaciją plėtinys, su ISA CHERIoT suderinamo 32 bitų RISC-V procesoriaus pamatinis diegimas ir modifikuotas LLVM įrankių rinkinys.

Pagaliau Jei norite sužinoti daugiau apie tai, turėtumėte žinoti, kad prototipų diagramos CPU ir aparatūros blokų aprašymai Verilog platinami pagal Apache 2.0 licenciją. LowRISC projekto Ibex branduolys naudojamas kaip procesoriaus pagrindas, o CHERIoT ISA kodo modelis yra apibrėžtas Sail kalba ir platinamas pagal BSD licenciją.

Be to, siūlomas realaus laiko operacinės sistemos CHERIoT RTOS prototipas, suteikiantis galimybę atskirti skyrius (skyrius) net ir įterptosiose sistemose su 256 MB RAM.

Kodas CHERIOT RTOS Ji parašyta C++ kalba ir platinama pagal MIT licenciją. Skyrių pavidalu yra suprojektuoti pagrindiniai operacinės sistemos komponentai, tokie kaip įkrovos įkroviklis, planuoklis ir atminties paskirstymo sistema.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.