Косвенное отслеживание филиалов
Косвенное отслеживание ветвей ( IBT ), также известное как идентификация цели ветвления ( BTI ), представляет собой механизм целостности потока управления , реализованный на некоторых Intel x86-64 и ARM-64 процессорах . IBT предназначен для защиты от эксплойтов компьютерной безопасности , которые используют косвенные инструкции ветвления для непредусмотренного перехода к коду, таких как возвратно-ориентированное программирование .
Он создает специальные инструкции «цели ветвления», которые не имеют никакой функции, кроме как пометить местоположение как допустимую цель непрямого ветвления , при этом процессор можно перевести в режим, в котором он будет вызывать исключение, если будет сделана непрямая ветвь к местоположение без инструкции перехода.
Реализации
[ редактировать ]На процессорах Intel этот метод известен как косвенное отслеживание ветвей (IBT) с инструкциями «конечной ветки». конецbr32 и endbr64 действует как целевая инструкция перехода для 32- и 64-битного режима соответственно. [ 1 ] [ 2 ] IBT является частью технологии Intel Control-Flow Enforcement, впервые реализованной в процессорах поколения Tiger Lake . [ 3 ]
Подобная технология на процессорах ARM-64 называется Branch Target Identification (BTI), а инструкция также называется BTI , имеющий три варианта, которые позволяют проверять только переходы или вызовы функций, или и то, и другое. [ 4 ] [ 5 ]
Ссылки
[ редактировать ]- ^ Корбет, Джонатан (31 марта 2022 г.). «Непрямое отслеживание ветвей для процессоров Intel» . lwn.net . Проверено 14 июля 2023 г.
- ^ «Непрямое отслеживание ветвей — 006 — ID:655258 | Процессоры Intel® Core™ 12-го поколения» . edc.intel.com . Проверено 23 февраля 2024 г.
- ^ «Intel внедряет новую технологию CET в мобильные процессоры Tiger Lake» . ЗДНЕТ . Проверено 23 февраля 2024 г.
- ^ «Документация — Arm Developer» . Developer.arm.com . Декабрь 2021 года . Проверено 14 июля 2023 г.
- ^ «Документация — Arm Developer» . Developer.arm.com . Проверено 23 февраля 2024 г.