Use After Free: Difference between revisions

From CS Wiki
(새 문서: ;Use After Free 특정 함수가 메모리에서 해제된 뒤 다시 호출되는 버그가 있을 때 발생하는 취약점 * 프로그램 구조상의 에러로 해제된 메모...)
 
No edit summary
Line 1: Line 1:
[[분류:보안]][[분류:보안 취약점]]
;Use After Free
;Use After Free


Line 4: Line 5:


* 프로그램 구조상의 에러로 해제된 메모리를 참조하려고 하면 오류가 발생한다. 일반적으론 크래쉬와 함께 종료되어버리지만 이 종료되는 순간에 악성코드(셸코드)를 할당하여 Exploit을 만들 수 있다.
* 프로그램 구조상의 에러로 해제된 메모리를 참조하려고 하면 오류가 발생한다. 일반적으론 크래쉬와 함께 종료되어버리지만 이 종료되는 순간에 악성코드(셸코드)를 할당하여 Exploit을 만들 수 있다.
* 메모리가 해제된 순간에 그 빈 메모리 공간에 셸코드를 할당한다.
* 메모리가 해제된 순간에 그 빈 메모리 공간에 [[셸코드]]를 할당한다.
** LFH(Low Flagmentation Heap) 속성을 이용하여 빈 공간과 정확히 일치하는 셸코드를 할당시킨다.
** LFH(Low Flagmentation Heap) 속성을 이용하여 빈 공간과 정확히 일치하는 셸코드를 할당시킨다.
** Heap Spray를 이용한다.
** [[힙 스프레]]를 이용한다.
* 실제 마이크로소프트 익스플로러에서 발생한 유명 사례
* 실제 마이크로소프트 익스플로러에서 발생한 유명 사례
** [https://www.rapid7.com/db/modules/exploit/windows/browser/ms11_081_option MS11-081 Microsoft Internet Explorer Option Element Use-After-Free]
** [https://www.rapid7.com/db/modules/exploit/windows/browser/ms11_081_option MS11-081 Microsoft Internet Explorer Option Element Use-After-Free]

Revision as of 11:36, 10 June 2019

Use After Free

특정 함수가 메모리에서 해제된 뒤 다시 호출되는 버그가 있을 때 발생하는 취약점

  • 프로그램 구조상의 에러로 해제된 메모리를 참조하려고 하면 오류가 발생한다. 일반적으론 크래쉬와 함께 종료되어버리지만 이 종료되는 순간에 악성코드(셸코드)를 할당하여 Exploit을 만들 수 있다.
  • 메모리가 해제된 순간에 그 빈 메모리 공간에 셸코드를 할당한다.
    • LFH(Low Flagmentation Heap) 속성을 이용하여 빈 공간과 정확히 일치하는 셸코드를 할당시킨다.
    • 힙 스프레를 이용한다.
  • 실제 마이크로소프트 익스플로러에서 발생한 유명 사례