728x90
반응형
Definition | 정의
Address Space Layout Randomization
바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 등을 임의의 주소에 할당하는 기법
커널에서 지원하는 보호기법으로, 운영체제마다 ASLR이 구현되어 있는 방식이 다르다
리눅스를 기반으로 설명할 예정
ASLR 확인하기
명령어
cat /proc/sys/kernel/randomize_va_space
- 0 : No ASLR
- 1 : Conservative Randomization - Stack, Library, vdso등
- 2 : Conservative Randomization + brk : brk로 할당한 영역까지
checksec
리눅스의 경우, checksec로 확인할 수 있음
대부분의 보호 기법은 checksec로 확인 가능하다 (window의 경우 winchecksec)
ASLR 특징
- 바이너리를 실핼할 때 마다 stack, heap, 라이브러리 영역의 주소들이 변경됨
- 코드 영역의 주소는 바뀌지 않음
- 리눅스는 ASLR이 적용됐을 때, 페이지 단위로 임의 주소에 매핑하므로 하위 4비트는 같음
- 라이브러리 영역의 base 주소와 특정 함수의 주소차이는 항상 같음
reference
- Dreamhack SystemHacking > Mitigation: NX & ASLR
728x90
반응형
'Hacking > Pwnable' 카테고리의 다른 글
[Exploit] Return Oriented Programming (ROP chain) (0) | 2024.09.19 |
---|---|
[Exploit] Return to Library (0) | 2024.09.06 |
[Mitigation] NX (0) | 2024.08.25 |
[Mitigation] Stack Canary (0) | 2024.08.24 |
gdb를 pwntools와 디버깅하기 (0) | 2024.07.26 |