Microsoft louvri CHERIoT, yon solisyon kenkayri pou amelyore sekirite kòd C

Microsoft te dekouvri devlopman ki gen rapò ak pwojè CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), ki vize a bloke pwoblèm sekirite nan kòd ki egziste deja nan C ak C++. CHERIoT ofri yon solisyon ki pèmèt ou pwoteje baz kod C/C++ ki egziste deja san ou pa bezwen retravay yo. Pwoteksyon aplike atravè itilizasyon yon du modifye ki sèvi ak yon seri espesyal pwolonje nan enstriksyon processeur (ISA), ki ofri pa processeur a ak nan nivo pyès ki nan konpitè siveyans aksè memwa, tcheke kòrèkteman nan travay ak endikasyon ak asire izolasyon nan blòk kòd.

Pwojè a te kreye ak yon je sou lefèt ke nati a ki ba-nivo nan lang C a vin tounen yon sous erè lè w ap travay ak memwa, ki mennen nan pwoblèm tankou debòde tanpon, aksè a memwa ki deja libere, dereferences pointeur, oswa double gratis. . Pratike montre ke menm gwo kòporasyon tankou Google ak Microsoft, ki gen yon politik revizyon chanjman strik epi sèvi ak metòd devlopman modèn ak zouti analiz estatik, pa ka garanti absans erè lè w ap travay ak memwa (pa egzanp, apeprè 70% nan frajilite nan Microsoft). ak Google yo koze pa manyen memwa danjere).

Pwoblèm lan ka rezoud lè w sèvi ak langaj pwogramasyon ki garanti operasyon an sekirite ak memwa, oswa lyezon ak chèk adisyonèl, pou egzanp, lè w itilize olye pou yo endikasyon òdinè tankou MiraclePtr (raw_ptr), ki fè chèk adisyonèl pou jwenn aksè nan zòn memwa libere. Men, metòd sa yo pi apwopriye pou nouvo kòd, ak retravay pwojè C/C++ ki deja egziste yo se byen pwoblèm, sitou si yo fèt yo kouri nan anviwònman resous ki limite, tankou sistèm entegre ak aparèy entènèt bagay sa yo.

Konpozan pyès ki nan konpitè CHERIoT yo fèt kòm yon mikrokontroleur ki baze sou achitekti RISC-V, mete ann aplikasyon achitekti prosesè CHERI (Capability Hardware Extension to RISC-V) ki pwoteje, ki bay yon modèl aksè memwa kontwole ki baze sou "kapasite" (chak li ak ekri). operasyon nan memwa otorize). Dapre achitekti ansèyman ansèyman (ISA) ki bay nan CHERIoT, yo bati yon modèl lojisyèl ki garanti sekirite travay ak memwa nan nivo objè endividyèl yo, ki bay pwoteksyon kont aksè a memwa ki deja libere, epi ki aplike yon sistèm izolasyon ak aksè memwa ki lejè. . Modèl pwoteksyon lojisyèl espesifye a dirèkteman reflete nan modèl lang C/C++, ki pèmèt yo sèvi ak li pou pwoteje aplikasyon ki deja egziste (sèlman rekonpile ak kouri sou ekipman ki sipòte ISA CHERIoT obligatwa).

Solisyon yo pwopoze a pèmèt ou bloke erè ki lakòz yon objè ale pi lwen pase fwontyè memwa yo, pa pèmèt sibstitisyon pointeur (tout endikasyon yo dwe pwodwi nan endikasyon ki egziste deja), epi kontwole aksè memwa apre yo fin libere (nenpòt aksè a memwa lè l sèvi avèk yon pa kòrèk. pointeur oswa yon pointeur ki fè referans a yon objè libere rezilta nan yon eksepsyon jete). Pa egzanp, lè l sèvi avèk CHERIoT pèmèt ou aplike kontwòl limit otomatik, swiv tout lavi memwa, ak ranfòsman entegrite konsèy nan eleman ki okipe done ki pa fè konfyans san yo pa bezwen okenn chanjman kòd.

Pwojè a gen ladann yon spesifikasyon nan achitekti seri enstriksyon CHERIoT pwolonje, yon aplikasyon referans yon CPU RISC-V 32-bit ki sipòte CHERIoT ISA, ak yon bwat zouti LLVM modifye. Dyagram pwototip CPU ak deskripsyon blòk pyès ki nan konpitè nan Verilog yo distribye anba lisans Apache 2.0. Nwayo Ibex ki soti nan pwojè lowRISC la te itilize kòm baz pou CPU a. Modèl kòd CHERIoT ISA defini nan lang Sail epi li gen lisans anba lisans BSD.

Anplis de sa, yo pwopoze yon pwototip nan sistèm operasyon an tan reyèl CHERIoT RTOS, ki bay kapasite pou izole konpatiman menm sou sistèm entegre ak 256 MB RAM. Kòd CHERIoT RTOS ekri an C++ epi li distribye anba lisans MIT. Konpozan debaz yo nan eksplwatasyon an, tankou bootloader, pwogramasyon an ak sistèm distribisyon memwa, yo fèt nan fòm lan nan konpatiman.

Yon lòj nan CHERIoT RTOS se yon konbinezon izole nan kòd ak varyab mondyal ki sanble ak yon bibliyotèk pataje, men kontrèman ak lèt ​​la, li ka chanje eta li (mitab) epi kouri nan yon kontèks sekirite separe. Pa gen kòd ki soti deyò ki ka transfere kontwòl nan kòd nan yon lòj ak aksè objè, eksepte pa aksè nan pwen antre espesyalman defini epi itilize endikasyon nan objè klèman pase lè yo rele yon lòt lòj. Entegrite ak konfidansyalite yo garanti pou kòd ak objè mondyal nan yon lòj.

Sous: opennet.ru

Add nouvo kòmantè