CET & Shadow Stack

htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요!

다른 방법으로 HackTricks를 지원하는 방법:

Control Flow Enforcement Technology (CET)

CET는 하드웨어 수준에서 구현된 보안 기능으로, Return-Oriented Programming (ROP) 및 **Jump-Oriented Programming (JOP)**과 같은 일반적인 제어 흐름 탈취 공격을 방지하는 데 사용됩니다. 이러한 유형의 공격은 프로그램의 실행 흐름을 조작하여 악성 코드를 실행하거나 악의적인 작업을 수행하는 방식으로 함정을 놓습니다.

CET는 간접 분기 추적 (IBT)Shadow Stack이라는 두 가지 주요 기능을 소개합니다.

  • IBT는 간접 점프 및 호출이 유효한 대상으로 수행되도록 보장합니다. 이는 새로운 목적지를 간접 분기의 유효한 대상으로 표시하는 새로운 명령어 세트를 사용하여 달성됩니다. 이를 통해 공격자가 제어 흐름을 임의의 위치로 전환하는 것을 방지합니다.

  • Shadow Stack은 반환 주소의 무결성을 제공하는 메커니즘입니다. 일반 호출 스택과 별도로 반환 주소의 안전하고 숨겨진 사본을 유지합니다. 함수가 반환될 때 반환 주소가 그림자 스택과 대조되어 공격자가 제어 흐름을 탈취하기 위해 스택에 반환 주소를 덮어쓰는 것을 방지합니다.

Shadow Stack

그림자 스택반환 주소만 저장하는 데 전용으로 사용되는 스택입니다. 일반 스택과 함께 작동하지만 일반 프로그램 실행에서 보호되고 숨겨져 있어 공격자가 개입하기 어렵습니다. 그림자 스택의 주요 목표는 일반 스택의 반환 주소에 대한 수정이 사용되기 전에 감지되어 ROP 공격을 효과적으로 완화하는 것입니다.

CET 및 Shadow Stack이 공격을 방지하는 방법

ROP 및 JOP 공격은 애플리케이션의 제어 흐름을 탈취할 수 있는 능력에 의존합니다. 이는 스택의 포인터 또는 반환 주소를 덮어쓸 수 있는 취약점을 활용합니다. 기존 코드 가젯이나 반환 지향 프로그래밍 가젯의 시퀀스로 흐름을 이동시킴으로써 공격자는 임의의 코드를 실행할 수 있습니다.

  • CET의 IBT 기능은 간접 분기가 명시적으로 유효한 대상으로 표시된 주소로만 이동할 수 있도록 보장하여 이러한 공격을 상당히 어렵게 만듭니다. 이를 통해 공격자가 이진 파일 전체에 걸쳐 퍼져 있는 임의의 가젯을 실행하는 것이 불가능해집니다.

  • 반면 그림자 스택은 공격자가 일반 스택에 반환 주소를 덮어쓸 수 있더라도, 함수에서 반환할 때 그림자 스택에 저장된 안전한 사본과 비교하여 불일치가 감지됩니다. 주소가 일치하지 않으면 프로그램이 종료되거나 다른 보안 조치를 취하여 공격을 방지합니다.

Last updated