Microsoft Inovhura CHERIOT, Hardware Solution yekuvandudza C Code Security

Microsoft yakawana zviitiko zvine chekuita neCHERIoT (Capability Hardware Extension to RISC-V yeInternet Yezvinhu) purojekiti, ine chinangwa chekuvharisa matambudziko ekuchengetedza mukodhi iripo muC uye C ++. CHERIOT inopa mhinduro inobvumidza iwe kuchengetedza iripo C/C++ macodebases pasina chikonzero chekuagadzirisa zvakare. Kudzivirirwa kunoitwa kuburikidza nekushandiswa kweakagadziridzwa compiler inoshandisa yakakosha yakawedzera seti ye processor mirayiridzo (ISA), yakapihwa ne processor uye padanho rehardware yekutarisa ndangariro kuwana, kutarisa iko kurongeka kwebasa nemanongedzo uye kuve nechokwadi chekuparadzaniswa kwekodhi mabhuraki.

Iyo purojekiti yakagadzirwa neziso rekuti chimiro chepasi-chikamu chemutauro weC chinova chitubu chekukanganisa kana uchishanda nendangariro, zvinotungamira kumatambudziko akaita sebuffer mafashama, kuwana kune yakatosunungurwa ndangariro, pointer dereferences, kana kaviri kusunungura. . Kudzidzira kunoratidza kuti kunyange makambani makuru akadai seGoogle neMicrosoft, ane shanduko yakasimba yekuongorora mutemo uye anoshandisa nzira dzemazuva ano dzekusimudzira uye static maturusi ekuongorora, haagoni kuvimbisa kusavapo kwezvikanganiso kana uchishanda nendangariro (semuenzaniso, inenge 70% yehutera muMicrosoft. uye Google zvinokonzerwa nekubata ndangariro kusina kuchengeteka).

Dambudziko rinogona kugadziriswa nekushandisa programming mitauro inovimbisa kushanda kwakachengeteka nendangariro, kana kusunga nekuwedzera cheki, semuenzaniso, nekushandisa pachinzvimbo cheakajairwa anonongedzera seMiraclePtr (raw_ptr), iyo inoita yekuwedzera cheki yekuwana yakasunungurwa nzvimbo dzendangariro. Asi nzira dzakadai dzakanyanya kukodzera kodhi nyowani, uye kugadzirisazve mapurojekiti eC/C ++ aripo ane dambudziko, kunyanya kana akagadzirirwa kumhanyisa munzvimbo dzine zviwanikwa, senge masisitimu akaiswa uye Internet yezvinhu zvishandiso.

CHERIoT hardware zvikamu zvakagadzirirwa se microcontroller yakavakirwa paRISC-V architecture, inoshandisa yakachengetedzwa CHERI (Capability Hardware Extension to RISC-V) processor architecture, iyo inopa modhi yekudzora ndangariro kupinda kwakavakirwa pa "kugona" (yega yega kuverenga nekunyora. kushanda kundangariro kunotenderwa). Zvichienderana nemirairo set architecture (ISA) yakapihwa muCHERIoT, software modhi inovakwa iyo inovimbisa kuchengetedzwa kwekushanda nendangariro padanho rezvinhu zvega, inopa dziviriro kubva mukusvika kune yakatosunungurwa ndangariro, uye inoshandisa yakareruka memory yekuwana yekuzviparadzanisa system. . Iyo yakatsanangurwa yekudzivirira software modhi inoratidzwa zvakananga muC/C ++ mutauro modhi, iyo inobvumira kuti ishandiswe kuchengetedza zviripo zvikumbiro (kungodzosera uye kushanda pamidziyo inotsigira ISA CHERIOT inodiwa).

Mhinduro yakarongwa inobvumidza iwe kuvharira zvikanganiso zvinoita kuti chinhu chiende kupfuura miganhu yendangariro, hachibvumire chinongedzo chinotsiva (ese anonongedzera anofanirwa kugadzirwa kubva kune aripo anonongedza), uye anotarisisa kuwana ndangariro mushure mekusunungura (chero kuwana ndangariro uchishandisa isiriyo. chinongedzo kana chinongedzo chinonongedza chinhu chakasunungurwa chinokonzeresa kusarudzika kukandwa). Semuenzaniso, kushandisa CHERIOT inobvumidza iwe kuti uite otomatiki miganhu yekutarisa, ndangariro yehupenyu hwekutevera, uye pointer kutendeseka kumisikidza muzvikamu zvinobata zvisina kuvimbika data pasina kuda chero shanduko yekodhi.

Iyo purojekiti inosanganisira kutsanangurwa kweiyo yakawedzera CHERIoT yekuraira seti yekuvaka, chirevo chekuita kwe32-bit RISC-V CPU inotsigira iyo CHERIoT ISA, uye yakagadziridzwa LLVM toolkit. CPU prototype dhayagiramu uye hardware block tsananguro muVerilog inogoverwa pasi peiyo Apache 2.0 rezinesi. Iyo Ibex musimboti kubva kune yakadereraRISC purojekiti yakashandiswa sehwaro hweCPU. Iyo CHERIoT ISA kodhi modhi inotsanangurwa mumutauro weSail uye ine rezinesi pasi peiyo BSD rezinesi.

Pamusoro pezvo, prototype yeiyo chaiyo-nguva yekushanda sisitimu yeCHERIoT RTOS inokurudzirwa, iyo inopa kugona kupatsanura makamuri kunyangwe pane akaiswa masisitimu ane 256 MB ye RAM. Iyo CHERIoT RTOS kodhi yakanyorwa muC ++ uye inogoverwa pasi peMIT rezinesi. Izvo zvakakosha zvikamu zveOS, senge bootloader, scheduler uye memory yekugovera sisitimu, inogadzirwa nenzira yemakamuri.

Imba muCHERIoT RTOS isanganiswa yakasarudzika yekodhi uye yepasi rose inofanana neraibhurari yakagovaniswa, asi kusiyana neyekupedzisira, inogona kushandura mamiriro ayo (inochinjika) uye kumhanya mune yakaparadzana chengetedzo mamiriro. Hapana kodhi kubva kunze inogona kuendesa kutonga kune kodhi mukamuri uye kuwana zvinhu, kunze kwekuwana yakatsanangurwa yekupinda mapoinzi uye kushandisa anonongedzera kuzvinhu zvakapfuudzwa zvakajeka pakudaidza imwe kamuri. Kutendeseka uye kuvanzika kunovimbiswa kwekodhi uye zvinhu zvepasi rose mukamuri.

Source: opennet.ru

Voeg