CET & Shadow Stack
Reading time: 2 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Control Flow Enforcement Technology (CET)
CET는 Return-Oriented Programming (ROP) 및 **Jump-Oriented Programming (JOP)**과 같은 일반적인 제어 흐름 탈취 공격을 저지하기 위해 하드웨어 수준에서 구현된 보안 기능입니다. 이러한 유형의 공격은 프로그램의 실행 흐름을 조작하여 악성 코드를 실행하거나 무해한 코드 조각을 연결하여 악의적인 작업을 수행합니다.
CET는 두 가지 주요 기능을 도입합니다: 간접 분기 추적 (IBT) 및 섀도우 스택.
- IBT는 간접 점프 및 호출이 유효한 대상으로 이루어지도록 보장하며, 이는 간접 분기의 합법적인 목적지로 명시적으로 표시됩니다. 이는 유효한 대상을 표시하는 새로운 명령어 집합을 사용하여 달성되며, 공격자가 제어 흐름을 임의의 위치로 전환하는 것을 방지합니다.
- 섀도우 스택은 반환 주소의 무결성을 제공하는 메커니즘입니다. 이는 일반 호출 스택과 분리된 안전하고 숨겨진 반환 주소의 복사본을 유지합니다. 함수가 반환될 때, 반환 주소는 섀도우 스택과 비교하여 검증되며, 공격자가 스택의 반환 주소를 덮어쓰는 것을 방지합니다.
Shadow Stack
섀도우 스택은 반환 주소를 저장하기 위해 전용으로 사용되는 스택입니다. 이는 일반 스택과 함께 작동하지만 정상적인 프로그램 실행으로부터 보호되고 숨겨져 있어 공격자가 조작하기 어렵습니다. 섀도우 스택의 주요 목표는 기존 스택의 반환 주소에 대한 수정 사항이 사용되기 전에 감지되도록 하여 ROP 공격을 효과적으로 완화하는 것입니다.
How CET and Shadow Stack Prevent Attacks
ROP 및 JOP 공격은 스택에서 포인터나 반환 주소를 덮어쓸 수 있는 취약점을 활용하여 애플리케이션의 제어 흐름을 탈취할 수 있는 능력에 의존합니다. 공격자는 기존 코드 가젯이나 반환 지향 프로그래밍 가젯의 시퀀스로 흐름을 유도하여 임의의 코드를 실행할 수 있습니다.
- CET의 IBT 기능은 간접 분기가 명시적으로 유효한 대상으로 표시된 주소로만 점프할 수 있도록 보장함으로써 이러한 공격을 상당히 어렵게 만듭니다. 이는 공격자가 바이너리에 분산된 임의의 가젯을 실행할 수 없게 만듭니다.
- 반면에 섀도우 스택은 공격자가 일반 스택에서 반환 주소를 덮어쓸 수 있더라도, 함수에서 반환할 때 손상된 주소와 섀도우 스택에 저장된 안전한 복사본을 비교할 때 불일치가 감지됩니다. 주소가 일치하지 않으면 프로그램이 종료되거나 다른 보안 조치를 취하여 공격이 성공하지 못하도록 합니다.
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.