Безопасность информационных систем критически зависит от качества их программного кода. Основной кодовой базой на обозримом горизонте остаётся экосистема Linux, ядро и основные системные компоненты в которой написаны на небезопасных языках C и C++. Порядка 70 % всех выявляемых уязвимостей сводится к ошибкам работы с памятью, а многочисленные средства анализа и сертификации имеют ограниченную эффективность. Единственным средством надёжного обеспечения безопасности остаётся аппаратный контроль — это отмечено в исследовании Агентства по инфраструктурной безопасности, где предлагается использовать подход security by design. В последнее десятилетие в мире резко возрос интерес к аппаратным средствам тонкого контроля доступа к памяти. Среди наиболее развитых зарубежных проектов этого направления — британский проект CHERI; использование подобных технологий уже рекомендуется американскими регуляторами (Cybersecurity and Infrastructure Security Agency). Платформа Эльбрус с её промышленной реализацией аппаратного контроля доступа к памяти находится в этом тренде на лидирующих позициях.
Технология безопасных вычислений (ТБВ) — одна из ключевых возможностей, заложенных в архитектуру Эльбрус при проектировании, в соответствии с принципом security by design. ТБВ — особый режим работы процессора Эльбрус, в котором аппаратура процессора контролирует доступ к памяти на уровне отдельных объектов. ТБВ не допускает эксплуатацию злоумышленниками ряда уязвимостей, в том числе исключает «переполнение буфера». В процессе разработки ПО, при помощи ТБВ можно значительно ускорить процесс отладки, поскольку аппаратура процессора прерывает работу программы в момент возникновения ошибки (нарушения правил доступа к объектам в памяти), а не в момент проявления последствий этой ошибки.
В обычном режиме работы процессор Эльбрус, как и другие процессоры (x86, ARM, …), использует для обращения к памяти адреса — числа, хранящиеся в 32- или 64-разрядных регистрах. Эти числа с точки зрения процессора не отличаются от любых других значений в памяти. В режиме ТБВ Эльбрус для обращения в память использует только дескрипторы — 128-разрядные структуры, которые хранят в себе адрес обращения, базу объекта и размер объекта. В программах на языке высокого уровня (С,С++) для хранения адресов предусмотрены переменные-указатели. При переносе программы в режим ТБВ размер указателя изменится с 32 или 64 на 128 бит. Прочие операции с указателями в режиме ТБВ будут, как и в обычном режиме, проводиться согласно стандарту языка.
Полный текст: PDF (0,9 Мбайт).
English version: PDF (0.9 Mbyte).