코딩두의 포트폴리오

버퍼 오버플로우(Buffer Overflow) 본문

vulnerability

버퍼 오버플로우(Buffer Overflow)

코딩두 2024. 5. 10. 19:27

KISA 가이드

 

버퍼 오버플로우란? 

버퍼에 데이터를 쓰는 소프트웨어가 버퍼의 용량을 초과하여 인접한 메모리 위치를 덮어쓸 때 발생하는 비정상적인 현상

공간이 충분하지 않은 컨테이너에 너무 많은 정보가 전달되어 해당 정보가 인접 컨테이너의 데이터를 대체

 

버퍼란?

버퍼는 데이터를 다른 장소로 이동하는 동안 임시로 저장하는 데 사용되는 물리적 메모리 저장 영역

 

버퍼 오버플로우 악용

  1. 공격자는 신중하게 조작된 입력을 프로그램에 의도적으로 삽입
  2. 프로그램이 해당 입력을 충분히 크지 않은 버퍼에 저장하도록 하여 버퍼 공간에 연결된 메모리 일부를 덮어씌움
  3. 프로그램의 메모리 레이아웃이 잘 정의되어 있다면 공격자는 실행 코드가 포함된 것으로 알려진 영역을 의도적으로 덮음
  4. 공격자는 이 코드를 자신의 실행 코드로 대체하여 프로그램의 작동 방식을 크게 변경
  5. ex) 메모리의 덮어쓴 부분에 포인터(메모리의 다른 위치를 가리키는 객체)가 포함되어 있는 경우
  6. 공격자의 코드는 해당 코드를 익스플로잇 페이로드를 가리키는 다른 포인터로 대체
  7. 전체 프로그램의 제어권이 공격자의 코드로 넘어갈 수 있음

버퍼 오버플로 공격에 취약한 대상은?

 

 

 

 

 

 

'vulnerability' 카테고리의 다른 글

버프 스위트(Burp Suite)  (0) 2024.05.16
운영체제 명령 실행 (Command Injection)  (0) 2024.05.13
LDAP 인젝션 (LDAP Injection)  (0) 2024.05.12
포맷 스트링 (Format String)  (1) 2024.05.12
취약점(vulnerability)  (0) 2024.05.10