ASLR

IT위키
Itwiki (토론 | 기여)님의 2018년 8월 12일 (일) 17:50 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
인쇄용 판은 더 이상 지원되지 않으며 렌더링 오류가 있을 수 있습니다. 브라우저 북마크를 업데이트해 주시고 기본 브라우저 인쇄 기능을 대신 사용해 주십시오.
Address Space Layout Randomization

메모리상의 공격을 어렵게 하기 위해 스택이나 힙, 라이브러리 등의 주소를 랜덤으로 프로세스 주소 공간에 배치하여 실행할 때 마다 데이터 주소가 바뀌게 하는 기법

우회 기법

  • BruteForce
    • 메모리가 완전히 랜덤화 되는 것이 아니다. 일정한 간격으로 할당이되거나 주소의 일부 위치가 특정 배수로 할당되는 등 규칙을 파악할 수 있는 경우가 많음
    • 규칙을 파악해서 여러번 시도 하면 리턴 주소가 덮어씌여지는 경우가 존재함
  • Non ASLR Module
    • ASLR은 일종의 보안 프로그램으로 컴파일 시 명시적으로 로드해 줘야 한다. 한 프로그램 안에서도 ASLR이 안걸린 모듈(dll 등)을 찾아 공략할 수 있다.
  • HeapSpray
    • 힙 공간의 메모리가 해제되는 순간에 같은 크기의 악성코드를 할당하면 빈 주소에 악성코드가 할당되게 된다. 정확한 크기를 모를 경우 다양하게 padding을 부여하여 뿌려줄 수 있다.
  • Info Leak = Memory Leak
    • 스택의 메모리를 읽어오는 버그(또 다른 취약점)를 이용해 랜덤화된 메모리 주소를 읽어서 사용한다.

관련 항목