이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

보안

ASLR 이란?

이쿠우우 2021. 8. 27. 20:29
반응형

ASLR

 

ASLR 이란?

Address Space Layout Randomization

프로세스의 가상주소 공간에 어떤 object 가 매핑될 때 

그 위치를 프로그램 실행 시 마다 랜덤하게 변경하는 보안 기법

메모리 해킹 방지를 위해 Windows Vista 부터 지원된 기법

스택이나 힙, 라이브러리 등의 주소를 랜덤으로 프로세스 주소 공간에 배치하는 기법

프로세스를 실행 할 때 마다 데이터의 주소가 변경됨

 

ASLR 을 사용하는 이유

user32.dll 와 같이 windows 에서 제공해 주는 라이브러리 안에

dll 을 import 하는 LoadLibrary 함수와 GetProcAddress 함수가 있음.

 

이 함수를 사용하는 법은

고정 라이브러리 메모리 주소가 있어서 

항상 해당 메모리 주소로부터 + 얼마를 하여

LoadLibrary 함수와 GetProcAddress 함수 메모리 주소를 예측할 수 있었음.

예) 0x100000 = user32.dll 메모리 주소 

     0x100000 + 0x100 = LoadLibrary 함수 메모리 주소

     0x100000 + 0x200 = GetProcAddress 함수 메모리 주소

 

악의 적인 사용자의 경우

상위 처럼 함수의 메모리 주소를 알 수 있으니

악의 적으로 실행 파일에서 어셈블리 언어 공격을 해서 

본인 실행 라이브러리를 수행하는 공격을 하기도 함.

 

이러한 과정이 가능한것은

user32.dll 라이브러리가 올라가는 메모리주소가 항상 같아서 가능했었는데

 

이 메모리 주소를 랜덤하게 변경해주는것이 

ASLR 기능임.

 

 

 

 

 

반응형

'보안' 카테고리의 다른 글

PKI 리서치 - 암호화 알고리즘 개념  (0) 2022.04.02
DEP(Data Execution Prevention) 이란?  (0) 2021.08.27
OpenSSL를 이용한 암/복호화, 해쉬  (0) 2021.02.23
해쉬 (HASH)  (0) 2021.02.23
보안  (0) 2021.02.23