문제
**메모리 보호 우회 공격(Memory Protection Bypass Attack)**의 주요 기법인 **ROP(Return-Oriented Programming)**와 **JOP(Jump-Oriented Programming)**의 공격 원리를 각각 설명하고, 이러한 고급 메모리 공격을 방어하기 위한 하드웨어 및 소프트웨어 기반 대응 방안을 4가지 이상 서술하시오.
정답
ROP는 기존 코드의 return 명령어로 끝나는 가젯(gadget)들을 체이닝하여 스택의 return address를 조작해 임의 코드 실행을 달성하는 공격이다. JOP는 간접 점프 명령어로 끝나는 가젯들을 이용하여 jump table을 조작해 코드 실행 흐름을 변경하는 공격이다. 대응 방안으로는 1) ASLR(Address Space Layout Randomization)로 메모리 레이아웃 무작위화, 2) DEP/NX bit으로 데이터 영역 실행 방지, 3) CFI(Control Flow Integrity)로 제어 흐름 무결성 검증, 4) Intel CET(Control-flow Enforcement Technology) 등 하드웨어 기반 제어 흐름 보호, 5) 스택 카나리(Stack Canary)로 스택 오버플로우 탐지 등이 있다.
해설
ROP/JOP는 DEP 우회를 위한 고급 익스플로잇 기법이다. ROP는 기존 코드의 RET 명령어로 끝나는 코드 조각들을 연결하여 스택을 조작하고, JOP는 간접 점프를 이용해 점프 테이블을 악용한다. 현대적 방어는 ASLR로 주소 예측을 어렵게 하고, CFI로 제어 흐름의 무결성을 검증하며, 하드웨어 수준에서 Intel CET 같은 기술로 제어 흐름을 보호한다.