이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

보안

DEP(Data Execution Prevention) 이란?

이쿠우우 2021. 8. 27. 20:30
반응형

DEP(Data Execution Prevention)

 

DEP 란?

Data Execution Prevention

데이터 실행 방지 기법

실행 권한이 없는 메모리 영역의 코드가 실행되지 못하도록 방지하는 기법

스택이나 힙영역에서의 shell 코드 실행을 막아주는 메모리 보호 기법

[종류]

HardWare DEP : 가상 메모리 페이지 단위로 해당 메모리에서 코드를 실행 할 수 없도록 함

SoftWare DEP : SEH overwirte 같이 특정 유형의 악의적인 코드 공격을 막음

 

 

DEP를 사용하는 이유

어셈블리 공격 코드와  Buffer overflow 공격을 통해

Heap 영역, 스택 또는 private 영역 에서 악의적인 코드를 실행 시키는 공격방법이 존재하는데

이 공격법을 막는 방법이

DEP 기법

 

 

 

DEP 우회 공격 기법

ROP (Return Oriented Programming)

DEP를 통해 보호된 메모리 영역에서 공격자가 삽입한 코드 실행은 불가능 하지만

이미 로드된 (정상적으로 실행 가능한 영역에서 추출된) 명령어 코드는 사용이 가능함

즉 새로운 코드를 사용하는 것이 아니라

이미 프로그램 내부에 존재하는 코드 조각들을 끼워 맞추는 기술

 

Windows API

VirtualAlloc

HeapAlloc

SetProcessDEPPolicy

 

상위 두가지 기법을 동시에 사용하면

DEP 를 뚫고 공격이 가능함

 

반응형