{"id":106979,"date":"2023-03-01T12:48:41","date_gmt":"2023-03-01T10:48:41","guid":{"rendered":"https:\/\/prohoster.info\/?p=106979"},"modified":"2023-03-01T13:43:17","modified_gmt":"2023-03-01T11:43:17","slug":"microsoft-otkryl-cheriot-apparatnoe-reshenie-dlya-povysheniya-bezopasnosti-koda-na-yazyke-si","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/microsoft-otkryl-cheriot-apparatnoe-reshenie-dlya-povysheniya-bezopasnosti-koda-na-yazyke-si","title":{"rendered":"Microsoft a lanc\u00e9 CHERIoT, une solution mat\u00e9rielle destin\u00e9e \u00e0 am\u00e9liorer la s\u00e9curit\u00e9 du code en langage C.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>La soci\u00e9t\u00e9 Microsoft a d\u00e9voil\u00e9 les travaux associ\u00e9s au projet CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), visant \u00e0 bloquer les probl\u00e8mes de s\u00e9curit\u00e9 dans le code existant \u00e9crit en C et C++. CHERIoT propose une solution permettant de prot\u00e9ger les bases de code existantes en C\/C++ sans avoir besoin de les r\u00e9\u00e9crire. La protection est mise en \u0153uvre par un compilateur modifi\u00e9 utilisant un ensemble d'instructions processeur (ISA) \u00e9tendu, fournies par le processeur, qui suit l'acc\u00e8s \u00e0 la m\u00e9moire, v\u00e9rifie la correcte manipulation des pointeurs et assure l'isolation des blocs de code.      <\/p>\n<p>Le projet a \u00e9t\u00e9 con\u00e7u en tenant compte du fait que la nature de bas niveau du langage C devient une source d'erreurs lors de la gestion de la m\u00e9moire, menant \u00e0 des probl\u00e8mes tels que les d\u00e9bordements de tampon, l'acc\u00e8s \u00e0 la m\u00e9moire d\u00e9j\u00e0 lib\u00e9r\u00e9e, la d\u00e9r\u00e9f\u00e9renciation de pointeurs ou le double lib\u00e9ration de m\u00e9moire. La pratique montre que m\u00eame de grandes entreprises comme Google et Microsoft, qui ont une politique de r\u00e9vision strictes des modifications et utilisent des m\u00e9thodes modernes de d\u00e9veloppement et des outils d'analyse statique, ne peuvent garantir l'absence d'erreurs dans la gestion de la m\u00e9moire (par exemple, environ 70% des vuln\u00e9rabilit\u00e9s dans les produits logiciels de Microsoft et Google sont caus\u00e9es par des manipulations de m\u00e9moire non s\u00e9curis\u00e9es).     <\/p>\n<p>Le probl\u00e8me peut \u00eatre r\u00e9solu en utilisant des langages de programmation garantissant une gestion s\u00e9curis\u00e9e de la m\u00e9moire, ou en ajoutant des v\u00e9rifications suppl\u00e9mentaires \u00e0 des pointeurs ordinaires, par exemple en utilisant des pointeurs de type MiraclePtr (raw_ptr), qui effectuent des v\u00e9rifications additionnelles lors des acc\u00e8s aux zones de m\u00e9moire lib\u00e9r\u00e9es. Cependant, de telles m\u00e9thodes conviennent davantage pour le nouveau code, alors que la r\u00e9\u00e9criture de projets existants en C\/C++ est assez probl\u00e9matique, surtout s'ils sont destin\u00e9s \u00e0 \u00eatre ex\u00e9cut\u00e9s dans des environnements \u00e0 ressources limit\u00e9es, tels que les syst\u00e8mes embarqu\u00e9s et les dispositifs Internet des objets.      <\/p>\n<p>Les composants mat\u00e9riels de CHERIoT sont pr\u00e9sent\u00e9s sous la forme d'un microcontr\u00f4leur bas\u00e9 sur l'architecture RISC-V, r\u00e9alisant une architecture de processeur s\u00e9curis\u00e9e CHERI (Capability Hardware Extension to RISC-V), fournissant un mod\u00e8le d'acc\u00e8s contr\u00f4l\u00e9 \u00e0 la m\u00e9moire bas\u00e9 sur la \u00ab capability \u00bb (chaque op\u00e9ration de lecture et d'\u00e9criture en m\u00e9moire doit \u00eatre autoris\u00e9e). Bas\u00e9e sur l'architecture de jeu d'instructions (ISA) fournie dans CHERIoT, un mod\u00e8le logiciel est d\u00e9velopp\u00e9, garantissant la s\u00e9curit\u00e9 de l'acc\u00e8s \u00e0 la m\u00e9moire au niveau des objets individuels, offrant une protection contre l'acc\u00e8s \u00e0 une m\u00e9moire d\u00e9j\u00e0 lib\u00e9r\u00e9e et impl\u00e9mentant un syst\u00e8me l\u00e9ger d'isolation d'acc\u00e8s \u00e0 la m\u00e9moire. Ce mod\u00e8le de protection logicielle se refl\u00e8te directement dans le mod\u00e8le de langage C\/C++, permettant son utilisation pour prot\u00e9ger les applications existantes (il suffit de recompiler et de lancer sur du mat\u00e9riel compatible avec l'ISA CHERIoT).    <\/p>\n<p>La solution propos\u00e9e permet de bloquer les erreurs qui entra\u00eenent un d\u00e9passement de la m\u00e9moire par rapport \u00e0 l'objet, interdit la substitution des pointeurs (tous les pointeurs doivent \u00eatre g\u00e9n\u00e9r\u00e9s \u00e0 partir de pointeurs d\u00e9j\u00e0 existants), suit l'acc\u00e8s \u00e0 la m\u00e9moire apr\u00e8s lib\u00e9ration (tout acc\u00e8s \u00e0 la m\u00e9moire via un pointeur incorrect ou un pointeur pointant vers un objet lib\u00e9r\u00e9 g\u00e9n\u00e8re une exception). Par exemple, l'utilisation de CHERIoT permet d'impl\u00e9menter une v\u00e9rification automatique des limites, de suivre le temps de vie des zones de m\u00e9moire et d'assurer l'int\u00e9grit\u00e9 des pointeurs dans les composants traitant des donn\u00e9es non dignes de confiance, sans apporter de modifications au code.      <\/p>\n<p>Le projet comprend la sp\u00e9cification d'une architecture de jeu d'instructions \u00e9largie CHERIoT, une impl\u00e9mentation de r\u00e9f\u00e9rence d'un CPU 32 bits RISC-V avec support de l'ISA CHERIoT, et un outillage modifi\u00e9 LLVM. Les sch\u00e9mas du prototype du CPU et les descriptions des blocs mat\u00e9riels en Verilog sont distribu\u00e9s sous la licence Apache 2.0. Le noyau Ibex du projet lowRISC a \u00e9t\u00e9 utilis\u00e9 comme base pour le CPU. Le mod\u00e8le de code de l'ISA CHERIoT est d\u00e9fini en langage Sail et est distribu\u00e9 sous licence BSD.                <\/p>\n<p>Un prototype de syst\u00e8me d'exploitation en temps r\u00e9el, CHERIoT RTOS, est \u00e9galement propos\u00e9, offrant la possibilit\u00e9 d'isoler des compartiments, m\u00eame sur des syst\u00e8mes embarqu\u00e9s avec 256 Mo de RAM. Le code de CHERIoT RTOS est \u00e9crit en C++ et distribu\u00e9 sous la licence MIT. Les composants de base du syst\u00e8me d'exploitation, tels que le chargeur, le planificateur et le syst\u00e8me de distribution de la m\u00e9moire, sont form\u00e9s sous forme de compartiments.     <\/p>\n<p>Un compartiment dans CHERIoT RTOS est une combinaison isol\u00e9e de code et de variables globales, ressemblant \u00e0 une biblioth\u00e8que partag\u00e9e, mais contrairement \u00e0 celle-ci, il peut modifier son \u00e9tat (mutable) et \u00eatre ex\u00e9cut\u00e9 dans un contexte de s\u00e9curit\u00e9 distinct. Aucun code externe ne peut transf\u00e9rer le contr\u00f4le au code dans le compartiment ni acc\u00e9der aux objets, \u00e0 part appeler des points d'entr\u00e9e sp\u00e9cialement d\u00e9finis et utiliser des pointeurs vers des objets explicitement transmis lors de l'appel d'un autre compartiment. L'int\u00e9grit\u00e9 et la confidentialit\u00e9 des codes et des objets globaux dans le compartiment sont garanties.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58726\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043d\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 C \u0438 \u0421++. CHERIoT \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0435 \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u0434\u043e\u0432\u044b\u0435 \u0431\u0430\u0437\u044b \u043d\u0430 \u0421\/C++ \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0445 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0417\u0430\u0449\u0438\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-106979","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043d\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 C.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/microsoft-otkryl-cheriot-apparatnoe-reshenie-dlya-povysheniya-bezopasnosti-koda-na-yazyke-si\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Microsoft \u043e\u0442\u043a\u0440\u044b\u043b CHERIoT, \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043d\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 C.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/microsoft-otkryl-cheriot-apparatnoe-reshenie-dlya-povysheniya-bezopasnosti-koda-na-yazyke-si\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-03-01T10:48:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-03-01T11:43:17+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Microsoft a ouvert CHERIoT, une solution mat\u00e9rielle pour am\u00e9liorer la s\u00e9curit\u00e9 du code en langage C | ProHoster","description":"Microsoft a r\u00e9v\u00e9l\u00e9 des travaux li\u00e9s au projet CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), visant \u00e0 bloquer les probl\u00e8mes de s\u00e9curit\u00e9 dans le code existant \u00e9crit en C.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/microsoft-otkryl-cheriot-apparatnoe-reshenie-dlya-povysheniya-bezopasnosti-koda-na-yazyke-si","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Microsoft \u043e\u0442\u043a\u0440\u044b\u043b CHERIoT, \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043d\u0430 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 C.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/microsoft-otkryl-cheriot-apparatnoe-reshenie-dlya-povysheniya-bezopasnosti-koda-na-yazyke-si","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2023-03-01T10:48:41+00:00","article:modified_time":"2023-03-01T11:43:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/106979","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=106979"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/106979\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=106979"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=106979"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=106979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}