Microsoft Ṣii CHERIoT, Solusan Hardware kan lati Ṣe ilọsiwaju Aabo koodu C

Microsoft ti ṣe awari awọn idagbasoke ti o ni ibatan si CHERIoT (Agbara Hardware Ifaagun si RISC-V fun Intanẹẹti Awọn nkan), ti o pinnu lati dina awọn iṣoro aabo ni koodu ti o wa tẹlẹ ni C ati C ++. CHERIoT nfunni ni ojutu kan ti o fun ọ laaye lati daabobo awọn koodu koodu C/C ++ ti o wa laisi iwulo lati tun ṣe wọn. Idaabobo ti wa ni imuse nipasẹ awọn lilo ti a títúnṣe alakojo ti o nlo pataki kan o gbooro sii ṣeto ti isise ilana (ISA), pese nipa awọn isise ati ni hardware ibojuwo ipele iranti wiwọle, yiyewo awọn titunse ti iṣẹ pẹlu awọn itọka ati aridaju ipinya ti koodu awọn bulọọki.

Ise agbese na ni a ṣẹda pẹlu oju si otitọ pe iseda ipele kekere ti ede C di orisun ti awọn aṣiṣe nigba ṣiṣẹ pẹlu iranti, ti o yori si awọn iṣoro gẹgẹbi awọn iṣan omi ifipamọ, iraye si iranti ti o ti ni ominira tẹlẹ, awọn ifọkasi ijuboluwole, tabi awọn ominira meji. . Iṣeṣe fihan pe paapaa awọn ile-iṣẹ nla bii Google ati Microsoft, eyiti o ni eto imulo atunyẹwo iyipada ti o muna ati lo awọn ọna idagbasoke ode oni ati awọn irinṣẹ itupalẹ aimi, ko le ṣe iṣeduro isansa awọn aṣiṣe nigba ṣiṣẹ pẹlu iranti (fun apẹẹrẹ, nipa 70% ti awọn ailagbara ni Microsoft). ati Google ti wa ni ṣẹlẹ nipasẹ lewu iranti mimu).

A le yanju iṣoro naa nipa lilo awọn ede siseto ti o ṣe iṣeduro iṣiṣẹ ailewu pẹlu iranti, tabi awọn asopọ pẹlu awọn sọwedowo afikun, fun apẹẹrẹ, nipa lilo dipo awọn itọka lasan bi MiraclePtr (raw_ptr), eyiti o ṣe awọn sọwedowo afikun fun iraye si awọn agbegbe iranti ominira. Ṣugbọn iru awọn ọna bẹ dara julọ fun koodu titun, ati atunṣe awọn iṣẹ C / C ++ ti o wa tẹlẹ jẹ iṣoro pupọ, paapaa ti wọn ba pinnu lati ṣiṣẹ ni awọn agbegbe ti o ni agbara awọn orisun, gẹgẹbi awọn eto ifibọ ati Intanẹẹti ti Awọn ohun elo.

Awọn ohun elo ohun elo CHERIoT jẹ apẹrẹ bi microcontroller ti o da lori faaji RISC-V, imuse CHERI ti o ni aabo (Agbara Hardware Ifaagun si RISC-V) faaji ero isise, eyiti o pese awoṣe ti iraye si iranti iṣakoso ti o da lori “agbara” (ka ati kọ kọọkan isẹ to iranti ni a fun ni aṣẹ). Da lori ilana eto faaji (ISA) ti a pese ni CHERIoT, awoṣe sọfitiwia kan ni itumọ ti o ṣe iṣeduro aabo ti ṣiṣẹ pẹlu iranti ni ipele ti awọn nkan kọọkan, pese aabo lodi si iraye si iranti ominira tẹlẹ, ati imuse eto ipinya iranti wiwọle iwuwo fẹẹrẹ. . Awoṣe aabo sọfitiwia ti a sọ pato jẹ afihan taara ni awoṣe ede C/C ++, eyiti o fun laaye laaye lati lo lati daabobo awọn ohun elo ti o wa tẹlẹ (ṣatunṣe nikan ati ṣiṣiṣẹ lori ohun elo ti o ṣe atilẹyin ISA CHERIoT nilo).

Ojutu ti a dabaa gba ọ laaye lati dènà awọn aṣiṣe ti o fa ki ohun kan lọ kọja awọn aala ti iranti, ko gba laaye aropo ijuboluwole (gbogbo awọn itọka gbọdọ wa ni ipilẹṣẹ lati awọn itọka ti o wa tẹlẹ), ati ṣe abojuto iwọle iranti lẹhin ominira (eyikeyi iwọle si iranti nipa lilo aṣiṣe ti ko tọ). itọka tabi itọka itọka nkan ti o ni ominira ni abajade ni iyasọtọ ti a ju). Fun apẹẹrẹ, lilo CHERIoT n gba ọ laaye lati ṣe iṣayẹwo awọn aala adaṣe, titọpa igbesi aye iranti, ati imuse imuduro ijuboluwole ninu awọn paati ti o mu data ti ko gbẹkẹle laisi nilo awọn iyipada koodu eyikeyi.

Ise agbese na pẹlu sipesifikesonu ti eto faaji ilana CHERIoT ti o gbooro, imuse itọkasi kan ti 32-bit RISC-V CPU ti n ṣe atilẹyin CHERIoT ISA, ati ohun elo irinṣẹ LLVM ti a yipada. Awọn aworan atọka apẹrẹ Sipiyu ati awọn apejuwe ohun elo ohun elo ni Verilog ti pin labẹ iwe-aṣẹ Apache 2.0. Ibex mojuto lati iṣẹ akanṣe lowRISC ni a lo bi ipilẹ fun Sipiyu. Awoṣe koodu CHERIoT ISA jẹ asọye ni ede Sail ati pe o ni iwe-aṣẹ labẹ iwe-aṣẹ BSD.

Ni afikun, apẹrẹ kan ti ẹrọ ṣiṣe akoko gidi CHERIoT RTOS ni a dabaa, eyiti o pese agbara lati ya sọtọ awọn yara paapaa lori awọn eto ifibọ pẹlu 256 MB ti Ramu. Awọn koodu CHERIoT RTOS ti kọ sinu C++ ati pe o pin labẹ iwe-aṣẹ MIT. Awọn paati ipilẹ ti OS, gẹgẹbi bootloader, oluṣeto ati eto pinpin iranti, jẹ apẹrẹ ni irisi awọn ipin.

Iyẹwu kan ni CHERIoT RTOS jẹ akojọpọ iyasọtọ ti koodu ati awọn oniyipada agbaye ti o jọra ile-ikawe ti o pin, ṣugbọn ko dabi igbehin, o le yi ipo rẹ pada (ayipada) ati ṣiṣe ni ipo aabo lọtọ. Ko si koodu lati ita ti o le gbe iṣakoso lọ si koodu ni iyẹwu kan ati iwọle si awọn nkan, ayafi nipa iraye si awọn aaye titẹsi pataki ati lilo awọn itọka si awọn nkan ti o kọja ni gbangba nigbati o n pe yara miiran. Iduroṣinṣin ati asiri jẹ iṣeduro fun koodu ati awọn nkan agbaye ni iyẹwu kan.

orisun: opennet.ru

Fi ọrọìwòye kun