В современном мире процессоров уже никого не удивляет нахождение очередной уязвимости, а иногда тропинкой для злоумышленника становятся технологии, изначально призванные повысить уровень безопасности. Ряд исследователей небезосновательно считает, что «заплатками» отделаться не получится и надо менять глубинные принципы, лежащие в основе процессорных архитектур.
Один из таких проектов, развиваемый с 2010 года усилиями SRI International и Кембриджского университета — это CHERI. В 2019 к нему присоединилась Arm, недавно представившая первый прототип платы с процессором Morello, который базируется на двух ключевых принципах, заложенных в CHERI — масштабируемая компартментализация и тонко настраиваемая защита содержимого памяти. Оба принципа реализованы аппаратно и сами по себе не новы.
По сути речь идёт о расширении стандартного набора инструкций, с помощью которого даже написанное с использованием языков, позволяющих относительно легко сделать ошибки при работе с памятью (а это обычно C/C++), ПО можно заставить работать без образования серьёзных дыр в защите. Тщательная компартментализация (т.е. разделение) кода ОС и приложений хотя и не исключает наличие уязвимостей, но серьёзно ограничивает область возможного нанесения вреда.
В частности, любая инструкция типа load/store и любая операция выборки должны быть авторизованы на аппаратном уровне со стороны процессора. Разумеется, это не высокоуровневая защита, а скорее набор базовых блоков для построения таковой. Принцип компартментализации ещё проще: если в классической архитектуре взломщик может получить контроль над всей системой, то в изолированных друг от друга ОС и приложениях, он лишь проникнет в одну из множества небольших «ячекк», а его действия послужат сигналом для защитных механизмов.
Arm Morello — первый чип на базе CHERI. Текущая аппаратная реализация использует модифицированные ядра Neoverse N1 (ARMv8.2) с частотой 2,5 ГГц. Первые платы с новым процессором предназначены таким IT-гигантам как Google и Microsoft, а также заинтересованным партнёрам образовательным учреждениям. На текущий момент разработчики предлагают модифицированное ядро FreeBSD, часть стандартных UNIX-программ, а также некоторые другие приложения. С появлением готовых плат и процессоров процесс адаптации ПО должен значительно ускориться.