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] 메모리 보호 기법을 참고해주세요.
'IT > Linux' 카테고리의 다른 글
Linux 가상 서버(LVS:Linux Virtual Server)로 부하 분산 서버(Load Balancer) 구성하기 (0) | 2023.08.06 |
---|---|
[Linux] CentOS 패키지/커널 업그레이드 관련 내용 (0) | 2017.04.18 |
[Linux] Ubuntu 패키지/커널 업그레이드 관련 내용 (0) | 2017.04.12 |
[Linux] ELF statifier 를 이용한 정적 실행 파일 생성(정적 컴파일) (0) | 2017.03.31 |
[Linux] 메모리 보호 기법 (0) | 2017.03.28 |