Оглавление
Целостность потока управления
-
Основы целостности потока управления (CFI)
- CFI предотвращает вредоносные атаки, изменяющие поток управления программы.
- Передача управления может быть прямой или косвенной, с использованием стека или виртуальных таблиц.
- Злоумышленники стремятся перенаправить выполнение в незащищенные области, используя косвенные передачи.
-
Методы и реализации CFI
- Методы включают разделение кода по указателям, целостность кода по указателям и управление стеком.
- Существуют реализации CFI в Clang, Microsoft Control Flow Guard, Return Flow Guard и других.
-
Технологии Intel и Microsoft
- Intel Control-flow Enforcement Technology (CET) использует теневой стек и косвенное отслеживание ответвлений для обнаружения нарушений целостности потока управления.
- Microsoft Control Flow Guard (CFG) защищает программы, создавая битовую карту для каждого процесса и проверяя адреса назначения перед выполнением косвенных вызовов.
-
Обход CFG и XFG
- Существуют методы обхода CFG, включая использование неподтвержденных косвенных вызовов и перезапись адресов в стеке.
- Расширенный Flow Guard (XFG) проверяет сигнатуры вызовов функций для ограничения доступа к определенным функциям.
-
Дополнительные ресурсы
- Статья также упоминает защиту от переполнения буфера и рекомендации по безопасности.