Косвенное отслеживание филиалов
Косвенное отслеживание ветвей ( 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 г.