Memory/Protection tech.
NX bit
LYHyoung
2022. 12. 28. 18:10
728x90
NX bit
No(or Never) eXecute bit의 줄임말로 실행 방지 비트이다.
메모리에 Write 권한과 Execute 권한을 동시에 부여하지 않는 기술로 해당 프로그램의 공격을 어렵게 한다.
프로세스 명령어나 코드, 데이터의 저장을 위한 메모리 영역을 따로 분리하는 CPU의 기술이다.
NX bit가 적용된 메모리 구역은 데이터 저장을 위해서만 사용되고, 프로세서 명령어가 실행되지 않도록 한다.
DEP
Data Execution Prevention의 줄임말이다. 악의적인 코드가 실행되는 것을 방지하기 위해 메모리를 추가적으로 확인하는 HW/SW 기술이다.
HW(하드웨어) DEP: 메모리에 명시적으로 실행코드가 포함되어 있는 경우를 제외하고 프로세스의 모든 메모리 위치에서 실행할 수 없도록 표시한다.
SW(소프트웨어) DEP: CPU가 하드웨어 DEP를 지원하지 않을 경우 사용한다.
공격자가 heap, stack 영역에 shellcode를 저장해 실행하기 위해선 heap과 stack 영역에 실행권한이 있어야하는데,
DEP가 적용되지 않았을 경우(DEP Disable) shell code가 실행된다.
DEP가 적용된 경우(DEP Enable) shellcode가 실행되지 않고 프로그램에서 예외처리를 한 후 프로세스가 종료된다.
728x90