시스템해킹&보안/리눅스 메모리 보호기법

리눅스 메모리 보호기법

cyanhe_wh 2019. 9. 2. 16:48
반응형

리눅스 메모리 보호 기법은 Memory Curruption 공격인 Buffer Overflow를 보호하기 위한 목적으로 생기게 되었다.

메모리 보호 기법은 ASLR, NX, ASCII-Armor, Stack canary가 존재한다.

그럼 이제 각각의 보호 기법들이 하는 역할을 알아보겠다.

 

첫 번째 ASLR

 

ASLR은 Address Space Layout Randomization의 약어로 메모리 상의 공격을 어렵게 하기 위해 실행 시 스택, 힙, 라이브러리 등의 주소를 랜덤으로 프로세스에게 할당하여 주소 공간을 배치한다.

실행할 때마다 주소 값이 달라지므로 공격자 입장에서는 공격할 주소를 알아내기 어렵게 된다.

 

아래 그림을 비교해보면 한번 실행한 것과 두 번 실행했을 때 주소 값들이 달라지는 것을 볼 수 있다.

ASLR 적용 시 주소 값 비교

메모리 값이 계속 변경되지 않도록 ASLR 기법을 해제하는 방법이 있다.

명령어는 echo 0 > /proc/sys/kernel/randomize_va_space 이다.

randomize_va_space에 값이 어떻게 들어가느냐에 따라 ASLR이 적용되는지 결정된다.

randomize_va_sapce = 0 이면 ASLR 해제

randomize_va_sapce = 1 이면 스택 & 라이브러리  ASLR 설정

randomize_va_sapce = 2 이면 스택 & 라이브러리 & 힙  ASLR 설정

 

한번 ASLR 해제하고 주소 값을 비교해보겠다.

ASLR 해제 후 주소 값 비교

그냥 똑같은 사진이라고 볼 수 있을 만큼 다를게 없다.

반응형

'시스템해킹&보안 > 리눅스 메모리 보호기법' 카테고리의 다른 글

리눅스 PLT와 GOT  (0) 2019.09.02