본문 바로가기
IT기술노트/디지털보안

ASLR (Address Space Layout Randomization)

by 비트코기 2021. 6. 24.

I. 주소공간배열 무작위화, ASLR의 개념

   - 프로세스를 실행할떄마다 스택, 힙, 라이브러리 등 데이터영역의 주소를 무작위화하여 해킹등의 공격으로부터 메모리를 보호하는 기법

   - 같은 방법으로 바이너리 영역에 대한 무작위화 기법으로 PIE 사용


II. ASLR의 주소 변환 절차 및 절차 설명

가. ASLR의 주소 변환 절차

나. ASLR의 주소 변환 절차 설명

구분 절차 설명
Allocation 1. 오프셋 선택 - OS, 프로그램 수행 중 다른 라이브러리 배치 가능한 Offset 선택
2. MSB 랜덤계산 제외 - 스택과 힙이 충돌되지 않도록 배치
- 라이브러리가 스택과 힙이 충돌하지 않도록 배치
Re-Randomize 3. 셔플 - 가상메모리 내 Stack base와 Heap base 주소 셔플
4 무작위화 - 주소의 Image Base, 즉 시작주소 변경

 

III. ASLR의 우회기법 및 대응방법

우회기법 설명 대응방법
Brute Force - 규칙을 파악해서 여러번 시도하면 리턴 주소가 덮어 씌여지는 경우가 존재 - NOP 슬라이드 방지
Non ASLR Module - 프로그램 안에서도 ASLR 적용되지 않은 모듈(DLL ) 찾아 공격 - EMET 도구 등으로 강제 ASLR 적용
Heap Spray - 공간의 메모리가 해제되는 순간에 같은 크기의 악성코드를 할당하면 주소에 악성코드 할당 - NOP 슬라이드 방지
Info Leak - 스택의 메모리를 읽어오는 버그( 다른 취약점) 이용해 랜덤화된 메모리 주소를 읽어서 사용 - 알려지지 않은 취약점(제로데이) 대응
반응형

'IT기술노트 > 디지털보안' 카테고리의 다른 글

Log4shell (CVE-2021-44228)  (0) 2021.12.12
OWASP, 2021 OWASP TOP 10  (0) 2021.11.17
토르 네트워크(Tor Network)  (0) 2021.11.17
동형암호 (Homomorphic Encryption, HE)  (0) 2021.08.19
가명정보 결합방식  (0) 2021.06.11
Bi-Ba Model  (0) 2021.05.13
Bell-Lapadula Model  (0) 2021.05.13
연결함정(Connection Trap)  (0) 2021.03.07

댓글