CET & Shadow Stack
Reading time: 3 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Control Flow Enforcement Technology (CET)
CET - це функція безпеки, реалізована на апаратному рівні, призначена для запобігання поширеним атакам на перехоплення управління, таким як Return-Oriented Programming (ROP) та Jump-Oriented Programming (JOP). Ці типи атак маніпулюють потоком виконання програми, щоб виконати шкідливий код або з'єднати частини безпечного коду таким чином, щоб виконати шкідливу дію.
CET вводить дві основні функції: Indirect Branch Tracking (IBT) та Shadow Stack.
- IBT забезпечує, що непрямі переходи та виклики здійснюються до дійсних цілей, які явно позначені як законні призначення для непрямих гілок. Це досягається за допомогою нового набору інструкцій, який позначає дійсні цілі, запобігаючи зловмисникам від перенаправлення потоку управління до довільних місць.
- Shadow Stack - це механізм, який забезпечує цілісність адрес повернення. Він зберігає захищену, приховану копію адрес повернення окремо від звичайного стеку викликів. Коли функція повертається, адреса повернення перевіряється на відповідність з shadow stack, запобігаючи зловмисникам від перезапису адрес повернення на стеку для перехоплення потоку управління.
Shadow Stack
Shadow stack - це спеціалізований стек, що використовується виключно для зберігання адрес повернення. Він працює разом зі звичайним стеком, але захищений і прихований від нормального виконання програми, що ускладнює зловмисникам маніпуляції з ним. Основна мета shadow stack - забезпечити виявлення будь-яких змін адрес повернення на звичайному стеку до їх використання, ефективно зменшуючи ризик атак ROP.
How CET and Shadow Stack Prevent Attacks
ROP та JOP атаки покладаються на можливість перехоплення потоку управління програми, використовуючи вразливості, які дозволяють їм перезаписувати вказівники або адреси повернення на стеку. Направляючи потік до послідовностей існуючих кодових гаджетів або гаджетів орієнтованого на повернення програмування, зловмисники можуть виконувати довільний код.
- Функція IBT CET значно ускладнює ці атаки, забезпечуючи, що непрямі гілки можуть стрибати лише до адрес, які були явно позначені як дійсні цілі. Це робить неможливим для зловмисників виконувати довільні гаджети, розкидані по бінарному файлу.
- Shadow stack, з іншого боку, забезпечує, що навіть якщо зловмисник може перезаписати адресу повернення на звичайному стеку, невідповідність буде виявлена при порівнянні пошкодженої адреси з безпечною копією, збереженою в shadow stack, під час повернення з функції. Якщо адреси не збігаються, програма може завершити роботу або вжити інших заходів безпеки, запобігаючи успіху атаки.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.