반응형
리눅스 메모리 보호 기법은 Memory Curruption 공격인 Buffer Overflow를 보호하기 위한 목적으로 생기게 되었다.
메모리 보호 기법은 ASLR, NX, ASCII-Armor, Stack canary가 존재한다.
그럼 이제 각각의 보호 기법들이 하는 역할을 알아보겠다.
첫 번째 ASLR
ASLR은 Address Space Layout Randomization의 약어로 메모리 상의 공격을 어렵게 하기 위해 실행 시 스택, 힙, 라이브러리 등의 주소를 랜덤으로 프로세스에게 할당하여 주소 공간을 배치한다.
실행할 때마다 주소 값이 달라지므로 공격자 입장에서는 공격할 주소를 알아내기 어렵게 된다.
아래 그림을 비교해보면 한번 실행한 것과 두 번 실행했을 때 주소 값들이 달라지는 것을 볼 수 있다.
메모리 값이 계속 변경되지 않도록 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 해제하고 주소 값을 비교해보겠다.
그냥 똑같은 사진이라고 볼 수 있을 만큼 다를게 없다.
반응형
'시스템해킹&보안 > 리눅스 메모리 보호기법' 카테고리의 다른 글
리눅스 PLT와 GOT (0) | 2019.09.02 |
---|