CHERIoT, проект Microsoft по повышению безопасности в C

ЧЕРИОТ

CHERIoT, вариант MS для обеспечения безопасности встроенных систем

Недавно в новостях сообщили, что Microsoft открыла разработки, связанные с проектом CHERIoT (Аппаратное расширение возможностей RISC-V для Интернета вещей), предназначен для блокировки проблем безопасности в коде C и C++ существующий. CHERIoT предлагает решение для защиты существующих баз кода C/C++ без необходимости их рефакторинга.

Защита реализована с помощью модифицированного компилятора который использует специальный расширенный набор инструкций процессора (ISA), предоставляемый процессором, и контролирует доступ к памяти на аппаратном уровне, проверяет правильность задания с помощью указателей и обеспечивает изоляцию блоков кода.

О ЧЕРИОТ

В рамках проекта был создан с пониманием того, что низкоуровневый характер языка C становится источником ошибок памяти, что приводит к таким проблемам, как переполнение буфера, доступ к уже освобожденной памяти, разыменование указателя или двойное освобождение.

Практика показывает, что даже такие крупные корпорации, как Google и Microsoft, имеющие строгую политику проверки изменений и использующие современные методы разработки и инструменты статического анализа, не могут гарантировать безошибочную работу с памятью (например, около 70% уязвимостей в Microsoft и Google вызваны небезопасным управлением памятью).

Проблема Ее можно решить, используя языки программирования, гарантирующие безопасную работу.или с памятью или ссылками с дополнительными элементами управления, например, с помощью MiraclePtr (raw_ptr) вместо общих указателей, который выполняет дополнительные элементы управления для доступа к освобожденным областям памяти.

Перо такие методы больше подходят для нового кода y довольно проблематично переделывать существующие проекты C/C++, особенно если они предназначены для работы в средах с ограниченными ресурсами, таких как встроенные системы и устройства IoT.

Аппаратные компоненты CHERIoT выполнены в виде микроконтроллера. на основе архитектуры RISC-V, реализующей защищенную процессорную архитектуру CHERI (Capacity Hardware Extension for RISC-V), обеспечивающую управляемую модель доступа к памяти.

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

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

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

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

В рамках проекта включает спецификацию архитектуры набора инструкций CHERIoT. расширение, эталонная реализация 32-разрядного процессора RISC-V, совместимого с ISA CHERIoT, и модифицированный набор инструментов LLVM.

В конце концов Если вам интересно узнать об этом больше, ты должен знать это схемы прототипов Описания процессорных и аппаратных блоков в Verilog распространяются под лицензией Apache 2.0. Ядро Ibex проекта lowRISC используется в качестве основы для ЦП, а модель кода CHERIoT ISA определена на языке Sail и распространяется под лицензией BSD.

Дополнительно предлагается прототип операционной системы реального времени CHERIoT RTOS, обеспечивающий возможность изоляции отсеков (compartment) даже на встроенных системах с 256 МБ оперативной памяти.

Код ЧЕРИОТ ОСРВ Он написан на C++ и распространяется под лицензией MIT. В виде отсеков выполнены основные компоненты операционной системы, такие как загрузчик, планировщик и система выделения памяти.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.