Osclaíonn Microsoft CHERIOT, Réiteach Crua-earraí chun Slándáil Chód C a Fheabhsú

D'aimsigh Microsoft forbairtí a bhaineann leis an tionscadal CHERIOT (Cumas Crua-earraí Síneadh go RISC-V le haghaidh Idirlíon Rudaí), atá dírithe ar fhadhbanna slándála a bhlocáil i gcód C agus C++ atá ann cheana féin. Tairgeann CHERIOT réiteach a ligeann duit bunchóid C/C++ atá ann cheana féin a chosaint gan an gá iad a athoibriú. Cuirtear cosaint i bhfeidhm trí úsáid a bhaint as tiomsaitheoir modhnaithe a úsáideann sraith speisialta leathnaithe de threoracha próiseálaí (ISA), a sholáthraíonn an próiseálaí agus ag leibhéal na crua-earraí monatóireacht a dhéanamh ar rochtain chuimhne, ag seiceáil cruinneas na hoibre le leideanna agus ag cinntiú leithlisiú na mbloc cód.

Cruthaíodh an tionscadal le súil go n-eascraíonn nádúr íseal-leibhéil na teanga C mar fhoinse earráidí agus iad ag obair le cuimhne, as a dtagann fadhbanna cosúil le ró-shreabhadh maoláin, rochtain ar chuimhne atá saor cheana féin, díothuithe pointeora, nó saoranna dúbailte. . Léiríonn cleachtas nach féidir le fiú corparáidí móra ar nós Google agus Microsoft, a bhfuil polasaí athbhreithnithe dochta athraithe acu agus a úsáideann modhanna forbartha nua-aimseartha agus uirlisí anailíse statacha, ráthaíocht a thabhairt nach bhfuil earráidí ann agus iad ag obair le cuimhne (mar shampla, thart ar 70% de na leochaileachtaí i Microsoft. agus Google is cúis le láimhseáil cuimhne neamhshábháilte).

Is féidir an fhadhb a réiteach trí úsáid a bhaint as teangacha ríomhchlárúcháin a ráthaíonn oibriú sábháilte le cuimhne, nó ceangail le seiceálacha breise, mar shampla, trí úsáid a bhaint as gnáththreoir mar MiraclePtr (raw_ptr), a dhéanann seiceálacha breise chun rochtain a fháil ar réimsí cuimhne saortha. Ach tá modhanna den sórt sin níos oiriúnaí do chód nua, agus tá fadhbanna móra ag baint le hathoibriú na dtionscadal C/C++ atá ann cheana féin, go háirithe má tá siad deartha chun oibriú i dtimpeallachtaí atá srianta ó thaobh acmhainní de, amhail córais leabaithe agus gléasanna Idirlíon na Rudaí.

Tá comhpháirteanna crua-earraí CHERIOT deartha mar mhicririaltóir bunaithe ar ailtireacht RISC-V, ag cur i bhfeidhm ailtireacht phróiseálaí chosanta CHERI (Cumas Síneadh Crua-earraí go RISC-V), a sholáthraíonn samhail de rochtain cuimhne rialaithe bunaithe ar “chumas” (gach ceann acu léamh agus scríobh. údaraítear oibríocht chun cuimhne). Bunaithe ar an ailtireacht tacair treoracha (ISA) a chuirtear ar fáil i CHERIOT, tógtar múnla bogearraí a ráthaíonn sábháilteacht oibriú le cuimhne ag leibhéal rudaí aonair, a sholáthraíonn cosaint i gcoinne rochtain ar chuimhne atá saor cheana féin, agus cuireann sé córas leithlisithe rochtana cuimhne éadrom i bhfeidhm. . Léirítear an tsamhail shonraithe um chosaint bogearraí go díreach sa mhúnla teanga C/C++, a cheadaíonn é a úsáid chun feidhmchláir reatha a chosaint (ní gá ach trealamh a thacaíonn le ISA CHERIOT a ath-thiomsú agus a rith).

Ligeann an réiteach atá beartaithe duit earráidí a bhlocáil a fhágann go dtéann réad thar theorainneacha na cuimhne, ní cheadaíonn sé ionadú an phointeora (ní mór na leideanna go léir a ghiniúint ó na treoracha atá ann cheana), agus déanann sé monatóireacht ar rochtain chuimhne tar éis é a shaoradh (aon rochtain ar chuimhne ag baint úsáide as pointe mícheart pointeoir nó pointeoir a dhéanann tagairt do réad saorga mar thoradh go gcaitear eisceacht). Mar shampla, trí úsáid a bhaint as CHERIOT is féidir leat seiceáil teorainneacha uathoibríocha, rianú fad saoil na cuimhne, agus forghníomhú sláine pointeora a chur i bhfeidhm i gcomhpháirteanna a láimhseálann sonraí neamhiontaofa gan gá le haon athruithe cód.

Áiríonn an tionscadal sonraíocht ar ailtireacht tacair threorach leathnaithe CHERIOT, cur i bhfeidhm tagartha ar LAP RISC-V 32-giotán a thacaíonn le CHERIOT ISA, agus foireann uirlisí LLVM modhnaithe. Déantar léaráidí fréamhshamhlacha LAP agus cur síos ar bhloc crua-earraí i Verilog a dháileadh faoi cheadúnas Apache 2.0. Baineadh úsáid as croí Ibex ón tionscadal lowRISC mar bhunús don LAP. Sainmhínítear samhail chóid CHERIOT ISA sa teanga Sail agus tá sé ceadúnaithe faoin gceadúnas BSD.

Ina theannta sin, moltar fréamhshamhail de chóras oibriúcháin fíor-ama CHERIOT RTOS, a sholáthraíonn an cumas urranna a leithlisiú fiú ar chórais leabaithe le 256 MB de RAM. Tá cód CHERIOT RTOS scríofa i C++ agus déantar é a dháileadh faoin gceadúnas MIT. Tá comhpháirteanna bunúsacha an OS, mar shampla an bootloader, an sceidealóir agus an córas dáileacháin cuimhne, deartha i bhfoirm urranna.

Is teaglaim scoite de chód agus athróga domhanda é urrann i CHERIOT RTOS atá cosúil le leabharlann roinnte, ach murab ionann agus an dara ceann, is féidir léi a staid a athrú (comhshóite) agus a reáchtáil i gcomhthéacs slándála ar leith. Ní féidir le haon chód ón taobh amuigh rialú a aistriú go cód in urrann agus réada rochtana, ach amháin trí rochtain a fháil ar phointí iontrála sainithe agus trí úsáid a bhaint as leideanna chun rudaí a ritheadh ​​go sainráite nuair a ghlaonn tú ar urrann eile. Ráthaítear sláine agus rúndacht maidir le cód agus réada domhanda in urrann.

Foinse: oscailtenet.ru

Add a comment