mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
51 lines
5.1 KiB
Markdown
51 lines
5.1 KiB
Markdown
# CET & Shadow Stack
|
|
|
|
{% hint style="success" %}
|
|
Ucz się i praktykuj Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Ucz się i praktykuj Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Wesprzyj HackTricks</summary>
|
|
|
|
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Dziel się sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
## Technologia Wzmocnienia Kontroli Przepływu (CET)
|
|
|
|
**CET** to funkcja bezpieczeństwa zaimplementowana na poziomie sprzętowym, zaprojektowana w celu zwalczania powszechnych ataków na kontrolę przepływu, takich jak **Return-Oriented Programming (ROP)** i **Jump-Oriented Programming (JOP)**. Te rodzaje ataków manipulują przepływem wykonania programu, aby wykonać złośliwy kod lub połączyć ze sobą fragmenty nieszkodliwego kodu w taki sposób, aby wykonać złośliwą akcję.
|
|
|
|
CET wprowadza dwie główne funkcje: **Indirect Branch Tracking (IBT)** i **Shadow Stack**.
|
|
|
|
* **IBT** zapewnia, że skoki i wywołania pośrednie są wykonywane do prawidłowych celów, które są jawnie oznaczone jako legalne miejsca docelowe dla skoków pośrednich. Osiąga się to za pomocą nowego zestawu instrukcji, które oznaczają prawidłowe cele, uniemożliwiając atakującym zmianę przepływu kontroli do dowolnych lokalizacji.
|
|
* **Shadow Stack** to mechanizm zapewniający integralność adresów powrotu. Przechowuje zabezpieczoną, ukrytą kopię adresów powrotu oddzielnie od zwykłego stosu wywołań. Gdy funkcja zwraca wartość, adres powrotu jest weryfikowany względem shadow stack, uniemożliwiając atakującym nadpisanie adresów powrotu na stosie w celu przejęcia kontroli nad przepływem.
|
|
|
|
## Shadow Stack
|
|
|
|
**Shadow stack** to **dedykowany stos używany wyłącznie do przechowywania adresów powrotu**. Działa obok zwykłego stosu, ale jest chroniony i ukryty przed normalnym wykonaniem programu, co sprawia, że trudno jest atakującym manipulować nim. Głównym celem shadow stack jest zapewnienie, że wszelkie modyfikacje adresów powrotu na zwykłym stosie zostaną wykryte, zanim zostaną użyte, skutecznie łagodząc ataki ROP.
|
|
|
|
## Jak CET i Shadow Stack Zapobiegają Atakom
|
|
|
|
Ataki **ROP i JOP** polegają na zdolności przejęcia kontroli nad przepływem aplikacji poprzez wykorzystanie podatności, które pozwalają na nadpisanie wskaźników lub adresów powrotu na stosie. Kierując przepływ do sekwencji istniejących gadżetów kodowych lub gadżetów programowania zorientowanego na powroty, atakujący mogą wykonać dowolny kod.
|
|
|
|
* Funkcja **IBT CET** znacznie utrudnia te ataki, zapewniając, że skoki pośrednie mogą skakać tylko do adresów, które zostały jawnie oznaczone jako prawidłowe cele. Uniemożliwia to atakującym wykonanie dowolnych gadżetów rozproszonych w całym pliku binarnym.
|
|
* **Shadow stack** z kolei zapewnia, że nawet jeśli atakujący może nadpisać adres powrotu na normalnym stosie, **różnica zostanie wykryta** podczas porównywania skorumpowanego adresu z bezpieczną kopią przechowywaną w shadow stack podczas powrotu z funkcji. Jeśli adresy się nie zgadzają, program może zakończyć działanie lub podjąć inne środki bezpieczeństwa, uniemożliwiając atakowi powodzenie.
|
|
|
|
{% hint style="success" %}
|
|
Ucz się i praktykuj Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Ucz się i praktykuj Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Wesprzyj HackTricks</summary>
|
|
|
|
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Dziel się sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
|
|
|
|
</details>
|
|
{% endhint %}
|