Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 217

Целостность потока управления

Что такое Целостность потока управления?

Целостность потока управленияЦелостность потока управления (CFI) ограничивает непрямые вызовы и возвраты программы заранее вычисленным множеством легитимных целей, блокируя ROP и JOP.


CFI была формализована Абади, Будиу, Эрлингссоном и Лигатти в 2005 году. Компилятор строит граф потока управления, для каждой точки косвенного вызова определяет допустимые цели и вставляет проверки в местах вызовов и возвратов. Практические реализации: LLVM CFI (прямые рёбра через типовые бакеты), Microsoft Control Flow Guard, kCFI ядра Linux и аппаратные варианты — Intel CET-IBT и Arm BTI для косвенных переходов плюс теневой стек для возвратов. ROP/JOP-цепочки нарушают допустимое множество рёбер и блокируются. Основные ограничения — широкие классы эквивалентности в C/C++ и несовместимые интерфейсы.

Примеры

  1. 01

    Microsoft Control Flow Guard отклоняет косвенный вызов через испорченную vtable в Edge.

  2. 02

    Ядро Linux 6.x с kCFI блокирует ROP-цепочку в уязвимости драйвера.

Частые вопросы

Что такое Целостность потока управления?

Целостность потока управления (CFI) ограничивает непрямые вызовы и возвраты программы заранее вычисленным множеством легитимных целей, блокируя ROP и JOP. Относится к категории Безопасность приложений в кибербезопасности.

Что означает Целостность потока управления?

Целостность потока управления (CFI) ограничивает непрямые вызовы и возвраты программы заранее вычисленным множеством легитимных целей, блокируя ROP и JOP.

Как работает Целостность потока управления?

CFI была формализована Абади, Будиу, Эрлингссоном и Лигатти в 2005 году. Компилятор строит граф потока управления, для каждой точки косвенного вызова определяет допустимые цели и вставляет проверки в местах вызовов и возвратов. Практические реализации: LLVM CFI (прямые рёбра через типовые бакеты), Microsoft Control Flow Guard, kCFI ядра Linux и аппаратные варианты — Intel CET-IBT и Arm BTI для косвенных переходов плюс теневой стек для возвратов. ROP/JOP-цепочки нарушают допустимое множество рёбер и блокируются. Основные ограничения — широкие классы эквивалентности в C/C++ и несовместимые интерфейсы.

Как защититься от Целостность потока управления?

Защита от Целостность потока управления обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Целостность потока управления?

Распространённые альтернативные названия: CFI, Control Flow Guard, kCFI.

Связанные термины

См. также