The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Программно-аппаратная платформа CHERIoT 1.0 для повышения безопасности кода на языке Си

04.11.2025 19:43

Представлен финальный вариант спецификации программной-аппаратной платформы CHERIoT 1.0 (Capability Hardware Extension to RISC-V for Internet of Things), определяющей расширение набора команд (ISA) для создания защищённых устройств. CHERIoT предоставляет аппаратные возможности для отслеживания доступа к памяти, проверки корректности работы с указателями и обеспечения изоляции блоков кода. Одновременно опубликован стабильный релиз эталонной формальной модели CHERIoT ISA, определённой на языке Sail. Наработки проекта распространяются под лицензией BSD.

Проект CHERIoT был создан компанией Microsoft для решения проблем с безопасностью в существующем коде на языках C и С++ и защиты подобного кода без необходимости его переработки. Защита реализуется через применение модифицированного компилятора, использующего расширенный набор процессорных инструкций (ISA) для обеспечения целостности указателей, контроля за границами при работе с памятью и предотвращения обращения к освобождённой памяти. В 2023 году наработки CHERIoT были открыты и преобразованы в совместный проект, к которому подключились и другие компании.

Аппаратные компоненты CHERIoT оформлены в виде микроконтроллера на базе архитектуры RISC-V, реализующего защищённую процессорную архитектуру CHERI (Capability Hardware Extension to RISC-V) c моделью управляемого доступа к памяти на основе "capability" (каждая операция чтения и записи в память авторизуется). На базе предоставляемой в CHERIoT архитектуры набора команд (ISA) построена программная модель, гарантирующая безопасность работы с памятью на уровне отдельных объектов, предоставляющая защиту от обращения к уже освобождённой памяти и реализующая легковесную систему изоляции доступа к памяти.

Указанная программная модель защиты напрямую отражается в языковую модель C/C++, что позволяет применять её для существующих приложений, для защиты которых требуется лишь перекомпиляция и запуск на оборудовании, поддерживающем ISA CHERIoT. Например, применение CHERIoT позволяет без внесения изменений в код реализовать автоматическую проверку границ, отслеживание времени жизни областей памяти и обеспечение целостности указателей в компонентах, обрабатывающих не заслуживающие доверия данные.

Среди проблем, блокируемых при помощи CHERIoT:

  • Выход за границы объекта в памяти;
  • Подмена указателей (при применении CHERIoT все указатели должны порождаться от уже существующих указателей);
  • Обращение к памяти после освобождения (любой доступ к памяти по некорректному указателю или указателю, ссылающемуся на освобождённый объект приводит при применении CHERIoT к генерации исключения).

Помимо спецификации и формальной модели проектом развивается эталонная реализация 32-разрядного RISC-V CPU Ibex c поддержкой ISA CHERIoT и модифицированный инструментарий LLVM. Cхемы прототипа CPU и описания аппаратных блоков на языке Verilog распространяются под лицензией Apache 2.0. В качестве основы для CPU использовано ядро Ibex от проекта lowRISC. На базе ядра CHERIoT Ibex готовятся к массовому производству чипы ICENI, поступление в продажу которых запланировано на следующий год. Отдельно компанией Microsoft развивается микроконтроллер Kudu с поддержкой ISA CHERIoT. Ibex и Kudu уже полностью поддерживают спецификацию CHERIoT 1.0. Ведётся работа по стандартизации CHERI-расширений для процессоров RISC-V в организации RISC-V International.

Дополнительно развивается эмулятор платформы на базе FPGA и Docker-контейнер для разработчиков с предустановленным инструментарием и симулятором CPU Ibex, реализованным при помощи Verilator. Кроме того, на базе CHERIoT подготовлен прототип операционной системы реального времени CHERIoT RTOS, предоставляющей возможность изоляции компартментов (compartment) даже на встраиваемых системах с 256 МБ ОЗУ. Код CHERIoT RTOS написан на языке С++ и распространяется под лицензией MIT. В форме компартментов оформлены базовые компоненты ОС, такие как загрузчик, планировщик и система распределения памяти.

Компартмент в CHERIoT RTOS представляет собой изолированную комбинацию кода и глобальных переменных, которая напоминает разделяемую библиотеку, но в отличие от последней может менять своё состояние (mutable) и запускаться в отдельном контексте безопасности. Никакой код извне не может передать управление коду в компартменте и получить доступ к объектам, за исключением обращения к специально определённым точкам входа и использования указателей на объекты, явно переданные при вызове другого компартмента. Для кода и глобальных объектов в компартменте гарантируется целостность и конфиденциальность.

  1. Главная ссылка к новости (https://cheriot.org/sail/speci...)
  2. OpenNews: Началось производство чипов на базе открытой платформы OpenTitan
  3. OpenNews: Google представил проект Open Se Cura для создания защищённых программно-аппаратных систем
  4. OpenNews: Google открыл код защищённой операционной системы KataOS
  5. OpenNews: Intel и AMD стандартизируют механизм ChkTag для защиты от уязвимостей при работе с памятью
  6. OpenNews: Microsoft открыл CHERIoT, аппаратное решение для повышения безопасности кода на языке Си
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64180-cheriot
Ключевые слова: cheriot, cheri, microsoft, memory, security, llvm
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (42) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Ilnarildarovuch (?), 20:13, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ждем того, что люди будут жаловаться на C++/Microsoft
     
     
  • 2.2, Аноним (2), 20:16, 04/11/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.4, Аноним (4), 20:27, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну а чего жаловаться, продолжаем писать на плюсах. Ждём, когда Майкрософт сделает процессоры для питона, это будет значительный шаг вперёд.
     
  • 2.15, Аноним (15), 20:44, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ждем того, что люди будут жаловаться на C++/Microsoft

    Да меснтых экспертов сейчас поди закоротило.

    С одной стороны МС пропихивает Раст и рассказывает, что 70% дыреней сеществуют из-за работы с памятью в C/C++. С другой стороны, та же МС отрывает ISA для залатывания тех самых 70% дыреней.

    Так что, мы за или против МС? 🤷

     
     
  • 3.19, Аноним (-), 20:48, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Так что, мы за или против МС? 🤷

    Так это элементарно! Когда нужно - мы за, когда нужно - мы против.
    Мы, опеннетчики, никогда не устаем крутить диван!

    Примерное как с габеном и вальвой.
    Когда нужно - он мерзкий проприетарщик с DRMнутыми Стимом.
    А когда нужно - он лапочка, потому что видеоподсистему для линууупса делает, поэтому будем дружно лизать ему зад.

     
     
  • 4.33, Аноним (4), 21:37, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну у стима такой drm, что достаточно положить эмулятор, и все игры работают. А многие игры даже запускаются свободно без эмулятора, так что. Что же тут равноценного?
     
  • 3.36, Аноним (36), 21:43, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    когда перестанут ломать раст каждые три недели, тогда мы станем "за".
     
  • 2.38, Аноним (38), 21:48, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Жалуюсь только на Microsoft.
     

  • 1.5, Аноним (-), 20:28, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Неопределённое поведение наблюдаемое в языке Си вызвано особенностями архитектуры компьютера. В 2025 году менеджеры Майкрософта это понял. Ну штож лучше позно чем никогда.
     
     
  • 2.14, Аноним (15), 20:39, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Неопределённое поведение наблюдаемое в языке Си

    Нет, наблюдалось оно в стандарте Си с момента его появления.

     
     
  • 3.30, Аноним (4), 21:32, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Проблема в тех, кто читал K&R, пока они живы, так и будем ходить по граблям. Многое уже не работает в современных компиляторах (или работает без оптимизации). С плюсами так же, пока живы те, кто учился по старым стандартам, всё так и будет.
     
  • 3.39, Аноним (38), 21:53, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А особенностей архитектур компьютеров в то время не было?
     
  • 2.16, Аноним (16), 20:44, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А ловко это вы с больной головы на здоровую!
    Однако в программах на ассемблере почему-то неопределённого поведения не наблюдается.
     

  • 1.7, Аноним (7), 20:29, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну были же вставки в прикуриватель для экономии топлива. Можно наладить выпуск флешек с чем-то подобным для увеличения безопасности.

    Интересно как они собираются верифицировать что какое-то ПО полностью совместимо с этим. Что вдруг всё не встанет типа от какой-то вяло текущей утечки памяти. Ведь если получится верифицировать, то наверное оно и не сильно нужно. Много ли мест где заранее согласны на DOS по любому возможно только "потенциальному", но по месту не сильно критическому поводу?

    Кажется тут надо скорее прозрачно логи собирать и походу разбираться что и почему, возможно реагировать а-ля переключиться на другую ноду, а потом находить и править ПО.

     
     
  • 2.9, Аноним (-), 20:31, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Интересно как они собираются верифицировать что какое-то ПО полностью совместимо с этим.

    Насколько я понимаю - никак)
    Оно должно предотвращать катастрофу, а не предупреждать её.
    Типа как предохранительный клапан или УЗО.

    Для предотвращения нужна формальная верификация или на крайняк проверки на этапе компиляции.

     
  • 2.52, Аноним (52), 22:57, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Можно наладить выпуск флешек с чем-то подобным для увеличения безопасности.

    Уже. TPM называется.

     

  • 1.10, Аноним (-), 20:36, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > модифицированный инструментарий LLVM

    А чего не ГЦЦ? Не захотели пачкать руки?
    Или с монолитом (или копролитом?) гцц это нельза сделать так быстро и удобно как с шлангом?

     
     
  • 2.32, Аноним (4), 21:34, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не ищи логики. В МС очень любят шланг, только и всего. Они вообще разрабатывают хоть какие-то свободные проекты?
     
     
  • 3.47, Аноним (47), 22:19, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    microsoft не разрабатывает, но является спонсором python и гном. В Python они являюются Sustainability Sponsor https://www.python.org/psf/sponsors/

    Вот как переводит слово  Sustainability  wikiped :
    Устойчивость - это способность к относительно постоянному выживанию в различных областях жизни. В 21 веке это, как правило, относится к способности биосферы Земли и человеческой цивилизации сосуществовать.

     
  • 2.40, Аноним (38), 22:00, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Micro$oft же. Micro$ot Visual С++ - читай LLVM Шланг.
     

  • 1.12, Я (??), 20:37, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не понял. Чи вам раста мало?
     
     
  • 2.18, Аноним (-), 20:45, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да, раста мало.
    Для его применения нужно переписать кучу кода - это долго и дорого.
    Но это даст возможность предотвратить часть проблем еще на этапе разработки.

    А тут прога будет просто кидать FAULT, но "условный взлом" будет предотвращен.
    Зато относительно быстро и можно использовать старые кода.

    Оба подхода имеют место и они не взаимоисключающие.

     
     
  • 3.27, Аноним (27), 21:16, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Для его применения нужно переписать кучу кода - это долго и дорого.

    Пора создать квантовый ИИ высоких энергий, который приведёт человечество к процветанию, переписав весь онвог-код.

     
     
  • 4.28, Аноним (-), 21:20, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Пора создать квантовый ИИ высоких энергий, который приведёт
    > человечество к процветанию, переписав весь онвог-код.

    Отличная идея! Когда начнете?

    Но я бы предложил начать с малого и перестать плодить новый онвог-код.
    Это не так сложно, нужно всего лишь...

     
     
  • 5.42, Аноним (38), 22:03, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ...стать плюсовиком, использующим умные указатели.
     

  • 1.20, Аноним (20), 20:48, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше бы аппаратный taint-анализ в рантайме сделали.
     
  • 1.22, Аноним (22), 20:52, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Защита реализуется через применение модифицированного компилятора

    который написан тоже на C/C++ и содержит много ошибок, из-за которых этот самый CHERIoT будет работать нестабильно, постоянно выдавая аварийные остановы.

     
     
  • 2.25, Аноним (-), 21:05, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > постоянно выдавая аварийные остановы.

    И это позволит отладить инструмент.
    LLVM станет лучше и стабильнее.
    Все довольны.

     
     
  • 3.43, Аноним (38), 22:05, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В репозитории GCC тоже наблюдается движ по поддержке CHERI.
     
  • 2.44, Аноним (38), 22:07, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так перекомпилировать сам компилятор с поддержкой CHERI. Ну, конечно, для железа, которое его поддерживает.
     

  • 1.23, 12yoexpert (ok), 20:52, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > был создан компанией Microsoft для решения проблем с безопасностью

    лично мне хватило UEFI

     
     
  • 2.26, Аноним (26), 21:14, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    "Те, кто готов променять свободу на безопасность, не достойны ни свободы, ни безопасности" (c) Только Чистый С, только хардкор!
     
  • 2.45, Аноним (38), 22:09, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да уж, точно уклад един.
     

  • 1.29, механизатор (?), 21:23, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ключи в UEFI - Микрософт
    ... - Микрософт
    CHERIoT - Микрософт

    Совпадение? Не думаю...

    Думаю, на этот раз пропихнуть свой крючок будет сложнее. Впрочем, люди не учатся на своих ошибках. А жаль.

     
     
  • 2.34, morphe (?), 21:39, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ключи в UEFI - Микрософт

    Возьми да смени, никто не заставляет их использовать

    Если вдруг вендор твоей железки запрещает менять ключи (В жизни не видал такое, но опеннетные эксперты где-то такое добывали) - зачем такое покупать, этот вендор и без ключей мог как-то ACPI на microsoft завязать

     
     
  • 3.35, механизатор (?), 21:42, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а чё так можно было? блин, пойду попробую отключить... спасибо за совет.
     
  • 3.46, Аноним (38), 22:13, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так это же ещё угадать нужно в процессе покупки. Не заставлять же в каком-нибудь ситилинке демонсрировать тебе работу прошивки покупаемой материнки. Пока домой с ней не придёшь, не поймёшь.
     
     
  • 4.51, 12yoexpert (ok), 22:45, 04/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    можешь вернуть почти что угодно в течение двух недель после покупки без объяснения причин

    возврат оформляется в пару кликов в абсолютно любом местном магазине

     

  • 1.53, Аноним (53), 23:01, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отлично, теперь код на Си тоже стал безопасным, так что можете уносить свой Раст!
     
  • 1.54, eugener (ok), 23:03, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Откопали стюардессу (си и си++) и накрасили (cheriot). Типа, ещё послужит.
     
  • 1.55, Аноним (53), 23:08, 04/11/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.56, Аноним (56), 23:13, 04/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ... Представлен финальный вариант спецификации программной-аппаратной платформы CHERIoT 1.0 (Capability Hardware Extension to RISC-V for Internet of Things), определяющей расширение набора команд (ISA) для создания

    Чего придумают... Писать надо на Паскале. Или Расте если моды хочется. Тайп сейф языки.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру