티스토리 뷰

1. ASLR(Address Space Layout Randomization) 설정 값 확인 및 변경

ASLR(Address Space Layout Randomization) 설정 값을 확인합니다.

 # cat /proc/sys/kernel/randomize_va_space

 

randomize_va_space=0 //ASLR 해제

randomize_va_space=1 //랜덤 스택 & 라이브러리 활성화

randomize_va_space=2 //랜덤 스택 & 라이브러리 & 힙 활성화

 

ASLR(Address Space Layout Randomization) 설정 값을 변경합니다. 임시로 변경하는 방법이기 때문에 재부팅되면 설정 값이 기본 값(2)으로 변경됩니다.

 # echo 0 > /proc/sys/kernel/randomize_va_space
 # echo 1 > /proc/sys/kernel/randomize_va_space
 # echo 2 > /proc/sys/kernel/randomize_va_space

 

2. DEP / NX(Not Excutable) 설정 값 확인 및 변경

DEP / NX(Not Excutable) 설정 값을 확인합니다. 

 # cat /proc/sys/kernel/exec-shield

 

exec-shield=0 // ExecShield 보호 비활성화

exec-shield=1 // ExecShield 보호 활성화

 

DEP / NX(Not Excutable) 설정 값을 변경합니다. 임시로 변경하는 방법이기 때문에 재부팅되면 설정 값이 기본 값(1)으로 변경됩니다.

# echo 0 > /proc/sys/kernel/exec-shield
 # echo 1 > /proc/sys/kernel/exec-shield

 

3. sysctl 명령을 이용한 설정값 확인 및 변경

sysctl 명령은 커널 변수의 값을 제어하여 시스템을 최적화 할 수 있는 명령으로 시스템의 /proc/sys 디렉토리 밑에 있는 매개변수를 제어합니다. echo 명령을 사용하거나 sysctl 명령을 이용하여 /proc 디렉토리 밑에 있는 항목을 직접 편집하거나 설정할 수 있습니다.

 

sysctl 옵션
 -a : 현재 커널 매개변수와 값을 보여줍니다
 -p : sysctl 환경변수파일(기본값은 /etc/sysctl.conf)의 설정상태를 보여줍니다
 -n : 특정키에 대한 값을 보여줍니다.
 -w variable=value : 변수에 값을 설정합니다.
 -A : 테이블형재로 설정가능한 파라미터를 보여줍니다. -a 와 같습니다.

 

sysctl 명령을 이용하여 ASLR(Address Space Layout Randomization) 설정 값과 DEP / NX(Not Excutable) 설정 값을 확인합니다.

# sysctl -a | grep -E "exec-|randomi"
 kernel.exec-shield=1
 kernel.randomize_va_space=2

 

sysctl 명령을 이용하여 ASLR(Address Space Layout Randomization) 설정 값을 변경합니다. 임시로 변경하는 방법이기 때문에 재부팅되면 설정 값이 기본 값(2)으로 변경됩니다.

# sysctl -w kernel.randomize_va_space=0
 # sysctl -w kernel.randomize_va_space=1
 # sysctl -w kernel.randomize_va_space=2

 

sysctl 명령을 이용하여 DEP / NX(Not Excutable) 설정 값을 변경합니다. 임시로 변경하는 방법이기 때문에 재부팅되면 설정 값이 기본 값(1)으로 변경됩니다.

# sysctl -w kernel.exec-shield=0
 # sysctl -w kernel.exec-shield=1

 

시스템을 시작할 때부터 ASLR(Address Space Layout Randomization) 설정과 DEP / NX(Not Excutable) 설정 해제를 자동으로 설정하는 방법

/etc/sysctl.conf 파일 안에 아래 내용을 추가한 후 재부팅을 합니다.

# vi /etc/sysctl.conf
 kernel.randomize_va_space=0
 kernel.exec-shield=0

 

다른 메모리 보호 기법은 [Linux] 메모리 보호 기법을 참고해주세요.

댓글
공지사항