Дата публикации:Tue, 04 Nov 2025 19:43:20 +0300
Представлен финальный вариант спецификации программной-аппаратной платформы 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 к генерации исключения).
Дополнительно развивается эмулятор платформы на базе FPGA и Docker-контейнер для разработчиков с предустановленным инструментарием и симулятором CPU Ibex, реализованным при помощи Verilator. Кроме того, на базе CHERIoT подготовлен прототип операционной системы реального времени CHERIoT RTOS, предоставляющей возможность изоляции компартментов (compartment) даже на встраиваемых системах с 256 МБ ОЗУ. Код CHERIoT RTOS написан на языке С++ и распространяется под лицензией MIT. В форме компартментов оформлены базовые компоненты ОС, такие как загрузчик, планировщик и система распределения памяти.
Компартмент в CHERIoT RTOS представляет собой изолированную комбинацию кода и глобальных переменных, которая напоминает разделяемую библиотеку, но в отличие от последней может менять своё состояние (mutable) и запускаться в отдельном контексте безопасности. Никакой код извне не может передать управление коду в компартменте и получить доступ к объектам, за исключением обращения к специально определённым точкам входа и использования указателей на объекты, явно переданные при вызове другого компартмента. Для кода и глобальных объектов в компартменте гарантируется целостность и конфиденциальность.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64180