본문 바로가기

wargame

[메모리 보호기법]ASLR

출처

http://lazenca.net/display/TEC/02.TechNote https://bpsecblog.wordpress.com/2016/05/16/memory_protect_linux_1/



ASLR

ASLR(address Space Layout Randomization)
메모리 손상 취약점 공격을 방지 하기 위한 기술
스택, 힙, 라이브러리 등의 주소를 랜덤한 영역에 배치하여, 공격에 필요한 target address를 예측하기 어렵게 만든다.
프로그램이 실행될 때마다 각 주소들이 변경된다.

Return-to-libc 공격을 하기 위해서는 공유 라이브러리에서 사용하는 함수의 주소를 알아야 한다.
ASLR의 적용으로 프로그램이 호출될 때마다 스택, 힙, 라이브러리 영역의 주소가 변경되면 공격이 어려워진다.

vi aslr.c


echo 0 > /proc/sys/kernel/randomize_va_space (heap, stack, libc의 주소가 변경되지 않음)


echo 1 > /proc/sys/kernel/randomize_va_space (stack, libc의 주소가 변경됨)


echo 2 > /proc/sys/kernel/randomize_va_space (heap, stack, libc의 주소가 변경됨


.data 영역의 주소를 매번 변경하기 위해서는 PIE를 적용해야 한다.

'wargame' 카테고리의 다른 글

[메모리 보호기법]RELRO  (0) 2019.12.01
[메모리 보호기법]Canaries  (0) 2019.12.01
[메모리 보호기법]NX  (0) 2019.12.01
[BOF]simpleBOF  (0) 2019.11.27
[BOF]justBOF  (0) 2019.11.27