Heap Feng Shui
Что такое Heap Feng Shui?
Heap Feng ShuiДетерминированная техника подготовки кучи, представленная Александром Сотировым в 2007 году: аллокации выстраивают так, чтобы уязвимый объект оказывался рядом с подконтрольным.
Александр Сотиров ввёл термин Heap Feng Shui на Black Hat Europe 2007. В отличие от статистического heap spray, feng shui тщательно аллоцирует, освобождает и переаллоцирует объекты из JavaScript, формируя кучу браузера так, чтобы после повреждения памяти уязвимый объект надёжно перекрывал подконтрольные байты. Опустошая freelists, используя size-class-бины и долгоживущие аллокации как «якоря», эксплойты достигают детерминированной раскладки даже при ASLR и рандомизированных аллокаторах. Идея распространилась на кучи ядра (Linux SLUB, Windows pool feng shui) и движки JavaScript (V8, SpiderMonkey). Современная защита: укреплённые аллокаторы (PartitionAlloc, scudo), MTE на ARM, GWP-ASan и изолированные кучи для критичных метаданных.
● Примеры
- 01
Точные аллокации из JavaScript, чтобы уязвимый JIT-объект оказался рядом с подконтрольным ArrayBuffer.
- 02
Feng shui SLUB-кучи Linux для совмещения UAF-объекта со структурами cred и получения root.
● Частые вопросы
Что такое Heap Feng Shui?
Детерминированная техника подготовки кучи, представленная Александром Сотировым в 2007 году: аллокации выстраивают так, чтобы уязвимый объект оказывался рядом с подконтрольным. Относится к категории Атаки и угрозы в кибербезопасности.
Что означает Heap Feng Shui?
Детерминированная техника подготовки кучи, представленная Александром Сотировым в 2007 году: аллокации выстраивают так, чтобы уязвимый объект оказывался рядом с подконтрольным.
Как работает Heap Feng Shui?
Александр Сотиров ввёл термин Heap Feng Shui на Black Hat Europe 2007. В отличие от статистического heap spray, feng shui тщательно аллоцирует, освобождает и переаллоцирует объекты из JavaScript, формируя кучу браузера так, чтобы после повреждения памяти уязвимый объект надёжно перекрывал подконтрольные байты. Опустошая freelists, используя size-class-бины и долгоживущие аллокации как «якоря», эксплойты достигают детерминированной раскладки даже при ASLR и рандомизированных аллокаторах. Идея распространилась на кучи ядра (Linux SLUB, Windows pool feng shui) и движки JavaScript (V8, SpiderMonkey). Современная защита: укреплённые аллокаторы (PartitionAlloc, scudo), MTE на ARM, GWP-ASan и изолированные кучи для критичных метаданных.
Как защититься от Heap Feng Shui?
Защита от Heap Feng Shui обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Heap Feng Shui?
Распространённые альтернативные названия: Подготовка кучи.
● Связанные термины
- attacks№ 471
Heap Spraying
Эксплойт-примитив, заполняющий кучу множеством копий полезной нагрузки, чтобы повреждённый указатель с высокой вероятностью попал на данные атакующего.
- vulnerabilities№ 1193
Использование после освобождения
Ошибка безопасности памяти, при которой программа продолжает использовать память после её освобождения, часто позволяя атакующему управлять состоянием объектов и перехватывать выполнение.
- appsec№ 064
ASLR
ASLR случайным образом размещает код, стеки, кучи и библиотеки в памяти при каждом запуске, чтобы атакующий не мог предсказать целевые адреса для эксплойтов.
- vulnerabilities№ 667
Повреждение памяти
Обобщающий термин для уязвимостей, при которых программа пишет за пределы предполагаемой памяти, нарушая типовую безопасность, поток управления или целостность данных.