CET & Shadow Stack
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
CET to funkcja zabezpieczeń wdrożona na poziomie sprzętowym, zaprojektowana w celu powstrzymania powszechnych ataków na przejęcie przepływu kontroli, takich jak Return-Oriented Programming (ROP) i Jump-Oriented Programming (JOP). Te typy ataków manipulują przepływem wykonania programu, aby uruchomić złośliwy kod lub połączyć fragmenty nieszkodliwego kodu w sposób, który wykonuje złośliwą akcję.
CET wprowadza dwie główne funkcje: Śledzenie Indirect Branch (IBT) i Shadow Stack.
IBT zapewnia, że pośrednie skoki i wywołania są kierowane do ważnych celów, które są wyraźnie oznaczone jako legalne miejsca docelowe dla pośrednich gałęzi. Osiąga się to poprzez użycie nowego zestawu instrukcji, który oznacza ważne cele, zapobiegając tym samym atakującym od przekierowywania przepływu kontroli do dowolnych lokalizacji.
Shadow Stack to mechanizm, który zapewnia integralność adresów powrotu. Przechowuje zabezpieczoną, ukrytą kopię adresów powrotu oddzielnie od zwykłego stosu wywołań. Gdy funkcja zwraca, adres powrotu jest weryfikowany w porównaniu do shadow stack, co zapobiega atakującym przed nadpisywaniem adresów powrotu na stosie w celu przejęcia przepływu kontroli.
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 utrudnia atakującym manipulację. Głównym celem shadow stack jest zapewnienie, że wszelkie modyfikacje adresów powrotu na konwencjonalnym stosie są wykrywane przed ich użyciem, skutecznie łagodząc ataki ROP.
Ataki ROP i JOP polegają na możliwości przejęcia przepływu kontroli aplikacji poprzez wykorzystanie luk, które pozwalają im nadpisywać wskaźniki lub adresy powrotu na stosie. Kierując przepływ do sekwencji istniejących gadżetów kodu lub gadżetów programowania opartego na powrocie, atakujący mogą wykonywać dowolny kod.
Funkcja IBT CET znacznie utrudnia te ataki, zapewniając, że pośrednie gałęzie mogą skakać tylko do adresów, które zostały wyraźnie oznaczone jako ważne cele. To uniemożliwia atakującym wykonywanie dowolnych gadżetów rozproszonych po binarnym.
Shadow stack, z drugiej strony, zapewnia, że nawet jeśli atakujący może nadpisać adres powrotu na normalnym stosie, rozbieżność zostanie wykryta podczas porównywania uszkodzonego adresu z zabezpieczoną kopią przechowywaną w shadow stack po powrocie z funkcji. Jeśli adresy się nie zgadzają, program może zakończyć działanie lub podjąć inne środki bezpieczeństwa, zapobiegając powodzeniu ataku.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)