Бесплатно Экспресс-аудит сайта:

11.06.2020

Процессоры Arm уязвимы к атакам по сторонним каналам

Компания Arm, являющаяся одним из крупнейших производителей RISC-процессоров (с архитектурой ARM), выпустила руководство для разработчиков программного обеспечения с подробным описанием мер предотвращения эксплуатации новой уязвимости (CVE-2020-13844), обнаруженной в архитектуре процессора Armv8-A (Cortex-A).

Проблема, получившая название SLS (Straight-Line Speculation), представляет собой атаку по сторонним каналам со спекулятивным выполнением команд (Speculative Execution).

Спекулятивное выполнение позволяет повысить производительность, оптимизируя загрузку операционных блоков CPU. Для того чтобы точки ветвления программного кода не останавливали его опережающее выполнение, используется логика предсказания ветвлений. Собирая статистику о ранее выполненных ветвлениях, процессор определяет наиболее вероятные целевые адреса, отдавая им приоритет при опережающем исполнении инструкций, в расчете на то, что после условного или косвенного перехода, выполнение программы продолжится по предсказанному адресу. В этом случае результаты заблаговременно выполненных действий будут востребованы. Атаки по сторонним каналам со спекулятивным выполнением команд позволяют злоумышленникам читать конфиденциальные данные.

SLS представляет собой еще одну форму уязвимостей Spectre, однако затрагивает только процессоры Arm Armv-A.

Хотя вычислительные операции являются частью процесса спекулятивного выполнения, когда происходит изменение в потоке управления командами процессора Arm, ЦП реагирует, выполняя команды, найденные в своей памяти, после изменения потока управления.

По словам экспертов, на практике будет сложно использовать уязвимость, и пока еще никто не представил рабочий эксплоит для данной уязвимости.

Компания еще с прошлого года активно работает над решением проблемы. Инженеры разработали исправления для различных программных проектов и операционных систем, включая FreeBSD, OpenBSD, Trusted Firmware-A и OP-TEE. Выпущенные патчи должны блокировать попытки эксплуатации на уровне прошивки и ОС. Компания также предоставила исправления для GCC и LLVM — двух самых популярных на сегодняшний день компиляторов кода.

В отличие от ситуации с Spectre и Meltdown, данные исправления вряд ли будут оказывать негативное влияние на производительность.

Уязвимость SLS была обнаружена исследователями безопасности в рамках проекта Google SafeSide, изучающего атаки по сторонним каналам.