`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Михаил Закусило

Процессоры AMD ждут аппаратной защиты

+44
голоса

Процессоры AMD получат аппаратную защиту — во внутренней архитектуре CPU появится барьер для вредоносного кода.

Как известно, одной из главных проблем защиты от уязвимостей Spectre и Meltdown является обеспечение безопасности при минимальной потере производительности. Иначе, предпринимаемые в борьбе с вредоносным кодом меры могут оказаться более вредоносными, чем этот самый код. Можно констатировать, что компания AMD подошла к вопросу достаточно основательно, определив тактические и стратегические направления.

Тактика и стратегия

Для краткосрочной перспективы разработана и оптимизирована методика программной минимизации рисков, связанных с работой ранее выпущенных процессоров. Этому посвящен документ Software Techniques Managing Speculation on AMD Processors.

Полное решение проблемы подразумевает аппаратную модернизацию чипов, а именно — функциональные расширения архитектуры процессоров. Набор таких расширений и формализацию их детектирования через инструкцию CPUID описывает документ AMD64 Technology Indirect Branch Control Extension.

Суть предлагаемой защиты — в создании аппаратного барьера на пути вы-полнения программного кода, манипулирующего техниками переходов и ветвлений. Преследуются две цели: держать в руках нити управления вычислительными процессами и блокировать зондирование «запрещенной» памяти спекулятивными операциями. Планируется, что принимаемые меры обеспечат надежный заслон против уязвимостей Spectre и Meltdown.

О текущем положении дел

Исследуя сегодняшнюю способность процессоров AMD противостоять хакерским атакам отметим, что они хотя и готовы к инициативам разработ-чиков, состояние внутренней защиты далеко от желаемого. Проанали-зируем архитектуру AMD Ryzen 5 1600 Six-Core Processor на геймерской платформе MSI X370 XPower Gaming Titanium.

Процессоры AMD ждут аппаратной защиты

Рис 1. Результат работы утилиты JavaCrossPlatformCPUID v0.61: содержи-мое регистра EBX после выполнения функции 80000008h

Утилита JavaCrossPlatformCPUID, разработанная в IC Book Labs, дает представление о битовых полях и объектах внутренней архитектуры процессора, ответственных за внедрение защиты против зловредного кода.

Как видим, регистр EBX после выполнения функции CPUID 80000008h должен содержать битовые флаги, свидетельствующие о наличии расшире-ний «Indirect Branch Control Extension», заявленных в означенном выше корпоративном документе.

Процессоры AMD ждут аппаратной защиты

Рис 2. Регистр EBX после выполнения функции CPUID 80000008h содержит битовые флаги, индицирующие наличие функциональных расширений

Их функциональность можно разделить на три составляющие, каждая из которых декларируется раздельно:

  • Indirect Branch Prediction Barrier (IBPB)

  • Indirect Branch Restricted Speculation (IBRS)

  • Single Thread Indirect Branch Predictor (STIBP)

Дополнительные поля несут информацию об оптимальных сценариях ис-пользования защиты, обеспечивающих минимизацию ее влияния на произ-водительность процессора.

Процессоры AMD ждут аппаратной защиты

Рис 3. Регистр EBX после выполнения функции CPUID 80000008h содержит битовые флаги, определяющие оптимальные сценарии использования функциональных расширений

Единичное значение флага «IBRS always on mode» означает, что оптимальная производительность достигается в том случае, если режим IBRS будет включен UEFI BIOS при старте платформы и активен постоянно, так как влияние IBRS на производительность минимально. Иначе, предпочтительнее динамическое переключение IBRS в соответствии с привилегиями выполняемого кода. Фактически, это ответ на вопрос, что приводит к меньшим потерям производительности: постоянная активность IBRS или операции переключения режима IBRS.

Флаг «STIBP always on mode» задает аналогичную опцию для режима STIBP.

Флаг «Processor prefers using the IBRS feature» означает, что снижение производительности, обусловленное включением IBRS, меньше, чем при использовании программных техник, таких как retpoline, поэтому задейст-вовать IBRS предпочтительнее не только с точки зрения безопасности, но и производительности.

Таким образом, после выполнения инструкции CPUID, системному програм-мисту доступна информация не только о новых возможностях процессора, но и оптимальных сценариях их использования.

Рассмотрим три составляющие аппаратной защиты.

Indirect Branch Prediction Barrier

Основным объектом атак со стороны вредоносного кода стал Branch Predictor или блок предсказания ветвлений, оптимизирующий выполнение команд косвенных переходов на основании ранее собранной статистики. Способность процессора запоминать предысторию ветвлений, дает возможность атакующей задаче, выполнив фрагмент кода с требуемой по-следовательностью косвенных переходов, влиять на ход спекулятивного выполнения в атакуемой задаче и добывать информацию о последней, пользуясь побочными эффектами, например, — изменением таймингов.

Логичной реакцией разработчиков процессора стала реализация своеобразного барьера, разделяющего два участка выполняемого кода. При этом гарантируется, что статистика выполнения, накопленная до барьера, будет очищена и не повлияет на спекулятивную обработку инструкций JMP, CALL, RET выполняемых после барьера.

В частности, это позволяет осуществить изоляцию гостевых задач вирту-альной машины, а также исключить их влияние на гипервизор виртуализации. Для обозначения точки барьера используется операция записи в один из Model-Specific регистров процессора (PRED_CMD).

Indirect Branch Restricted Speculation

Функциональность IBRS, так же как IBPB, ограничивает возможность злоупотреблений, основанных на спекулятивном выполнении инструкций косвенной передачи управления. IBRS базируется на классических уровнях привилегий Protected Mode и на отношениях «гипервизор-гость» в системах с виртуализацией. Типовой сценарий применения IBRS позволяет исключить влияние процессов уровня пользователя (ring 3) на привилеги-рованные процедуры операционной системы (ring 0), а также влияние гос-тевой задачи на гипервизор виртуализации.

Для включения IBRS используется один из Model-Specific регистров процес-сора (SPEC_CTRL, bit 0). В режиме IBRS, статистика, накопленная при вы-полнении менее привилегированного кода, не будет оказывать влияние на ход спекулятивного выполнения других задач.

Single Thread Indirect Branch Predictor

Опция STIBP, управляемая одним из Model-Specific регистров (SPEC_CTRL, bit 1), также как и две ранее рассмотренные, ограничивает возможности злонамеренного применения предиктора. Функциональность STIBP предназ-начена для решения проблемы, имеющей место в случае, когда несколько логических процессоров (как правило, два) совместно используют общий блок предсказания ветвлений, что дает возможность атакующему потоку воздействовать на атакуемый поток, выполняемый на соседнем логическом процессоре.

Анализируя перспективу

Несмотря на то, что в сегодняшней архитектуре AMD защитный барьер на пути вредоносного кода, эксплуатирующего известные уязвимости CPU, фактически отсутствует, готовность незамедлительно принять меры против несанкционированного доступа к компьютерным ресурсам можно только приветствовать. С тех пор, как процессоры начали использовать обновление микрокода, апгрейд их аппаратной защиты может произойти не только в результате физической замены чипа, но и оказаться приятным сюрпризом для пользователя — после «перешивки» UEFI BIOS, разумеется.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+44
голоса

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT