mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
51 lines
7.3 KiB
Markdown
51 lines
7.3 KiB
Markdown
# CET та Тіньовий Стек
|
||
|
||
{% hint style="success" %}
|
||
Вивчайте та практикуйте Хакінг AWS: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Тренування HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Вивчайте та практикуйте Хакінг GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Тренування HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Підтримайте HackTricks</summary>
|
||
|
||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Поширюйте хакерські трюки, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв GitHub.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
## Технологія Захисту Потоку Керування (CET)
|
||
|
||
**CET** - це функція безпеки, реалізована на рівні апаратури, яка призначена для запобігання типовим атакам на перехід потоку керування, таким як **Return-Oriented Programming (ROP)** та **Jump-Oriented Programming (JOP)**. Ці типи атак маніпулюють потоком виконання програми для виконання шкідливого коду або ланцюжком з'єднувати шматки безпечного коду так, щоб виконати шкідливу дію.
|
||
|
||
CET вводить дві основні функції: **Відстеження Непрямих Гілок (IBT)** та **Тіньовий Стек**.
|
||
|
||
* **IBT** забезпечує, що непрямі стрибки та виклики виконуються до дійсних цілей, які явно позначені як законні призначення для непрямих гілок. Це досягається за допомогою нового набору інструкцій, які позначають дійсні цілі, тим самим запобігаючи атакам відхилення потоку керування до довільних місць.
|
||
* **Тіньовий Стек** - це механізм, який забезпечує цілісність адрес повернення. Він зберігає захищену, приховану копію адрес повернення окремо від звичайного стеку викликів. Коли функція повертається, адреса повернення перевіряється на відповідність тіньовому стеку, запобігаючи атакам на перезапис адрес повернення на стеці для захоплення потоку керування.
|
||
|
||
## Тіньовий Стек
|
||
|
||
**Тіньовий стек** - це **окремий стек, який використовується виключно для зберігання адрес повернення**. Він працює разом із звичайним стеком, але захищений та прихований від звичайного виконання програми, що ускладнює втручання з боку атакувальників. Основна мета тіньового стеку - забезпечити виявлення будь-яких модифікацій адрес повернення на звичайному стеці перед їх використанням, ефективно запобігаючи атакам ROP.
|
||
|
||
## Як CET та Тіньовий Стек Запобігають Атакам
|
||
|
||
**Атаки ROP та JOP** ґрунтуються на можливості захоплення потоку керування програми, використовуючи вразливості, які дозволяють перезаписувати вказівники або адреси повернення на стеці. Направляючи потік до послідовностей існуючих кодових гаджетів або гаджетів, орієнтованих на повернення, атакувальники можуть виконувати довільний код.
|
||
|
||
* Функція **IBT CET** робить ці атаки значно складнішими, забезпечуючи, що непрямі гілки можуть стрибати лише на адреси, які були явно позначені як дійсні цілі. Це робить неможливим виконання атак, коли гаджети розповсюджені по всьому бінарному коді.
|
||
* **Тіньовий стек**, з іншого боку, забезпечує, що навіть якщо атакувальник може перезаписати адресу повернення на звичайному стеці, **розбіжність буде виявлена** при порівнянні пошкодженої адреси з безпечною копією, збереженою в тіньовому стеці при поверненні з функції. Якщо адреси не співпадають, програма може завершитися або вжити інші заходи безпеки, запобігаючи успіху атаки.
|
||
|
||
{% hint style="success" %}
|
||
Вивчайте та практикуйте Хакінг AWS: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Тренування HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Вивчайте та практикуйте Хакінг GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Тренування HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Підтримайте HackTricks</summary>
|
||
|
||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Поширюйте хакерські трюки, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв GitHub.
|
||
|
||
</details>
|
||
{% endhint %}
|