Представлен финальный вариант спецификации программной-аппаратной платформы 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:
Источник: https://www.opennet.ru/opennews/art.shtml?num=64180
- Выход за границы объекта в памяти; Подмена указателей (при применении CHERIoT все указатели должны порождаться от уже существующих указателей); Обращение к памяти после освобождения (любой доступ к памяти по некорректному указателю или указателю, ссылающемуся на освобождённый объект приводит при применении CHERIoT к генерации исключения).
Источник: https://www.opennet.ru/opennews/art.shtml?num=64180