hacktricks/binary-exploitation/common-binary-protections-and-bypasses/cet-and-shadow-stack.md

52 lines
5 KiB
Markdown
Raw Normal View History

# CET & Shadow Stack
{% hint style="success" %}
Leer & oefen AWS-hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP-hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Controleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
{% endhint %}
## Beheerstroomhandhawingstegnologie (CET)
**CET** is 'n sekuriteitskenmerk wat op hardewarevlak geïmplementeer is, ontwerp om algemene beheerstroomkapingaanvalle soos **Return-Oriented Programming (ROP)** en **Jump-Oriented Programming (JOP)** te dwarsboom. Hierdie tipes aanvalle manipuleer die uitvoeringsvloei van 'n program om skadelike kode uit te voer of om stukke benigne kode aan mekaar te koppel op 'n manier wat 'n skadelike aksie uitvoer.
CET stel twee hoofkenmerke bekend: **Indirect Branch Tracking (IBT)** en **Shadow Stack**.
* **IBT** verseker dat indirekte spronge en oproepe na geldige teikens gemaak word, wat uitdruklik gemerk is as wettige bestemmings vir indirekte takke. Dit word bereik deur die gebruik van 'n nuwe instruksiestel wat geldige teikens merk, wat aanvalle voorkom deur die beheerstroom na willekeurige plekke te verhoed.
* **Shadow Stack** is 'n meganisme wat integriteit vir terugkeeradresse bied. Dit hou 'n beveiligde, verborge kopie van terugkeeradresse apart van die gewone oproepstapel. Wanneer 'n funksie terugkeer, word die terugkeeradres gevalideer teen die skadustapel, wat aanvalle voorkom deur terugkeeradresse op die stapel te oorskryf om die beheerstroom te kap.
## Shadow Stack
Die **shadow stack** is 'n **toegewyde stapel wat uitsluitlik gebruik word vir die stoor van terugkeeradresse**. Dit werk saam met die gewone stapel maar is beskerm en weggesteek van normale programuitvoering, wat dit moeilik maak vir aanvallers om daarmee te knoei. Die primêre doel van die shadow stack is om te verseker dat enige wysigings aan terugkeeradresse op die konvensionele stapel opgespoor word voordat hulle gebruik kan word, wat ROP-aanvalle effektief verminder.
## Hoe CET en Shadow Stack Aanvalle Voorkom
**ROP- en JOP-aanvalle** steun op die vermoë om die beheerstroom van 'n toepassing te kap met behulp van kwesbaarhede wat hulle toelaat om wysers of terugkeeradresse op die stapel te oorskryf. Deur die vloei te rig op bestaande kodesnippets of terugkeer-georiënteerde programmeringskodesnitte, kan aanvallers arbitrêre kode uitvoer.
* **CET se IBT**-kenmerk maak hierdie aanvalle aansienlik moeiliker deur te verseker dat indirekte takke slegs na adresse kan spring wat uitdruklik gemerk is as geldige teikens. Dit maak dit onmoontlik vir aanvallers om arbitrêre kodesnitte oor die binêre versprei uit te voer.
* Die **shadow stack** verseker daarenteen dat selfs as 'n aanvaller 'n terugkeeradres op die normale stapel kan oorskryf, die **afwyking opgespoor sal word** wanneer die gekorrigeerde adres vergelyk word met die veilige kopie wat in die shadow stack gestoor word tydens die terugkeer van 'n funksie. As die adresse nie ooreenstem nie, kan die program beëindig word of ander sekuriteitsmaatreëls neem om te voorkom dat die aanval slaag.
{% hint style="success" %}
Leer & oefen AWS-hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP-hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Controleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>
{% endhint %}