Microsoft mécht CHERIoT op, eng Hardware Léisung fir d'C Code Sécherheet ze verbesseren

Microsoft huet Entwécklungen am Zesummenhang mam CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things) Projet entdeckt, fir d'Sécherheetsproblemer am existente Code an C an C++ ze blockéieren. CHERIoT bitt eng Léisung déi Iech erlaabt existent C / C ++ Codebasen ze schützen ouni datt se néideg sinn. De Schutz gëtt duerch d'Benotzung vun engem modifizéierten Compiler ëmgesat, deen e speziellen erweiderten Set vu Prozessorinstruktiounen (ISA) benotzt, vum Prozessor zur Verfügung gestallt an um Hardwareniveau iwwerwaacht Gedächtniszougang, iwwerpréift d'Korrektheet vun der Aarbecht mat Zeiger an assuréiert Isolatioun vu Codeblocken.

De Projet gouf mat engem Aen op d'Tatsaach erstallt datt déi niddereg-Niveau Natur vun der C Sprooch eng Quell vu Feeler gëtt wann Dir mat Erënnerung schafft, wat zu Probleemer féiert wéi Puffer Iwwerfloss, Zougang zu scho befreit Gedächtnis, Zeiger-Dereferenzen oder Duebelfräien. . D'Praxis weist datt och grouss Entreprisen wéi Google a Microsoft, déi eng strikt Changement review Politik hunn a modern Entwécklungsmethoden a statesch Analyse Tools benotzen, d'Feele vu Feeler net garantéieren wann Dir mat Erënnerung schafft (zum Beispill ongeféier 70% vu Schwachstelle bei Microsoft a Google ginn duerch onsécher Erënnerungshandhabung verursaacht).

De Problem kann geléist ginn andeems Dir Programméierungssprooche benotzt, déi sécher Operatioun mat Erënnerung garantéieren, oder Bindungen mat zousätzlech Kontrollen, zum Beispill, andeems Dir amplaz vun gewéinleche Pointer wéi MiraclePtr (raw_ptr) benotzt, déi zousätzlech Kontrollen ausféiert fir Zougang zu befreit Erënnerungsberäicher. Awer sou Methode si méi gëeegent fir neie Code, an d'Wiederaarbecht vun existente C/C++ Projeten ass zimmlech problematesch, besonnesch wa se entwéckelt sinn fir an Ressource-begrenzten Ëmfeld ze lafen, sou wéi embedded Systemer an Internet of Things Apparater.

CHERIoT Hardware Komponente sinn als Mikrokontroller entworf baséiert op der RISC-V Architektur, déi geschützt CHERI (Capability Hardware Extension to RISC-V) Prozessorarchitektur implementéiert, déi e Modell vu kontrolléierten Erënnerungszougang baséiert op "Kapazitéit" (all liesen a schreiwen) Operatioun an Erënnerung ass autoriséiert). Baséierend op der Instruktiounsset-Architektur (ISA), déi am CHERIoT zur Verfügung gestallt gëtt, gëtt e Softwaremodell gebaut, deen d'Sécherheet garantéiert fir mat Erënnerung op den Niveau vun eenzel Objeten ze schaffen, Schutz géint Zougang zu scho befreit Erënnerung ubitt an e liichte Gedächtniszougang Isolatiounssystem implementéiert. . De spezifizéierte Softwareschutzmodell gëtt direkt am C / C ++ Sproochmodell reflektéiert, wat et erlaabt ze benotzen fir existent Uwendungen ze schützen (nëmmen nei kompiléieren a lafen op Ausrüstung déi ISA CHERIoT ënnerstëtzt ass erfuerderlech).

Déi proposéiert Léisung erlaabt Iech Feeler ze blockéieren, déi en Objet iwwer d'Grenze vun der Erënnerung goen, erlaabt net Zeigersubstitutioun (all Zeiger musse vun existéierende Pointer generéiert ginn), an iwwerwaacht Erënnerungszougang no der Befreiung (all Zougang zu Erënnerung mat enger falsch Pointer oder e Pointer, deen e befreitem Objet referéiert, féiert zu enger Ausnam geworf). Zum Beispill, d'Benotzung vun CHERIoT erlaabt Iech automatesch Grenziwwerpréiwung, Gedächtnisliewensdauer Tracking, a Pointer Integritéit Duerchféierung an Komponenten ëmzesetzen, déi net vertrauenswierdeg Donnéeën behandelen ouni Code Ännerungen ze erfuerderen.

De Projet enthält eng Spezifizéierung vun der erweiderter CHERIoT Instruktiounsset Architektur, eng Referenzimplementatioun vun enger 32-Bit RISC-V CPU déi den CHERIoT ISA ënnerstëtzt, an e modifizéierten LLVM Toolkit. CPU Prototyp Diagrammer an Hardware Block Beschreiwunge am Verilog ginn ënner der Apache 2.0 Lizenz verdeelt. Den Ibex Kär vum LowRISC Projet gouf als Basis fir d'CPU benotzt. De CHERIoT ISA Code Modell ass an der Sail Sprooch definéiert an ass ënner der BSD Lizenz lizenzéiert.

Zousätzlech gëtt e Prototyp vum CHERIoT RTOS Echtzäitbetribssystem proposéiert, wat d'Fähigkeit ubitt fir Kompartimenter och op embedded Systemer mat 256 MB RAM ze isoléieren. De CHERIoT RTOS Code ass an C++ geschriwwen a gëtt ënner der MIT Lizenz verdeelt. D'Basis Komponente vum OS, wéi de Bootloader, Scheduler a Memory Verdeelungssystem, sinn a Form vu Kompartimenter entworf.

E Fach an CHERIoT RTOS ass eng isoléiert Kombinatioun vu Code a global Variablen, déi op eng gemeinsam Bibliothéik gläicht, awer am Géigesaz zu der leschter kann et säin Zoustand änneren (mutabel) an an engem separaten Sécherheetskontext lafen. Kee Code vu baussen kann d'Kontroll op de Code an engem Fach transferéieren an op Objeten zougoen, ausser andeems Dir op speziell definéiert Entréespunkten zougitt an Zeigefanger benotzt fir Objeten, déi explizit passéiert sinn wann Dir en anere Fach rufft. Integritéit a Vertraulechkeet si fir Code a global Objeten an engem Fach garantéiert.

Source: opennet.ru

Setzt e Commentaire