System/Memory Mitigations (3) 썸네일형 리스트형 NX Bit NX Bit(Never eXecute bit) : 프로세스 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 기술NX 특성으로 지정된 모든 메모리 구역은 데이터 저장을 위해서만 사용되며, 프로세스 명령어가 그 곳에 상주하지 않음으로써 실행되지 않도록 만들어 준다. DEP(Data Execution Prevention) : 마이크로소프트 윈도우 운영체제에 포함된 보안 기능이며, 악의적인 코드가 실행되는 것을 방지하기 위해 메모리를 추가로 확인하는 하드웨어 및 소프트웨어 기술하드웨어 DEP : 메모리에 명시적으로 실행 코드가 포함되어 있는 경우를 제외하고 프로세스의 모든 메모리 위치에서 실행될 수 없도록 표시소프트웨어 DEP : CPU가 하드웨어 DEP를 지원하지 않을 경우 사용 Examp.. PIE PIE(Position-Independent Executable) : ASLR이 코드 영역에도 적용되게 해주는 기술 PIE 설정gcc -no-pie PIE.c -o NoPIEgcc를 할 때 -no-pie를 설정해주면 PIE 기법이 적용되지 않는다.gcc PIE.c -o PIE아무런 설정을 하지 않을 경우 default로 PIE가 적용된다. Example#include #include #include char *global = "Lazenca.0x0";int main(){ char *heap = malloc(100); char *stack[] = {"LAZENCA.0x0"}; printf("[Heap] address: %p\n", heap); printf("[Stack] addres.. ASLR ASLR(Address Space Layout Randomization) : 바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 등을 임의의 주소에 할당하는 보호 기법 ASLR 설정echo [0|1|2] > /proc/sys/kernel/randomize_va_space0 : ASLR 해제1 : 랜덤 스택 & 랜덤 라이브러리 설정2 : 랜덤 스택 & 랜덤 라이브러리 & 랜덤 힙 설정 ASLR 확인cat /proc/sys/kernel/randomize_va_space Example#include #include #include char *global = "Lazenca.0x0";int main(){ char *heap = malloc(100); char *stack[] = {"LAZENCA.0.. 이전 1 다음