CHERIoT, un projecte de Microsoft per millorar la seguretat a C

CHERIoT

CHERIoT, una opció de MS per a la seguretat per a sistemes integrats

Fa poc es va donar a conèixer la notícia que, Microsoft ha obert els desenvolupaments relacionats amb el projecte CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), destinat a bloquejar problemes de seguretat en codi C i C++ existent. CHERIoT ofereix una solució per protegir les bases de codi C/C++ existents sense haver de refactoritzar-les.

La protecció s'implementa mitjançant un compilador modificat que utilitza un conjunt estès especial d'instruccions de processador (ISA) proporcionat pel processador i monitoritza l'accés a la memòria a nivell de maquinari, verifica la correcció del treball amb punters i proporciona aïllament de blocs de codi.

Sobre CHERIoT

El Projecte es va crear amb l'entesa que la naturalesa de baix nivell del llenguatge C es converteix en una font derrors de memòria, el que genera problemes com a desbordaments de memòria intermèdia, accés a memòria ja alliberada, desreferenciació de punters o alliberament doble.

La pràctica mostra que fins i tot les grans corporacions com Google i Microsoft, que tenen una estricta política de revisió de canvis i utilitzen mètodes de desenvolupament moderns i eines d'anàlisi estàtica, no poden garantir l'absència d'errors en treballar amb la memòria (per exemple, al voltant del 70% de les vulnerabilitats a Microsoft i Google són causats pel maneig insegur de la memòria).

el problema es pot resoldre mitjançant l'ús de llenguatges de programació que garanteixin una feina segurao amb la memòria o enllaços amb controls addicionals, per exemple, mitjançant l'ús de MiraclePtr (raw_ptr) en lloc de punters comuns, que realitza controls addicionals per accedir a les àrees de memòria alliberades.

Però aquests mètodes són més adequats per a codi nou y és força problemàtic tornar a treballar en projectes C/C++ existents, especialment si estan destinats a executar-se en entorns amb recursos limitats, com ara sistemes integrats i dispositius IoT.

Els components de maquinari de CHERIoT estan dissenyats com un microcontrolador basat en arquitectura RISC-V, implementant l'arquitectura de processador segura CHERI (Extensió de maquinari de capacitat per RISC-V), proporcionant un model d'accés a memòria controlat.

basat en l'arquitectura del conjunt d'instruccions (ÉS UN) proporcionada a CHERIoT, es construeix un model de programació que garanteix la seguretat de treballar amb la memòria a nivell d'objectes individuals, ofereix protecció contra l'accés memòria ja alliberada i implementa un sistema d'aïllament lleuger accés a la memòria.

Aquest model de protecció mitjançant programació es reflecteix directament en el model de llenguatge C/C++, cosa que permet que es faci servir per protegir aplicacions existents (només es requereix la recompilació i l'execució en maquinari compatible amb ISA CHERIoT).

La solució proposada permet bloquejar errors que causen fora dels límits d'un objecte a la memòria, no permet la substitució de punters (tots els punters s'han de generar a partir de punters existents), monitoritza l'accés a la memòria després de l'alliberament (qualsevol accés a la memòria per un punter incorrecte o un punter que fa referència a un objecte alliberat genera una excepció).

Per exemple, l'ús de CHERIoT permet, sense fer canvis al codi, implementar la verificació automàtica de límits, rastrejar la vida útil de les àrees de memòria i garantir la integritat dels punters en els components que processen dades no fiables.

El Projecte inclou una especificació per a una arquitectura de conjunt d'instruccions CHERIoT estesa, una implementació de referència d‟una CPU RISC-V de 32 bits compatible amb ISA CHERIoT i un conjunt d‟eines LLVM modificat.

Finalment si estàs interessat en poder conèixer més a l'respecte, has de saber que els diagrames de prototips de CPU i les descripcions de blocs de maquinari a Verilog es distribueixen sota la llicència Apache 2.0. El nucli Ibex del projecte lowRISC s'utilitza com a base per a la CPU i el model de codi CHERIoT ISA es defineix al llenguatge Sail i es distribueix sota la llicència BSD.

Addicionalment, es proposa un prototip de sistema operatiu en temps real CHERIoT RTOS, que brinda la capacitat d'aïllar compartiments (compartment) fins i tot en sistemes encastats amb 256 MB de RAM.

el codi CHERIoT RTES està escrit a C++ i es distribueix sota la llicència MIT. En forma de compartiments, es dissenyen els components bàsics del sistema operatiu, com ara el carregador d'arrencada, el programador i el sistema d'assignació de memòria.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.