{"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\/pl\/blog\/news\/microsoft-otkryl-cheriot-apparatnoe-reshenie-dlya-povysheniya-bezopasnosti-koda-na-yazyke-si","title":{"rendered":"Microsoft uruchomi\u0142 CHERIoT, rozwi\u0105zanie sprz\u0119towe maj\u0105ce na celu zwi\u0119kszenie bezpiecze\u0144stwa kodu w j\u0119zyku C","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Firma Microsoft ujawni\u0142a prace zwi\u0105zane z projektem CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), kt\u00f3ry ma na celu rozwi\u0105zywanie problem\u00f3w z bezpiecze\u0144stwem w istniej\u0105cym kodzie napisanym w j\u0119zykach C i C++. CHERIoT oferuje rozwi\u0105zanie umo\u017cliwiaj\u0105ce zabezpieczenie istniej\u0105cych baz kodu w C\/C++ bez konieczno\u015bci ich przerabiania. Ochrona realizowana jest poprzez zastosowanie zmodyfikowanego kompilatora, kt\u00f3ry wykorzystuje specjalny rozszerzony zestaw instrukcji procesora (ISA), instaluje na poziomie sprz\u0119towym \u015bledzenie dost\u0119pu do pami\u0119ci, sprawdza poprawno\u015b\u0107 dzia\u0142ania wska\u017anik\u00f3w oraz zapewnia izolacj\u0119 blok\u00f3w kodu.      <\/p>\n<p>Projekt stworzono z my\u015bl\u0105 o tym, \u017ce niski poziom j\u0119zyka C cz\u0119sto prowadzi do b\u0142\u0119d\u00f3w w zarz\u0105dzaniu pami\u0119ci\u0105, co skutkuje takimi problemami jak nadpisanie bufora, dost\u0119p do ju\u017c zwolnionej pami\u0119ci, dereferencja wska\u017anik\u00f3w lub podw\u00f3jne zwolnienie pami\u0119ci. Praktyka pokazuje, \u017ce nawet du\u017ce korporacje, takie jak Google i Microsoft, kt\u00f3re maj\u0105 rygorystyczne zasady recenzowania zmian oraz stosuj\u0105 nowoczesne metody rozwoju i narz\u0119dzia analizy statycznej, nie mog\u0105 zagwarantowa\u0107 braku b\u0142\u0119d\u00f3w w zarz\u0105dzaniu pami\u0119ci\u0105 (na przyk\u0142ad oko\u0142o 70% luk w oprogramowaniu Microsoft i Google wywo\u0142anych jest przez niebezpieczne zarz\u0105dzanie pami\u0119ci\u0105).     <\/p>\n<p>Problem mo\u017cna rozwi\u0105za\u0107, wykorzystuj\u0105c j\u0119zyki programowania zapewniaj\u0105ce bezpieczne zarz\u0105dzanie pami\u0119ci\u0105 lub z wykorzystaniem dodatkowych kontroli, na przyk\u0142ad poprzez zastosowanie zamiast zwyk\u0142ych wska\u017anik\u00f3w typu MiraclePtr (raw_ptr), kt\u00f3ry wykonuje dodatkowe kontrole dost\u0119pu do zwolnionych obszar\u00f3w pami\u0119ci. Jednak podobne metody bardziej nadaj\u0105 si\u0119 do nowego kodu, a adaptacja ju\u017c istniej\u0105cych projekt\u00f3w w C\/C++ jest wystarczaj\u0105co problematyczna, zw\u0142aszcza je\u015bli s\u0105 one zaprojektowane do dzia\u0142ania w ograniczonych \u015brodowiskach, takich jak systemy wbudowane i urz\u0105dzenia internetu rzeczy.      <\/p>\n<p>Komponenty sprz\u0119towe CHERIoT s\u0105 zorganizowane w postaci mikrokontrolera opartego na architekturze RISC-V, realizuj\u0105cym zabezpieczon\u0105 architektur\u0119 procesora CHERI (Capability Hardware Extension to RISC-V), oferuj\u0105c\u0105 model zarz\u0105dzanego dost\u0119pu do pami\u0119ci oparty na &#171;capability&#187; (ka\u017cda operacja odczytu i zapisu w pami\u0119ci jest autoryzowana). Na podstawie dostarczonej architektury zestawu instrukcji (ISA) w CHERIoT zbudowano model programowy, kt\u00f3ry gwarantuje bezpiecze\u0144stwo operacji na pami\u0119ci na poziomie pojedynczych obiekt\u00f3w, zapewnia ochron\u0119 przed dost\u0119pem do ju\u017c zwolnionej pami\u0119ci i implementuje lekk\u0105 system izolacji dost\u0119pu do pami\u0119ci. Wskazany model ochrony programowej ma bezpo\u015brednie odzwierciedlenie w modelu j\u0119zykowym C\/C++, co pozwala na jego zastosowanie do ochrony istniej\u0105cych aplikacji (wystarczy tylko przekompilowa\u0107 i uruchomi\u0107 na sprz\u0119cie wspieraj\u0105cym ISA CHERIoT).    <\/p>\n<p>Proponowane rozwi\u0105zanie umo\u017cliwia blokowanie b\u0142\u0119d\u00f3w powoduj\u0105cych wyj\u015bcie poza granice obiektu w pami\u0119ci, nie dopuszcza podmieniania wska\u017anik\u00f3w (wszystkie wska\u017aniki musz\u0105 pochodzi\u0107 od ju\u017c istniej\u0105cych wska\u017anik\u00f3w), monitoruje dost\u0119p do pami\u0119ci po jej zwolnieniu (jakikolwiek dost\u0119p do pami\u0119ci za pomoc\u0105 niepoprawnego wska\u017anika lub wska\u017anika odnosz\u0105cego si\u0119 do zwolnionego obiektu prowadzi do generowania wyj\u0105tku). Na przyk\u0142ad, zastosowanie CHERIoT pozwala na realizacj\u0119 automatycznej kontroli granic, \u015bledzenia czasu \u017cycia obszar\u00f3w pami\u0119ci oraz zapewnienia integralno\u015bci wska\u017anik\u00f3w w komponentach obs\u0142uguj\u0105cych dane, kt\u00f3re nie s\u0105 godne zaufania, bez wprowadzania zmian w kodzie.      <\/p>\n<p>Projekt obejmuje specyfikacj\u0119 rozszerzonej architektury zbioru polece\u0144 CHERIoT, referencyjn\u0105 implementacj\u0119 32-bitowego CPU RISC-V z wsparciem ISA CHERIoT oraz zmodyfikowane narz\u0119dzia LLVM. Schematy prototypu CPU oraz opisy blok\u00f3w sprz\u0119towych w j\u0119zyku Verilog s\u0105 dystrybuowane na licencji Apache 2.0. Jako podstaw\u0119 dla CPU wykorzystano rdze\u0144 Ibex z projektu lowRISC. Model kodu CHERIoT ISA zdefiniowano w j\u0119zyku Sail i jest dystrybuowany na licencji BSD.                <\/p>\n<p>Dodatkowo zaproponowano prototyp systemu operacyjnego czasu rzeczywistego CHERIoT RTOS, kt\u00f3ry zapewnia mo\u017cliwo\u015b\u0107 izolacji kompartament\u00f3w (compartment) nawet w systemach wbudowanych z 256 MB RAM. Kod CHERIoT RTOS jest napisany w j\u0119zyku C++ i jest udost\u0119pniany na licencji MIT. W formie kompartament\u00f3w znajduj\u0105 si\u0119 podstawowe komponenty systemu operacyjnego, takie jak bootloader, scheduler oraz system zarz\u0105dzania pami\u0119ci\u0105.     <\/p>\n<p>Kompartament w CHERIoT RTOS to izolowana kombinacja kodu i zmiennych globalnych, kt\u00f3ra przypomina bibliotek\u0119 wsp\u00f3\u0142dzielon\u0105, ale w przeciwie\u0144stwie do niej mo\u017ce zmienia\u0107 swoje stany (mutable) i by\u0107 uruchamiana w osobnym kontek\u015bcie bezpiecze\u0144stwa. \u017baden kod z zewn\u0105trz nie mo\u017ce przej\u0105\u0107 kontroli nad kodem w kompartamencie ani uzyska\u0107 dost\u0119pu do obiekt\u00f3w, z wyj\u0105tkiem odwo\u0142a\u0144 do specjalnie zdefiniowanych punkt\u00f3w wej\u015bcia oraz u\u017cycia wska\u017anik\u00f3w na obiekty, kt\u00f3re zosta\u0142y jawnie przekazane podczas wywo\u0142ywania innego kompartamentu. Gwarantuje si\u0119 integralno\u015b\u0107 i poufno\u015b\u0107 kodu oraz globalnych obiekt\u00f3w w kompartamencie.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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.1.1 - 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\/pl\/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.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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 ujawni\u0142 CHERIoT, sprz\u0119towe rozwi\u0105zanie zwi\u0119kszaj\u0105ce bezpiecze\u0144stwo kodu w j\u0119zyku C | ProHoster","description":"Firma Microsoft ujawni\u0142a prace zwi\u0105zane z projektem CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), maj\u0105cym na celu rozwi\u0105zanie problem\u00f3w z bezpiecze\u0144stwem w istniej\u0105cym kodzie w j\u0119zykach C.","canonical_url":"https:\/\/prohoster.info\/pl\/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":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/106979","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=106979"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/106979\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=106979"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=106979"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=106979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}